diff --git a/contracts/verifiers/idcard/Verifier_idcard_sha1.sol b/contracts/verifiers/idcard/Verifier_idcard_sha1.sol new file mode 100644 index 0000000..7760e1b --- /dev/null +++ b/contracts/verifiers/idcard/Verifier_idcard_sha1.sol @@ -0,0 +1,217 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + +pragma solidity >=0.7.0 <0.9.0; + +contract Verifier_idcard_sha1 { + // Scalar field size + uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + // Base field size + uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + + // Verification Key data + uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042; + uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958; + uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132; + uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731; + uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679; + uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856; + uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant deltax1 = 17619978066981023815786197539891834595467101800168005440602760726252419224182; + uint256 constant deltax2 = 18977671751559096556952089773959459997838190076805335585523439415828663041091; + uint256 constant deltay1 = 20908933493580347546254738498174154838704896433856769222253193499541811828688; + uint256 constant deltay2 = 14228223910638183943848630972622539108882152661926856215951516846313437227100; + + + uint256 constant IC0x = 18996279980038711758193690354940715782561235380342286407554135740201513779279; + uint256 constant IC0y = 11625887395259635500670464496187717958964706644081328357030137540193674702015; + + uint256 constant IC1x = 2803372302542279061992801806634278926291194002619610390291532752624573014173; + uint256 constant IC1y = 10299540508560758826097485034731152593441586555541996535916675882907375474435; + + uint256 constant IC2x = 3515557068537248154485087584130170954856304985271889186452891924457640062970; + uint256 constant IC2y = 1470817234371769592572885478845544364540877905963971376961793016405008053683; + + uint256 constant IC3x = 9882623278822854916070400357014056422896394552342808356843508747816984172644; + uint256 constant IC3y = 15531717559181484462850765055876863273664930315712089064242339049088256330437; + + uint256 constant IC4x = 1901898694368678166577209587685345696272596482922653049767926510562298598974; + uint256 constant IC4y = 5058572446650720343780896019894709715665377022988535030242875984721308263761; + + uint256 constant IC5x = 20431838211546078848142643584396353147225169357005485193415850116721939313698; + uint256 constant IC5y = 12674687627463988134904336509745795614944363742165672249109257935456985648885; + + uint256 constant IC6x = 4014435991936218046726515736305912875209372027501216181172190606316328747472; + uint256 constant IC6y = 16912585017352105870989796655854968791219729237634485846585064696134374045934; + + uint256 constant IC7x = 12553131107985421444412332178956153560186927617121861418939287320178940975682; + uint256 constant IC7y = 15211374507967162250825030127268522561555464722253667504386597832287358118777; + + uint256 constant IC8x = 9360822385172522643659404900386728650189826239156564955589551865188818779244; + uint256 constant IC8y = 1600740977972980205306895108993336563635329497019830065817810193590153972774; + + + // Memory data + uint16 constant pVk = 0; + uint16 constant pPairing = 128; + + uint16 constant pLastMem = 896; + + function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) { + assembly { + function checkField(v) { + if iszero(lt(v, r)) { + mstore(0, 0) + return(0, 0x20) + } + } + + // G1 function to multiply a G1 value(x,y) to value in an address + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn, 32), y) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + + mstore(add(mIn, 64), mload(pR)) + mstore(add(mIn, 96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk { + let _pPairing := add(pMem, pPairing) + let _pVk := add(pMem, pVk) + + mstore(_pVk, IC0x) + mstore(add(_pVk, 32), IC0y) + + // Compute the linear combination vk_x + + g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0))) + + g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32))) + + g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64))) + + g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96))) + + g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128))) + + g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160))) + + g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192))) + + g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224))) + + + // -A + mstore(_pPairing, calldataload(pA)) + mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q)) + + // B + mstore(add(_pPairing, 64), calldataload(pB)) + mstore(add(_pPairing, 96), calldataload(add(pB, 32))) + mstore(add(_pPairing, 128), calldataload(add(pB, 64))) + mstore(add(_pPairing, 160), calldataload(add(pB, 96))) + + // alpha1 + mstore(add(_pPairing, 192), alphax) + mstore(add(_pPairing, 224), alphay) + + // beta2 + mstore(add(_pPairing, 256), betax1) + mstore(add(_pPairing, 288), betax2) + mstore(add(_pPairing, 320), betay1) + mstore(add(_pPairing, 352), betay2) + + // vk_x + mstore(add(_pPairing, 384), mload(add(pMem, pVk))) + mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32)))) + + + // gamma2 + mstore(add(_pPairing, 448), gammax1) + mstore(add(_pPairing, 480), gammax2) + mstore(add(_pPairing, 512), gammay1) + mstore(add(_pPairing, 544), gammay2) + + // C + mstore(add(_pPairing, 576), calldataload(pC)) + mstore(add(_pPairing, 608), calldataload(add(pC, 32))) + + // delta2 + mstore(add(_pPairing, 640), deltax1) + mstore(add(_pPairing, 672), deltax2) + mstore(add(_pPairing, 704), deltay1) + mstore(add(_pPairing, 736), deltay2) + + + let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20) + + isOk := and(success, mload(_pPairing)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, pLastMem)) + + // Validate that all evaluations ∈ F + + checkField(calldataload(add(_pubSignals, 0))) + + checkField(calldataload(add(_pubSignals, 32))) + + checkField(calldataload(add(_pubSignals, 64))) + + checkField(calldataload(add(_pubSignals, 96))) + + checkField(calldataload(add(_pubSignals, 128))) + + checkField(calldataload(add(_pubSignals, 160))) + + checkField(calldataload(add(_pubSignals, 192))) + + checkField(calldataload(add(_pubSignals, 224))) + + + // Validate all evaluations + let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem) + + mstore(0, isValid) + return(0, 0x20) + } + } + } diff --git a/contracts/verifiers/idcard/Verifier_idcard_sha224.sol b/contracts/verifiers/idcard/Verifier_idcard_sha224.sol new file mode 100644 index 0000000..a73a18c --- /dev/null +++ b/contracts/verifiers/idcard/Verifier_idcard_sha224.sol @@ -0,0 +1,217 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + +pragma solidity >=0.7.0 <0.9.0; + +contract Verifier_idcard_sha224 { + // Scalar field size + uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + // Base field size + uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + + // Verification Key data + uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042; + uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958; + uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132; + uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731; + uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679; + uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856; + uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant deltax1 = 11528676451769479893890586016735137918738468325373806791162804722335540091687; + uint256 constant deltax2 = 1669837297114499788327298581040767838561450127612980516405627911946405462534; + uint256 constant deltay1 = 6941559998409292029643061692869111692962972983639467708165579202057066355393; + uint256 constant deltay2 = 5830426388149171192237417426123628387055857734312228139923031685962780158683; + + + uint256 constant IC0x = 7956549064730906111377240031143142340365041322388677884335874178877686787764; + uint256 constant IC0y = 21790724438154385202050210979362691842601057366517795997725819221691066711755; + + uint256 constant IC1x = 194496735259530299748406225961144873675065744182291314773378155732660624785; + uint256 constant IC1y = 11997520324628331139758497735152902564190894765922626854425531937009442055993; + + uint256 constant IC2x = 20715659899206363009959001352152706938315031879094658313760729922559866072687; + uint256 constant IC2y = 7206931389654884759550699855892139536019290824089073066664826074006671238130; + + uint256 constant IC3x = 15647600021508609611386466189009105815365382348025150745900556253207448104416; + uint256 constant IC3y = 21505866779139736379603548820171953204904071774611582301872666143749664223782; + + uint256 constant IC4x = 20755365119539793284398369809183714774718274129718886008840939250709368056443; + uint256 constant IC4y = 1514096099909968992998399649590292902743246116759867014081902827133607740031; + + uint256 constant IC5x = 546503567340616503487627262812738482343972115809910511635137549145784523079; + uint256 constant IC5y = 19642933456728346239715412395526737799407086369371836139030446410313981127143; + + uint256 constant IC6x = 8655387554042588479764841421113461904648339947579594888232313481540140210605; + uint256 constant IC6y = 6194582962607983379640117680151386004082379702276643252309562756392639795036; + + uint256 constant IC7x = 19998957772364520049216030643423539846174804959493071837156234560114053372045; + uint256 constant IC7y = 7876066213188359986267785706274504001460175706745828533890570001500672413722; + + uint256 constant IC8x = 17919646429039771684856980550026060820137724553201143039316157510821681334959; + uint256 constant IC8y = 12252744369277572141619541598958408920185159640281676168728109026113461424943; + + + // Memory data + uint16 constant pVk = 0; + uint16 constant pPairing = 128; + + uint16 constant pLastMem = 896; + + function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) { + assembly { + function checkField(v) { + if iszero(lt(v, r)) { + mstore(0, 0) + return(0, 0x20) + } + } + + // G1 function to multiply a G1 value(x,y) to value in an address + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn, 32), y) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + + mstore(add(mIn, 64), mload(pR)) + mstore(add(mIn, 96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk { + let _pPairing := add(pMem, pPairing) + let _pVk := add(pMem, pVk) + + mstore(_pVk, IC0x) + mstore(add(_pVk, 32), IC0y) + + // Compute the linear combination vk_x + + g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0))) + + g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32))) + + g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64))) + + g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96))) + + g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128))) + + g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160))) + + g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192))) + + g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224))) + + + // -A + mstore(_pPairing, calldataload(pA)) + mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q)) + + // B + mstore(add(_pPairing, 64), calldataload(pB)) + mstore(add(_pPairing, 96), calldataload(add(pB, 32))) + mstore(add(_pPairing, 128), calldataload(add(pB, 64))) + mstore(add(_pPairing, 160), calldataload(add(pB, 96))) + + // alpha1 + mstore(add(_pPairing, 192), alphax) + mstore(add(_pPairing, 224), alphay) + + // beta2 + mstore(add(_pPairing, 256), betax1) + mstore(add(_pPairing, 288), betax2) + mstore(add(_pPairing, 320), betay1) + mstore(add(_pPairing, 352), betay2) + + // vk_x + mstore(add(_pPairing, 384), mload(add(pMem, pVk))) + mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32)))) + + + // gamma2 + mstore(add(_pPairing, 448), gammax1) + mstore(add(_pPairing, 480), gammax2) + mstore(add(_pPairing, 512), gammay1) + mstore(add(_pPairing, 544), gammay2) + + // C + mstore(add(_pPairing, 576), calldataload(pC)) + mstore(add(_pPairing, 608), calldataload(add(pC, 32))) + + // delta2 + mstore(add(_pPairing, 640), deltax1) + mstore(add(_pPairing, 672), deltax2) + mstore(add(_pPairing, 704), deltay1) + mstore(add(_pPairing, 736), deltay2) + + + let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20) + + isOk := and(success, mload(_pPairing)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, pLastMem)) + + // Validate that all evaluations ∈ F + + checkField(calldataload(add(_pubSignals, 0))) + + checkField(calldataload(add(_pubSignals, 32))) + + checkField(calldataload(add(_pubSignals, 64))) + + checkField(calldataload(add(_pubSignals, 96))) + + checkField(calldataload(add(_pubSignals, 128))) + + checkField(calldataload(add(_pubSignals, 160))) + + checkField(calldataload(add(_pubSignals, 192))) + + checkField(calldataload(add(_pubSignals, 224))) + + + // Validate all evaluations + let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem) + + mstore(0, isValid) + return(0, 0x20) + } + } + } diff --git a/contracts/verifiers/idcard/Verifier_idcard_sha256.sol b/contracts/verifiers/idcard/Verifier_idcard_sha256.sol new file mode 100644 index 0000000..a8a2866 --- /dev/null +++ b/contracts/verifiers/idcard/Verifier_idcard_sha256.sol @@ -0,0 +1,217 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + +pragma solidity >=0.7.0 <0.9.0; + +contract Verifier_idcard_sha256 { + // Scalar field size + uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + // Base field size + uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + + // Verification Key data + uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042; + uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958; + uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132; + uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731; + uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679; + uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856; + uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant deltax1 = 7108172092573882105714150420819903874929273543981336077096548575233836698051; + uint256 constant deltax2 = 9695439068955503176000162189209453260970522179427226826392485950884732033729; + uint256 constant deltay1 = 16624583325771504903535054637337144476996725989113711836927112345441013919930; + uint256 constant deltay2 = 19276965844456483080300510857160492253225414152970648735893251665359428236630; + + + uint256 constant IC0x = 5807073784152025986669718972725067491508529549260211827791183407948915436053; + uint256 constant IC0y = 3153946873969499332822384811010472154710578920431675755800464865969736663036; + + uint256 constant IC1x = 5283721587798488023915095641638604156996041660509251368562130109756059799599; + uint256 constant IC1y = 2251445930270611158926192324108159716803841205251031703916621053847441007382; + + uint256 constant IC2x = 21407052562448988952738358426382390833296254762259827778796379478555008692000; + uint256 constant IC2y = 18591747716383551089930777925944581376763038844729833670184573014967075693963; + + uint256 constant IC3x = 16064178344486809248644271655972142215473007569225250956257403428941755984216; + uint256 constant IC3y = 16062675701931919990917355706503482044477775920236427526503412929529399918562; + + uint256 constant IC4x = 1546275417863397238581225548343538707005318324353758499244112897265836238229; + uint256 constant IC4y = 13063754323861482376286995035193283748950215952642567157801002274791495918786; + + uint256 constant IC5x = 1141079313021565119492833931790595578183633299696035861651276524275111123783; + uint256 constant IC5y = 7166084310153930480927638721172548523660750971204544078450628343211919242925; + + uint256 constant IC6x = 1971179529908889456121637385865871080294916196885258489908146419781659282160; + uint256 constant IC6y = 50579574438141375186398099028392679205914531546519480875621917297963856441; + + uint256 constant IC7x = 9100199755459715713519393317043280025615287889744180275461286004332778013036; + uint256 constant IC7y = 7061165107258796431766606546368143418686100123207385991264212484194753568741; + + uint256 constant IC8x = 17364972641898162599433694008538623445213336000800890562234624733284246493780; + uint256 constant IC8y = 12746849599984592234975470756593776746553513502857491451188960360675308816217; + + + // Memory data + uint16 constant pVk = 0; + uint16 constant pPairing = 128; + + uint16 constant pLastMem = 896; + + function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) { + assembly { + function checkField(v) { + if iszero(lt(v, r)) { + mstore(0, 0) + return(0, 0x20) + } + } + + // G1 function to multiply a G1 value(x,y) to value in an address + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn, 32), y) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + + mstore(add(mIn, 64), mload(pR)) + mstore(add(mIn, 96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk { + let _pPairing := add(pMem, pPairing) + let _pVk := add(pMem, pVk) + + mstore(_pVk, IC0x) + mstore(add(_pVk, 32), IC0y) + + // Compute the linear combination vk_x + + g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0))) + + g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32))) + + g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64))) + + g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96))) + + g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128))) + + g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160))) + + g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192))) + + g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224))) + + + // -A + mstore(_pPairing, calldataload(pA)) + mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q)) + + // B + mstore(add(_pPairing, 64), calldataload(pB)) + mstore(add(_pPairing, 96), calldataload(add(pB, 32))) + mstore(add(_pPairing, 128), calldataload(add(pB, 64))) + mstore(add(_pPairing, 160), calldataload(add(pB, 96))) + + // alpha1 + mstore(add(_pPairing, 192), alphax) + mstore(add(_pPairing, 224), alphay) + + // beta2 + mstore(add(_pPairing, 256), betax1) + mstore(add(_pPairing, 288), betax2) + mstore(add(_pPairing, 320), betay1) + mstore(add(_pPairing, 352), betay2) + + // vk_x + mstore(add(_pPairing, 384), mload(add(pMem, pVk))) + mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32)))) + + + // gamma2 + mstore(add(_pPairing, 448), gammax1) + mstore(add(_pPairing, 480), gammax2) + mstore(add(_pPairing, 512), gammay1) + mstore(add(_pPairing, 544), gammay2) + + // C + mstore(add(_pPairing, 576), calldataload(pC)) + mstore(add(_pPairing, 608), calldataload(add(pC, 32))) + + // delta2 + mstore(add(_pPairing, 640), deltax1) + mstore(add(_pPairing, 672), deltax2) + mstore(add(_pPairing, 704), deltay1) + mstore(add(_pPairing, 736), deltay2) + + + let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20) + + isOk := and(success, mload(_pPairing)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, pLastMem)) + + // Validate that all evaluations ∈ F + + checkField(calldataload(add(_pubSignals, 0))) + + checkField(calldataload(add(_pubSignals, 32))) + + checkField(calldataload(add(_pubSignals, 64))) + + checkField(calldataload(add(_pubSignals, 96))) + + checkField(calldataload(add(_pubSignals, 128))) + + checkField(calldataload(add(_pubSignals, 160))) + + checkField(calldataload(add(_pubSignals, 192))) + + checkField(calldataload(add(_pubSignals, 224))) + + + // Validate all evaluations + let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem) + + mstore(0, isValid) + return(0, 0x20) + } + } + } diff --git a/contracts/verifiers/idcard/Verifier_idcard_sha384.sol b/contracts/verifiers/idcard/Verifier_idcard_sha384.sol new file mode 100644 index 0000000..3e41e1b --- /dev/null +++ b/contracts/verifiers/idcard/Verifier_idcard_sha384.sol @@ -0,0 +1,217 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + +pragma solidity >=0.7.0 <0.9.0; + +contract Verifier_idcard_sha384 { + // Scalar field size + uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + // Base field size + uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + + // Verification Key data + uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042; + uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958; + uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132; + uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731; + uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679; + uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856; + uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant deltax1 = 19655267862703232013829558435145045870843976930317590302824065146843396793287; + uint256 constant deltax2 = 14195549125710551284606145175737530478528743926899571023260883255716761594395; + uint256 constant deltay1 = 12351506351799819269703309449630651195742753280534835077105389539461715372776; + uint256 constant deltay2 = 7757467232203449399932908423406007245263352828411880209643256057184653017967; + + + uint256 constant IC0x = 11270188442615110054592905685303866070211371561895152828128613979248055308430; + uint256 constant IC0y = 17094828042062504652619232971444441284630915101777029406911574231991586336724; + + uint256 constant IC1x = 18751691849380434759742123152792239506083151498563933974092309240285734437188; + uint256 constant IC1y = 20049688398989672878619117574546912141000756138423254830622095575650209521; + + uint256 constant IC2x = 5938392327398300804986545026506195748618068681474530419676855339051724354681; + uint256 constant IC2y = 8496173201972055300493072974747730402044794614021033901250025816096583531491; + + uint256 constant IC3x = 18000232485605953449068588695892070696902807064395147271058762007105019126334; + uint256 constant IC3y = 13923155271741522539404325966123937970365444537725373655255388853887141798562; + + uint256 constant IC4x = 18010446893195512579759629398857801006052931911571641584652135841768992002694; + uint256 constant IC4y = 8276620288288895394093542524347952614344582824042813385149643354238997853456; + + uint256 constant IC5x = 1772200220203916441938998769520117542016198278365528522982894992382620434050; + uint256 constant IC5y = 10763253272545780012285573652711822860500927391871532508832349175799702957899; + + uint256 constant IC6x = 2845166560779510830835994118050041826820064658573423743433800926181089860866; + uint256 constant IC6y = 11211513421119271124146455847515997833727893766507544722895265116859776449715; + + uint256 constant IC7x = 20144845268222422495539907720657978943445065896623586123199733159048326999760; + uint256 constant IC7y = 19718463288658080919803732449300100569607034448022178085387100796258626298784; + + uint256 constant IC8x = 7058482481805554138205851299679309168316653411824837725236270182057684890239; + uint256 constant IC8y = 10896475570578198455810015516790890845312936312589495726969700601169379853378; + + + // Memory data + uint16 constant pVk = 0; + uint16 constant pPairing = 128; + + uint16 constant pLastMem = 896; + + function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) { + assembly { + function checkField(v) { + if iszero(lt(v, r)) { + mstore(0, 0) + return(0, 0x20) + } + } + + // G1 function to multiply a G1 value(x,y) to value in an address + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn, 32), y) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + + mstore(add(mIn, 64), mload(pR)) + mstore(add(mIn, 96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk { + let _pPairing := add(pMem, pPairing) + let _pVk := add(pMem, pVk) + + mstore(_pVk, IC0x) + mstore(add(_pVk, 32), IC0y) + + // Compute the linear combination vk_x + + g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0))) + + g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32))) + + g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64))) + + g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96))) + + g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128))) + + g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160))) + + g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192))) + + g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224))) + + + // -A + mstore(_pPairing, calldataload(pA)) + mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q)) + + // B + mstore(add(_pPairing, 64), calldataload(pB)) + mstore(add(_pPairing, 96), calldataload(add(pB, 32))) + mstore(add(_pPairing, 128), calldataload(add(pB, 64))) + mstore(add(_pPairing, 160), calldataload(add(pB, 96))) + + // alpha1 + mstore(add(_pPairing, 192), alphax) + mstore(add(_pPairing, 224), alphay) + + // beta2 + mstore(add(_pPairing, 256), betax1) + mstore(add(_pPairing, 288), betax2) + mstore(add(_pPairing, 320), betay1) + mstore(add(_pPairing, 352), betay2) + + // vk_x + mstore(add(_pPairing, 384), mload(add(pMem, pVk))) + mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32)))) + + + // gamma2 + mstore(add(_pPairing, 448), gammax1) + mstore(add(_pPairing, 480), gammax2) + mstore(add(_pPairing, 512), gammay1) + mstore(add(_pPairing, 544), gammay2) + + // C + mstore(add(_pPairing, 576), calldataload(pC)) + mstore(add(_pPairing, 608), calldataload(add(pC, 32))) + + // delta2 + mstore(add(_pPairing, 640), deltax1) + mstore(add(_pPairing, 672), deltax2) + mstore(add(_pPairing, 704), deltay1) + mstore(add(_pPairing, 736), deltay2) + + + let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20) + + isOk := and(success, mload(_pPairing)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, pLastMem)) + + // Validate that all evaluations ∈ F + + checkField(calldataload(add(_pubSignals, 0))) + + checkField(calldataload(add(_pubSignals, 32))) + + checkField(calldataload(add(_pubSignals, 64))) + + checkField(calldataload(add(_pubSignals, 96))) + + checkField(calldataload(add(_pubSignals, 128))) + + checkField(calldataload(add(_pubSignals, 160))) + + checkField(calldataload(add(_pubSignals, 192))) + + checkField(calldataload(add(_pubSignals, 224))) + + + // Validate all evaluations + let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem) + + mstore(0, isValid) + return(0, 0x20) + } + } + } diff --git a/contracts/verifiers/idcard/Verifier_idcard_sha512.sol b/contracts/verifiers/idcard/Verifier_idcard_sha512.sol new file mode 100644 index 0000000..3f5016a --- /dev/null +++ b/contracts/verifiers/idcard/Verifier_idcard_sha512.sol @@ -0,0 +1,217 @@ +// SPDX-License-Identifier: GPL-3.0 +/* + Copyright 2021 0KIMS association. + + This file is generated with [snarkJS](https://github.com/iden3/snarkjs). + + snarkJS is a free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + snarkJS is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public + License for more details. + + You should have received a copy of the GNU General Public License + along with snarkJS. If not, see . +*/ + +pragma solidity >=0.7.0 <0.9.0; + +contract Verifier_idcard_sha512 { + // Scalar field size + uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617; + // Base field size + uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583; + + // Verification Key data + uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042; + uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958; + uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132; + uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731; + uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679; + uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856; + uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634; + uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781; + uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531; + uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930; + uint256 constant deltax1 = 4935033327587461782389399627854920991236616908810469118714751732342275061446; + uint256 constant deltax2 = 15040958817808294539935544369419776183117239349380901163111409504958017663844; + uint256 constant deltay1 = 2007224316571344161465238472801840878489508282789288888858559848605646240848; + uint256 constant deltay2 = 18559749753958183583592478532149214224703016975298333460861915544653661358144; + + + uint256 constant IC0x = 6775054402228643716255802334734986948682682430518279486253196481989309566722; + uint256 constant IC0y = 1256219047132642118025609848816390346107005389894625383105806516968349425164; + + uint256 constant IC1x = 10110553127718601502494156062027021792279415695007706303064445895305746796972; + uint256 constant IC1y = 19898978399161065879464846829838064639432473397440657393515694239075549459414; + + uint256 constant IC2x = 14560187434499034871351467627171103172625120844651854114827556003788720970417; + uint256 constant IC2y = 14936108571712972245301749671097039789606832305941080664225776268655751656953; + + uint256 constant IC3x = 14059919891828809017722021432418231931402595098208687542598123338150745640383; + uint256 constant IC3y = 5287189187302449882380587305482098132045305570686129384654017642428856537257; + + uint256 constant IC4x = 6706949763853995059505242437648432929838165367162467746373417384817649939970; + uint256 constant IC4y = 2015510185648144270749764376656342256126280301977931907354368277198561816787; + + uint256 constant IC5x = 18546765018009385869253392738080678323434493864448585402685748329856156497557; + uint256 constant IC5y = 9710848189318571196518271373510494268801356872445810355853168058492459988199; + + uint256 constant IC6x = 544902746110577324329364298650693667366017259389786868738072664789424802924; + uint256 constant IC6y = 19862963901307499231830066453364234728952499255639862660100552186005791941065; + + uint256 constant IC7x = 9061076520764351620379515690585690079034134082404925699620585204866352078475; + uint256 constant IC7y = 19484642542605957456985051447710501567528279902650299867448130248236291732801; + + uint256 constant IC8x = 9914119697422775374510091216988900063691223646782798037580428451954809638249; + uint256 constant IC8y = 12901895327948330263975865343040217195073424381052892161417037093019981392204; + + + // Memory data + uint16 constant pVk = 0; + uint16 constant pPairing = 128; + + uint16 constant pLastMem = 896; + + function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) { + assembly { + function checkField(v) { + if iszero(lt(v, r)) { + mstore(0, 0) + return(0, 0x20) + } + } + + // G1 function to multiply a G1 value(x,y) to value in an address + function g1_mulAccC(pR, x, y, s) { + let success + let mIn := mload(0x40) + mstore(mIn, x) + mstore(add(mIn, 32), y) + mstore(add(mIn, 64), s) + + success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + + mstore(add(mIn, 64), mload(pR)) + mstore(add(mIn, 96), mload(add(pR, 32))) + + success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64) + + if iszero(success) { + mstore(0, 0) + return(0, 0x20) + } + } + + function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk { + let _pPairing := add(pMem, pPairing) + let _pVk := add(pMem, pVk) + + mstore(_pVk, IC0x) + mstore(add(_pVk, 32), IC0y) + + // Compute the linear combination vk_x + + g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0))) + + g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32))) + + g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64))) + + g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96))) + + g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128))) + + g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160))) + + g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192))) + + g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224))) + + + // -A + mstore(_pPairing, calldataload(pA)) + mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q)) + + // B + mstore(add(_pPairing, 64), calldataload(pB)) + mstore(add(_pPairing, 96), calldataload(add(pB, 32))) + mstore(add(_pPairing, 128), calldataload(add(pB, 64))) + mstore(add(_pPairing, 160), calldataload(add(pB, 96))) + + // alpha1 + mstore(add(_pPairing, 192), alphax) + mstore(add(_pPairing, 224), alphay) + + // beta2 + mstore(add(_pPairing, 256), betax1) + mstore(add(_pPairing, 288), betax2) + mstore(add(_pPairing, 320), betay1) + mstore(add(_pPairing, 352), betay2) + + // vk_x + mstore(add(_pPairing, 384), mload(add(pMem, pVk))) + mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32)))) + + + // gamma2 + mstore(add(_pPairing, 448), gammax1) + mstore(add(_pPairing, 480), gammax2) + mstore(add(_pPairing, 512), gammay1) + mstore(add(_pPairing, 544), gammay2) + + // C + mstore(add(_pPairing, 576), calldataload(pC)) + mstore(add(_pPairing, 608), calldataload(add(pC, 32))) + + // delta2 + mstore(add(_pPairing, 640), deltax1) + mstore(add(_pPairing, 672), deltax2) + mstore(add(_pPairing, 704), deltay1) + mstore(add(_pPairing, 736), deltay2) + + + let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20) + + isOk := and(success, mload(_pPairing)) + } + + let pMem := mload(0x40) + mstore(0x40, add(pMem, pLastMem)) + + // Validate that all evaluations ∈ F + + checkField(calldataload(add(_pubSignals, 0))) + + checkField(calldataload(add(_pubSignals, 32))) + + checkField(calldataload(add(_pubSignals, 64))) + + checkField(calldataload(add(_pubSignals, 96))) + + checkField(calldataload(add(_pubSignals, 128))) + + checkField(calldataload(add(_pubSignals, 160))) + + checkField(calldataload(add(_pubSignals, 192))) + + checkField(calldataload(add(_pubSignals, 224))) + + + // Validate all evaluations + let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem) + + mstore(0, isValid) + return(0, 0x20) + } + } + } diff --git a/hardhat.config.ts b/hardhat.config.ts index cd17e14..200515b 100644 --- a/hardhat.config.ts +++ b/hardhat.config.ts @@ -28,25 +28,25 @@ const config: HardhatUserConfig = { ], }, networks: { - "billions-main": { + "billions-mainnet": { chainId: 45056, url: `${process.env.BILLIONS_MAIN_RPC_URL}`, // accounts: process.env.PRIVATE_KEY ? [`0x${process.env.PRIVATE_KEY}`] : DEFAULT_ACCOUNTS, ledgerAccounts: [`${process.env.LEDGER_ACCOUNT}`], }, - "billions-test": { + "billions-testnet": { chainId: 6913, url: `${process.env.BILLIONS_TEST_RPC_URL}`, accounts: process.env.PRIVATE_KEY ? [`0x${process.env.PRIVATE_KEY}`] : DEFAULT_ACCOUNTS, // ledgerAccounts: [`${process.env.LEDGER_ACCOUNT}`], }, - "privado-main": { + "privado-mainnet": { chainId: 21000, url: `${process.env.PRIVADO_MAIN_RPC_URL}`, // accounts: process.env.PRIVATE_KEY ? [`0x${process.env.PRIVATE_KEY}`] : DEFAULT_ACCOUNTS, ledgerAccounts: [`${process.env.LEDGER_ACCOUNT}`], }, - "privado-test": { + "privado-testnet": { chainId: 21001, url: `${process.env.PRIVADO_TEST_RPC_URL}`, // accounts: process.env.PRIVATE_KEY ? [`0x${process.env.PRIVATE_KEY}`] : DEFAULT_ACCOUNTS, @@ -100,7 +100,7 @@ const config: HardhatUserConfig = { // accounts: process.env.PRIVATE_KEY ? [`0x${process.env.PRIVATE_KEY}`] : DEFAULT_ACCOUNTS, ledgerAccounts: [`${process.env.LEDGER_ACCOUNT}`], }, - "xlayer-test": { + "xlayer-testnet": { chainId: 195, url: `${process.env.XLAYER_TEST_RPC_URL}`, accounts: process.env.PRIVATE_KEY ? [`0x${process.env.PRIVATE_KEY}`] : DEFAULT_ACCOUNTS, @@ -147,11 +147,12 @@ const config: HardhatUserConfig = { "linea-sepolia": process.env.LINEA_EXPLORER_API_KEY || "", "zkevm-cardona": process.env.ZKEVM_EXPLORER_API_KEY || "", "zkevm-mainnet": process.env.ZKEVM_EXPLORER_API_KEY || "", - "billions-test": "abc", + "billions-testnet": "abc", + "billions-mainnet": "abc", }, customChains: [ { - network: "billions-test", + network: "billions-testnet", chainId: 6913, urls: { apiURL: "https://billions-testnet-blockscout.eu-north-2.gateway.fm/api/", @@ -159,7 +160,7 @@ const config: HardhatUserConfig = { }, }, { - network: "billions-main", + network: "billions-mainnet", chainId: 45056, urls: { apiURL: "https://billions-mainnet-blockscout.eu-north-2.gateway.fm/api/", diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha1.dbg.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha1.dbg.json new file mode 100644 index 0000000..ed09939 --- /dev/null +++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha1.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/159803f8228c1d0d30a9fa99e029a9f5.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha1.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha1.json new file mode 100644 index 0000000..67f55b0 --- /dev/null +++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha1.json @@ -0,0 +1,45 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Verifier_idcard_sha1", + "sourceName": "contracts/verifiers/idcard/Verifier_idcard_sha1.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[2]", + "name": "_pA", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2][2]", + "name": "_pB", + "type": "uint256[2][2]" + }, + { + "internalType": "uint256[2]", + "name": "_pC", + "type": "uint256[2]" + }, + { + "internalType": "uint256[8]", + "name": "_pubSignals", + "type": "uint256[8]" + } + ], + "name": "verifyProof", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x6080604052348015600f57600080fd5b506107ea8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074d565b610057565b604051901515815260200160405180910390f35b60006106aa565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f29ff83716be0d0baba31c32369198c3a0da0d3adb699e63974dffb2879c0004f85527f19b404e25643468fe418e76b619a2c6428a0633a40d103d5894b37e99529acbf60208601526000608086018661019a87357f16c55556093c6b890f0c5dbf45fa1cdef9018f18bd4eeb4691e2394cfa0f97037f0632a709df6078ef66518fd7bdb865efa6f334611ce9d8e05bdee6700540e09d84610092565b6101ea60208801357f034073fb529bb35fa59e74920754aaf5a64b144e94adf12be18d33cafdf3f5b37f07c5bc1b0461526996152c27bfb5412b3a941b76b249890eae3361e6cdee6ffa84610092565b61023a60408801357f2256a3ff0336fdeb8ff15bbe6346f98c1cd42e6150d79d4f8b9c003850784ac57f15d95dd681e29f94806fb623e0862a45150d72df468511f82464e5139464d86484610092565b61028a60608801357f0b2f0cf054017cca1b84a473fe1fd685ad3a8de1e55247a1bc8ae2112887a5517f04346fbf59f32c3d2b1b463ecfde357cac72df041fb8c1a85d51546870b0963e84610092565b6102da60808801357f1c059e750eed8681d720e766016ec290944eb71864552c1a52ce200defcf8ef57f2d2c02b7a423b7732cc79c938965ab3ba3adf42dd092ca8695dc65488b8bf42284610092565b61032a60a08801357f25642f13b43067b9c9c93ad4b0918816217767a4116f400b650e2bc9a8f8b8ee7f08e0171aba726132a10be358c6ed6444e2cf74b70406220e84bd6e88cf0881d084610092565b61037a60c08801357f21a15536da869bca92c54269c8c1cdb7e9fbd0a3efc6fc543e86000936056b797f1bc0d2072947c3e8cfb7ac85e1289da7053d9d7a7c96237702ce1ea514a01a4284610092565b6103ca60e08801357f0389fcbecfc1981ce90ca521226aa862843fa4f308ccaca21bcf102347310c267f14b209a7aa6e362049249d21af4dca9112c998aa7ec20b6b6a17675e93667c6c84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f26f48dde35d1f1d8c281adeb4197bedd259ca49042dde75dcde76053a7eb12766102808201527f29f4fb47ddb8af1bf4744010c8885de42323e9367c620c072308d0e12410fc436102a08201527f2e3a09772fe0d7e39904965e43d9dde3b63c41a8eeee9869e39c9ca0fb7917d06102c08201527f1f74e3ac6d4de5da5f21f8689d45ae00bc4ecd4a5f9d62f800a39d5568c1685c6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c2600084013561005e565b6106cf602084013561005e565b6106dc604084013561005e565b6106e9606084013561005e565b6106f6608084013561005e565b61070360a084013561005e565b61071060c084013561005e565b61071d60e084013561005e565b61072a818486888a6100fd565b90508060005260206000f35b806040810183101561074757600080fd5b92915050565b600080600080610200858703121561076457600080fd5b61076e8686610736565b935060c085018681111561078157600080fd5b6040860193506107918782610736565b92505085610200860111156107a557600080fd5b5091949093509091610100019056fea26469706673582212207169d3c5cbe1262075a1081a8b19a4a874f6a5bac877d87bbbfcea44ed6525c764736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074d565b610057565b604051901515815260200160405180910390f35b60006106aa565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f29ff83716be0d0baba31c32369198c3a0da0d3adb699e63974dffb2879c0004f85527f19b404e25643468fe418e76b619a2c6428a0633a40d103d5894b37e99529acbf60208601526000608086018661019a87357f16c55556093c6b890f0c5dbf45fa1cdef9018f18bd4eeb4691e2394cfa0f97037f0632a709df6078ef66518fd7bdb865efa6f334611ce9d8e05bdee6700540e09d84610092565b6101ea60208801357f034073fb529bb35fa59e74920754aaf5a64b144e94adf12be18d33cafdf3f5b37f07c5bc1b0461526996152c27bfb5412b3a941b76b249890eae3361e6cdee6ffa84610092565b61023a60408801357f2256a3ff0336fdeb8ff15bbe6346f98c1cd42e6150d79d4f8b9c003850784ac57f15d95dd681e29f94806fb623e0862a45150d72df468511f82464e5139464d86484610092565b61028a60608801357f0b2f0cf054017cca1b84a473fe1fd685ad3a8de1e55247a1bc8ae2112887a5517f04346fbf59f32c3d2b1b463ecfde357cac72df041fb8c1a85d51546870b0963e84610092565b6102da60808801357f1c059e750eed8681d720e766016ec290944eb71864552c1a52ce200defcf8ef57f2d2c02b7a423b7732cc79c938965ab3ba3adf42dd092ca8695dc65488b8bf42284610092565b61032a60a08801357f25642f13b43067b9c9c93ad4b0918816217767a4116f400b650e2bc9a8f8b8ee7f08e0171aba726132a10be358c6ed6444e2cf74b70406220e84bd6e88cf0881d084610092565b61037a60c08801357f21a15536da869bca92c54269c8c1cdb7e9fbd0a3efc6fc543e86000936056b797f1bc0d2072947c3e8cfb7ac85e1289da7053d9d7a7c96237702ce1ea514a01a4284610092565b6103ca60e08801357f0389fcbecfc1981ce90ca521226aa862843fa4f308ccaca21bcf102347310c267f14b209a7aa6e362049249d21af4dca9112c998aa7ec20b6b6a17675e93667c6c84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f26f48dde35d1f1d8c281adeb4197bedd259ca49042dde75dcde76053a7eb12766102808201527f29f4fb47ddb8af1bf4744010c8885de42323e9367c620c072308d0e12410fc436102a08201527f2e3a09772fe0d7e39904965e43d9dde3b63c41a8eeee9869e39c9ca0fb7917d06102c08201527f1f74e3ac6d4de5da5f21f8689d45ae00bc4ecd4a5f9d62f800a39d5568c1685c6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c2600084013561005e565b6106cf602084013561005e565b6106dc604084013561005e565b6106e9606084013561005e565b6106f6608084013561005e565b61070360a084013561005e565b61071060c084013561005e565b61071d60e084013561005e565b61072a818486888a6100fd565b90508060005260206000f35b806040810183101561074757600080fd5b92915050565b600080600080610200858703121561076457600080fd5b61076e8686610736565b935060c085018681111561078157600080fd5b6040860193506107918782610736565b92505085610200860111156107a557600080fd5b5091949093509091610100019056fea26469706673582212207169d3c5cbe1262075a1081a8b19a4a874f6a5bac877d87bbbfcea44ed6525c764736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha224.dbg.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha224.dbg.json new file mode 100644 index 0000000..ed09939 --- /dev/null +++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha224.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/159803f8228c1d0d30a9fa99e029a9f5.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha224.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha224.json new file mode 100644 index 0000000..e775393 --- /dev/null +++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha224.json @@ -0,0 +1,45 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Verifier_idcard_sha224", + "sourceName": "contracts/verifiers/idcard/Verifier_idcard_sha224.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[2]", + "name": "_pA", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2][2]", + "name": "_pB", + "type": "uint256[2][2]" + }, + { + "internalType": "uint256[2]", + "name": "_pC", + "type": "uint256[2]" + }, + { + "internalType": "uint256[8]", + "name": "_pubSignals", + "type": "uint256[8]" + } + ], + "name": "verifyProof", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x6080604052348015600f57600080fd5b506107e98061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f11973f474a9d34afdd7843a7608ff0ae39ea710449bb2ddce2c97f347407aeb485527f302d1ceb23adb83e735f2d9307fd9c8d5225f92ef4155d44a30b08d3b6a77ecb60208601526000608086018661019987357f1a865b19cfa36eea966cbe7d4d92b4904cdad4505fb2ec15c9b2a6765b7167397e6e14ccddfc69162a32f34c140d8c093a8d3674d15e3b314cf4393d17379d9184610092565b6101e960208801357f0feefa866182c1ae80b82c864c1063fb7df2c93043d62d4bf5f8a35dcf72a3f27f2dcca5e323089b977858c88af7496df925c9b42f102286cdcdaf415652dc6e6f84610092565b61023960408801357f2f8be3a5549b4052f08756eff14cdeec7f5d5a64a29f207b905f0dec2cd532267f22983a4e6ec998b82a0cfb95f046e06c9f813b65fe5cc2adac7a659fac4dade084610092565b61028960608801357f0358f2b1aa492aaab540b985158a892654fd6cb1c6c003f88cbd91b5deaa027f7f2de31ecf9c91ed8976ae908f7773e234d9f1f6eb1c44c7637a50fa13920aaa7b84610092565b6102d960808801357f2b6d819ff3d0d2a246de92182d690f6369e492794cd21d2410634f86778269e77f01354f5feefb732d89299e6411d059803c2c6779f0e400f25821bc9df211194784610092565b61032960a08801357f0db2027c422c6d687a1520b696eef810da5005fda5a632e1cc24856452940f5c7f1322c6978537b4a4abeae331b56a7fe3047cd803e57aa283898c8861bb5319ad84610092565b61037960c08801357f1169b20c696b7f37bea02355b8143573bb516342bd3717778b0dabd321ccd01a7f2c37024bc413a754e54fc89d8ffb474ed036267310d7b708c0772b9965b0588d84610092565b6103c960e08801357f1b16cebbc5f3bd0268dfc6c16bb4a368b779aa89ff334bd767ca1928157c132f7f279e29138702830e26b031b922a49b1b856a2235cba1ace7ca5c0794df688aaf84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f197cffe80ab9091e47b041687a323278bb14f779901c2dda5c60237854589b276102808201527f03b1182bbb25acac962b67dafe6e00aac983f45d4b743c228dba0ac3e36cc2066102a08201527f0f58c8a26a26d6aec2202f28a8c9bf78a4779d8a198aaa268d4fc451e1919ac16102c08201527f0ce3e786335608bde300a258db0ce7f4cf1caffd63c37f3158e47e4f264caadb6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212205a7895a774b70cbf0308911d4d7b438347c3e0a9c313e82a4108a625d50ac3fe64736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f11973f474a9d34afdd7843a7608ff0ae39ea710449bb2ddce2c97f347407aeb485527f302d1ceb23adb83e735f2d9307fd9c8d5225f92ef4155d44a30b08d3b6a77ecb60208601526000608086018661019987357f1a865b19cfa36eea966cbe7d4d92b4904cdad4505fb2ec15c9b2a6765b7167397e6e14ccddfc69162a32f34c140d8c093a8d3674d15e3b314cf4393d17379d9184610092565b6101e960208801357f0feefa866182c1ae80b82c864c1063fb7df2c93043d62d4bf5f8a35dcf72a3f27f2dcca5e323089b977858c88af7496df925c9b42f102286cdcdaf415652dc6e6f84610092565b61023960408801357f2f8be3a5549b4052f08756eff14cdeec7f5d5a64a29f207b905f0dec2cd532267f22983a4e6ec998b82a0cfb95f046e06c9f813b65fe5cc2adac7a659fac4dade084610092565b61028960608801357f0358f2b1aa492aaab540b985158a892654fd6cb1c6c003f88cbd91b5deaa027f7f2de31ecf9c91ed8976ae908f7773e234d9f1f6eb1c44c7637a50fa13920aaa7b84610092565b6102d960808801357f2b6d819ff3d0d2a246de92182d690f6369e492794cd21d2410634f86778269e77f01354f5feefb732d89299e6411d059803c2c6779f0e400f25821bc9df211194784610092565b61032960a08801357f0db2027c422c6d687a1520b696eef810da5005fda5a632e1cc24856452940f5c7f1322c6978537b4a4abeae331b56a7fe3047cd803e57aa283898c8861bb5319ad84610092565b61037960c08801357f1169b20c696b7f37bea02355b8143573bb516342bd3717778b0dabd321ccd01a7f2c37024bc413a754e54fc89d8ffb474ed036267310d7b708c0772b9965b0588d84610092565b6103c960e08801357f1b16cebbc5f3bd0268dfc6c16bb4a368b779aa89ff334bd767ca1928157c132f7f279e29138702830e26b031b922a49b1b856a2235cba1ace7ca5c0794df688aaf84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f197cffe80ab9091e47b041687a323278bb14f779901c2dda5c60237854589b276102808201527f03b1182bbb25acac962b67dafe6e00aac983f45d4b743c228dba0ac3e36cc2066102a08201527f0f58c8a26a26d6aec2202f28a8c9bf78a4779d8a198aaa268d4fc451e1919ac16102c08201527f0ce3e786335608bde300a258db0ce7f4cf1caffd63c37f3158e47e4f264caadb6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212205a7895a774b70cbf0308911d4d7b438347c3e0a9c313e82a4108a625d50ac3fe64736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha256.dbg.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha256.dbg.json new file mode 100644 index 0000000..ed09939 --- /dev/null +++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha256.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/159803f8228c1d0d30a9fa99e029a9f5.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha256.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha256.json new file mode 100644 index 0000000..a390864 --- /dev/null +++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha256.json @@ -0,0 +1,45 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Verifier_idcard_sha256", + "sourceName": "contracts/verifiers/idcard/Verifier_idcard_sha256.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[2]", + "name": "_pA", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2][2]", + "name": "_pB", + "type": "uint256[2][2]" + }, + { + "internalType": "uint256[2]", + "name": "_pC", + "type": "uint256[2]" + }, + { + "internalType": "uint256[8]", + "name": "_pubSignals", + "type": "uint256[8]" + } + ], + "name": "verifyProof", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x6080604052348015600f57600080fd5b506107e98061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f0cd6aff1fa0a9129ebcd0d8730384db02e0bfa436267ecb5cf274fdbc3f26a1585527f06f91217704e02514adec5f28bd3649e1ddc998121b47c2c31c19401b7b23ffc60208601526000608086018661019a87357f04fa45f2ecccbe65d69d748bd2b6d6ea86deb2d20030e8c25c25787d8d4c63167f0bae7afe1eac90147127668dc58fc76faf3c848ee0b9b8523ab93bd4e249d02f84610092565b6101ea60208801357f291a8e69d0febb19616b5c66ed0319e132ad06b60aaf16d2c01556311b27658b7f2f53f65e53c6780eb5fe71aee3c8f00081708df10822e15b14b11923975bef2084610092565b61023a60408801357f238326fb19dd47a63673695dd8f99844a81b31176e482fb8b2309932da62bfe27f238400b3360abfaa0dd61f6a45374d67f78054f2fd3986b216c84057f85e295884610092565b61028a60608801357f1ce1d2aae4306f6a7cc1099fe711f272c163eeca105c10aa51c2ae52da1164c27f036b292ee7ecc83260988e0bfaf999f45906c45d485097875cce48af2d78259584610092565b6102da60808801357f0fd7dc27fee49cf7d40b5afd6e709e4fdaf95ffa781327b6176f91f44a0176ad7f0285d3f81014d1935ed2ca4b56e847106dec5fe9494f6e733ad0ca8be4315b4784610092565b61032960a08801357e1ca084afa10add72ed685121b18f11aabdfb8132b53b64c7c3b51a4e9a72397f045ba5e85d4e083dabc4d2dd39cfdb28a81deb6d318654eeb704f5bb42344af084610092565b61037960c08801357f0f9c7a5277f89dc198fe9c286f0be8efab776b96c9e27d4291a09770ba2bdfe57f141e87d10dea1ba8dc0c60ccb217bdd5a5ee1a268ab7cbd5388ea1352c68c16c84610092565b6103c960e08801357f1c2e761161aa3606dd11643c2fc867d27c5e8a26fb9254d1a905ed14405947597f266439e94c68d5d4fd08ef015b8644289e5a9a9d40263d2c8b6f7a9d25881a5484610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f0fb71534758df3012a60e8d9833566b0f5298d25446afd64b2fc77079d09c9c36102808201527f156f6c8e48273df70286225e4f26197c271cef35a6621b53d6045277c21d5ac16102a08201527f24c12e433ee45e7d3a3274d5839d05c6c3ef2d87c17a064d4fcb78b34c60f0ba6102c08201527f2a9e6042c4bbf9ecb4420344847aeb071c36a1e04636408978cceb314c31b5566102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212204b10495355562cfb3ac941ba24f5cb2370270079bf0fc6526a85016c1eea7ced64736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f0cd6aff1fa0a9129ebcd0d8730384db02e0bfa436267ecb5cf274fdbc3f26a1585527f06f91217704e02514adec5f28bd3649e1ddc998121b47c2c31c19401b7b23ffc60208601526000608086018661019a87357f04fa45f2ecccbe65d69d748bd2b6d6ea86deb2d20030e8c25c25787d8d4c63167f0bae7afe1eac90147127668dc58fc76faf3c848ee0b9b8523ab93bd4e249d02f84610092565b6101ea60208801357f291a8e69d0febb19616b5c66ed0319e132ad06b60aaf16d2c01556311b27658b7f2f53f65e53c6780eb5fe71aee3c8f00081708df10822e15b14b11923975bef2084610092565b61023a60408801357f238326fb19dd47a63673695dd8f99844a81b31176e482fb8b2309932da62bfe27f238400b3360abfaa0dd61f6a45374d67f78054f2fd3986b216c84057f85e295884610092565b61028a60608801357f1ce1d2aae4306f6a7cc1099fe711f272c163eeca105c10aa51c2ae52da1164c27f036b292ee7ecc83260988e0bfaf999f45906c45d485097875cce48af2d78259584610092565b6102da60808801357f0fd7dc27fee49cf7d40b5afd6e709e4fdaf95ffa781327b6176f91f44a0176ad7f0285d3f81014d1935ed2ca4b56e847106dec5fe9494f6e733ad0ca8be4315b4784610092565b61032960a08801357e1ca084afa10add72ed685121b18f11aabdfb8132b53b64c7c3b51a4e9a72397f045ba5e85d4e083dabc4d2dd39cfdb28a81deb6d318654eeb704f5bb42344af084610092565b61037960c08801357f0f9c7a5277f89dc198fe9c286f0be8efab776b96c9e27d4291a09770ba2bdfe57f141e87d10dea1ba8dc0c60ccb217bdd5a5ee1a268ab7cbd5388ea1352c68c16c84610092565b6103c960e08801357f1c2e761161aa3606dd11643c2fc867d27c5e8a26fb9254d1a905ed14405947597f266439e94c68d5d4fd08ef015b8644289e5a9a9d40263d2c8b6f7a9d25881a5484610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f0fb71534758df3012a60e8d9833566b0f5298d25446afd64b2fc77079d09c9c36102808201527f156f6c8e48273df70286225e4f26197c271cef35a6621b53d6045277c21d5ac16102a08201527f24c12e433ee45e7d3a3274d5839d05c6c3ef2d87c17a064d4fcb78b34c60f0ba6102c08201527f2a9e6042c4bbf9ecb4420344847aeb071c36a1e04636408978cceb314c31b5566102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212204b10495355562cfb3ac941ba24f5cb2370270079bf0fc6526a85016c1eea7ced64736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha384.dbg.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha384.dbg.json new file mode 100644 index 0000000..ed09939 --- /dev/null +++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha384.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/159803f8228c1d0d30a9fa99e029a9f5.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha384.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha384.json new file mode 100644 index 0000000..d6902c8 --- /dev/null +++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha384.json @@ -0,0 +1,45 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Verifier_idcard_sha384", + "sourceName": "contracts/verifiers/idcard/Verifier_idcard_sha384.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[2]", + "name": "_pA", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2][2]", + "name": "_pB", + "type": "uint256[2][2]" + }, + { + "internalType": "uint256[2]", + "name": "_pC", + "type": "uint256[2]" + }, + { + "internalType": "uint256[8]", + "name": "_pubSignals", + "type": "uint256[8]" + } + ], + "name": "verifyProof", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x6080604052348015600f57600080fd5b506107e98061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f18eab35ae854b5b39c8fa63363a88b91b1fdc6978e1743ca488c69ba334c508e85527f25cb546d2f84d371cebe397b54f233a9a52d99870aaa4a365770336498c72fd460208601526000608086018661019987357e0b5904467956cd88219e8fdf1a96df8a4c213eb1fbf9eb5fe8067bfaf10ef17f297514db6f675d3e19ab8fdf0ea98ee6a88ca0daa6e1d54b9c0a43906f21014484610092565b6101e960208801357f12c8a9e2fb08db9363aa1753295449c406b5e291291cad2109d4dcaeac213be37f0d2102cd75b5f4e3528620178980516fddac6cc3bb56d46d190511c07a7cb47984610092565b61023960408801357f1ec83a03b58de715f3a96521f3f5137ab7cbbb7b7286301bb46bbe060999e2a27f27cbc5427e7f642f4aca05e5a1d25b3322b8ca8af25e628664b9027abe05223e84610092565b61028960608801357f124c66accd609050ac9e16d1976ca5e08e3fc1d30a7a50414d4ce44a290975107f27d18d3bedbf40e95cce9f9acf5ffbcf4df76e3823aeeed405ac93620b1dd28684610092565b6102d960808801357f17cbc914663ab3ffe4fd118b3a74cf5f92b31927cc42ba57e2471259a7f52f4b7f03eb079f91ff2928de76dcf854249191077486f67be85633045b6080e69d7e8284610092565b61032960a08801357f18c97de166bbb60b90e9efcaf394cf75cbbbc9ac47e373b963779fd848cd3cb37f064a4ea511da2da6dd454bcc4aa7741cc915a9dc166abe5421311d1654afdd0284610092565b61037960c08801357f2b9841351fbaf8f4058703a0e7cc2cbdb433a1fabe068ff32f71eb1c9f67e3a07f2c89940fbc41366d4392cca6c2421407d7aeccc9925290dec36dfde35700eed084610092565b6103c960e08801357f18172fc61271230761b25bb8151d9ed3a87331b726e012f8c66c4be1406004427f0f9af5a25c3e4f28f4046e92261ac77c17b4f4a8a79e4af927541875154df27f84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f2b747cc47f5a9c39e1aec16db0fb336821d4df51fedb851b80927345bb8763c76102808201527f1f6265654b72215a6c597ae20915021be80ee0fff39a206a218296e460586a1b6102a08201527f1b4eb4714db298e715fc765588af847d7edf40519d19523210c482e74aaeaae86102c08201527f11269223b6e64d0e6bdb960fbb6df7b0d3bc91f95e291505d01ea668363a036f6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212201137da3daeaa7c27ef151cae110b4bd4f60f59ec7da0a75a183fd559af54fbff64736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f18eab35ae854b5b39c8fa63363a88b91b1fdc6978e1743ca488c69ba334c508e85527f25cb546d2f84d371cebe397b54f233a9a52d99870aaa4a365770336498c72fd460208601526000608086018661019987357e0b5904467956cd88219e8fdf1a96df8a4c213eb1fbf9eb5fe8067bfaf10ef17f297514db6f675d3e19ab8fdf0ea98ee6a88ca0daa6e1d54b9c0a43906f21014484610092565b6101e960208801357f12c8a9e2fb08db9363aa1753295449c406b5e291291cad2109d4dcaeac213be37f0d2102cd75b5f4e3528620178980516fddac6cc3bb56d46d190511c07a7cb47984610092565b61023960408801357f1ec83a03b58de715f3a96521f3f5137ab7cbbb7b7286301bb46bbe060999e2a27f27cbc5427e7f642f4aca05e5a1d25b3322b8ca8af25e628664b9027abe05223e84610092565b61028960608801357f124c66accd609050ac9e16d1976ca5e08e3fc1d30a7a50414d4ce44a290975107f27d18d3bedbf40e95cce9f9acf5ffbcf4df76e3823aeeed405ac93620b1dd28684610092565b6102d960808801357f17cbc914663ab3ffe4fd118b3a74cf5f92b31927cc42ba57e2471259a7f52f4b7f03eb079f91ff2928de76dcf854249191077486f67be85633045b6080e69d7e8284610092565b61032960a08801357f18c97de166bbb60b90e9efcaf394cf75cbbbc9ac47e373b963779fd848cd3cb37f064a4ea511da2da6dd454bcc4aa7741cc915a9dc166abe5421311d1654afdd0284610092565b61037960c08801357f2b9841351fbaf8f4058703a0e7cc2cbdb433a1fabe068ff32f71eb1c9f67e3a07f2c89940fbc41366d4392cca6c2421407d7aeccc9925290dec36dfde35700eed084610092565b6103c960e08801357f18172fc61271230761b25bb8151d9ed3a87331b726e012f8c66c4be1406004427f0f9af5a25c3e4f28f4046e92261ac77c17b4f4a8a79e4af927541875154df27f84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f2b747cc47f5a9c39e1aec16db0fb336821d4df51fedb851b80927345bb8763c76102808201527f1f6265654b72215a6c597ae20915021be80ee0fff39a206a218296e460586a1b6102a08201527f1b4eb4714db298e715fc765588af847d7edf40519d19523210c482e74aaeaae86102c08201527f11269223b6e64d0e6bdb960fbb6df7b0d3bc91f95e291505d01ea668363a036f6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212201137da3daeaa7c27ef151cae110b4bd4f60f59ec7da0a75a183fd559af54fbff64736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha512.dbg.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha512.dbg.json new file mode 100644 index 0000000..ed09939 --- /dev/null +++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha512.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../build-info/159803f8228c1d0d30a9fa99e029a9f5.json" +} \ No newline at end of file diff --git a/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha512.json b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha512.json new file mode 100644 index 0000000..745f011 --- /dev/null +++ b/ignition/deployments/chain-6913/artifacts/DeployIdCardVerifiers#Verifier_idcard_sha512.json @@ -0,0 +1,45 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Verifier_idcard_sha512", + "sourceName": "contracts/verifiers/idcard/Verifier_idcard_sha512.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[2]", + "name": "_pA", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2][2]", + "name": "_pB", + "type": "uint256[2][2]" + }, + { + "internalType": "uint256[2]", + "name": "_pC", + "type": "uint256[2]" + }, + { + "internalType": "uint256[8]", + "name": "_pubSignals", + "type": "uint256[8]" + } + ], + "name": "verifyProof", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x6080604052348015600f57600080fd5b506107ea8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074d565b610057565b604051901515815260200160405180910390f35b60006106aa565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f0efa8b7e9991fb75f19bb5ababa191b27889b6c72ddfe31e7b0e757882230f0285527f02c6feaa298fd3c18d6be3dad14166d2b0e42b4cac90c3f182e76b4e162ede0c60208601526000608086018661019a87357f2bfe6c32b4a50fb7d2b644be488602b7e2b458da3e6bbf3cff8953b7821e33d67f165a5eca7b5b08d42a140bb16d521ae5a9a9d878fb1d69a1b50e2d217c6d51ac84610092565b6101ea60208801357f210589b1d0b9623ccd9c768e7a8c8250711c866c53fe6131112d6473aa3cf5f97f2030c627df3f038d0d67b730a7b56604384a228c18376dee9e59c39ef1c81ab184610092565b61023a60408801357f0bb0716a88add9ea812103cb0210644eddc49a537b336ff73d0946b5f37010a97f1f15a1f568d0f4f0bdc70a1cfead7ecf49aef1bd66747f6ea7d005b56fca8dbf84610092565b61028a60608801357f0474bd03c61742c855ecc6bccbc089e95b9f92f182e2ea01099f1081934f30d37f0ed3ffc12a1552c83f4c0798c1d2bd2bf7a2a3d98984d4ff637f80d0a49e760284610092565b6102da60808801357f1578253252769f50fb14e2ddbc387dfdb907cb90f1e4393ea6a316f022a4b4e77f290118d4cd323220daa11ff48229b0b440ced4c9841e936263a5fc8d79daf69584610092565b61032a60a08801357f2bea0a06bc725b76b6ba723e619e43991d3601d4aadee7b393a91b0d72bba1c97f0134676e2c8b2559a41d9eaf556067fefeb2de935dc34a7b523a173ab0200c6c84610092565b61037a60c08801357f2b13eab7a13a737fb3123a1ad5538a1b367d2b8afb7cb91fda92098e32aa35417f14086337a06e6fe01c04ffd6c35807d5d6cd587818ca48f38758b3bb55cede8b84610092565b6103ca60e08801357f1c8636c70f3c36725dfd6222023c45c5994bbfef581a63643f302599c027294c7f15eb31619a7319107f0a8602f8b4b0c4432d57b01e0e6d69d8c51ab4e3700d6984610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f0ae9213fb9b06c533329ce9cf2c60c7cdfd3710f3026143f954d12139b2236c66102808201527f2140e18997ae8f5a7076abe639af9d1b57663c31fc00e9a2c46230b88da373646102a08201527f04700c77cef08a5aed2edb137cf02d1e04e9bda237232e3c8250db511bb2bc506102c08201527f290872336d0f063986f77518a56633db0ea7c8f0111b70e644e64183415248406102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c2600084013561005e565b6106cf602084013561005e565b6106dc604084013561005e565b6106e9606084013561005e565b6106f6608084013561005e565b61070360a084013561005e565b61071060c084013561005e565b61071d60e084013561005e565b61072a818486888a6100fd565b90508060005260206000f35b806040810183101561074757600080fd5b92915050565b600080600080610200858703121561076457600080fd5b61076e8686610736565b935060c085018681111561078157600080fd5b6040860193506107918782610736565b92505085610200860111156107a557600080fd5b5091949093509091610100019056fea2646970667358221220032f97f4ecb303fa37aa53fc81dae620186875de0d2d5f583823971e663efc7064736f6c634300081b0033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074d565b610057565b604051901515815260200160405180910390f35b60006106aa565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f0efa8b7e9991fb75f19bb5ababa191b27889b6c72ddfe31e7b0e757882230f0285527f02c6feaa298fd3c18d6be3dad14166d2b0e42b4cac90c3f182e76b4e162ede0c60208601526000608086018661019a87357f2bfe6c32b4a50fb7d2b644be488602b7e2b458da3e6bbf3cff8953b7821e33d67f165a5eca7b5b08d42a140bb16d521ae5a9a9d878fb1d69a1b50e2d217c6d51ac84610092565b6101ea60208801357f210589b1d0b9623ccd9c768e7a8c8250711c866c53fe6131112d6473aa3cf5f97f2030c627df3f038d0d67b730a7b56604384a228c18376dee9e59c39ef1c81ab184610092565b61023a60408801357f0bb0716a88add9ea812103cb0210644eddc49a537b336ff73d0946b5f37010a97f1f15a1f568d0f4f0bdc70a1cfead7ecf49aef1bd66747f6ea7d005b56fca8dbf84610092565b61028a60608801357f0474bd03c61742c855ecc6bccbc089e95b9f92f182e2ea01099f1081934f30d37f0ed3ffc12a1552c83f4c0798c1d2bd2bf7a2a3d98984d4ff637f80d0a49e760284610092565b6102da60808801357f1578253252769f50fb14e2ddbc387dfdb907cb90f1e4393ea6a316f022a4b4e77f290118d4cd323220daa11ff48229b0b440ced4c9841e936263a5fc8d79daf69584610092565b61032a60a08801357f2bea0a06bc725b76b6ba723e619e43991d3601d4aadee7b393a91b0d72bba1c97f0134676e2c8b2559a41d9eaf556067fefeb2de935dc34a7b523a173ab0200c6c84610092565b61037a60c08801357f2b13eab7a13a737fb3123a1ad5538a1b367d2b8afb7cb91fda92098e32aa35417f14086337a06e6fe01c04ffd6c35807d5d6cd587818ca48f38758b3bb55cede8b84610092565b6103ca60e08801357f1c8636c70f3c36725dfd6222023c45c5994bbfef581a63643f302599c027294c7f15eb31619a7319107f0a8602f8b4b0c4432d57b01e0e6d69d8c51ab4e3700d6984610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f0ae9213fb9b06c533329ce9cf2c60c7cdfd3710f3026143f954d12139b2236c66102808201527f2140e18997ae8f5a7076abe639af9d1b57663c31fc00e9a2c46230b88da373646102a08201527f04700c77cef08a5aed2edb137cf02d1e04e9bda237232e3c8250db511bb2bc506102c08201527f290872336d0f063986f77518a56633db0ea7c8f0111b70e644e64183415248406102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c2600084013561005e565b6106cf602084013561005e565b6106dc604084013561005e565b6106e9606084013561005e565b6106f6608084013561005e565b61070360a084013561005e565b61071060c084013561005e565b61071d60e084013561005e565b61072a818486888a6100fd565b90508060005260206000f35b806040810183101561074757600080fd5b92915050565b600080600080610200858703121561076457600080fd5b61076e8686610736565b935060c085018681111561078157600080fd5b6040860193506107918782610736565b92505085610200860111156107a557600080fd5b5091949093509091610100019056fea2646970667358221220032f97f4ecb303fa37aa53fc81dae620186875de0d2d5f583823971e663efc7064736f6c634300081b0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} \ No newline at end of file diff --git a/ignition/deployments/chain-6913/build-info/159803f8228c1d0d30a9fa99e029a9f5.json b/ignition/deployments/chain-6913/build-info/159803f8228c1d0d30a9fa99e029a9f5.json new file mode 100644 index 0000000..67f9599 --- /dev/null +++ b/ignition/deployments/chain-6913/build-info/159803f8228c1d0d30a9fa99e029a9f5.json @@ -0,0 +1,377309 @@ +{ + "id": "159803f8228c1d0d30a9fa99e029a9f5", + "_format": "hh-sol-build-info-1", + "solcVersion": "0.8.27", + "solcLongVersion": "0.8.27+commit.40a35a09", + "input": { + "language": "Solidity", + "sources": { + "@iden3/contracts/interfaces/ICircuitValidator.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {IState} from \"./IState.sol\";\n\n/**\n * @dev ICircuitValidator. Interface for circuit verification.\n */\ninterface ICircuitValidator {\n /**\n * @dev KeyToInputIndex. Information about public inputs of the circuit verification. Used in verify function.\n * @param key Name of the public input\n * @param inputIndex Index of the public input\n *\n * Note: Kept for backward compatibility. Now it's replaced by Signal struct for verifyV2 function.\n */\n struct KeyToInputIndex {\n string key;\n uint256 inputIndex;\n }\n\n /**\n * @dev Signal. Information about public signals of the circuit verification. Used in verifyV2 function.\n * @param name Name of the public signal\n * @param value Value of the public signal\n */\n struct Signal {\n string name;\n uint256 value;\n }\n\n /**\n * @dev Get version of the contract\n */\n function version() external view returns (string memory);\n\n /**\n * @dev Verify with the supported circuit informed in the request query data the groth16 proof\n * π=([πa]1,[πb]2,[πc]1) and that the proof was generated by the sender.\n * @param inputs Public inputs of the circuit.\n * @param a πa element of the groth16 proof.\n * @param b πb element of the groth16 proof.\n * @param c πc element of the groth16 proof.\n * @param data Request query data of the credential to verify.\n * @param sender Sender of the proof.\n * @return Array of key to public input index as result.\n */\n function verify(\n uint256[] memory inputs,\n uint256[2] memory a,\n uint256[2][2] memory b,\n uint256[2] memory c,\n bytes calldata data,\n address sender\n ) external returns (ICircuitValidator.KeyToInputIndex[] memory);\n\n /**\n * @dev Verify with the supported circuit informed in the request query data the groth16 proof\n * packed as bytes and that the proof was generated by the sender.\n * @param zkProof Proof packed as bytes to verify.\n * @param data Request query data of the credential to verify.\n * @param sender Sender of the proof.\n * @param state State contract to get identities and gist states to check.\n * @return Array of public signals as result.\n */\n function verifyV2(\n bytes calldata zkProof,\n bytes calldata data,\n address sender,\n IState state\n ) external returns (ICircuitValidator.Signal[] memory);\n\n /**\n * @dev Get supported circuit ids.\n * @return ids Array of circuit ids supported.\n */\n function getSupportedCircuitIds() external view returns (string[] memory ids);\n\n /**\n * @dev Get the index of the public input of the circuit by name.\n * @param name Name of the public input.\n * @return Index of the public input.\n */\n function inputIndexOf(string memory name) external view returns (uint256);\n}\n" + }, + "@iden3/contracts/interfaces/IIdentifiable.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\n/**\n * @dev IIdentifiable. Interface for identifiable entities.\n */\ninterface IIdentifiable {\n /**\n * @dev getId. Get id of the identity\n */\n function getId() external view returns (uint256);\n}\n" + }, + "@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\ninterface IOnchainCredentialStatusResolver {\n /**\n * @dev Struct of the node proof in the SMT.\n * @param root SMT root.\n * @param existence A flag, which shows if the leaf index exists in the SMT.\n * @param siblings An array of SMT sibling node hashes.\n * @param index An index of the leaf in the SMT.\n * @param value A value of the leaf in the SMT.\n * @param auxExistence A flag, which shows if the auxiliary leaf exists in the SMT.\n * @param auxIndex An index of the auxiliary leaf in the SMT.\n * @param auxValue A value of the auxiliary leaf in the SMT.\n */\n struct Proof {\n uint256 root;\n bool existence;\n uint256[] siblings;\n uint256 index;\n uint256 value;\n bool auxExistence;\n uint256 auxIndex;\n uint256 auxValue;\n }\n\n /**\n * @dev Struct to represent Identity State and it's Roots\n * @param state An identity state\n * @param claimsTreeRoot A root of the claims tree\n * @param revocationTreeRoot A root of the revocation tree\n * @param rootOfRoots A root of the roots tree\n */\n struct IdentityStateRoots {\n uint256 state;\n uint256 claimsTreeRoot;\n uint256 revocationTreeRoot;\n uint256 rootOfRoots;\n }\n\n /**\n * @dev Credential Status Struct\n * @param issuer Issuer's identity state and roots\n * @param mtp A Merkle Tree Proof of credential revocation or non-revocation\n */\n struct CredentialStatus {\n IdentityStateRoots issuer;\n Proof mtp;\n }\n\n /**\n * @dev returns revocation status of a claim using given revocation nonce\n * @param id Issuer's identifier\n * @param nonce Revocation nonce\n * @return CredentialStatus\n */\n function getRevocationStatus(\n uint256 id,\n uint64 nonce\n ) external view returns (CredentialStatus memory);\n\n /**\n * @dev returns revocation status of a claim using given revocation nonce, id and state\n * @param id Issuer's identifier\n * @param state of the Issuer\n * @param nonce Revocation nonce\n * @return CredentialStatus\n */\n function getRevocationStatusByIdAndState(\n uint256 id,\n uint256 state,\n uint64 nonce\n ) external view returns (CredentialStatus memory);\n}\n" + }, + "@iden3/contracts/interfaces/IState.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\n// TODO changing this value don't forget to change GistProof.siblings array size\n// figure out how to reuse the constant in the array size\n// without compiler error\nuint256 constant MAX_SMT_DEPTH = 64;\n\ninterface IState {\n /**\n * @dev Struct for public interfaces to represent a state information.\n * @param id An identity.\n * @param state A state.\n * @param replacedByState A state, which replaced this state for the identity.\n * @param createdAtTimestamp A time when the state was created.\n * @param replacedAtTimestamp A time when the state was replaced by the next identity state.\n * @param createdAtBlock A block number when the state was created.\n * @param replacedAtBlock A block number when the state was replaced by the next identity state.\n */\n struct StateInfo {\n uint256 id;\n uint256 state;\n uint256 replacedByState;\n uint256 createdAtTimestamp;\n uint256 replacedAtTimestamp;\n uint256 createdAtBlock;\n uint256 replacedAtBlock;\n }\n\n /**\n * @dev Struct for public interfaces to represent GIST root information.\n * @param root This GIST root.\n * @param replacedByRoot A root, which replaced this root.\n * @param createdAtTimestamp A time, when the root was saved to blockchain.\n * @param replacedAtTimestamp A time, when the root was replaced by the next root in blockchain.\n * @param createdAtBlock A number of block, when the root was saved to blockchain.\n * @param replacedAtBlock A number of block, when the root was replaced by the next root in blockchain.\n */\n struct GistRootInfo {\n uint256 root;\n uint256 replacedByRoot;\n uint256 createdAtTimestamp;\n uint256 replacedAtTimestamp;\n uint256 createdAtBlock;\n uint256 replacedAtBlock;\n }\n\n /**\n * @dev Struct for public interfaces to represent GIST proof information.\n * @param root This GIST root.\n * @param existence A flag, which shows if the leaf index exists in the GIST.\n * @param siblings An array of GIST sibling node hashes.\n * @param index An index of the leaf in the GIST.\n * @param value A value of the leaf in the GIST.\n * @param auxExistence A flag, which shows if the auxiliary leaf exists in the GIST.\n * @param auxIndex An index of the auxiliary leaf in the GIST.\n * @param auxValue An value of the auxiliary leaf in the GIST.\n */\n struct GistProof {\n uint256 root;\n bool existence;\n uint256[64] siblings; // TODO figure out the way how to use the MAX_SMT_DEPTH constant\n uint256 index;\n uint256 value;\n bool auxExistence;\n uint256 auxIndex;\n uint256 auxValue;\n }\n /**\n * @dev Struct for signed identity states.\n * @param idStateMsg Message of the identity state.\n * @param signature Signature of the message.\n */\n struct IdentityStateUpdate {\n IdentityStateMessage idStateMsg;\n bytes signature;\n }\n /**\n * @dev Struct for signed global states.\n * @param globalStateMsg Message of the global state.\n * @param signature Signature of the message.\n */\n struct GlobalStateUpdate {\n GlobalStateMessage globalStateMsg;\n bytes signature;\n }\n /**\n * @dev Struct for identity state message.\n * @param timestamp Timestamp when the message was signed.\n * @param id Id of the identity.\n * @param state State of the identity.\n * @param replacedAtTimestamp Timestamp when the state was replaced by next identity state.\n */\n struct IdentityStateMessage {\n uint256 timestamp;\n uint256 id;\n uint256 state;\n uint256 replacedAtTimestamp;\n }\n\n /**\n * @dev Struct for global state message.\n * @param timestamp Timestamp when the message was signed.\n * @param idType Id type of the chain.\n * @param root Root of the global state.\n * @param replacedAtTimestamp Timestamp when the global state was replaced by next global state.\n */\n struct GlobalStateMessage {\n uint256 timestamp;\n bytes2 idType;\n uint256 root;\n uint256 replacedAtTimestamp;\n }\n /**\n * @dev Struct for cross chain proof.\n * @param proofType Proof type for the proof provided (\"stateProof\", \"globalStateProof\").\n * @param proof Cross chain proof.\n */\n struct CrossChainProof {\n string proofType;\n bytes proof;\n }\n\n /**\n * @dev Struct for global state process result.\n * @param idType Id type of the chain.\n * @param root Root of the global state.\n * @param replacedAtTimestamp Timestamp when the global state was replaced by next global state.\n */\n struct GlobalStateProcessResult {\n bytes2 idType;\n uint256 root;\n uint256 replacedAtTimestamp;\n }\n /**\n * @dev Struct for identity state process result.\n * @param id Id of the identity.\n * @param state State of the identity.\n * @param replacedAtTimestamp Timestamp when the identity state was replaced by next identity state.\n */\n struct IdentityStateProcessResult {\n uint256 id;\n uint256 state;\n uint256 replacedAtTimestamp;\n }\n\n /**\n * @dev Retrieve last state information of specific id.\n * @param id An identity.\n * @return The state info.\n */\n function getStateInfoById(uint256 id) external view returns (StateInfo memory);\n\n /**\n * @dev Retrieve state information by id and state.\n * @param id An identity.\n * @param state A state.\n * @return The state info.\n */\n function getStateInfoByIdAndState(\n uint256 id,\n uint256 state\n ) external view returns (StateInfo memory);\n\n /**\n * @dev Retrieve the specific GIST root information.\n * @param root GIST root.\n * @return The GIST root info.\n */\n function getGISTRootInfo(uint256 root) external view returns (GistRootInfo memory);\n\n /**\n * @dev Check if the id type supported.\n * @param idType id type.\n * @return True if the id type supported.\n */\n function isIdTypeSupported(bytes2 idType) external view returns (bool);\n\n /**\n * @dev Get id if the id type supported for the id, otherwise revert.\n * @param id An identity.\n * @return The id type.\n */\n function getIdTypeIfSupported(uint256 id) external view returns (bytes2);\n\n /**\n * @dev Get defaultIdType\n * @return defaultIdType\n */\n function getDefaultIdType() external view returns (bytes2);\n\n /**\n * @dev Performs state transition\n * @param id Identifier of the identity\n * @param oldState Previous state of the identity\n * @param newState New state of the identity\n * @param isOldStateGenesis Flag if previous identity state is genesis\n * @param a Proof.A\n * @param b Proof.B\n * @param c Proof.C\n */\n function transitState(\n uint256 id,\n uint256 oldState,\n uint256 newState,\n bool isOldStateGenesis,\n uint256[2] memory a,\n uint256[2][2] memory b,\n uint256[2] memory c\n ) external;\n\n /**\n * @dev Performs state transition\n * @param id Identity\n * @param oldState Previous identity state\n * @param newState New identity state\n * @param isOldStateGenesis Is the previous state genesis?\n * @param methodId State transition method id\n * @param methodParams State transition method-specific params\n */\n function transitStateGeneric(\n uint256 id,\n uint256 oldState,\n uint256 newState,\n bool isOldStateGenesis,\n uint256 methodId,\n bytes calldata methodParams\n ) external;\n\n /**\n * @dev Check if identity exists.\n * @param id Identity\n * @return True if the identity exists\n */\n function idExists(uint256 id) external view returns (bool);\n\n /**\n * @dev Check if state exists.\n * @param id Identity\n * @param state State\n * @return True if the state exists\n */\n function stateExists(uint256 id, uint256 state) external view returns (bool);\n\n /**\n * @dev Get timestamp when the identity state was replaced.\n * @param id Identity\n * @param state State of the identity\n * @return replacedAtTimestamp Timestamp when the identity state was replaced by new identity state\n */\n function getStateReplacedAt(\n uint256 id,\n uint256 state\n ) external view returns (uint256 replacedAtTimestamp);\n\n /**\n * @dev Get timestamp when the global state was replaced.\n * @param idType Id type of the chain\n * @param root Root of the global state\n * @return replacedAtTimestamp Timestamp when the global state was replaced by new global state\n */\n function getGistRootReplacedAt(\n bytes2 idType,\n uint256 root\n ) external view returns (uint256 replacedAtTimestamp);\n\n /**\n * @dev Process the cross chain proofs with the identities and global states.\n * @param proofs Proofs with the identities and global states\n */\n function processCrossChainProofs(bytes calldata proofs) external;\n}\n" + }, + "@iden3/contracts/interfaces/IZKPVerifier.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\n\npragma solidity 0.8.27;\n\nimport {ICircuitValidator} from \"./ICircuitValidator.sol\";\n\n/**\n * @dev IZKPVerifier. Interface for verification of groth16 proofs for validators circuits.\n */\ninterface IZKPVerifier {\n /**\n * @dev ZKPRequest. Structure for ZKP request.\n * @param metadata Metadata of the request.\n * @param validator Validator circuit.\n * @param data Data of the request.\n */\n struct ZKPRequest {\n string metadata;\n ICircuitValidator validator;\n bytes data;\n }\n /**\n * @dev ProofStatus. Structure for proof status.\n * @param isVerified True if the proof is verified.\n * @param validatorVersion Version of the validator.\n * @param blockNumber Block number of the proof.\n * @param blockTimestamp Block timestamp of the proof.\n */\n struct ProofStatus {\n bool isVerified;\n string validatorVersion;\n uint256 blockNumber;\n uint256 blockTimestamp;\n }\n\n /**\n * @dev ZKPResponse. Structure for ZKP response.\n * @param requestId Request id of the ZKP request.\n * @param zkProof ZKP proof to verify.\n * @param data Metadata of the request.\n */\n struct ZKPResponse {\n uint64 requestId;\n bytes zkProof;\n bytes data;\n }\n\n /**\n * @dev Submit the groth16 proof π=([πa]1,[πb]2,[πc]1) for the ZKP request requestId.\n * @param requestId Request id of the ZKP request.\n * @param inputs Public inputs of the circuit.\n * @param a πa element of the groth16 proof.\n * @param b πb element of the groth16 proof.\n * @param c πc element of the groth16 proof.\n */\n function submitZKPResponse(\n uint64 requestId,\n uint256[] memory inputs,\n uint256[2] memory a,\n uint256[2][2] memory b,\n uint256[2] memory c\n ) external;\n\n /**\n * @dev Submit the groth16 proof π=([πa]1,[πb]2,[πc]1) for the ZKP request requestId.\n * @param responses The list of responses including ZKP request ID, ZK proof and metadata.\n * @param crossChainProofs The list of cross chain proofs from universal resolver (oracle).\n */\n function submitZKPResponseV2(\n ZKPResponse[] memory responses,\n bytes memory crossChainProofs\n ) external;\n\n /**\n * @dev Set the ZKP request for the requestId.\n * @param requestId Request id of the ZKP request.\n * @param request ZKP request to set.\n */\n function setZKPRequest(uint64 requestId, ZKPRequest calldata request) external;\n\n /**\n * @dev Get the ZKP request for the requestId.\n * @param requestId Request id of the ZKP request.\n * @return ZKP request.\n */\n function getZKPRequest(uint64 requestId) external view returns (ZKPRequest memory);\n\n /**\n * @dev Get the ZKP request count.\n * @return ZKP request count.\n */\n function getZKPRequestsCount() external view returns (uint256);\n\n /**\n * @dev Check if the requestId exists.\n * @param requestId Request id of the ZKP request.\n * @return True if the requestId exists.\n */\n function requestIdExists(uint64 requestId) external view returns (bool);\n\n /**\n * @dev Get the ZKP requests.\n * @param startIndex Start index of the ZKP requests.\n * @param length Length of the ZKP requests.\n * @return Array of the ZKP requests.\n */\n function getZKPRequests(\n uint256 startIndex,\n uint256 length\n ) external view returns (ZKPRequest[] memory);\n\n /**\n * @dev Get if proof is verified for the sender and ZKP request with requestId.\n * @param sender Sender of the proof.\n * @param requestId Request id of the ZKP Request to verify.\n * @return True if proof is verified for the sender and request id.\n */\n function isProofVerified(address sender, uint64 requestId) external view returns (bool);\n\n /**\n * @dev Get the proof status for the sender and ZKP request with requestId.\n * @param sender Sender of the proof.\n * @param requestId Request id of the proof.\n * @return Proof status.\n */\n function getProofStatus(\n address sender,\n uint64 requestId\n ) external view returns (ProofStatus memory);\n\n /**\n * @dev Get the proof storage field for the user, requestId and key.\n * @param user User address.\n * @param requestId Request id of the proof.\n * @param key Key of the proof storage field.\n * @return Proof storage field.\n */\n function getProofStorageField(\n address user,\n uint64 requestId,\n string memory key\n ) external view returns (uint256);\n}\n" + }, + "@iden3/contracts/lib/ArrayUtils.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\n/// @title A common functions for arrays.\nlibrary ArrayUtils {\n /**\n * @dev Calculates bounds for the slice of the array.\n * @param arrLength An array length.\n * @param start A start index.\n * @param length A length of the slice.\n * @param limit A limit for the length.\n * @return The bounds for the slice of the array.\n */\n function calculateBounds(\n uint256 arrLength,\n uint256 start,\n uint256 length,\n uint256 limit\n ) internal pure returns (uint256, uint256) {\n require(length > 0, \"Length should be greater than 0\");\n require(length <= limit, \"Length limit exceeded\");\n require(start < arrLength, \"Start index out of bounds\");\n\n uint256 end = start + length;\n if (end > arrLength) {\n end = arrLength;\n }\n\n return (start, end);\n }\n}\n" + }, + "@iden3/contracts/lib/GenesisUtils.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {PrimitiveTypeUtils} from \"./PrimitiveTypeUtils.sol\";\n\nlibrary GenesisUtils {\n /**\n * @dev sum\n */\n function sum(bytes memory array) internal pure returns (uint16 s) {\n require(array.length == 29, \"Checksum requires 29 length array\");\n\n for (uint256 i = 0; i < array.length; ++i) {\n s += uint16(uint8(array[i]));\n }\n }\n\n /**\n * @dev isGenesisState\n */\n function isGenesisState(uint256 id, uint256 idState) internal pure returns (bool) {\n bytes2 idType = getIdType(id);\n uint256 computedId = calcIdFromGenesisState(idType, idState);\n return id == computedId;\n }\n\n /**\n * @dev getIdType\n */\n function getIdType(uint256 id) internal pure returns (bytes2) {\n return bytes2(PrimitiveTypeUtils.uint256ToBytes(PrimitiveTypeUtils.reverseUint256(id)));\n }\n\n /**\n * @dev calcIdFromGenesisState\n */\n function calcIdFromGenesisState(\n bytes2 idType,\n uint256 idState\n ) internal pure returns (uint256) {\n bytes memory userStateB1 = PrimitiveTypeUtils.uint256ToBytes(\n PrimitiveTypeUtils.reverseUint256(idState)\n );\n\n bytes memory cutState = PrimitiveTypeUtils.slice(userStateB1, userStateB1.length - 27, 27);\n bytes memory beforeChecksum = PrimitiveTypeUtils.concat(abi.encodePacked(idType), cutState);\n\n uint16 checksum = PrimitiveTypeUtils.reverseUint16(sum(beforeChecksum));\n bytes memory checkSumBytes = abi.encodePacked(checksum);\n\n bytes memory idBytes = PrimitiveTypeUtils.concat(beforeChecksum, checkSumBytes);\n require(idBytes.length == 31, \"idBytes requires 31 length array\");\n\n return PrimitiveTypeUtils.reverseUint256(PrimitiveTypeUtils.padRightToUint256(idBytes));\n }\n\n /**\n * @dev calcIdFromEthAddress\n */\n function calcIdFromEthAddress(bytes2 idType, address caller) internal pure returns (uint256) {\n uint256 addr = PrimitiveTypeUtils.addressToUint256(caller);\n\n return calcIdFromGenesisState(idType, PrimitiveTypeUtils.reverseUint256(addr));\n }\n}\n" + }, + "@iden3/contracts/lib/IdentityBase.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {IIdentifiable} from \"../interfaces/IIdentifiable.sol\";\nimport {IOnchainCredentialStatusResolver} from \"../interfaces/IOnchainCredentialStatusResolver.sol\";\nimport {IdentityLib} from \"../lib/IdentityLib.sol\";\nimport {SmtLib} from \"../lib/SmtLib.sol\";\nimport {ERC165} from \"@openzeppelin/contracts/utils/introspection/ERC165.sol\";\n\n// /**\n// * @dev Contract managing onchain identity\n// */\nabstract contract IdentityBase is IIdentifiable, IOnchainCredentialStatusResolver, ERC165 {\n using IdentityLib for IdentityLib.Data;\n\n /// @dev Main storage structure for the contract\n struct IdentityBaseStorage {\n IdentityLib.Data identity;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"iden3.storage.IdentityBase\")) - 1))\n // & ~bytes32(uint256(0xff));\n bytes32 private constant IdentityBaseStorageLocation =\n 0x3018a310c36c4f8228f09bf3b1822685cf0971daa8265a58ca807c4a4daba400;\n\n /// @dev Get the main storage using assembly to ensure specific storage location\n function _getIdentityBaseStorage() internal pure returns (IdentityBaseStorage storage $) {\n assembly {\n $.slot := IdentityBaseStorageLocation\n }\n }\n\n /**\n * @dev Get configured Identity SMT depth.\n * @return depth of the SMT\n */\n function getSmtDepth() public pure virtual returns (uint256) {\n return 40;\n }\n\n /**\n * @dev Initialization of IdentityLib library\n * @param _stateContractAddr - address of the State contract\n */\n function initialize(address _stateContractAddr, bytes2 idType) public virtual {\n _getIdentityBaseStorage().identity.initialize(\n _stateContractAddr,\n address(this),\n getSmtDepth(),\n idType\n );\n }\n\n /**\n * @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index.\n * @param claimIndexHash - hash of Claim Index\n * @return The ClaimsTree inclusion or non-inclusion proof for the claim\n */\n function getClaimProof(\n uint256 claimIndexHash\n ) public view virtual returns (SmtLib.Proof memory) {\n return _getIdentityBaseStorage().identity.getClaimProof(claimIndexHash);\n }\n\n /**\n * @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index with state info.\n * @param claimIndexHash - hash of Claim Index\n * @return The ClaimsTree inclusion or non-inclusion proof for the claim and state info.\n */\n function getClaimProofWithStateInfo(\n uint256 claimIndexHash\n ) public view virtual returns (SmtLib.Proof memory, IdentityLib.StateInfo memory) {\n return _getIdentityBaseStorage().identity.getClaimProofWithStateInfo(claimIndexHash);\n }\n\n /**\n * @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index by target root.\n * @param claimIndexHash - hash of Claim Index\n * @param root - root of the tree\n * @return The ClaimsTree inclusion or non-inclusion proof for the claim\n */\n function getClaimProofByRoot(\n uint256 claimIndexHash,\n uint256 root\n ) public view virtual returns (SmtLib.Proof memory) {\n return _getIdentityBaseStorage().identity.getClaimProofByRoot(claimIndexHash, root);\n }\n\n /**\n * @dev Retrieve ClaimsTree latest root.\n * @return The latest ClaimsTree root\n */\n function getClaimsTreeRoot() public view virtual returns (uint256) {\n return _getIdentityBaseStorage().identity.getClaimsTreeRoot();\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce.\n * @param revocationNonce - revocation nonce\n * @return The RevocationsTree inclusion or non-inclusion proof for the revocation nonce\n */\n function getRevocationProof(\n uint64 revocationNonce\n ) public view virtual returns (SmtLib.Proof memory) {\n return _getIdentityBaseStorage().identity.getRevocationProof(revocationNonce);\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce with state info.\n * @param revocationNonce - revocation nonce\n * @return The RevocationsTree inclusion or non-inclusion proof for the revocation nonce and state info.\n */\n function getRevocationProofWithStateInfo(\n uint64 revocationNonce\n ) public view virtual returns (SmtLib.Proof memory, IdentityLib.StateInfo memory) {\n return _getIdentityBaseStorage().identity.getRevocationProofWithStateInfo(revocationNonce);\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce by target root.\n * @param revocationNonce - revocation nonce\n * @param root - root of the tree\n * @return The RevocationsTree inclusion or non-inclusion proof for the revocation nonce\n */\n function getRevocationProofByRoot(\n uint64 revocationNonce,\n uint256 root\n ) public view virtual returns (SmtLib.Proof memory) {\n return _getIdentityBaseStorage().identity.getRevocationProofByRoot(revocationNonce, root);\n }\n\n /**\n * @dev Retrieve RevocationsTree latest root.\n * @return The latest RevocationsTree root\n */\n function getRevocationsTreeRoot() public view virtual returns (uint256) {\n return _getIdentityBaseStorage().identity.getRevocationsTreeRoot();\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot.\n * @param rootsTreeRoot - roots tree root\n * @return The RootsTree inclusion or non-inclusion proof for the roots tree root\n */\n function getRootProof(uint256 rootsTreeRoot) public view virtual returns (SmtLib.Proof memory) {\n return _getIdentityBaseStorage().identity.getRootProof(rootsTreeRoot);\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot with state info.\n * @param rootsTreeRoot - roots tree root\n * @return The RootsTree inclusion or non-inclusion proof for the claim tree root and state info.\n */\n function getRootProofWithStateInfo(\n uint256 rootsTreeRoot\n ) public view virtual returns (SmtLib.Proof memory, IdentityLib.StateInfo memory) {\n return _getIdentityBaseStorage().identity.getRootProofWithStateInfo(rootsTreeRoot);\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given claimsTreeRoot by target root.\n * @param claimsTreeRoot - claims tree root\n * @param root - root of the tree\n * @return The RootsTree inclusion or non-inclusion proof for the claim tree root\n */\n function getRootProofByRoot(\n uint256 claimsTreeRoot,\n uint256 root\n ) public view virtual returns (SmtLib.Proof memory) {\n return _getIdentityBaseStorage().identity.getRootProofByRoot(claimsTreeRoot, root);\n }\n\n /**\n * @dev Retrieve RootsTree latest root.\n * @return The latest RootsTree root\n */\n function getRootsTreeRoot() public view virtual returns (uint256) {\n return _getIdentityBaseStorage().identity.getRootsTreeRoot();\n }\n\n /**\n * @dev returns historical claimsTree roots, revocationsTree roots, rootsTree roots\n * by state\n * @param state identity state\n * @return set of roots\n */\n function getRootsByState(uint256 state) public view virtual returns (IdentityLib.Roots memory) {\n return _getIdentityBaseStorage().identity.getRootsByState(state);\n }\n\n /**\n * @dev returns identity Id\n * @return uint256 Id\n */\n function getId() public view returns (uint256) {\n return _getIdentityBaseStorage().identity.id;\n }\n\n /**\n * @dev returns isOldStateGenesis flag\n * @return bool isOldStateGenesis\n */\n function getIsOldStateGenesis() public view returns (bool) {\n return _getIdentityBaseStorage().identity.isOldStateGenesis;\n }\n\n /**\n * @dev returns latest published claims tree root\n * @return claimsRoot\n */\n function getLatestPublishedClaimsRoot() public view returns (uint256) {\n return _getIdentityBaseStorage().identity.latestPublishedTreeRoots.claimsRoot;\n }\n\n /**\n * @dev returns latest published revocation tree root\n * @return revocationsRoot\n */\n function getLatestPublishedRevocationsRoot() public view returns (uint256) {\n return _getIdentityBaseStorage().identity.latestPublishedTreeRoots.revocationsRoot;\n }\n\n /**\n * @dev returns latest published roots tree root\n * @return rootsRoot\n */\n function getLatestPublishedRootsRoot() public view returns (uint256) {\n return _getIdentityBaseStorage().identity.latestPublishedTreeRoots.rootsRoot;\n }\n\n /**\n * @dev returns identity latest state\n * @return uint256 identityLatestState\n */\n function getLatestPublishedState() public view returns (uint256) {\n return _getIdentityBaseStorage().identity.latestPublishedState;\n }\n\n /**\n * @dev returns revocation status of a claim using given revocation nonce\n * @param id Issuer's identifier\n * @param nonce Revocation nonce\n * @return CredentialStatus\n */\n function getRevocationStatus(\n uint256 id,\n uint64 nonce\n ) public view returns (CredentialStatus memory) {\n uint256 latestState = _getIdentityBaseStorage().identity.latestPublishedState;\n return getRevocationStatusByIdAndState(id, latestState, nonce);\n }\n\n /**\n * @dev returns revocation status of a claim using given revocation nonce, id and state\n * @param id Issuer's identifier\n * @param state of the Issuer\n * @param nonce Revocation nonce\n * @return CredentialStatus\n */\n function getRevocationStatusByIdAndState(\n uint256 id,\n uint256 state,\n uint64 nonce\n ) public view returns (CredentialStatus memory) {\n require(id == _getIdentityBaseStorage().identity.id, \"Identity id mismatch\");\n IdentityLib.Roots memory historicalStates = _getIdentityBaseStorage()\n .identity\n .getRootsByState(state);\n IdentityStateRoots memory issuerStates = IdentityStateRoots({\n state: state,\n rootOfRoots: historicalStates.rootsRoot,\n claimsTreeRoot: historicalStates.claimsRoot,\n revocationTreeRoot: historicalStates.revocationsRoot\n });\n\n SmtLib.Proof memory p = _getIdentityBaseStorage().identity.getRevocationProofByRoot(\n nonce,\n historicalStates.revocationsRoot\n );\n Proof memory mtp = Proof({\n root: p.root,\n existence: p.existence,\n siblings: p.siblings,\n index: p.index,\n value: p.value,\n auxExistence: p.auxExistence,\n auxIndex: p.auxIndex,\n auxValue: p.auxValue\n });\n\n return CredentialStatus({issuer: issuerStates, mtp: mtp});\n }\n\n /**\n * @dev supportsInterface. Check if the contract supports the interface\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return\n interfaceId == type(IIdentifiable).interfaceId || super.supportsInterface(interfaceId);\n }\n}\n" + }, + "@iden3/contracts/lib/IdentityLib.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {IState} from \"../interfaces/IState.sol\";\nimport {SmtLib} from \"../lib/SmtLib.sol\";\nimport {PoseidonUnit3L, PoseidonUnit4L} from \"../lib/Poseidon.sol\";\nimport {GenesisUtils} from \"../lib/GenesisUtils.sol\";\n\n// /**\n// * @dev Contract managing onchain identity\n// */\nlibrary IdentityLib {\n using SmtLib for SmtLib.Data;\n\n uint256 public constant IDENTITY_MAX_SMT_DEPTH = 40;\n\n /**\n * @dev Data\n * Id\n * Identity latest state\n * Is old state genesis flag\n * State contract\n * Mapping of roots by state\n * Trees\n * Last tree roots\n */\n struct Data {\n uint256 id;\n uint256 latestPublishedState;\n bool isOldStateGenesis;\n IState stateContract;\n mapping(uint256 => Roots) rootsByState;\n Trees trees;\n Roots latestPublishedTreeRoots;\n // This empty reserved space is put in place to allow future versions\n // of the SMT library to add new Data struct fields without shifting down\n // storage of upgradable contracts that use this struct as a state variable\n // (see https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable#storage-gaps)\n uint256[43] __gap;\n }\n\n /**\n * @dev SMT addresses\n */\n struct Trees {\n SmtLib.Data claimsTree;\n SmtLib.Data revocationsTree;\n SmtLib.Data rootsTree;\n }\n\n /**\n * @dev set of roots\n */\n struct Roots {\n uint256 claimsRoot;\n uint256 revocationsRoot;\n uint256 rootsRoot;\n }\n\n /**\n * @dev state info\n */\n struct StateInfo {\n uint256 state;\n uint256 claimsRoot;\n uint256 revocationsRoot;\n uint256 rootsRoot;\n }\n\n /**\n * @dev Initialization of the library state variables\n * @param _stateContractAddr - address of the State contract\n * @param _identityAddr - address of the Identity contract, which calls this function\n * @param depth - depth of identity SMTs\n * @param idType - idType\n */\n function initialize(\n Data storage self,\n address _stateContractAddr,\n address _identityAddr,\n uint256 depth,\n bytes2 idType\n ) external {\n require(depth <= IDENTITY_MAX_SMT_DEPTH, \"SMT depth is greater than max allowed depth\");\n self.stateContract = IState(_stateContractAddr);\n require(self.stateContract.isIdTypeSupported(idType), \"id type is not supported\");\n self.isOldStateGenesis = true;\n self.trees.claimsTree.initialize(depth);\n self.trees.revocationsTree.initialize(depth);\n self.trees.rootsTree.initialize(depth);\n self.id = GenesisUtils.calcIdFromEthAddress(idType, _identityAddr);\n }\n\n /**\n * @dev Add claim\n * @param claim - claim data\n */\n function addClaim(Data storage self, uint256[8] calldata claim) external {\n uint256[4] memory claimIndex;\n uint256[4] memory claimValue;\n for (uint8 i = 0; i < 4; i++) {\n claimIndex[i] = claim[i];\n claimValue[i] = claim[i + 4];\n }\n uint256 hashIndex = PoseidonUnit4L.poseidon(claimIndex);\n uint256 hashValue = PoseidonUnit4L.poseidon(claimValue);\n self.trees.claimsTree.addLeaf(hashIndex, hashValue);\n }\n\n /**\n * @dev Add claim hash\n * @param hashIndex - hash of claim index part\n * @param hashValue - hash of claim value part\n */\n function addClaimHash(Data storage self, uint256 hashIndex, uint256 hashValue) external {\n self.trees.claimsTree.addLeaf(hashIndex, hashValue);\n }\n\n /**\n * @dev Revoke claim using it's revocationNonce\n * @param revocationNonce - revocation nonce\n */\n function revokeClaim(Data storage self, uint64 revocationNonce) external {\n self.trees.revocationsTree.addLeaf(uint256(revocationNonce), 0);\n }\n\n /**\n * @dev Make state transition\n */\n function transitState(Data storage self) external {\n uint256 oldIdentityState = self.latestPublishedState;\n uint256 currentClaimsTreeRoot = self.trees.claimsTree.getRoot();\n uint256 currentRevocationsTreeRoot = self.trees.revocationsTree.getRoot();\n uint256 currentRootsTreeRoot = self.trees.rootsTree.getRoot();\n\n require(\n (self.latestPublishedTreeRoots.claimsRoot != currentClaimsTreeRoot) ||\n (self.latestPublishedTreeRoots.revocationsRoot != currentRevocationsTreeRoot) ||\n (self.latestPublishedTreeRoots.rootsRoot != currentRootsTreeRoot),\n \"Identity trees haven't changed\"\n );\n\n // if claimsTreeRoot changed, then add it to rootsTree\n if (self.latestPublishedTreeRoots.claimsRoot != currentClaimsTreeRoot) {\n self.trees.rootsTree.addLeaf(currentClaimsTreeRoot, 0);\n }\n\n uint256 newIdentityState = calcIdentityState(self);\n\n // update internal state vars\n self.latestPublishedState = newIdentityState;\n self.latestPublishedTreeRoots.claimsRoot = currentClaimsTreeRoot;\n self.latestPublishedTreeRoots.revocationsRoot = currentRevocationsTreeRoot;\n self.latestPublishedTreeRoots.rootsRoot = self.trees.rootsTree.getRoot();\n\n bool isOldStateGenesis = self.isOldStateGenesis;\n // it may have changed since we've got currentRootsTreeRoot\n // related to the documentation set isOldStateGenesis to false each time is faster and cheaper\n // https://docs.google.com/spreadsheets/d/1m89CVujrQe5LAFJ8-YAUCcNK950dUzMQPMJBxRtGCqs/edit#gid=0\n self.isOldStateGenesis = false;\n\n writeHistory(\n self,\n self.latestPublishedState,\n Roots({\n claimsRoot: self.latestPublishedTreeRoots.claimsRoot,\n revocationsRoot: self.latestPublishedTreeRoots.revocationsRoot,\n rootsRoot: self.latestPublishedTreeRoots.rootsRoot\n })\n );\n\n // do state transition in State Contract\n self.stateContract.transitStateGeneric(\n self.id,\n oldIdentityState,\n newIdentityState,\n isOldStateGenesis,\n 1, // state transition method id: 1 - using ethereum auth\n new bytes(0) // empty method params\n );\n }\n\n /**\n * @dev Calculate IdentityState\n * @return IdentityState\n */\n function calcIdentityState(Data storage self) public view returns (uint256) {\n return\n PoseidonUnit3L.poseidon(\n [\n self.trees.claimsTree.getRoot(),\n self.trees.revocationsTree.getRoot(),\n self.trees.rootsTree.getRoot()\n ]\n );\n }\n\n /**\n * @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index.\n * Note that proof is taken for the latest published claims tree root.\n * @param claimIndexHash - hash of Claim Index\n * @return The ClaimsTree inclusion or non-inclusion proof for the claim\n */\n function getClaimProof(\n Data storage self,\n uint256 claimIndexHash\n ) external view returns (SmtLib.Proof memory) {\n return\n self.trees.claimsTree.getProofByRoot(\n claimIndexHash,\n self.latestPublishedTreeRoots.claimsRoot\n );\n }\n\n /**\n * @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index with state info.\n * Note that proof is taken for the latest published claims tree root.\n * @param claimIndexHash - hash of Claim Index\n * @return The ClaimsTree inclusion or non-inclusion proof for the claim and state info\n */\n function getClaimProofWithStateInfo(\n Data storage self,\n uint256 claimIndexHash\n ) external view returns (SmtLib.Proof memory, StateInfo memory) {\n return (\n self.trees.claimsTree.getProofByRoot(\n claimIndexHash,\n self.latestPublishedTreeRoots.claimsRoot\n ),\n StateInfo({\n state: self.latestPublishedState,\n claimsRoot: self.latestPublishedTreeRoots.claimsRoot,\n revocationsRoot: self.latestPublishedTreeRoots.revocationsRoot,\n rootsRoot: self.latestPublishedTreeRoots.rootsRoot\n })\n );\n }\n\n /**\n * @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index by target root.\n * @param claimIndexHash - hash of Claim Index\n * @param root - root of the tree\n * @return The ClaimsTree inclusion or non-inclusion proof for the claim\n */\n function getClaimProofByRoot(\n Data storage self,\n uint256 claimIndexHash,\n uint256 root\n ) external view returns (SmtLib.Proof memory) {\n return self.trees.claimsTree.getProofByRoot(claimIndexHash, root);\n }\n\n /**\n * @dev Retrieve ClaimsTree latest root.\n * @return The latest ClaimsTree root\n */\n function getClaimsTreeRoot(Data storage self) external view returns (uint256) {\n return self.trees.claimsTree.getRoot();\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce.\n Note that proof is taken for the latest published revocation tree root.\n * @param revocationNonce - revocation nonce\n * @return The RevocationsTree inclusion or non-inclusion proof for the claim\n */\n function getRevocationProof(\n Data storage self,\n uint64 revocationNonce\n ) external view returns (SmtLib.Proof memory) {\n return\n self.trees.revocationsTree.getProofByRoot(\n uint256(revocationNonce),\n self.latestPublishedTreeRoots.revocationsRoot\n );\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce with state info.\n Note that proof is taken for the latest published revocation tree root.\n * @param revocationNonce - revocation nonce\n * @return The RevocationsTree inclusion or non-inclusion proof for the claim and state info.\n */\n function getRevocationProofWithStateInfo(\n Data storage self,\n uint64 revocationNonce\n ) external view returns (SmtLib.Proof memory, StateInfo memory) {\n return (\n self.trees.revocationsTree.getProofByRoot(\n uint256(revocationNonce),\n self.latestPublishedTreeRoots.revocationsRoot\n ),\n StateInfo({\n state: self.latestPublishedState,\n claimsRoot: self.latestPublishedTreeRoots.claimsRoot,\n revocationsRoot: self.latestPublishedTreeRoots.revocationsRoot,\n rootsRoot: self.latestPublishedTreeRoots.rootsRoot\n })\n );\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce by target root.\n * @param revocationNonce - revocation nonce\n * @param root - root of the tree\n * @return The RevocationsTree inclusion or non-inclusion proof for the claim\n */\n function getRevocationProofByRoot(\n Data storage self,\n uint64 revocationNonce,\n uint256 root\n ) external view returns (SmtLib.Proof memory) {\n return self.trees.revocationsTree.getProofByRoot(uint256(revocationNonce), root);\n }\n\n /**\n * @dev Retrieve RevocationsTree latest root.\n * @return The latest RevocationsTree root\n */\n function getRevocationsTreeRoot(Data storage self) external view returns (uint256) {\n return self.trees.revocationsTree.getRoot();\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot.\n Note that proof is taken for the latest published roots tree root.\n * @param rootsTreeRoot - roots tree root\n * @return The RootsTree inclusion or non-inclusion proof for the roots tree root\n */\n function getRootProof(\n Data storage self,\n uint256 rootsTreeRoot\n ) external view returns (SmtLib.Proof memory) {\n return\n self.trees.rootsTree.getProofByRoot(\n rootsTreeRoot,\n self.latestPublishedTreeRoots.rootsRoot\n );\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot and state info.\n Note that proof is taken for the latest published roots tree root.\n * @param rootsTreeRoot - roots tree root\n * @return The RootsTree inclusion or non-inclusion proof for the roots tree root and state info.\n */\n function getRootProofWithStateInfo(\n Data storage self,\n uint256 rootsTreeRoot\n ) external view returns (SmtLib.Proof memory, StateInfo memory) {\n return (\n self.trees.rootsTree.getProofByRoot(\n rootsTreeRoot,\n self.latestPublishedTreeRoots.rootsRoot\n ),\n StateInfo({\n state: self.latestPublishedState,\n claimsRoot: self.latestPublishedTreeRoots.claimsRoot,\n revocationsRoot: self.latestPublishedTreeRoots.revocationsRoot,\n rootsRoot: self.latestPublishedTreeRoots.rootsRoot\n })\n );\n }\n\n /**\n * @dev Retrieve inclusion or non-inclusion proof for a given claimsTreeRoot by target root.\n * @param claimsTreeRoot - claims tree root\n * @param root - root of the tree\n * @return The RootsTree inclusion or non-inclusion proof for the claim tree root\n */\n function getRootProofByRoot(\n Data storage self,\n uint256 claimsTreeRoot,\n uint256 root\n ) external view returns (SmtLib.Proof memory) {\n return self.trees.rootsTree.getProofByRoot(claimsTreeRoot, root);\n }\n\n /**\n * @dev Retrieve RootsTree latest root.\n * @return The latest RootsTree root\n */\n function getRootsTreeRoot(Data storage self) external view returns (uint256) {\n return self.trees.rootsTree.getRoot();\n }\n\n /**\n * @dev write roots to history by state\n * @param self identity\n * @param state identity state\n * @param roots set of roots\n */\n function writeHistory(Data storage self, uint256 state, Roots memory roots) internal {\n require(\n self.rootsByState[state].claimsRoot == 0 &&\n self.rootsByState[state].revocationsRoot == 0 &&\n self.rootsByState[state].rootsRoot == 0,\n \"Roots for this state already exist\"\n );\n self.rootsByState[state] = roots;\n }\n\n /**\n * @dev returns historical claimsTree roots, revocationsTree roots, rootsTree roots\n * by state\n * @param state identity state\n * @return set of roots\n */\n function getRootsByState(\n Data storage self,\n uint256 state\n ) external view returns (Roots memory) {\n require(\n self.rootsByState[state].claimsRoot != 0 ||\n self.rootsByState[state].revocationsRoot != 0 ||\n self.rootsByState[state].rootsRoot != 0,\n \"Roots for this state doesn't exist\"\n );\n return self.rootsByState[state];\n }\n}\n" + }, + "@iden3/contracts/lib/Poseidon.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nlibrary PoseidonUnit1L {\n function poseidon(uint256[1] calldata) public pure returns (uint256) {}\n}\n\nlibrary PoseidonUnit2L {\n function poseidon(uint256[2] calldata) public pure returns (uint256) {}\n}\n\nlibrary PoseidonUnit3L {\n function poseidon(uint256[3] calldata) public pure returns (uint256) {}\n}\n\nlibrary PoseidonUnit4L {\n function poseidon(uint256[4] calldata) public pure returns (uint256) {}\n}\n\nlibrary PoseidonUnit5L {\n function poseidon(uint256[5] calldata) public pure returns (uint256) {}\n}\n\nlibrary PoseidonUnit6L {\n function poseidon(uint256[6] calldata) public pure returns (uint256) {}\n}\n\nlibrary SpongePoseidon {\n uint32 internal constant BATCH_SIZE = 6;\n\n function hash(uint256[] memory values) public pure returns (uint256) {\n uint256[BATCH_SIZE] memory frame = [uint256(0), 0, 0, 0, 0, 0];\n bool dirty = false;\n uint256 fullHash = 0;\n uint32 k = 0;\n for (uint32 i = 0; i < values.length; i++) {\n dirty = true;\n frame[k] = values[i];\n if (k == BATCH_SIZE - 1) {\n fullHash = PoseidonUnit6L.poseidon(frame);\n dirty = false;\n frame = [uint256(0), 0, 0, 0, 0, 0];\n frame[0] = fullHash;\n k = 1;\n } else {\n k++;\n }\n }\n if (dirty) {\n // we haven't hashed something in the main sponge loop and need to do hash here\n fullHash = PoseidonUnit6L.poseidon(frame);\n }\n return fullHash;\n }\n}\n\nlibrary PoseidonFacade {\n function poseidon1(uint256[1] calldata el) public pure returns (uint256) {\n return PoseidonUnit1L.poseidon(el);\n }\n\n function poseidon2(uint256[2] calldata el) public pure returns (uint256) {\n return PoseidonUnit2L.poseidon(el);\n }\n\n function poseidon3(uint256[3] calldata el) public pure returns (uint256) {\n return PoseidonUnit3L.poseidon(el);\n }\n\n function poseidon4(uint256[4] calldata el) public pure returns (uint256) {\n return PoseidonUnit4L.poseidon(el);\n }\n\n function poseidon5(uint256[5] calldata el) public pure returns (uint256) {\n return PoseidonUnit5L.poseidon(el);\n }\n\n function poseidon6(uint256[6] calldata el) public pure returns (uint256) {\n return PoseidonUnit6L.poseidon(el);\n }\n\n function poseidonSponge(uint256[] calldata el) public pure returns (uint256) {\n return SpongePoseidon.hash(el);\n }\n}\n" + }, + "@iden3/contracts/lib/PrimitiveTypeUtils.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {BytesLib} from \"solidity-bytes-utils/contracts/BytesLib.sol\";\n\nlibrary PrimitiveTypeUtils {\n /**\n * @dev uint256ToBytes\n */\n function uint256ToBytes(uint256 x) internal pure returns (bytes memory b) {\n b = new bytes(32);\n assembly {\n mstore(add(b, 32), x)\n }\n }\n\n /**\n * @dev reverse uint256\n */\n function reverseUint256(uint256 input) internal pure returns (uint256 v) {\n v = input;\n\n // swap bytes\n v =\n ((v & 0xFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00) >> 8) |\n ((v & 0x00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF) << 8);\n\n // swap 2-byte long pairs\n v =\n ((v & 0xFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000) >> 16) |\n ((v & 0x0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF) << 16);\n\n // swap 4-byte long pairs\n v =\n ((v & 0xFFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000) >> 32) |\n ((v & 0x00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF) << 32);\n\n // swap 8-byte long pairs\n v =\n ((v & 0xFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF0000000000000000) >> 64) |\n ((v & 0x0000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF) << 64);\n\n // swap 16-byte long pairs\n v = (v >> 128) | (v << 128);\n }\n\n /**\n * @dev reverse uint16\n */\n function reverseUint16(uint16 input) internal pure returns (uint16 v) {\n v = input;\n\n // swap bytes\n v = (v >> 8) | (v << 8);\n }\n\n /**\n * @dev reverse uint32\n */\n function reverseUint32(uint32 input) internal pure returns (uint32 v) {\n v = input;\n\n // swap bytes\n v = ((v & 0xFF00FF00) >> 8) | ((v & 0x00FF00FF) << 8);\n\n // swap 2-byte long pairs\n v = (v >> 16) | (v << 16);\n }\n\n /**\n * @dev compareStrings\n */\n function compareStrings(string memory a, string memory b) internal pure returns (bool) {\n if (bytes(a).length != bytes(b).length) {\n return false;\n }\n return (keccak256(abi.encodePacked((a))) == keccak256(abi.encodePacked((b))));\n }\n\n /**\n * @dev padRightToUint256 shift left 12 bytes\n * @param b, bytes array with max length 32, other bytes are cut. e.g. 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n * @return value e.g 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000\n */\n function padRightToUint256(bytes memory b) internal pure returns (uint256 value) {\n return uint256(bytes32(b));\n }\n\n /**\n * @dev bytesToAddress\n */\n function bytesToAddress(bytes memory bys) internal pure returns (address addr) {\n assembly {\n addr := mload(add(bys, 20))\n }\n }\n\n /**\n * @dev concat\n */\n function concat(\n bytes memory preBytes,\n bytes memory postBytes\n ) internal pure returns (bytes memory) {\n return BytesLib.concat(preBytes, postBytes);\n }\n\n /**\n * @dev slice\n */\n function slice(\n bytes memory bys,\n uint256 start,\n uint256 length\n ) internal pure returns (bytes memory) {\n return BytesLib.slice(bys, start, length);\n }\n\n /**\n * @dev addressToUint256 converts address to uint256 which lower 20 bytes\n * is an address in Big Endian\n * @param _addr is ethereum address: eg.0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n * which as 0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266 converted to uint160\n * @return uint256 representation of address 1390849295786071768276380950238675083608645509734\n */\n function addressToUint256(address _addr) internal pure returns (uint256) {\n return uint256(uint160(_addr));\n }\n\n /**\n * @dev uint256ToAddress converts uint256 which lower 20 bytes\n * is an address in Big Endian to address\n * @param input uint256 e.g. 1390849295786071768276380950238675083608645509734\n * which as 0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266 converted to address\n * @return address representation of uint256 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n */\n function uint256ToAddress(uint256 input) internal pure returns (address) {\n require(\n input == uint256(uint160(input)),\n \"given input is not a representation of address, 12 most significant bytes should be zero\"\n );\n return address(uint160(input));\n }\n\n /**\n * @dev addressToChallenge converts address to uint256 which lower 20 bytes\n * are representation of address in LittleEndian\n * @param _addr is ethereum address: eg.0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n * addressToBytes: 0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266\n * padRightToUint256: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000,\n * reverseUint256 result: 0x0000000000000000000000006622b9ffcf797282b86acef4f688ad1ae5d69ff3\n * @return uint256: 583091486781463398742321306787801699791102451699\n */\n function addressToUint256LE(address _addr) internal pure returns (uint256) {\n return reverseUint256(padRightToUint256(addressToBytes(_addr)));\n }\n\n /**\n * @dev uint256LEtoAddress - converts uint256 which 20 lower bytes\n * are representation of address in LE to address\n * @param input is uint256 which is created from bytes in LittleEndian:\n * eg. 583091486781463398742321306787801699791102451699\n * or 0x0000000000000000000000006622b9ffcf797282b86acef4f688ad1ae5d69ff3\n * reverseUint256 result: 110194434039389003190498847789203126033799499726478230611233094447786700570624\n * uint256ToBytes result: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000\n * @return address - 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n */\n function uint256LEToAddress(uint256 input) internal pure returns (address) {\n require(\n input == uint256(uint160(input)),\n \"given uint256 is not a representation of an address, 12 most significant bytes should be zero\"\n );\n return bytesToAddress(uint256ToBytes(reverseUint256(input)));\n }\n\n function addressToBytes(address a) internal pure returns (bytes memory) {\n return abi.encodePacked(a);\n }\n}\n" + }, + "@iden3/contracts/lib/SmtLib.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {PoseidonUnit2L, PoseidonUnit3L} from \"./Poseidon.sol\";\nimport {ArrayUtils} from \"./ArrayUtils.sol\";\n\n/// @title A sparse merkle tree implementation, which keeps tree history.\n// Note that this SMT implementation can manage duplicated roots in the history,\n// which may happen when some leaf change its value and then changes it back to the original value.\n// Leaves deletion is not supported, although it should be possible to implement it in the future\n// versions of this library, without changing the existing state variables\n// In this way all the SMT data may be preserved for the contracts already in production.\nlibrary SmtLib {\n /**\n * @dev Max return array length for SMT root history requests\n */\n uint256 public constant ROOT_INFO_LIST_RETURN_LIMIT = 1000;\n\n /**\n * @dev Max depth hard cap for SMT\n * We can't use depth > 256 because of bits number limitation in the uint256 data type.\n */\n uint256 public constant MAX_DEPTH_HARD_CAP = 256;\n\n /**\n * @dev Enum of SMT node types\n */\n enum NodeType {\n EMPTY,\n LEAF,\n MIDDLE\n }\n\n /**\n * @dev Sparse Merkle Tree data\n * Note that we count the SMT depth starting from 0, which is the root level.\n *\n * For example, the following tree has a maxDepth = 2:\n *\n * O <- root level (depth = 0)\n * / \\\n * O O <- depth = 1\n * / \\ / \\\n * O O O O <- depth = 2\n */\n struct Data {\n mapping(uint256 => Node) nodes;\n RootEntry[] rootEntries;\n mapping(uint256 => uint256[]) rootIndexes; // root => rootEntryIndex[]\n uint256 maxDepth;\n bool initialized;\n // This empty reserved space is put in place to allow future versions\n // of the SMT library to add new Data struct fields without shifting down\n // storage of upgradable contracts that use this struct as a state variable\n // (see https://docs.openzeppelin.com/upgrades-plugins/1.x/writing-upgradeable#storage-gaps)\n uint256[45] __gap;\n }\n\n /**\n * @dev Struct of the node proof in the SMT.\n * @param root This SMT root.\n * @param existence A flag, which shows if the leaf index exists in the SMT.\n * @param siblings An array of SMT sibling node hashes.\n * @param index An index of the leaf in the SMT.\n * @param value A value of the leaf in the SMT.\n * @param auxExistence A flag, which shows if the auxiliary leaf exists in the SMT.\n * @param auxIndex An index of the auxiliary leaf in the SMT.\n * @param auxValue An value of the auxiliary leaf in the SMT.\n */\n struct Proof {\n uint256 root;\n bool existence;\n uint256[] siblings;\n uint256 index;\n uint256 value;\n bool auxExistence;\n uint256 auxIndex;\n uint256 auxValue;\n }\n\n /**\n * @dev Struct for SMT root internal storage representation.\n * @param root SMT root.\n * @param createdAtTimestamp A time, when the root was saved to blockchain.\n * @param createdAtBlock A number of block, when the root was saved to blockchain.\n */\n struct RootEntry {\n uint256 root;\n uint256 createdAtTimestamp;\n uint256 createdAtBlock;\n }\n\n /**\n * @dev Struct for public interfaces to represent SMT root info.\n * @param root This SMT root.\n * @param replacedByRoot A root, which replaced this root.\n * @param createdAtTimestamp A time, when the root was saved to blockchain.\n * @param replacedAtTimestamp A time, when the root was replaced by the next root in blockchain.\n * @param createdAtBlock A number of block, when the root was saved to blockchain.\n * @param replacedAtBlock A number of block, when the root was replaced by the next root in blockchain.\n */\n struct RootEntryInfo {\n uint256 root;\n uint256 replacedByRoot;\n uint256 createdAtTimestamp;\n uint256 replacedAtTimestamp;\n uint256 createdAtBlock;\n uint256 replacedAtBlock;\n }\n\n /**\n * @dev Struct of SMT node.\n * @param NodeType type of node.\n * @param childLeft left child of node.\n * @param childRight right child of node.\n * @param Index index of node.\n * @param Value value of node.\n */\n struct Node {\n NodeType nodeType;\n uint256 childLeft;\n uint256 childRight;\n uint256 index;\n uint256 value;\n }\n\n using BinarySearchSmtRoots for Data;\n using ArrayUtils for uint256[];\n\n /**\n * @dev Reverts if root does not exist in SMT roots history.\n * @param root SMT root.\n */\n modifier onlyExistingRoot(Data storage self, uint256 root) {\n require(rootExists(self, root), \"Root does not exist\");\n _;\n }\n\n /**\n * @dev Add a leaf to the SMT\n * @param i Index of a leaf\n * @param v Value of a leaf\n */\n function addLeaf(Data storage self, uint256 i, uint256 v) external onlyInitialized(self) {\n Node memory node = Node({\n nodeType: NodeType.LEAF,\n childLeft: 0,\n childRight: 0,\n index: i,\n value: v\n });\n\n uint256 prevRoot = getRoot(self);\n uint256 newRoot = _addLeaf(self, node, prevRoot, 0);\n\n _addEntry(self, newRoot, block.timestamp, block.number);\n }\n\n /**\n * @dev Get SMT root history length\n * @return SMT history length\n */\n function getRootHistoryLength(Data storage self) external view returns (uint256) {\n return self.rootEntries.length;\n }\n\n /**\n * @dev Get SMT root history\n * @param startIndex start index of history\n * @param length history length\n * @return array of RootEntryInfo structs\n */\n function getRootHistory(\n Data storage self,\n uint256 startIndex,\n uint256 length\n ) external view returns (RootEntryInfo[] memory) {\n (uint256 start, uint256 end) = ArrayUtils.calculateBounds(\n self.rootEntries.length,\n startIndex,\n length,\n ROOT_INFO_LIST_RETURN_LIMIT\n );\n\n RootEntryInfo[] memory result = new RootEntryInfo[](end - start);\n\n for (uint256 i = start; i < end; i++) {\n result[i - start] = _getRootInfoByIndex(self, i);\n }\n return result;\n }\n\n /**\n * @dev Get the SMT node by hash\n * @param nodeHash Hash of a node\n * @return A node struct\n */\n function getNode(Data storage self, uint256 nodeHash) public view returns (Node memory) {\n return self.nodes[nodeHash];\n }\n\n /**\n * @dev Get the proof if a node with specific index exists or not exists in the SMT.\n * @param index A node index.\n * @return SMT proof struct.\n */\n function getProof(Data storage self, uint256 index) external view returns (Proof memory) {\n return getProofByRoot(self, index, getRoot(self));\n }\n\n /**\n * @dev Get the proof if a node with specific index exists or not exists in the SMT for some historical tree state.\n * @param index A node index\n * @param historicalRoot Historical SMT roof to get proof for.\n * @return Proof struct.\n */\n function getProofByRoot(\n Data storage self,\n uint256 index,\n uint256 historicalRoot\n ) public view onlyExistingRoot(self, historicalRoot) returns (Proof memory) {\n uint256[] memory siblings = new uint256[](self.maxDepth);\n // Solidity does not guarantee that memory vars are zeroed out\n for (uint256 i = 0; i < self.maxDepth; i++) {\n siblings[i] = 0;\n }\n\n Proof memory proof = Proof({\n root: historicalRoot,\n existence: false,\n siblings: siblings,\n index: index,\n value: 0,\n auxExistence: false,\n auxIndex: 0,\n auxValue: 0\n });\n\n uint256 nextNodeHash = historicalRoot;\n Node memory node;\n\n for (uint256 i = 0; i <= self.maxDepth; i++) {\n node = getNode(self, nextNodeHash);\n if (node.nodeType == NodeType.EMPTY) {\n break;\n } else if (node.nodeType == NodeType.LEAF) {\n if (node.index == proof.index) {\n proof.existence = true;\n proof.value = node.value;\n break;\n } else {\n proof.auxExistence = true;\n proof.auxIndex = node.index;\n proof.auxValue = node.value;\n proof.value = node.value;\n break;\n }\n } else if (node.nodeType == NodeType.MIDDLE) {\n if ((proof.index >> i) & 1 == 1) {\n nextNodeHash = node.childRight;\n proof.siblings[i] = node.childLeft;\n } else {\n nextNodeHash = node.childLeft;\n proof.siblings[i] = node.childRight;\n }\n } else {\n revert(\"Invalid node type\");\n }\n }\n return proof;\n }\n\n /**\n * @dev Get the proof if a node with specific index exists or not exists in the SMT by some historical timestamp.\n * @param index Node index.\n * @param timestamp The latest timestamp to get proof for.\n * @return Proof struct.\n */\n function getProofByTime(\n Data storage self,\n uint256 index,\n uint256 timestamp\n ) public view returns (Proof memory) {\n RootEntryInfo memory rootInfo = getRootInfoByTime(self, timestamp);\n return getProofByRoot(self, index, rootInfo.root);\n }\n\n /**\n * @dev Get the proof if a node with specific index exists or not exists in the SMT by some historical block number.\n * @param index Node index.\n * @param blockNumber The latest block number to get proof for.\n * @return Proof struct.\n */\n function getProofByBlock(\n Data storage self,\n uint256 index,\n uint256 blockNumber\n ) external view returns (Proof memory) {\n RootEntryInfo memory rootInfo = getRootInfoByBlock(self, blockNumber);\n return getProofByRoot(self, index, rootInfo.root);\n }\n\n function getRoot(Data storage self) public view onlyInitialized(self) returns (uint256) {\n return self.rootEntries[self.rootEntries.length - 1].root;\n }\n\n /**\n * @dev Get root info by some historical timestamp.\n * @param timestamp The latest timestamp to get the root info for.\n * @return Root info struct\n */\n function getRootInfoByTime(\n Data storage self,\n uint256 timestamp\n ) public view returns (RootEntryInfo memory) {\n require(timestamp <= block.timestamp, \"No future timestamps allowed\");\n\n return\n _getRootInfoByTimestampOrBlock(\n self,\n timestamp,\n BinarySearchSmtRoots.SearchType.TIMESTAMP\n );\n }\n\n /**\n * @dev Get root info by some historical block number.\n * @param blockN The latest block number to get the root info for.\n * @return Root info struct\n */\n function getRootInfoByBlock(\n Data storage self,\n uint256 blockN\n ) public view returns (RootEntryInfo memory) {\n require(blockN <= block.number, \"No future blocks allowed\");\n\n return _getRootInfoByTimestampOrBlock(self, blockN, BinarySearchSmtRoots.SearchType.BLOCK);\n }\n\n /**\n * @dev Returns root info by root\n * @param root root\n * @return Root info struct\n */\n function getRootInfo(\n Data storage self,\n uint256 root\n ) public view onlyExistingRoot(self, root) returns (RootEntryInfo memory) {\n uint256[] storage indexes = self.rootIndexes[root];\n uint256 lastIndex = indexes[indexes.length - 1];\n return _getRootInfoByIndex(self, lastIndex);\n }\n\n /**\n * @dev Retrieve duplicate root quantity by id and state.\n * If the root repeats more that once, the length may be greater than 1.\n * @param root A root.\n * @return Root root entries quantity.\n */\n function getRootInfoListLengthByRoot(\n Data storage self,\n uint256 root\n ) public view returns (uint256) {\n return self.rootIndexes[root].length;\n }\n\n /**\n * @dev Retrieve root infos list of duplicated root by id and state.\n * If the root repeats more that once, the length list may be greater than 1.\n * @param root A root.\n * @param startIndex The index to start the list.\n * @param length The length of the list.\n * @return Root Root entries quantity.\n */\n function getRootInfoListByRoot(\n Data storage self,\n uint256 root,\n uint256 startIndex,\n uint256 length\n ) public view onlyExistingRoot(self, root) returns (RootEntryInfo[] memory) {\n uint256[] storage indexes = self.rootIndexes[root];\n (uint256 start, uint256 end) = ArrayUtils.calculateBounds(\n indexes.length,\n startIndex,\n length,\n ROOT_INFO_LIST_RETURN_LIMIT\n );\n\n RootEntryInfo[] memory result = new RootEntryInfo[](end - start);\n for (uint256 i = start; i < end; i++) {\n result[i - start] = _getRootInfoByIndex(self, indexes[i]);\n }\n\n return result;\n }\n\n /**\n * @dev Checks if root exists\n * @param root root\n * return true if root exists\n */\n function rootExists(Data storage self, uint256 root) public view returns (bool) {\n return self.rootIndexes[root].length > 0;\n }\n\n /**\n * @dev Sets max depth of the SMT\n * @param maxDepth max depth\n */\n function setMaxDepth(Data storage self, uint256 maxDepth) public {\n require(maxDepth > 0, \"Max depth must be greater than zero\");\n require(maxDepth > self.maxDepth, \"Max depth can only be increased\");\n require(maxDepth <= MAX_DEPTH_HARD_CAP, \"Max depth is greater than hard cap\");\n self.maxDepth = maxDepth;\n }\n\n /**\n * @dev Gets max depth of the SMT\n * return max depth\n */\n function getMaxDepth(Data storage self) external view returns (uint256) {\n return self.maxDepth;\n }\n\n /**\n * @dev Initialize SMT with max depth and root entry of an empty tree.\n * @param maxDepth Max depth of the SMT.\n */\n function initialize(Data storage self, uint256 maxDepth) external {\n require(!isInitialized(self), \"Smt is already initialized\");\n setMaxDepth(self, maxDepth);\n _addEntry(self, 0, 0, 0);\n self.initialized = true;\n }\n\n modifier onlyInitialized(Data storage self) {\n require(isInitialized(self), \"Smt is not initialized\");\n _;\n }\n\n function isInitialized(Data storage self) public view returns (bool) {\n return self.initialized;\n }\n\n function _addLeaf(\n Data storage self,\n Node memory newLeaf,\n uint256 nodeHash,\n uint256 depth\n ) internal returns (uint256) {\n if (depth > self.maxDepth) {\n revert(\"Max depth reached\");\n }\n\n Node memory node = self.nodes[nodeHash];\n uint256 nextNodeHash;\n uint256 leafHash = 0;\n\n if (node.nodeType == NodeType.EMPTY) {\n leafHash = _addNode(self, newLeaf);\n } else if (node.nodeType == NodeType.LEAF) {\n leafHash = node.index == newLeaf.index\n ? _addNode(self, newLeaf)\n : _pushLeaf(self, newLeaf, node, depth);\n } else if (node.nodeType == NodeType.MIDDLE) {\n Node memory newNodeMiddle;\n\n if ((newLeaf.index >> depth) & 1 == 1) {\n nextNodeHash = _addLeaf(self, newLeaf, node.childRight, depth + 1);\n\n newNodeMiddle = Node({\n nodeType: NodeType.MIDDLE,\n childLeft: node.childLeft,\n childRight: nextNodeHash,\n index: 0,\n value: 0\n });\n } else {\n nextNodeHash = _addLeaf(self, newLeaf, node.childLeft, depth + 1);\n\n newNodeMiddle = Node({\n nodeType: NodeType.MIDDLE,\n childLeft: nextNodeHash,\n childRight: node.childRight,\n index: 0,\n value: 0\n });\n }\n\n leafHash = _addNode(self, newNodeMiddle);\n }\n\n return leafHash;\n }\n\n function _pushLeaf(\n Data storage self,\n Node memory newLeaf,\n Node memory oldLeaf,\n uint256 depth\n ) internal returns (uint256) {\n // no reason to continue if we are at max possible depth\n // as, anyway, we exceed the depth going down the tree\n if (depth >= self.maxDepth) {\n revert(\"Max depth reached\");\n }\n\n Node memory newNodeMiddle;\n bool newLeafBitAtDepth = (newLeaf.index >> depth) & 1 == 1;\n bool oldLeafBitAtDepth = (oldLeaf.index >> depth) & 1 == 1;\n\n // Check if we need to go deeper if diverge at the depth's bit\n if (newLeafBitAtDepth == oldLeafBitAtDepth) {\n uint256 nextNodeHash = _pushLeaf(self, newLeaf, oldLeaf, depth + 1);\n\n if (newLeafBitAtDepth) {\n // go right\n newNodeMiddle = Node(NodeType.MIDDLE, 0, nextNodeHash, 0, 0);\n } else {\n // go left\n newNodeMiddle = Node(NodeType.MIDDLE, nextNodeHash, 0, 0, 0);\n }\n return _addNode(self, newNodeMiddle);\n }\n\n if (newLeafBitAtDepth) {\n newNodeMiddle = Node({\n nodeType: NodeType.MIDDLE,\n childLeft: _getNodeHash(oldLeaf),\n childRight: _getNodeHash(newLeaf),\n index: 0,\n value: 0\n });\n } else {\n newNodeMiddle = Node({\n nodeType: NodeType.MIDDLE,\n childLeft: _getNodeHash(newLeaf),\n childRight: _getNodeHash(oldLeaf),\n index: 0,\n value: 0\n });\n }\n\n _addNode(self, newLeaf);\n return _addNode(self, newNodeMiddle);\n }\n\n function _addNode(Data storage self, Node memory node) internal returns (uint256) {\n uint256 nodeHash = _getNodeHash(node);\n // We don't have any guarantees if the hash function attached is good enough.\n // So, if the node hash already exists, we need to check\n // if the node in the tree exactly matches the one we are trying to add.\n if (self.nodes[nodeHash].nodeType != NodeType.EMPTY) {\n assert(self.nodes[nodeHash].nodeType == node.nodeType);\n assert(self.nodes[nodeHash].childLeft == node.childLeft);\n assert(self.nodes[nodeHash].childRight == node.childRight);\n assert(self.nodes[nodeHash].index == node.index);\n assert(self.nodes[nodeHash].value == node.value);\n return nodeHash;\n }\n\n self.nodes[nodeHash] = node;\n return nodeHash;\n }\n\n function _getNodeHash(Node memory node) internal pure returns (uint256) {\n uint256 nodeHash = 0;\n if (node.nodeType == NodeType.LEAF) {\n uint256[3] memory params = [node.index, node.value, uint256(1)];\n nodeHash = PoseidonUnit3L.poseidon(params);\n } else if (node.nodeType == NodeType.MIDDLE) {\n nodeHash = PoseidonUnit2L.poseidon([node.childLeft, node.childRight]);\n }\n return nodeHash; // Note: expected to return 0 if NodeType.EMPTY, which is the only option left\n }\n\n function _getRootInfoByIndex(\n Data storage self,\n uint256 index\n ) internal view returns (RootEntryInfo memory) {\n bool isLastRoot = index == self.rootEntries.length - 1;\n RootEntry storage rootEntry = self.rootEntries[index];\n\n return\n RootEntryInfo({\n root: rootEntry.root,\n replacedByRoot: isLastRoot ? 0 : self.rootEntries[index + 1].root,\n createdAtTimestamp: rootEntry.createdAtTimestamp,\n replacedAtTimestamp: isLastRoot\n ? 0\n : self.rootEntries[index + 1].createdAtTimestamp,\n createdAtBlock: rootEntry.createdAtBlock,\n replacedAtBlock: isLastRoot ? 0 : self.rootEntries[index + 1].createdAtBlock\n });\n }\n\n function _getRootInfoByTimestampOrBlock(\n Data storage self,\n uint256 timestampOrBlock,\n BinarySearchSmtRoots.SearchType searchType\n ) internal view returns (RootEntryInfo memory) {\n (uint256 index, bool found) = self.binarySearchUint256(timestampOrBlock, searchType);\n\n // As far as we always have at least one root entry, we should always find it\n assert(found);\n\n return _getRootInfoByIndex(self, index);\n }\n\n function _addEntry(\n Data storage self,\n uint256 root,\n uint256 _timestamp,\n uint256 _block\n ) internal {\n self.rootEntries.push(\n RootEntry({root: root, createdAtTimestamp: _timestamp, createdAtBlock: _block})\n );\n\n self.rootIndexes[root].push(self.rootEntries.length - 1);\n }\n}\n\n/// @title A binary search for the sparse merkle tree root history\n// Implemented as a separate library for testing purposes\nlibrary BinarySearchSmtRoots {\n /**\n * @dev Enum for the SMT history field selection\n */\n enum SearchType {\n TIMESTAMP,\n BLOCK\n }\n\n /**\n * @dev Binary search method for the SMT history,\n * which searches for the index of the root entry saved by the given timestamp or block\n * @param value The timestamp or block to search for.\n * @param searchType The type of the search (timestamp or block).\n */\n function binarySearchUint256(\n SmtLib.Data storage self,\n uint256 value,\n SearchType searchType\n ) internal view returns (uint256, bool) {\n if (self.rootEntries.length == 0) {\n return (0, false);\n }\n\n uint256 min = 0;\n uint256 max = self.rootEntries.length - 1;\n uint256 mid;\n\n while (min <= max) {\n mid = (max + min) / 2;\n\n uint256 midValue = fieldSelector(self.rootEntries[mid], searchType);\n if (midValue == value) {\n while (mid < self.rootEntries.length - 1) {\n uint256 nextValue = fieldSelector(self.rootEntries[mid + 1], searchType);\n if (nextValue == value) {\n mid++;\n } else {\n return (mid, true);\n }\n }\n return (mid, true);\n } else if (value > midValue) {\n min = mid + 1;\n } else if (value < midValue && mid > 0) {\n // mid > 0 is to avoid underflow\n max = mid - 1;\n } else {\n // This means that value < midValue && mid == 0. So we found nothing.\n return (0, false);\n }\n }\n\n // The case when the searched value does not exist and we should take the closest smaller value\n // Index in the \"max\" var points to the root entry with max value smaller than the searched value\n return (max, true);\n }\n\n /**\n * @dev Selects either timestamp or block field from the root entry struct\n * depending on the search type\n * @param rti The root entry to select the field from.\n * @param st The search type.\n */\n function fieldSelector(\n SmtLib.RootEntry memory rti,\n SearchType st\n ) internal pure returns (uint256) {\n if (st == SearchType.BLOCK) {\n return rti.createdAtBlock;\n } else if (st == SearchType.TIMESTAMP) {\n return rti.createdAtTimestamp;\n } else {\n revert(\"Invalid search type\");\n }\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (access/Ownable2Step.sol)\n\npragma solidity ^0.8.20;\n\nimport {OwnableUpgradeable} from \"./OwnableUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * This extension of the {Ownable} contract includes a two-step mechanism to transfer\n * ownership, where the new owner must call {acceptOwnership} in order to replace the\n * old one. This can help prevent common mistakes, such as transfers of ownership to\n * incorrect accounts, or to contracts that are unable to interact with the\n * permission system.\n *\n * The initial owner is specified at deployment time in the constructor for `Ownable`. This\n * can later be changed with {transferOwnership} and {acceptOwnership}.\n *\n * This module is used through inheritance. It will make available all functions\n * from parent (Ownable).\n */\nabstract contract Ownable2StepUpgradeable is Initializable, OwnableUpgradeable {\n /// @custom:storage-location erc7201:openzeppelin.storage.Ownable2Step\n struct Ownable2StepStorage {\n address _pendingOwner;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Ownable2Step\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant Ownable2StepStorageLocation = 0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00;\n\n function _getOwnable2StepStorage() private pure returns (Ownable2StepStorage storage $) {\n assembly {\n $.slot := Ownable2StepStorageLocation\n }\n }\n\n event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner);\n\n function __Ownable2Step_init() internal onlyInitializing {\n }\n\n function __Ownable2Step_init_unchained() internal onlyInitializing {\n }\n /**\n * @dev Returns the address of the pending owner.\n */\n function pendingOwner() public view virtual returns (address) {\n Ownable2StepStorage storage $ = _getOwnable2StepStorage();\n return $._pendingOwner;\n }\n\n /**\n * @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n * Can only be called by the current owner.\n *\n * Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\n */\n function transferOwnership(address newOwner) public virtual override onlyOwner {\n Ownable2StepStorage storage $ = _getOwnable2StepStorage();\n $._pendingOwner = newOwner;\n emit OwnershipTransferStarted(owner(), newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual override {\n Ownable2StepStorage storage $ = _getOwnable2StepStorage();\n delete $._pendingOwner;\n super._transferOwnership(newOwner);\n }\n\n /**\n * @dev The new owner accepts the ownership transfer.\n */\n function acceptOwnership() public virtual {\n address sender = _msgSender();\n if (pendingOwner() != sender) {\n revert OwnableUnauthorizedAccount(sender);\n }\n _transferOwnership(sender);\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)\n\npragma solidity ^0.8.20;\n\nimport {ContextUpgradeable} from \"../utils/ContextUpgradeable.sol\";\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * The initial owner is set to the address provided by the deployer. This can\n * later be changed with {transferOwnership}.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\nabstract contract OwnableUpgradeable is Initializable, ContextUpgradeable {\n /// @custom:storage-location erc7201:openzeppelin.storage.Ownable\n struct OwnableStorage {\n address _owner;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Ownable\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant OwnableStorageLocation = 0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300;\n\n function _getOwnableStorage() private pure returns (OwnableStorage storage $) {\n assembly {\n $.slot := OwnableStorageLocation\n }\n }\n\n /**\n * @dev The caller account is not authorized to perform an operation.\n */\n error OwnableUnauthorizedAccount(address account);\n\n /**\n * @dev The owner is not a valid owner account. (eg. `address(0)`)\n */\n error OwnableInvalidOwner(address owner);\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the address provided by the deployer as the initial owner.\n */\n function __Ownable_init(address initialOwner) internal onlyInitializing {\n __Ownable_init_unchained(initialOwner);\n }\n\n function __Ownable_init_unchained(address initialOwner) internal onlyInitializing {\n if (initialOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(initialOwner);\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n _checkOwner();\n _;\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view virtual returns (address) {\n OwnableStorage storage $ = _getOwnableStorage();\n return $._owner;\n }\n\n /**\n * @dev Throws if the sender is not the owner.\n */\n function _checkOwner() internal view virtual {\n if (owner() != _msgSender()) {\n revert OwnableUnauthorizedAccount(_msgSender());\n }\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby disabling any functionality that is only available to the owner.\n */\n function renounceOwnership() public virtual onlyOwner {\n _transferOwnership(address(0));\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public virtual onlyOwner {\n if (newOwner == address(0)) {\n revert OwnableInvalidOwner(address(0));\n }\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Internal function without access restriction.\n */\n function _transferOwnership(address newOwner) internal virtual {\n OwnableStorage storage $ = _getOwnableStorage();\n address oldOwner = $._owner;\n $._owner = newOwner;\n emit OwnershipTransferred(oldOwner, newOwner);\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n * behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n * external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n * function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n *\n * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```solidity\n * contract MyToken is ERC20Upgradeable {\n * function initialize() initializer public {\n * __ERC20_init(\"MyToken\", \"MTK\");\n * }\n * }\n *\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n * function initializeV2() reinitializer(2) public {\n * __ERC20Permit_init(\"MyToken\");\n * }\n * }\n * ```\n *\n * TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n * possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n *\n * CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n * that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n *\n * [CAUTION]\n * ====\n * Avoid leaving a contract uninitialized.\n *\n * An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n * contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n * _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n /**\n * @dev Storage of the initializable contract.\n *\n * It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n * when using with upgradeable contracts.\n *\n * @custom:storage-location erc7201:openzeppelin.storage.Initializable\n */\n struct InitializableStorage {\n /**\n * @dev Indicates that the contract has been initialized.\n */\n uint64 _initialized;\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool _initializing;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Initializable\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant INITIALIZABLE_STORAGE = 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00;\n\n /**\n * @dev The contract is already initialized.\n */\n error InvalidInitialization();\n\n /**\n * @dev The contract is not initializing.\n */\n error NotInitializing();\n\n /**\n * @dev Triggered when the contract has been initialized or reinitialized.\n */\n event Initialized(uint64 version);\n\n /**\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n * `onlyInitializing` functions can be used to initialize parent contracts.\n *\n * Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n * number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n * production.\n *\n * Emits an {Initialized} event.\n */\n modifier initializer() {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n // Cache values to avoid duplicated sloads\n bool isTopLevelCall = !$._initializing;\n uint64 initialized = $._initialized;\n\n // Allowed calls:\n // - initialSetup: the contract is not in the initializing state and no previous version was\n // initialized\n // - construction: the contract is initialized at version 1 (no reinitialization) and the\n // current contract is just being deployed\n bool initialSetup = initialized == 0 && isTopLevelCall;\n bool construction = initialized == 1 && address(this).code.length == 0;\n\n if (!initialSetup && !construction) {\n revert InvalidInitialization();\n }\n $._initialized = 1;\n if (isTopLevelCall) {\n $._initializing = true;\n }\n _;\n if (isTopLevelCall) {\n $._initializing = false;\n emit Initialized(1);\n }\n }\n\n /**\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n * used to initialize parent contracts.\n *\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n * are added through upgrades and that require initialization.\n *\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n * cannot be nested. If one is invoked in the context of another, execution will revert.\n *\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n * a contract, executing them in the right order is up to the developer or operator.\n *\n * WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n *\n * Emits an {Initialized} event.\n */\n modifier reinitializer(uint64 version) {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n if ($._initializing || $._initialized >= version) {\n revert InvalidInitialization();\n }\n $._initialized = version;\n $._initializing = true;\n _;\n $._initializing = false;\n emit Initialized(version);\n }\n\n /**\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\n */\n modifier onlyInitializing() {\n _checkInitializing();\n _;\n }\n\n /**\n * @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}.\n */\n function _checkInitializing() internal view virtual {\n if (!_isInitializing()) {\n revert NotInitializing();\n }\n }\n\n /**\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n * through proxies.\n *\n * Emits an {Initialized} event the first time it is successfully executed.\n */\n function _disableInitializers() internal virtual {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n if ($._initializing) {\n revert InvalidInitialization();\n }\n if ($._initialized != type(uint64).max) {\n $._initialized = type(uint64).max;\n emit Initialized(type(uint64).max);\n }\n }\n\n /**\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\n */\n function _getInitializedVersion() internal view returns (uint64) {\n return _getInitializableStorage()._initialized;\n }\n\n /**\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\n */\n function _isInitializing() internal view returns (bool) {\n return _getInitializableStorage()._initializing;\n }\n\n /**\n * @dev Pointer to storage slot. Allows integrators to override it with a custom storage location.\n *\n * NOTE: Consider following the ERC-7201 formula to derive storage locations.\n */\n function _initializableStorageSlot() internal pure virtual returns (bytes32) {\n return INITIALIZABLE_STORAGE;\n }\n\n /**\n * @dev Returns a pointer to the storage namespace.\n */\n // solhint-disable-next-line var-name-mixedcase\n function _getInitializableStorage() private pure returns (InitializableStorage storage $) {\n bytes32 slot = _initializableStorageSlot();\n assembly {\n $.slot := slot\n }\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)\n\npragma solidity ^0.8.20;\nimport {Initializable} from \"../proxy/utils/Initializable.sol\";\n\n/**\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract ContextUpgradeable is Initializable {\n function __Context_init() internal onlyInitializing {\n }\n\n function __Context_init_unchained() internal onlyInitializing {\n }\n function _msgSender() internal view virtual returns (address) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes calldata) {\n return msg.data;\n }\n\n function _contextSuffixLength() internal view virtual returns (uint256) {\n return 0;\n }\n}\n" + }, + "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/cryptography/EIP712.sol)\n\npragma solidity ^0.8.20;\n\nimport {MessageHashUtils} from \"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\";\nimport {IERC5267} from \"@openzeppelin/contracts/interfaces/IERC5267.sol\";\nimport {Initializable} from \"../../proxy/utils/Initializable.sol\";\n\n/**\n * @dev https://eips.ethereum.org/EIPS/eip-712[EIP-712] is a standard for hashing and signing of typed structured data.\n *\n * The encoding scheme specified in the EIP requires a domain separator and a hash of the typed structured data, whose\n * encoding is very generic and therefore its implementation in Solidity is not feasible, thus this contract\n * does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in order to\n * produce the hash of their typed data using a combination of `abi.encode` and `keccak256`.\n *\n * This contract implements the EIP-712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n * scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n * ({_hashTypedDataV4}).\n *\n * The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n * the chain id to protect against replay attacks on an eventual fork of the chain.\n *\n * NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n * https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n *\n * NOTE: In the upgradeable version of this contract, the cached values will correspond to the address, and the domain\n * separator of the implementation contract. This will cause the {_domainSeparatorV4} function to always rebuild the\n * separator from the immutable values, which is cheaper than accessing a cached version in cold storage.\n */\nabstract contract EIP712Upgradeable is Initializable, IERC5267 {\n bytes32 private constant TYPE_HASH =\n keccak256(\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\");\n\n /// @custom:storage-location erc7201:openzeppelin.storage.EIP712\n struct EIP712Storage {\n /// @custom:oz-renamed-from _HASHED_NAME\n bytes32 _hashedName;\n /// @custom:oz-renamed-from _HASHED_VERSION\n bytes32 _hashedVersion;\n\n string _name;\n string _version;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.EIP712\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant EIP712StorageLocation = 0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100;\n\n function _getEIP712Storage() private pure returns (EIP712Storage storage $) {\n assembly {\n $.slot := EIP712StorageLocation\n }\n }\n\n /**\n * @dev Initializes the domain separator and parameter caches.\n *\n * The meaning of `name` and `version` is specified in\n * https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP-712]:\n *\n * - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n * - `version`: the current major version of the signing domain.\n *\n * NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n * contract upgrade].\n */\n function __EIP712_init(string memory name, string memory version) internal onlyInitializing {\n __EIP712_init_unchained(name, version);\n }\n\n function __EIP712_init_unchained(string memory name, string memory version) internal onlyInitializing {\n EIP712Storage storage $ = _getEIP712Storage();\n $._name = name;\n $._version = version;\n\n // Reset prior values in storage if upgrading\n $._hashedName = 0;\n $._hashedVersion = 0;\n }\n\n /**\n * @dev Returns the domain separator for the current chain.\n */\n function _domainSeparatorV4() internal view returns (bytes32) {\n return _buildDomainSeparator();\n }\n\n function _buildDomainSeparator() private view returns (bytes32) {\n return keccak256(abi.encode(TYPE_HASH, _EIP712NameHash(), _EIP712VersionHash(), block.chainid, address(this)));\n }\n\n /**\n * @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n * function returns the hash of the fully encoded EIP712 message for this domain.\n *\n * This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n *\n * ```solidity\n * bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n * keccak256(\"Mail(address to,string contents)\"),\n * mailTo,\n * keccak256(bytes(mailContents))\n * )));\n * address signer = ECDSA.recover(digest, signature);\n * ```\n */\n function _hashTypedDataV4(bytes32 structHash) internal view virtual returns (bytes32) {\n return MessageHashUtils.toTypedDataHash(_domainSeparatorV4(), structHash);\n }\n\n /**\n * @inheritdoc IERC5267\n */\n function eip712Domain()\n public\n view\n virtual\n returns (\n bytes1 fields,\n string memory name,\n string memory version,\n uint256 chainId,\n address verifyingContract,\n bytes32 salt,\n uint256[] memory extensions\n )\n {\n EIP712Storage storage $ = _getEIP712Storage();\n // If the hashed name and version in storage are non-zero, the contract hasn't been properly initialized\n // and the EIP712 domain is not reliable, as it will be missing name and version.\n require($._hashedName == 0 && $._hashedVersion == 0, \"EIP712: Uninitialized\");\n\n return (\n hex\"0f\", // 01111\n _EIP712Name(),\n _EIP712Version(),\n block.chainid,\n address(this),\n bytes32(0),\n new uint256[](0)\n );\n }\n\n /**\n * @dev The name parameter for the EIP712 domain.\n *\n * NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n * are a concern.\n */\n function _EIP712Name() internal view virtual returns (string memory) {\n EIP712Storage storage $ = _getEIP712Storage();\n return $._name;\n }\n\n /**\n * @dev The version parameter for the EIP712 domain.\n *\n * NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n * are a concern.\n */\n function _EIP712Version() internal view virtual returns (string memory) {\n EIP712Storage storage $ = _getEIP712Storage();\n return $._version;\n }\n\n /**\n * @dev The hash of the name parameter for the EIP712 domain.\n *\n * NOTE: In previous versions this function was virtual. In this version you should override `_EIP712Name` instead.\n */\n function _EIP712NameHash() internal view returns (bytes32) {\n EIP712Storage storage $ = _getEIP712Storage();\n string memory name = _EIP712Name();\n if (bytes(name).length > 0) {\n return keccak256(bytes(name));\n } else {\n // If the name is empty, the contract may have been upgraded without initializing the new storage.\n // We return the name hash in storage if non-zero, otherwise we assume the name is empty by design.\n bytes32 hashedName = $._hashedName;\n if (hashedName != 0) {\n return hashedName;\n } else {\n return keccak256(\"\");\n }\n }\n }\n\n /**\n * @dev The hash of the version parameter for the EIP712 domain.\n *\n * NOTE: In previous versions this function was virtual. In this version you should override `_EIP712Version` instead.\n */\n function _EIP712VersionHash() internal view returns (bytes32) {\n EIP712Storage storage $ = _getEIP712Storage();\n string memory version = _EIP712Version();\n if (bytes(version).length > 0) {\n return keccak256(bytes(version));\n } else {\n // If the version is empty, the contract may have been upgraded without initializing the new storage.\n // We return the version hash in storage if non-zero, otherwise we assume the version is empty by design.\n bytes32 hashedVersion = $._hashedVersion;\n if (hashedVersion != 0) {\n return hashedVersion;\n } else {\n return keccak256(\"\");\n }\n }\n }\n}\n" + }, + "@openzeppelin/contracts/interfaces/IERC5267.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC5267.sol)\n\npragma solidity ^0.8.20;\n\ninterface IERC5267 {\n /**\n * @dev MAY be emitted to signal that the domain could have changed.\n */\n event EIP712DomainChanged();\n\n /**\n * @dev returns the fields and values that describe the domain separator used by this contract for EIP-712\n * signature.\n */\n function eip712Domain()\n external\n view\n returns (\n bytes1 fields,\n string memory name,\n string memory version,\n uint256 chainId,\n address verifyingContract,\n bytes32 salt,\n uint256[] memory extensions\n );\n}\n" + }, + "@openzeppelin/contracts/utils/Arrays.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/Arrays.sol)\n// This file was procedurally generated from scripts/generate/templates/Arrays.js.\n\npragma solidity ^0.8.20;\n\nimport {Comparators} from \"./Comparators.sol\";\nimport {SlotDerivation} from \"./SlotDerivation.sol\";\nimport {StorageSlot} from \"./StorageSlot.sol\";\nimport {Math} from \"./math/Math.sol\";\n\n/**\n * @dev Collection of functions related to array types.\n */\nlibrary Arrays {\n using SlotDerivation for bytes32;\n using StorageSlot for bytes32;\n\n /**\n * @dev Sort an array of uint256 (in memory) following the provided comparator function.\n *\n * This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n * convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n *\n * NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n * array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n * when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n * consume more gas than is available in a block, leading to potential DoS.\n *\n * IMPORTANT: Consider memory side-effects when using custom comparator functions that access memory in an unsafe way.\n */\n function sort(\n uint256[] memory array,\n function(uint256, uint256) pure returns (bool) comp\n ) internal pure returns (uint256[] memory) {\n _quickSort(_begin(array), _end(array), comp);\n return array;\n }\n\n /**\n * @dev Variant of {sort} that sorts an array of uint256 in increasing order.\n */\n function sort(uint256[] memory array) internal pure returns (uint256[] memory) {\n sort(array, Comparators.lt);\n return array;\n }\n\n /**\n * @dev Sort an array of address (in memory) following the provided comparator function.\n *\n * This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n * convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n *\n * NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n * array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n * when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n * consume more gas than is available in a block, leading to potential DoS.\n *\n * IMPORTANT: Consider memory side-effects when using custom comparator functions that access memory in an unsafe way.\n */\n function sort(\n address[] memory array,\n function(address, address) pure returns (bool) comp\n ) internal pure returns (address[] memory) {\n sort(_castToUint256Array(array), _castToUint256Comp(comp));\n return array;\n }\n\n /**\n * @dev Variant of {sort} that sorts an array of address in increasing order.\n */\n function sort(address[] memory array) internal pure returns (address[] memory) {\n sort(_castToUint256Array(array), Comparators.lt);\n return array;\n }\n\n /**\n * @dev Sort an array of bytes32 (in memory) following the provided comparator function.\n *\n * This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n * convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n *\n * NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n * array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n * when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n * consume more gas than is available in a block, leading to potential DoS.\n *\n * IMPORTANT: Consider memory side-effects when using custom comparator functions that access memory in an unsafe way.\n */\n function sort(\n bytes32[] memory array,\n function(bytes32, bytes32) pure returns (bool) comp\n ) internal pure returns (bytes32[] memory) {\n sort(_castToUint256Array(array), _castToUint256Comp(comp));\n return array;\n }\n\n /**\n * @dev Variant of {sort} that sorts an array of bytes32 in increasing order.\n */\n function sort(bytes32[] memory array) internal pure returns (bytes32[] memory) {\n sort(_castToUint256Array(array), Comparators.lt);\n return array;\n }\n\n /**\n * @dev Performs a quick sort of a segment of memory. The segment sorted starts at `begin` (inclusive), and stops\n * at end (exclusive). Sorting follows the `comp` comparator.\n *\n * Invariant: `begin <= end`. This is the case when initially called by {sort} and is preserved in subcalls.\n *\n * IMPORTANT: Memory locations between `begin` and `end` are not validated/zeroed. This function should\n * be used only if the limits are within a memory array.\n */\n function _quickSort(uint256 begin, uint256 end, function(uint256, uint256) pure returns (bool) comp) private pure {\n unchecked {\n if (end - begin < 0x40) return;\n\n // Use first element as pivot\n uint256 pivot = _mload(begin);\n // Position where the pivot should be at the end of the loop\n uint256 pos = begin;\n\n for (uint256 it = begin + 0x20; it < end; it += 0x20) {\n if (comp(_mload(it), pivot)) {\n // If the value stored at the iterator's position comes before the pivot, we increment the\n // position of the pivot and move the value there.\n pos += 0x20;\n _swap(pos, it);\n }\n }\n\n _swap(begin, pos); // Swap pivot into place\n _quickSort(begin, pos, comp); // Sort the left side of the pivot\n _quickSort(pos + 0x20, end, comp); // Sort the right side of the pivot\n }\n }\n\n /**\n * @dev Pointer to the memory location of the first element of `array`.\n */\n function _begin(uint256[] memory array) private pure returns (uint256 ptr) {\n assembly (\"memory-safe\") {\n ptr := add(array, 0x20)\n }\n }\n\n /**\n * @dev Pointer to the memory location of the first memory word (32bytes) after `array`. This is the memory word\n * that comes just after the last element of the array.\n */\n function _end(uint256[] memory array) private pure returns (uint256 ptr) {\n unchecked {\n return _begin(array) + array.length * 0x20;\n }\n }\n\n /**\n * @dev Load memory word (as a uint256) at location `ptr`.\n */\n function _mload(uint256 ptr) private pure returns (uint256 value) {\n assembly {\n value := mload(ptr)\n }\n }\n\n /**\n * @dev Swaps the elements memory location `ptr1` and `ptr2`.\n */\n function _swap(uint256 ptr1, uint256 ptr2) private pure {\n assembly {\n let value1 := mload(ptr1)\n let value2 := mload(ptr2)\n mstore(ptr1, value2)\n mstore(ptr2, value1)\n }\n }\n\n /// @dev Helper: low level cast address memory array to uint256 memory array\n function _castToUint256Array(address[] memory input) private pure returns (uint256[] memory output) {\n assembly {\n output := input\n }\n }\n\n /// @dev Helper: low level cast bytes32 memory array to uint256 memory array\n function _castToUint256Array(bytes32[] memory input) private pure returns (uint256[] memory output) {\n assembly {\n output := input\n }\n }\n\n /// @dev Helper: low level cast address comp function to uint256 comp function\n function _castToUint256Comp(\n function(address, address) pure returns (bool) input\n ) private pure returns (function(uint256, uint256) pure returns (bool) output) {\n assembly {\n output := input\n }\n }\n\n /// @dev Helper: low level cast bytes32 comp function to uint256 comp function\n function _castToUint256Comp(\n function(bytes32, bytes32) pure returns (bool) input\n ) private pure returns (function(uint256, uint256) pure returns (bool) output) {\n assembly {\n output := input\n }\n }\n\n /**\n * @dev Searches a sorted `array` and returns the first index that contains\n * a value greater or equal to `element`. If no such index exists (i.e. all\n * values in the array are strictly less than `element`), the array length is\n * returned. Time complexity O(log n).\n *\n * NOTE: The `array` is expected to be sorted in ascending order, and to\n * contain no repeated elements.\n *\n * IMPORTANT: Deprecated. This implementation behaves as {lowerBound} but lacks\n * support for repeated elements in the array. The {lowerBound} function should\n * be used instead.\n */\n function findUpperBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value > element) {\n high = mid;\n } else {\n low = mid + 1;\n }\n }\n\n // At this point `low` is the exclusive upper bound. We will return the inclusive upper bound.\n if (low > 0 && unsafeAccess(array, low - 1).value == element) {\n return low - 1;\n } else {\n return low;\n }\n }\n\n /**\n * @dev Searches an `array` sorted in ascending order and returns the first\n * index that contains a value greater or equal than `element`. If no such index\n * exists (i.e. all values in the array are strictly less than `element`), the array\n * length is returned. Time complexity O(log n).\n *\n * See C++'s https://en.cppreference.com/w/cpp/algorithm/lower_bound[lower_bound].\n */\n function lowerBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value < element) {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n } else {\n high = mid;\n }\n }\n\n return low;\n }\n\n /**\n * @dev Searches an `array` sorted in ascending order and returns the first\n * index that contains a value strictly greater than `element`. If no such index\n * exists (i.e. all values in the array are strictly less than `element`), the array\n * length is returned. Time complexity O(log n).\n *\n * See C++'s https://en.cppreference.com/w/cpp/algorithm/upper_bound[upper_bound].\n */\n function upperBound(uint256[] storage array, uint256 element) internal view returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeAccess(array, mid).value > element) {\n high = mid;\n } else {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n }\n }\n\n return low;\n }\n\n /**\n * @dev Same as {lowerBound}, but with an array in memory.\n */\n function lowerBoundMemory(uint256[] memory array, uint256 element) internal pure returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeMemoryAccess(array, mid) < element) {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n } else {\n high = mid;\n }\n }\n\n return low;\n }\n\n /**\n * @dev Same as {upperBound}, but with an array in memory.\n */\n function upperBoundMemory(uint256[] memory array, uint256 element) internal pure returns (uint256) {\n uint256 low = 0;\n uint256 high = array.length;\n\n if (high == 0) {\n return 0;\n }\n\n while (low < high) {\n uint256 mid = Math.average(low, high);\n\n // Note that mid will always be strictly less than high (i.e. it will be a valid array index)\n // because Math.average rounds towards zero (it does integer division with truncation).\n if (unsafeMemoryAccess(array, mid) > element) {\n high = mid;\n } else {\n // this cannot overflow because mid < high\n unchecked {\n low = mid + 1;\n }\n }\n }\n\n return low;\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(address[] storage arr, uint256 pos) internal pure returns (StorageSlot.AddressSlot storage) {\n bytes32 slot;\n assembly (\"memory-safe\") {\n slot := arr.slot\n }\n return slot.deriveArray().offset(pos).getAddressSlot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(bytes32[] storage arr, uint256 pos) internal pure returns (StorageSlot.Bytes32Slot storage) {\n bytes32 slot;\n assembly (\"memory-safe\") {\n slot := arr.slot\n }\n return slot.deriveArray().offset(pos).getBytes32Slot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeAccess(uint256[] storage arr, uint256 pos) internal pure returns (StorageSlot.Uint256Slot storage) {\n bytes32 slot;\n assembly (\"memory-safe\") {\n slot := arr.slot\n }\n return slot.deriveArray().offset(pos).getUint256Slot();\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(address[] memory arr, uint256 pos) internal pure returns (address res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(bytes32[] memory arr, uint256 pos) internal pure returns (bytes32 res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n *\n * WARNING: Only use if you are certain `pos` is lower than the array length.\n */\n function unsafeMemoryAccess(uint256[] memory arr, uint256 pos) internal pure returns (uint256 res) {\n assembly {\n res := mload(add(add(arr, 0x20), mul(pos, 0x20)))\n }\n }\n\n /**\n * @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n *\n * WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased.\n */\n function unsafeSetLength(address[] storage array, uint256 len) internal {\n assembly (\"memory-safe\") {\n sstore(array.slot, len)\n }\n }\n\n /**\n * @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n *\n * WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased.\n */\n function unsafeSetLength(bytes32[] storage array, uint256 len) internal {\n assembly (\"memory-safe\") {\n sstore(array.slot, len)\n }\n }\n\n /**\n * @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n *\n * WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased.\n */\n function unsafeSetLength(uint256[] storage array, uint256 len) internal {\n assembly (\"memory-safe\") {\n sstore(array.slot, len)\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Comparators.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Comparators.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Provides a set of functions to compare values.\n *\n * _Available since v5.1._\n */\nlibrary Comparators {\n function lt(uint256 a, uint256 b) internal pure returns (bool) {\n return a < b;\n }\n\n function gt(uint256 a, uint256 b) internal pure returns (bool) {\n return a > b;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/cryptography/ECDSA.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n *\n * These functions can be used to verify that a message was signed by the holder\n * of the private keys of a given address.\n */\nlibrary ECDSA {\n enum RecoverError {\n NoError,\n InvalidSignature,\n InvalidSignatureLength,\n InvalidSignatureS\n }\n\n /**\n * @dev The signature derives the `address(0)`.\n */\n error ECDSAInvalidSignature();\n\n /**\n * @dev The signature has an invalid length.\n */\n error ECDSAInvalidSignatureLength(uint256 length);\n\n /**\n * @dev The signature has an S value that is in the upper half order.\n */\n error ECDSAInvalidSignatureS(bytes32 s);\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n * return address(0) without also returning an error description. Errors are documented using an enum (error type)\n * and a bytes32 providing additional information about the error.\n *\n * If no error is returned, then the address can be used for verification purposes.\n *\n * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n *\n * Documentation for signature generation:\n * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n */\n function tryRecover(\n bytes32 hash,\n bytes memory signature\n ) internal pure returns (address recovered, RecoverError err, bytes32 errArg) {\n if (signature.length == 65) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n // ecrecover takes the signature parameters, and the only way to get them\n // currently is to use assembly.\n assembly (\"memory-safe\") {\n r := mload(add(signature, 0x20))\n s := mload(add(signature, 0x40))\n v := byte(0, mload(add(signature, 0x60)))\n }\n return tryRecover(hash, v, r, s);\n } else {\n return (address(0), RecoverError.InvalidSignatureLength, bytes32(signature.length));\n }\n }\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with\n * `signature`. This address can then be used for verification purposes.\n *\n * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n */\n function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, signature);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n *\n * See https://eips.ethereum.org/EIPS/eip-2098[ERC-2098 short signatures]\n */\n function tryRecover(\n bytes32 hash,\n bytes32 r,\n bytes32 vs\n ) internal pure returns (address recovered, RecoverError err, bytes32 errArg) {\n unchecked {\n bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);\n // We do not check for an overflow here since the shift operation results in 0 or 1.\n uint8 v = uint8((uint256(vs) >> 255) + 27);\n return tryRecover(hash, v, r, s);\n }\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n */\n function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, r, vs);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function tryRecover(\n bytes32 hash,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal pure returns (address recovered, RecoverError err, bytes32 errArg) {\n // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature\n // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines\n // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most\n // signatures from current libraries generate a unique signature with an s-value in the lower half order.\n //\n // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value\n // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or\n // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept\n // these malleable signatures as well.\n if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {\n return (address(0), RecoverError.InvalidSignatureS, s);\n }\n\n // If the signature is valid (and not malleable), return the signer address\n address signer = ecrecover(hash, v, r, s);\n if (signer == address(0)) {\n return (address(0), RecoverError.InvalidSignature, bytes32(0));\n }\n\n return (signer, RecoverError.NoError, bytes32(0));\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, v, r, s);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Optionally reverts with the corresponding custom error according to the `error` argument provided.\n */\n function _throwError(RecoverError error, bytes32 errorArg) private pure {\n if (error == RecoverError.NoError) {\n return; // no error: do nothing\n } else if (error == RecoverError.InvalidSignature) {\n revert ECDSAInvalidSignature();\n } else if (error == RecoverError.InvalidSignatureLength) {\n revert ECDSAInvalidSignatureLength(uint256(errorArg));\n } else if (error == RecoverError.InvalidSignatureS) {\n revert ECDSAInvalidSignatureS(errorArg);\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/cryptography/MessageHashUtils.sol)\n\npragma solidity ^0.8.20;\n\nimport {Strings} from \"../Strings.sol\";\n\n/**\n * @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.\n *\n * The library provides methods for generating a hash of a message that conforms to the\n * https://eips.ethereum.org/EIPS/eip-191[ERC-191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]\n * specifications.\n */\nlibrary MessageHashUtils {\n /**\n * @dev Returns the keccak256 digest of an ERC-191 signed data with version\n * `0x45` (`personal_sign` messages).\n *\n * The digest is calculated by prefixing a bytes32 `messageHash` with\n * `\"\\x19Ethereum Signed Message:\\n32\"` and hashing the result. It corresponds with the\n * hash signed when using the https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sign[`eth_sign`] JSON-RPC method.\n *\n * NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with\n * keccak256, although any bytes32 value can be safely used because the final digest will\n * be re-hashed.\n *\n * See {ECDSA-recover}.\n */\n function toEthSignedMessageHash(bytes32 messageHash) internal pure returns (bytes32 digest) {\n assembly (\"memory-safe\") {\n mstore(0x00, \"\\x19Ethereum Signed Message:\\n32\") // 32 is the bytes-length of messageHash\n mstore(0x1c, messageHash) // 0x1c (28) is the length of the prefix\n digest := keccak256(0x00, 0x3c) // 0x3c is the length of the prefix (0x1c) + messageHash (0x20)\n }\n }\n\n /**\n * @dev Returns the keccak256 digest of an ERC-191 signed data with version\n * `0x45` (`personal_sign` messages).\n *\n * The digest is calculated by prefixing an arbitrary `message` with\n * `\"\\x19Ethereum Signed Message:\\n\" + len(message)` and hashing the result. It corresponds with the\n * hash signed when using the https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sign[`eth_sign`] JSON-RPC method.\n *\n * See {ECDSA-recover}.\n */\n function toEthSignedMessageHash(bytes memory message) internal pure returns (bytes32) {\n return\n keccak256(bytes.concat(\"\\x19Ethereum Signed Message:\\n\", bytes(Strings.toString(message.length)), message));\n }\n\n /**\n * @dev Returns the keccak256 digest of an ERC-191 signed data with version\n * `0x00` (data with intended validator).\n *\n * The digest is calculated by prefixing an arbitrary `data` with `\"\\x19\\x00\"` and the intended\n * `validator` address. Then hashing the result.\n *\n * See {ECDSA-recover}.\n */\n function toDataWithIntendedValidatorHash(address validator, bytes memory data) internal pure returns (bytes32) {\n return keccak256(abi.encodePacked(hex\"19_00\", validator, data));\n }\n\n /**\n * @dev Variant of {toDataWithIntendedValidatorHash-address-bytes} optimized for cases where `data` is a bytes32.\n */\n function toDataWithIntendedValidatorHash(\n address validator,\n bytes32 messageHash\n ) internal pure returns (bytes32 digest) {\n assembly (\"memory-safe\") {\n mstore(0x00, hex\"19_00\")\n mstore(0x02, shl(96, validator))\n mstore(0x16, messageHash)\n digest := keccak256(0x00, 0x36)\n }\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-712 typed data (ERC-191 version `0x01`).\n *\n * The digest is calculated from a `domainSeparator` and a `structHash`, by prefixing them with\n * `\\x19\\x01` and hashing the result. It corresponds to the hash signed by the\n * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] JSON-RPC method as part of EIP-712.\n *\n * See {ECDSA-recover}.\n */\n function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32 digest) {\n assembly (\"memory-safe\") {\n let ptr := mload(0x40)\n mstore(ptr, hex\"19_01\")\n mstore(add(ptr, 0x02), domainSeparator)\n mstore(add(ptr, 0x22), structHash)\n digest := keccak256(ptr, 0x42)\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/ERC165.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC165} from \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n * for the additional interface id that will be supported. For example:\n *\n * ```solidity\n * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n * }\n * ```\n */\nabstract contract ERC165 is IERC165 {\n /**\n * @dev See {IERC165-supportsInterface}.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual returns (bool) {\n return interfaceId == type(IERC165).interfaceId;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/introspection/IERC165.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC-165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[ERC].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n" + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\nimport {Panic} from \"../Panic.sol\";\nimport {SafeCast} from \"./SafeCast.sol\";\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Return the 512-bit addition of two uint256.\n *\n * The result is stored in two 256 variables such that sum = high * 2²⁵⁶ + low.\n */\n function add512(uint256 a, uint256 b) internal pure returns (uint256 high, uint256 low) {\n assembly (\"memory-safe\") {\n low := add(a, b)\n high := lt(low, a)\n }\n }\n\n /**\n * @dev Return the 512-bit multiplication of two uint256.\n *\n * The result is stored in two 256 variables such that product = high * 2²⁵⁶ + low.\n */\n function mul512(uint256 a, uint256 b) internal pure returns (uint256 high, uint256 low) {\n // 512-bit multiply [high low] = x * y. Compute the product mod 2²⁵⁶ and mod 2²⁵⁶ - 1, then use\n // the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = high * 2²⁵⁶ + low.\n assembly (\"memory-safe\") {\n let mm := mulmod(a, b, not(0))\n low := mul(a, b)\n high := sub(sub(mm, low), lt(mm, low))\n }\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with a success flag (no overflow).\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n uint256 c = a + b;\n success = c >= a;\n result = c * SafeCast.toUint(success);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with a success flag (no overflow).\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n uint256 c = a - b;\n success = c <= a;\n result = c * SafeCast.toUint(success);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with a success flag (no overflow).\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n uint256 c = a * b;\n assembly (\"memory-safe\") {\n // Only true when the multiplication doesn't overflow\n // (c / a == b) || (a == 0)\n success := or(eq(div(c, a), b), iszero(a))\n }\n // equivalent to: success ? c : 0\n result = c * SafeCast.toUint(success);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a success flag (no division by zero).\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n success = b > 0;\n assembly (\"memory-safe\") {\n // The `DIV` opcode returns zero when the denominator is 0.\n result := div(a, b)\n }\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero).\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool success, uint256 result) {\n unchecked {\n success = b > 0;\n assembly (\"memory-safe\") {\n // The `MOD` opcode returns zero when the denominator is 0.\n result := mod(a, b)\n }\n }\n }\n\n /**\n * @dev Unsigned saturating addition, bounds to `2²⁵⁶ - 1` instead of overflowing.\n */\n function saturatingAdd(uint256 a, uint256 b) internal pure returns (uint256) {\n (bool success, uint256 result) = tryAdd(a, b);\n return ternary(success, result, type(uint256).max);\n }\n\n /**\n * @dev Unsigned saturating subtraction, bounds to zero instead of overflowing.\n */\n function saturatingSub(uint256 a, uint256 b) internal pure returns (uint256) {\n (, uint256 result) = trySub(a, b);\n return result;\n }\n\n /**\n * @dev Unsigned saturating multiplication, bounds to `2²⁵⁶ - 1` instead of overflowing.\n */\n function saturatingMul(uint256 a, uint256 b) internal pure returns (uint256) {\n (bool success, uint256 result) = tryMul(a, b);\n return ternary(success, result, type(uint256).max);\n }\n\n /**\n * @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n *\n * IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n * However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n * one branch when needed, making this function more expensive.\n */\n function ternary(bool condition, uint256 a, uint256 b) internal pure returns (uint256) {\n unchecked {\n // branchless ternary works because:\n // b ^ (a ^ b) == a\n // b ^ 0 == b\n return b ^ ((a ^ b) * SafeCast.toUint(condition));\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return ternary(a > b, a, b);\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return ternary(a < b, a, b);\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n\n // The following calculation ensures accurate ceiling division without overflow.\n // Since a is non-zero, (a - 1) / b will not overflow.\n // The largest possible result occurs when (a - 1) / b is type(uint256).max,\n // but the largest value we can obtain is type(uint256).max - 1, which happens\n // when a = type(uint256).max and b = 1.\n unchecked {\n return SafeCast.toUint(a > 0) * ((a - 1) / b + 1);\n }\n }\n\n /**\n * @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n *\n * Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n (uint256 high, uint256 low) = mul512(x, y);\n\n // Handle non-overflow cases, 256 by 256 division.\n if (high == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return low / denominator;\n }\n\n // Make sure the result is less than 2²⁵⁶. Also prevents denominator == 0.\n if (denominator <= high) {\n Panic.panic(ternary(denominator == 0, Panic.DIVISION_BY_ZERO, Panic.UNDER_OVERFLOW));\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [high low].\n uint256 remainder;\n assembly (\"memory-safe\") {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n high := sub(high, gt(remainder, low))\n low := sub(low, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\n assembly (\"memory-safe\") {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [high low] by twos.\n low := div(low, twos)\n\n // Flip twos such that it is 2²⁵⁶ / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from high into low.\n low |= high * twos;\n\n // Invert denominator mod 2²⁵⁶. Now that denominator is an odd number, it has an inverse modulo 2²⁵⁶ such\n // that denominator * inv ≡ 1 mod 2²⁵⁶. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv ≡ 1 mod 2⁴.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2¹⁶\n inverse *= 2 - denominator * inverse; // inverse mod 2³²\n inverse *= 2 - denominator * inverse; // inverse mod 2⁶⁴\n inverse *= 2 - denominator * inverse; // inverse mod 2¹²⁸\n inverse *= 2 - denominator * inverse; // inverse mod 2²⁵⁶\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2²⁵⁶. Since the preconditions guarantee that the outcome is\n // less than 2²⁵⁶, this is the final result. We don't need to compute the high bits of the result and high\n // is no longer required.\n result = low * inverse;\n return result;\n }\n }\n\n /**\n * @dev Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n return mulDiv(x, y, denominator) + SafeCast.toUint(unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0);\n }\n\n /**\n * @dev Calculates floor(x * y >> n) with full precision. Throws if result overflows a uint256.\n */\n function mulShr(uint256 x, uint256 y, uint8 n) internal pure returns (uint256 result) {\n unchecked {\n (uint256 high, uint256 low) = mul512(x, y);\n if (high >= 1 << n) {\n Panic.panic(Panic.UNDER_OVERFLOW);\n }\n return (high << (256 - n)) | (low >> n);\n }\n }\n\n /**\n * @dev Calculates x * y >> n with full precision, following the selected rounding direction.\n */\n function mulShr(uint256 x, uint256 y, uint8 n, Rounding rounding) internal pure returns (uint256) {\n return mulShr(x, y, n) + SafeCast.toUint(unsignedRoundsUp(rounding) && mulmod(x, y, 1 << n) > 0);\n }\n\n /**\n * @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n *\n * If n is a prime, then Z/nZ is a field. In that case all elements are inversible, except 0.\n * If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n *\n * If the input value is not inversible, 0 is returned.\n *\n * NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Fermat's little theorem and get the\n * inverse using `Math.modExp(a, n - 2, n)`. See {invModPrime}.\n */\n function invMod(uint256 a, uint256 n) internal pure returns (uint256) {\n unchecked {\n if (n == 0) return 0;\n\n // The inverse modulo is calculated using the Extended Euclidean Algorithm (iterative version)\n // Used to compute integers x and y such that: ax + ny = gcd(a, n).\n // When the gcd is 1, then the inverse of a modulo n exists and it's x.\n // ax + ny = 1\n // ax = 1 + (-y)n\n // ax ≡ 1 (mod n) # x is the inverse of a modulo n\n\n // If the remainder is 0 the gcd is n right away.\n uint256 remainder = a % n;\n uint256 gcd = n;\n\n // Therefore the initial coefficients are:\n // ax + ny = gcd(a, n) = n\n // 0a + 1n = n\n int256 x = 0;\n int256 y = 1;\n\n while (remainder != 0) {\n uint256 quotient = gcd / remainder;\n\n (gcd, remainder) = (\n // The old remainder is the next gcd to try.\n remainder,\n // Compute the next remainder.\n // Can't overflow given that (a % gcd) * (gcd // (a % gcd)) <= gcd\n // where gcd is at most n (capped to type(uint256).max)\n gcd - remainder * quotient\n );\n\n (x, y) = (\n // Increment the coefficient of a.\n y,\n // Decrement the coefficient of n.\n // Can overflow, but the result is casted to uint256 so that the\n // next value of y is \"wrapped around\" to a value between 0 and n - 1.\n x - y * int256(quotient)\n );\n }\n\n if (gcd != 1) return 0; // No inverse exists.\n return ternary(x < 0, n - uint256(-x), uint256(x)); // Wrap the result if it's negative.\n }\n }\n\n /**\n * @dev Variant of {invMod}. More efficient, but only works if `p` is known to be a prime greater than `2`.\n *\n * From https://en.wikipedia.org/wiki/Fermat%27s_little_theorem[Fermat's little theorem], we know that if p is\n * prime, then `a**(p-1) ≡ 1 mod p`. As a consequence, we have `a * a**(p-2) ≡ 1 mod p`, which means that\n * `a**(p-2)` is the modular multiplicative inverse of a in Fp.\n *\n * NOTE: this function does NOT check that `p` is a prime greater than `2`.\n */\n function invModPrime(uint256 a, uint256 p) internal view returns (uint256) {\n unchecked {\n return Math.modExp(a, p - 2, p);\n }\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n *\n * Requirements:\n * - modulus can't be zero\n * - underlying staticcall to precompile must succeed\n *\n * IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n * sure the chain you're using it on supports the precompiled contract for modular exponentiation\n * at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n * the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n * interpreted as 0.\n */\n function modExp(uint256 b, uint256 e, uint256 m) internal view returns (uint256) {\n (bool success, uint256 result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n * It includes a success flag indicating if the operation succeeded. Operation will be marked as failed if trying\n * to operate modulo 0 or if the underlying precompile reverted.\n *\n * IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n * you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n * https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n * of a revert, but the result may be incorrectly interpreted as 0.\n */\n function tryModExp(uint256 b, uint256 e, uint256 m) internal view returns (bool success, uint256 result) {\n if (m == 0) return (false, 0);\n assembly (\"memory-safe\") {\n let ptr := mload(0x40)\n // | Offset | Content | Content (Hex) |\n // |-----------|------------|--------------------------------------------------------------------|\n // | 0x00:0x1f | size of b | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x20:0x3f | size of e | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x40:0x5f | size of m | 0x0000000000000000000000000000000000000000000000000000000000000020 |\n // | 0x60:0x7f | value of b | 0x<.............................................................b> |\n // | 0x80:0x9f | value of e | 0x<.............................................................e> |\n // | 0xa0:0xbf | value of m | 0x<.............................................................m> |\n mstore(ptr, 0x20)\n mstore(add(ptr, 0x20), 0x20)\n mstore(add(ptr, 0x40), 0x20)\n mstore(add(ptr, 0x60), b)\n mstore(add(ptr, 0x80), e)\n mstore(add(ptr, 0xa0), m)\n\n // Given the result < m, it's guaranteed to fit in 32 bytes,\n // so we can use the memory scratch space located at offset 0.\n success := staticcall(gas(), 0x05, ptr, 0xc0, 0x00, 0x20)\n result := mload(0x00)\n }\n }\n\n /**\n * @dev Variant of {modExp} that supports inputs of arbitrary length.\n */\n function modExp(bytes memory b, bytes memory e, bytes memory m) internal view returns (bytes memory) {\n (bool success, bytes memory result) = tryModExp(b, e, m);\n if (!success) {\n Panic.panic(Panic.DIVISION_BY_ZERO);\n }\n return result;\n }\n\n /**\n * @dev Variant of {tryModExp} that supports inputs of arbitrary length.\n */\n function tryModExp(\n bytes memory b,\n bytes memory e,\n bytes memory m\n ) internal view returns (bool success, bytes memory result) {\n if (_zeroBytes(m)) return (false, new bytes(0));\n\n uint256 mLen = m.length;\n\n // Encode call args in result and move the free memory pointer\n result = abi.encodePacked(b.length, e.length, mLen, b, e, m);\n\n assembly (\"memory-safe\") {\n let dataPtr := add(result, 0x20)\n // Write result on top of args to avoid allocating extra memory.\n success := staticcall(gas(), 0x05, dataPtr, mload(result), dataPtr, mLen)\n // Overwrite the length.\n // result.length > returndatasize() is guaranteed because returndatasize() == m.length\n mstore(result, mLen)\n // Set the memory pointer after the returned data.\n mstore(0x40, add(dataPtr, mLen))\n }\n }\n\n /**\n * @dev Returns whether the provided byte array is zero.\n */\n function _zeroBytes(bytes memory byteArray) private pure returns (bool) {\n for (uint256 i = 0; i < byteArray.length; ++i) {\n if (byteArray[i] != 0) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n * using integer operations.\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n unchecked {\n // Take care of easy edge cases when a == 0 or a == 1\n if (a <= 1) {\n return a;\n }\n\n // In this function, we use Newton's method to get a root of `f(x) := x² - a`. It involves building a\n // sequence x_n that converges toward sqrt(a). For each iteration x_n, we also define the error between\n // the current value as `ε_n = | x_n - sqrt(a) |`.\n //\n // For our first estimation, we consider `e` the smallest power of 2 which is bigger than the square root\n // of the target. (i.e. `2**(e-1) ≤ sqrt(a) < 2**e`). We know that `e ≤ 128` because `(2¹²⁸)² = 2²⁵⁶` is\n // bigger than any uint256.\n //\n // By noticing that\n // `2**(e-1) ≤ sqrt(a) < 2**e → (2**(e-1))² ≤ a < (2**e)² → 2**(2*e-2) ≤ a < 2**(2*e)`\n // we can deduce that `e - 1` is `log2(a) / 2`. We can thus compute `x_n = 2**(e-1)` using a method similar\n // to the msb function.\n uint256 aa = a;\n uint256 xn = 1;\n\n if (aa >= (1 << 128)) {\n aa >>= 128;\n xn <<= 64;\n }\n if (aa >= (1 << 64)) {\n aa >>= 64;\n xn <<= 32;\n }\n if (aa >= (1 << 32)) {\n aa >>= 32;\n xn <<= 16;\n }\n if (aa >= (1 << 16)) {\n aa >>= 16;\n xn <<= 8;\n }\n if (aa >= (1 << 8)) {\n aa >>= 8;\n xn <<= 4;\n }\n if (aa >= (1 << 4)) {\n aa >>= 4;\n xn <<= 2;\n }\n if (aa >= (1 << 2)) {\n xn <<= 1;\n }\n\n // We now have x_n such that `x_n = 2**(e-1) ≤ sqrt(a) < 2**e = 2 * x_n`. This implies ε_n ≤ 2**(e-1).\n //\n // We can refine our estimation by noticing that the middle of that interval minimizes the error.\n // If we move x_n to equal 2**(e-1) + 2**(e-2), then we reduce the error to ε_n ≤ 2**(e-2).\n // This is going to be our x_0 (and ε_0)\n xn = (3 * xn) >> 1; // ε_0 := | x_0 - sqrt(a) | ≤ 2**(e-2)\n\n // From here, Newton's method give us:\n // x_{n+1} = (x_n + a / x_n) / 2\n //\n // One should note that:\n // x_{n+1}² - a = ((x_n + a / x_n) / 2)² - a\n // = ((x_n² + a) / (2 * x_n))² - a\n // = (x_n⁴ + 2 * a * x_n² + a²) / (4 * x_n²) - a\n // = (x_n⁴ + 2 * a * x_n² + a² - 4 * a * x_n²) / (4 * x_n²)\n // = (x_n⁴ - 2 * a * x_n² + a²) / (4 * x_n²)\n // = (x_n² - a)² / (2 * x_n)²\n // = ((x_n² - a) / (2 * x_n))²\n // ≥ 0\n // Which proves that for all n ≥ 1, sqrt(a) ≤ x_n\n //\n // This gives us the proof of quadratic convergence of the sequence:\n // ε_{n+1} = | x_{n+1} - sqrt(a) |\n // = | (x_n + a / x_n) / 2 - sqrt(a) |\n // = | (x_n² + a - 2*x_n*sqrt(a)) / (2 * x_n) |\n // = | (x_n - sqrt(a))² / (2 * x_n) |\n // = | ε_n² / (2 * x_n) |\n // = ε_n² / | (2 * x_n) |\n //\n // For the first iteration, we have a special case where x_0 is known:\n // ε_1 = ε_0² / | (2 * x_0) |\n // ≤ (2**(e-2))² / (2 * (2**(e-1) + 2**(e-2)))\n // ≤ 2**(2*e-4) / (3 * 2**(e-1))\n // ≤ 2**(e-3) / 3\n // ≤ 2**(e-3-log2(3))\n // ≤ 2**(e-4.5)\n //\n // For the following iterations, we use the fact that, 2**(e-1) ≤ sqrt(a) ≤ x_n:\n // ε_{n+1} = ε_n² / | (2 * x_n) |\n // ≤ (2**(e-k))² / (2 * 2**(e-1))\n // ≤ 2**(2*e-2*k) / 2**e\n // ≤ 2**(e-2*k)\n xn = (xn + a / xn) >> 1; // ε_1 := | x_1 - sqrt(a) | ≤ 2**(e-4.5) -- special case, see above\n xn = (xn + a / xn) >> 1; // ε_2 := | x_2 - sqrt(a) | ≤ 2**(e-9) -- general case with k = 4.5\n xn = (xn + a / xn) >> 1; // ε_3 := | x_3 - sqrt(a) | ≤ 2**(e-18) -- general case with k = 9\n xn = (xn + a / xn) >> 1; // ε_4 := | x_4 - sqrt(a) | ≤ 2**(e-36) -- general case with k = 18\n xn = (xn + a / xn) >> 1; // ε_5 := | x_5 - sqrt(a) | ≤ 2**(e-72) -- general case with k = 36\n xn = (xn + a / xn) >> 1; // ε_6 := | x_6 - sqrt(a) | ≤ 2**(e-144) -- general case with k = 72\n\n // Because e ≤ 128 (as discussed during the first estimation phase), we know have reached a precision\n // ε_6 ≤ 2**(e-144) < 1. Given we're operating on integers, then we can ensure that xn is now either\n // sqrt(a) or sqrt(a) + 1.\n return xn - SafeCast.toUint(xn > a / xn);\n }\n }\n\n /**\n * @dev Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && result * result < a);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 x) internal pure returns (uint256 r) {\n // If value has upper 128 bits set, log2 result is at least 128\n r = SafeCast.toUint(x > 0xffffffffffffffffffffffffffffffff) << 7;\n // If upper 64 bits of 128-bit half set, add 64 to result\n r |= SafeCast.toUint((x >> r) > 0xffffffffffffffff) << 6;\n // If upper 32 bits of 64-bit half set, add 32 to result\n r |= SafeCast.toUint((x >> r) > 0xffffffff) << 5;\n // If upper 16 bits of 32-bit half set, add 16 to result\n r |= SafeCast.toUint((x >> r) > 0xffff) << 4;\n // If upper 8 bits of 16-bit half set, add 8 to result\n r |= SafeCast.toUint((x >> r) > 0xff) << 3;\n // If upper 4 bits of 8-bit half set, add 4 to result\n r |= SafeCast.toUint((x >> r) > 0xf) << 2;\n\n // Shifts value right by the current result and use it as an index into this lookup table:\n //\n // | x (4 bits) | index | table[index] = MSB position |\n // |------------|---------|-----------------------------|\n // | 0000 | 0 | table[0] = 0 |\n // | 0001 | 1 | table[1] = 0 |\n // | 0010 | 2 | table[2] = 1 |\n // | 0011 | 3 | table[3] = 1 |\n // | 0100 | 4 | table[4] = 2 |\n // | 0101 | 5 | table[5] = 2 |\n // | 0110 | 6 | table[6] = 2 |\n // | 0111 | 7 | table[7] = 2 |\n // | 1000 | 8 | table[8] = 3 |\n // | 1001 | 9 | table[9] = 3 |\n // | 1010 | 10 | table[10] = 3 |\n // | 1011 | 11 | table[11] = 3 |\n // | 1100 | 12 | table[12] = 3 |\n // | 1101 | 13 | table[13] = 3 |\n // | 1110 | 14 | table[14] = 3 |\n // | 1111 | 15 | table[15] = 3 |\n //\n // The lookup table is represented as a 32-byte value with the MSB positions for 0-15 in the last 16 bytes.\n assembly (\"memory-safe\") {\n r := or(r, byte(shr(r, x), 0x0000010102020202030303030303030300000000000000000000000000000000))\n }\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << result < value);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && 10 ** result < value);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 x) internal pure returns (uint256 r) {\n // If value has upper 128 bits set, log2 result is at least 128\n r = SafeCast.toUint(x > 0xffffffffffffffffffffffffffffffff) << 7;\n // If upper 64 bits of 128-bit half set, add 64 to result\n r |= SafeCast.toUint((x >> r) > 0xffffffffffffffff) << 6;\n // If upper 32 bits of 64-bit half set, add 32 to result\n r |= SafeCast.toUint((x >> r) > 0xffffffff) << 5;\n // If upper 16 bits of 32-bit half set, add 16 to result\n r |= SafeCast.toUint((x >> r) > 0xffff) << 4;\n // Add 1 if upper 8 bits of 16-bit half set, and divide accumulated result by 8\n return (r >> 3) | SafeCast.toUint((x >> r) > 0xff);\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + SafeCast.toUint(unsignedRoundsUp(rounding) && 1 << (result << 3) < value);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n" + }, + "@openzeppelin/contracts/utils/math/SafeCast.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/SafeCast.sol)\n// This file was procedurally generated from scripts/generate/templates/SafeCast.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow\n * checks.\n *\n * Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n * easily result in undesired exploitation or bugs, since developers usually\n * assume that overflows raise errors. `SafeCast` restores this intuition by\n * reverting the transaction when such an operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeCast {\n /**\n * @dev Value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value);\n\n /**\n * @dev An int value doesn't fit in an uint of `bits` size.\n */\n error SafeCastOverflowedIntToUint(int256 value);\n\n /**\n * @dev Value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedIntDowncast(uint8 bits, int256 value);\n\n /**\n * @dev An uint value doesn't fit in an int of `bits` size.\n */\n error SafeCastOverflowedUintToInt(uint256 value);\n\n /**\n * @dev Returns the downcasted uint248 from uint256, reverting on\n * overflow (when the input is greater than largest uint248).\n *\n * Counterpart to Solidity's `uint248` operator.\n *\n * Requirements:\n *\n * - input must fit into 248 bits\n */\n function toUint248(uint256 value) internal pure returns (uint248) {\n if (value > type(uint248).max) {\n revert SafeCastOverflowedUintDowncast(248, value);\n }\n return uint248(value);\n }\n\n /**\n * @dev Returns the downcasted uint240 from uint256, reverting on\n * overflow (when the input is greater than largest uint240).\n *\n * Counterpart to Solidity's `uint240` operator.\n *\n * Requirements:\n *\n * - input must fit into 240 bits\n */\n function toUint240(uint256 value) internal pure returns (uint240) {\n if (value > type(uint240).max) {\n revert SafeCastOverflowedUintDowncast(240, value);\n }\n return uint240(value);\n }\n\n /**\n * @dev Returns the downcasted uint232 from uint256, reverting on\n * overflow (when the input is greater than largest uint232).\n *\n * Counterpart to Solidity's `uint232` operator.\n *\n * Requirements:\n *\n * - input must fit into 232 bits\n */\n function toUint232(uint256 value) internal pure returns (uint232) {\n if (value > type(uint232).max) {\n revert SafeCastOverflowedUintDowncast(232, value);\n }\n return uint232(value);\n }\n\n /**\n * @dev Returns the downcasted uint224 from uint256, reverting on\n * overflow (when the input is greater than largest uint224).\n *\n * Counterpart to Solidity's `uint224` operator.\n *\n * Requirements:\n *\n * - input must fit into 224 bits\n */\n function toUint224(uint256 value) internal pure returns (uint224) {\n if (value > type(uint224).max) {\n revert SafeCastOverflowedUintDowncast(224, value);\n }\n return uint224(value);\n }\n\n /**\n * @dev Returns the downcasted uint216 from uint256, reverting on\n * overflow (when the input is greater than largest uint216).\n *\n * Counterpart to Solidity's `uint216` operator.\n *\n * Requirements:\n *\n * - input must fit into 216 bits\n */\n function toUint216(uint256 value) internal pure returns (uint216) {\n if (value > type(uint216).max) {\n revert SafeCastOverflowedUintDowncast(216, value);\n }\n return uint216(value);\n }\n\n /**\n * @dev Returns the downcasted uint208 from uint256, reverting on\n * overflow (when the input is greater than largest uint208).\n *\n * Counterpart to Solidity's `uint208` operator.\n *\n * Requirements:\n *\n * - input must fit into 208 bits\n */\n function toUint208(uint256 value) internal pure returns (uint208) {\n if (value > type(uint208).max) {\n revert SafeCastOverflowedUintDowncast(208, value);\n }\n return uint208(value);\n }\n\n /**\n * @dev Returns the downcasted uint200 from uint256, reverting on\n * overflow (when the input is greater than largest uint200).\n *\n * Counterpart to Solidity's `uint200` operator.\n *\n * Requirements:\n *\n * - input must fit into 200 bits\n */\n function toUint200(uint256 value) internal pure returns (uint200) {\n if (value > type(uint200).max) {\n revert SafeCastOverflowedUintDowncast(200, value);\n }\n return uint200(value);\n }\n\n /**\n * @dev Returns the downcasted uint192 from uint256, reverting on\n * overflow (when the input is greater than largest uint192).\n *\n * Counterpart to Solidity's `uint192` operator.\n *\n * Requirements:\n *\n * - input must fit into 192 bits\n */\n function toUint192(uint256 value) internal pure returns (uint192) {\n if (value > type(uint192).max) {\n revert SafeCastOverflowedUintDowncast(192, value);\n }\n return uint192(value);\n }\n\n /**\n * @dev Returns the downcasted uint184 from uint256, reverting on\n * overflow (when the input is greater than largest uint184).\n *\n * Counterpart to Solidity's `uint184` operator.\n *\n * Requirements:\n *\n * - input must fit into 184 bits\n */\n function toUint184(uint256 value) internal pure returns (uint184) {\n if (value > type(uint184).max) {\n revert SafeCastOverflowedUintDowncast(184, value);\n }\n return uint184(value);\n }\n\n /**\n * @dev Returns the downcasted uint176 from uint256, reverting on\n * overflow (when the input is greater than largest uint176).\n *\n * Counterpart to Solidity's `uint176` operator.\n *\n * Requirements:\n *\n * - input must fit into 176 bits\n */\n function toUint176(uint256 value) internal pure returns (uint176) {\n if (value > type(uint176).max) {\n revert SafeCastOverflowedUintDowncast(176, value);\n }\n return uint176(value);\n }\n\n /**\n * @dev Returns the downcasted uint168 from uint256, reverting on\n * overflow (when the input is greater than largest uint168).\n *\n * Counterpart to Solidity's `uint168` operator.\n *\n * Requirements:\n *\n * - input must fit into 168 bits\n */\n function toUint168(uint256 value) internal pure returns (uint168) {\n if (value > type(uint168).max) {\n revert SafeCastOverflowedUintDowncast(168, value);\n }\n return uint168(value);\n }\n\n /**\n * @dev Returns the downcasted uint160 from uint256, reverting on\n * overflow (when the input is greater than largest uint160).\n *\n * Counterpart to Solidity's `uint160` operator.\n *\n * Requirements:\n *\n * - input must fit into 160 bits\n */\n function toUint160(uint256 value) internal pure returns (uint160) {\n if (value > type(uint160).max) {\n revert SafeCastOverflowedUintDowncast(160, value);\n }\n return uint160(value);\n }\n\n /**\n * @dev Returns the downcasted uint152 from uint256, reverting on\n * overflow (when the input is greater than largest uint152).\n *\n * Counterpart to Solidity's `uint152` operator.\n *\n * Requirements:\n *\n * - input must fit into 152 bits\n */\n function toUint152(uint256 value) internal pure returns (uint152) {\n if (value > type(uint152).max) {\n revert SafeCastOverflowedUintDowncast(152, value);\n }\n return uint152(value);\n }\n\n /**\n * @dev Returns the downcasted uint144 from uint256, reverting on\n * overflow (when the input is greater than largest uint144).\n *\n * Counterpart to Solidity's `uint144` operator.\n *\n * Requirements:\n *\n * - input must fit into 144 bits\n */\n function toUint144(uint256 value) internal pure returns (uint144) {\n if (value > type(uint144).max) {\n revert SafeCastOverflowedUintDowncast(144, value);\n }\n return uint144(value);\n }\n\n /**\n * @dev Returns the downcasted uint136 from uint256, reverting on\n * overflow (when the input is greater than largest uint136).\n *\n * Counterpart to Solidity's `uint136` operator.\n *\n * Requirements:\n *\n * - input must fit into 136 bits\n */\n function toUint136(uint256 value) internal pure returns (uint136) {\n if (value > type(uint136).max) {\n revert SafeCastOverflowedUintDowncast(136, value);\n }\n return uint136(value);\n }\n\n /**\n * @dev Returns the downcasted uint128 from uint256, reverting on\n * overflow (when the input is greater than largest uint128).\n *\n * Counterpart to Solidity's `uint128` operator.\n *\n * Requirements:\n *\n * - input must fit into 128 bits\n */\n function toUint128(uint256 value) internal pure returns (uint128) {\n if (value > type(uint128).max) {\n revert SafeCastOverflowedUintDowncast(128, value);\n }\n return uint128(value);\n }\n\n /**\n * @dev Returns the downcasted uint120 from uint256, reverting on\n * overflow (when the input is greater than largest uint120).\n *\n * Counterpart to Solidity's `uint120` operator.\n *\n * Requirements:\n *\n * - input must fit into 120 bits\n */\n function toUint120(uint256 value) internal pure returns (uint120) {\n if (value > type(uint120).max) {\n revert SafeCastOverflowedUintDowncast(120, value);\n }\n return uint120(value);\n }\n\n /**\n * @dev Returns the downcasted uint112 from uint256, reverting on\n * overflow (when the input is greater than largest uint112).\n *\n * Counterpart to Solidity's `uint112` operator.\n *\n * Requirements:\n *\n * - input must fit into 112 bits\n */\n function toUint112(uint256 value) internal pure returns (uint112) {\n if (value > type(uint112).max) {\n revert SafeCastOverflowedUintDowncast(112, value);\n }\n return uint112(value);\n }\n\n /**\n * @dev Returns the downcasted uint104 from uint256, reverting on\n * overflow (when the input is greater than largest uint104).\n *\n * Counterpart to Solidity's `uint104` operator.\n *\n * Requirements:\n *\n * - input must fit into 104 bits\n */\n function toUint104(uint256 value) internal pure returns (uint104) {\n if (value > type(uint104).max) {\n revert SafeCastOverflowedUintDowncast(104, value);\n }\n return uint104(value);\n }\n\n /**\n * @dev Returns the downcasted uint96 from uint256, reverting on\n * overflow (when the input is greater than largest uint96).\n *\n * Counterpart to Solidity's `uint96` operator.\n *\n * Requirements:\n *\n * - input must fit into 96 bits\n */\n function toUint96(uint256 value) internal pure returns (uint96) {\n if (value > type(uint96).max) {\n revert SafeCastOverflowedUintDowncast(96, value);\n }\n return uint96(value);\n }\n\n /**\n * @dev Returns the downcasted uint88 from uint256, reverting on\n * overflow (when the input is greater than largest uint88).\n *\n * Counterpart to Solidity's `uint88` operator.\n *\n * Requirements:\n *\n * - input must fit into 88 bits\n */\n function toUint88(uint256 value) internal pure returns (uint88) {\n if (value > type(uint88).max) {\n revert SafeCastOverflowedUintDowncast(88, value);\n }\n return uint88(value);\n }\n\n /**\n * @dev Returns the downcasted uint80 from uint256, reverting on\n * overflow (when the input is greater than largest uint80).\n *\n * Counterpart to Solidity's `uint80` operator.\n *\n * Requirements:\n *\n * - input must fit into 80 bits\n */\n function toUint80(uint256 value) internal pure returns (uint80) {\n if (value > type(uint80).max) {\n revert SafeCastOverflowedUintDowncast(80, value);\n }\n return uint80(value);\n }\n\n /**\n * @dev Returns the downcasted uint72 from uint256, reverting on\n * overflow (when the input is greater than largest uint72).\n *\n * Counterpart to Solidity's `uint72` operator.\n *\n * Requirements:\n *\n * - input must fit into 72 bits\n */\n function toUint72(uint256 value) internal pure returns (uint72) {\n if (value > type(uint72).max) {\n revert SafeCastOverflowedUintDowncast(72, value);\n }\n return uint72(value);\n }\n\n /**\n * @dev Returns the downcasted uint64 from uint256, reverting on\n * overflow (when the input is greater than largest uint64).\n *\n * Counterpart to Solidity's `uint64` operator.\n *\n * Requirements:\n *\n * - input must fit into 64 bits\n */\n function toUint64(uint256 value) internal pure returns (uint64) {\n if (value > type(uint64).max) {\n revert SafeCastOverflowedUintDowncast(64, value);\n }\n return uint64(value);\n }\n\n /**\n * @dev Returns the downcasted uint56 from uint256, reverting on\n * overflow (when the input is greater than largest uint56).\n *\n * Counterpart to Solidity's `uint56` operator.\n *\n * Requirements:\n *\n * - input must fit into 56 bits\n */\n function toUint56(uint256 value) internal pure returns (uint56) {\n if (value > type(uint56).max) {\n revert SafeCastOverflowedUintDowncast(56, value);\n }\n return uint56(value);\n }\n\n /**\n * @dev Returns the downcasted uint48 from uint256, reverting on\n * overflow (when the input is greater than largest uint48).\n *\n * Counterpart to Solidity's `uint48` operator.\n *\n * Requirements:\n *\n * - input must fit into 48 bits\n */\n function toUint48(uint256 value) internal pure returns (uint48) {\n if (value > type(uint48).max) {\n revert SafeCastOverflowedUintDowncast(48, value);\n }\n return uint48(value);\n }\n\n /**\n * @dev Returns the downcasted uint40 from uint256, reverting on\n * overflow (when the input is greater than largest uint40).\n *\n * Counterpart to Solidity's `uint40` operator.\n *\n * Requirements:\n *\n * - input must fit into 40 bits\n */\n function toUint40(uint256 value) internal pure returns (uint40) {\n if (value > type(uint40).max) {\n revert SafeCastOverflowedUintDowncast(40, value);\n }\n return uint40(value);\n }\n\n /**\n * @dev Returns the downcasted uint32 from uint256, reverting on\n * overflow (when the input is greater than largest uint32).\n *\n * Counterpart to Solidity's `uint32` operator.\n *\n * Requirements:\n *\n * - input must fit into 32 bits\n */\n function toUint32(uint256 value) internal pure returns (uint32) {\n if (value > type(uint32).max) {\n revert SafeCastOverflowedUintDowncast(32, value);\n }\n return uint32(value);\n }\n\n /**\n * @dev Returns the downcasted uint24 from uint256, reverting on\n * overflow (when the input is greater than largest uint24).\n *\n * Counterpart to Solidity's `uint24` operator.\n *\n * Requirements:\n *\n * - input must fit into 24 bits\n */\n function toUint24(uint256 value) internal pure returns (uint24) {\n if (value > type(uint24).max) {\n revert SafeCastOverflowedUintDowncast(24, value);\n }\n return uint24(value);\n }\n\n /**\n * @dev Returns the downcasted uint16 from uint256, reverting on\n * overflow (when the input is greater than largest uint16).\n *\n * Counterpart to Solidity's `uint16` operator.\n *\n * Requirements:\n *\n * - input must fit into 16 bits\n */\n function toUint16(uint256 value) internal pure returns (uint16) {\n if (value > type(uint16).max) {\n revert SafeCastOverflowedUintDowncast(16, value);\n }\n return uint16(value);\n }\n\n /**\n * @dev Returns the downcasted uint8 from uint256, reverting on\n * overflow (when the input is greater than largest uint8).\n *\n * Counterpart to Solidity's `uint8` operator.\n *\n * Requirements:\n *\n * - input must fit into 8 bits\n */\n function toUint8(uint256 value) internal pure returns (uint8) {\n if (value > type(uint8).max) {\n revert SafeCastOverflowedUintDowncast(8, value);\n }\n return uint8(value);\n }\n\n /**\n * @dev Converts a signed int256 into an unsigned uint256.\n *\n * Requirements:\n *\n * - input must be greater than or equal to 0.\n */\n function toUint256(int256 value) internal pure returns (uint256) {\n if (value < 0) {\n revert SafeCastOverflowedIntToUint(value);\n }\n return uint256(value);\n }\n\n /**\n * @dev Returns the downcasted int248 from int256, reverting on\n * overflow (when the input is less than smallest int248 or\n * greater than largest int248).\n *\n * Counterpart to Solidity's `int248` operator.\n *\n * Requirements:\n *\n * - input must fit into 248 bits\n */\n function toInt248(int256 value) internal pure returns (int248 downcasted) {\n downcasted = int248(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(248, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int240 from int256, reverting on\n * overflow (when the input is less than smallest int240 or\n * greater than largest int240).\n *\n * Counterpart to Solidity's `int240` operator.\n *\n * Requirements:\n *\n * - input must fit into 240 bits\n */\n function toInt240(int256 value) internal pure returns (int240 downcasted) {\n downcasted = int240(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(240, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int232 from int256, reverting on\n * overflow (when the input is less than smallest int232 or\n * greater than largest int232).\n *\n * Counterpart to Solidity's `int232` operator.\n *\n * Requirements:\n *\n * - input must fit into 232 bits\n */\n function toInt232(int256 value) internal pure returns (int232 downcasted) {\n downcasted = int232(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(232, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int224 from int256, reverting on\n * overflow (when the input is less than smallest int224 or\n * greater than largest int224).\n *\n * Counterpart to Solidity's `int224` operator.\n *\n * Requirements:\n *\n * - input must fit into 224 bits\n */\n function toInt224(int256 value) internal pure returns (int224 downcasted) {\n downcasted = int224(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(224, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int216 from int256, reverting on\n * overflow (when the input is less than smallest int216 or\n * greater than largest int216).\n *\n * Counterpart to Solidity's `int216` operator.\n *\n * Requirements:\n *\n * - input must fit into 216 bits\n */\n function toInt216(int256 value) internal pure returns (int216 downcasted) {\n downcasted = int216(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(216, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int208 from int256, reverting on\n * overflow (when the input is less than smallest int208 or\n * greater than largest int208).\n *\n * Counterpart to Solidity's `int208` operator.\n *\n * Requirements:\n *\n * - input must fit into 208 bits\n */\n function toInt208(int256 value) internal pure returns (int208 downcasted) {\n downcasted = int208(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(208, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int200 from int256, reverting on\n * overflow (when the input is less than smallest int200 or\n * greater than largest int200).\n *\n * Counterpart to Solidity's `int200` operator.\n *\n * Requirements:\n *\n * - input must fit into 200 bits\n */\n function toInt200(int256 value) internal pure returns (int200 downcasted) {\n downcasted = int200(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(200, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int192 from int256, reverting on\n * overflow (when the input is less than smallest int192 or\n * greater than largest int192).\n *\n * Counterpart to Solidity's `int192` operator.\n *\n * Requirements:\n *\n * - input must fit into 192 bits\n */\n function toInt192(int256 value) internal pure returns (int192 downcasted) {\n downcasted = int192(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(192, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int184 from int256, reverting on\n * overflow (when the input is less than smallest int184 or\n * greater than largest int184).\n *\n * Counterpart to Solidity's `int184` operator.\n *\n * Requirements:\n *\n * - input must fit into 184 bits\n */\n function toInt184(int256 value) internal pure returns (int184 downcasted) {\n downcasted = int184(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(184, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int176 from int256, reverting on\n * overflow (when the input is less than smallest int176 or\n * greater than largest int176).\n *\n * Counterpart to Solidity's `int176` operator.\n *\n * Requirements:\n *\n * - input must fit into 176 bits\n */\n function toInt176(int256 value) internal pure returns (int176 downcasted) {\n downcasted = int176(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(176, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int168 from int256, reverting on\n * overflow (when the input is less than smallest int168 or\n * greater than largest int168).\n *\n * Counterpart to Solidity's `int168` operator.\n *\n * Requirements:\n *\n * - input must fit into 168 bits\n */\n function toInt168(int256 value) internal pure returns (int168 downcasted) {\n downcasted = int168(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(168, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int160 from int256, reverting on\n * overflow (when the input is less than smallest int160 or\n * greater than largest int160).\n *\n * Counterpart to Solidity's `int160` operator.\n *\n * Requirements:\n *\n * - input must fit into 160 bits\n */\n function toInt160(int256 value) internal pure returns (int160 downcasted) {\n downcasted = int160(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(160, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int152 from int256, reverting on\n * overflow (when the input is less than smallest int152 or\n * greater than largest int152).\n *\n * Counterpart to Solidity's `int152` operator.\n *\n * Requirements:\n *\n * - input must fit into 152 bits\n */\n function toInt152(int256 value) internal pure returns (int152 downcasted) {\n downcasted = int152(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(152, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int144 from int256, reverting on\n * overflow (when the input is less than smallest int144 or\n * greater than largest int144).\n *\n * Counterpart to Solidity's `int144` operator.\n *\n * Requirements:\n *\n * - input must fit into 144 bits\n */\n function toInt144(int256 value) internal pure returns (int144 downcasted) {\n downcasted = int144(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(144, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int136 from int256, reverting on\n * overflow (when the input is less than smallest int136 or\n * greater than largest int136).\n *\n * Counterpart to Solidity's `int136` operator.\n *\n * Requirements:\n *\n * - input must fit into 136 bits\n */\n function toInt136(int256 value) internal pure returns (int136 downcasted) {\n downcasted = int136(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(136, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int128 from int256, reverting on\n * overflow (when the input is less than smallest int128 or\n * greater than largest int128).\n *\n * Counterpart to Solidity's `int128` operator.\n *\n * Requirements:\n *\n * - input must fit into 128 bits\n */\n function toInt128(int256 value) internal pure returns (int128 downcasted) {\n downcasted = int128(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(128, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int120 from int256, reverting on\n * overflow (when the input is less than smallest int120 or\n * greater than largest int120).\n *\n * Counterpart to Solidity's `int120` operator.\n *\n * Requirements:\n *\n * - input must fit into 120 bits\n */\n function toInt120(int256 value) internal pure returns (int120 downcasted) {\n downcasted = int120(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(120, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int112 from int256, reverting on\n * overflow (when the input is less than smallest int112 or\n * greater than largest int112).\n *\n * Counterpart to Solidity's `int112` operator.\n *\n * Requirements:\n *\n * - input must fit into 112 bits\n */\n function toInt112(int256 value) internal pure returns (int112 downcasted) {\n downcasted = int112(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(112, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int104 from int256, reverting on\n * overflow (when the input is less than smallest int104 or\n * greater than largest int104).\n *\n * Counterpart to Solidity's `int104` operator.\n *\n * Requirements:\n *\n * - input must fit into 104 bits\n */\n function toInt104(int256 value) internal pure returns (int104 downcasted) {\n downcasted = int104(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(104, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int96 from int256, reverting on\n * overflow (when the input is less than smallest int96 or\n * greater than largest int96).\n *\n * Counterpart to Solidity's `int96` operator.\n *\n * Requirements:\n *\n * - input must fit into 96 bits\n */\n function toInt96(int256 value) internal pure returns (int96 downcasted) {\n downcasted = int96(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(96, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int88 from int256, reverting on\n * overflow (when the input is less than smallest int88 or\n * greater than largest int88).\n *\n * Counterpart to Solidity's `int88` operator.\n *\n * Requirements:\n *\n * - input must fit into 88 bits\n */\n function toInt88(int256 value) internal pure returns (int88 downcasted) {\n downcasted = int88(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(88, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int80 from int256, reverting on\n * overflow (when the input is less than smallest int80 or\n * greater than largest int80).\n *\n * Counterpart to Solidity's `int80` operator.\n *\n * Requirements:\n *\n * - input must fit into 80 bits\n */\n function toInt80(int256 value) internal pure returns (int80 downcasted) {\n downcasted = int80(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(80, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int72 from int256, reverting on\n * overflow (when the input is less than smallest int72 or\n * greater than largest int72).\n *\n * Counterpart to Solidity's `int72` operator.\n *\n * Requirements:\n *\n * - input must fit into 72 bits\n */\n function toInt72(int256 value) internal pure returns (int72 downcasted) {\n downcasted = int72(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(72, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int64 from int256, reverting on\n * overflow (when the input is less than smallest int64 or\n * greater than largest int64).\n *\n * Counterpart to Solidity's `int64` operator.\n *\n * Requirements:\n *\n * - input must fit into 64 bits\n */\n function toInt64(int256 value) internal pure returns (int64 downcasted) {\n downcasted = int64(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(64, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int56 from int256, reverting on\n * overflow (when the input is less than smallest int56 or\n * greater than largest int56).\n *\n * Counterpart to Solidity's `int56` operator.\n *\n * Requirements:\n *\n * - input must fit into 56 bits\n */\n function toInt56(int256 value) internal pure returns (int56 downcasted) {\n downcasted = int56(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(56, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int48 from int256, reverting on\n * overflow (when the input is less than smallest int48 or\n * greater than largest int48).\n *\n * Counterpart to Solidity's `int48` operator.\n *\n * Requirements:\n *\n * - input must fit into 48 bits\n */\n function toInt48(int256 value) internal pure returns (int48 downcasted) {\n downcasted = int48(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(48, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int40 from int256, reverting on\n * overflow (when the input is less than smallest int40 or\n * greater than largest int40).\n *\n * Counterpart to Solidity's `int40` operator.\n *\n * Requirements:\n *\n * - input must fit into 40 bits\n */\n function toInt40(int256 value) internal pure returns (int40 downcasted) {\n downcasted = int40(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(40, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int32 from int256, reverting on\n * overflow (when the input is less than smallest int32 or\n * greater than largest int32).\n *\n * Counterpart to Solidity's `int32` operator.\n *\n * Requirements:\n *\n * - input must fit into 32 bits\n */\n function toInt32(int256 value) internal pure returns (int32 downcasted) {\n downcasted = int32(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(32, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int24 from int256, reverting on\n * overflow (when the input is less than smallest int24 or\n * greater than largest int24).\n *\n * Counterpart to Solidity's `int24` operator.\n *\n * Requirements:\n *\n * - input must fit into 24 bits\n */\n function toInt24(int256 value) internal pure returns (int24 downcasted) {\n downcasted = int24(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(24, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int16 from int256, reverting on\n * overflow (when the input is less than smallest int16 or\n * greater than largest int16).\n *\n * Counterpart to Solidity's `int16` operator.\n *\n * Requirements:\n *\n * - input must fit into 16 bits\n */\n function toInt16(int256 value) internal pure returns (int16 downcasted) {\n downcasted = int16(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(16, value);\n }\n }\n\n /**\n * @dev Returns the downcasted int8 from int256, reverting on\n * overflow (when the input is less than smallest int8 or\n * greater than largest int8).\n *\n * Counterpart to Solidity's `int8` operator.\n *\n * Requirements:\n *\n * - input must fit into 8 bits\n */\n function toInt8(int256 value) internal pure returns (int8 downcasted) {\n downcasted = int8(value);\n if (downcasted != value) {\n revert SafeCastOverflowedIntDowncast(8, value);\n }\n }\n\n /**\n * @dev Converts an unsigned uint256 into a signed int256.\n *\n * Requirements:\n *\n * - input must be less than or equal to maxInt256.\n */\n function toInt256(uint256 value) internal pure returns (int256) {\n // Note: Unsafe cast below is okay because `type(int256).max` is guaranteed to be positive\n if (value > uint256(type(int256).max)) {\n revert SafeCastOverflowedUintToInt(value);\n }\n return int256(value);\n }\n\n /**\n * @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump.\n */\n function toUint(bool b) internal pure returns (uint256 u) {\n assembly (\"memory-safe\") {\n u := iszero(iszero(b))\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\nimport {SafeCast} from \"./SafeCast.sol\";\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n *\n * IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n * However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n * one branch when needed, making this function more expensive.\n */\n function ternary(bool condition, int256 a, int256 b) internal pure returns (int256) {\n unchecked {\n // branchless ternary works because:\n // b ^ (a ^ b) == a\n // b ^ 0 == b\n return b ^ ((a ^ b) * int256(SafeCast.toUint(condition)));\n }\n }\n\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return ternary(a > b, a, b);\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return ternary(a < b, a, b);\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // Formula from the \"Bit Twiddling Hacks\" by Sean Eron Anderson.\n // Since `n` is a signed integer, the generated bytecode will use the SAR opcode to perform the right shift,\n // taking advantage of the most significant (or \"sign\" bit) in two's complement representation.\n // This opcode adds new most significant bits set to the value of the previous most significant bit. As a result,\n // the mask will either be `bytes32(0)` (if n is positive) or `~bytes32(0)` (if n is negative).\n int256 mask = n >> 255;\n\n // A `bytes32(0)` mask leaves the input unchanged, while a `~bytes32(0)` mask complements it.\n return uint256((n + mask) ^ mask);\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Panic.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/Panic.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Helper library for emitting standardized panic codes.\n *\n * ```solidity\n * contract Example {\n * using Panic for uint256;\n *\n * // Use any of the declared internal constants\n * function foo() { Panic.GENERIC.panic(); }\n *\n * // Alternatively\n * function foo() { Panic.panic(Panic.GENERIC); }\n * }\n * ```\n *\n * Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n *\n * _Available since v5.1._\n */\n// slither-disable-next-line unused-state\nlibrary Panic {\n /// @dev generic / unspecified error\n uint256 internal constant GENERIC = 0x00;\n /// @dev used by the assert() builtin\n uint256 internal constant ASSERT = 0x01;\n /// @dev arithmetic underflow or overflow\n uint256 internal constant UNDER_OVERFLOW = 0x11;\n /// @dev division or modulo by zero\n uint256 internal constant DIVISION_BY_ZERO = 0x12;\n /// @dev enum conversion error\n uint256 internal constant ENUM_CONVERSION_ERROR = 0x21;\n /// @dev invalid encoding in storage\n uint256 internal constant STORAGE_ENCODING_ERROR = 0x22;\n /// @dev empty array pop\n uint256 internal constant EMPTY_ARRAY_POP = 0x31;\n /// @dev array out of bounds access\n uint256 internal constant ARRAY_OUT_OF_BOUNDS = 0x32;\n /// @dev resource error (too large allocation or too large array)\n uint256 internal constant RESOURCE_ERROR = 0x41;\n /// @dev calling invalid internal function\n uint256 internal constant INVALID_INTERNAL_FUNCTION = 0x51;\n\n /// @dev Reverts with a panic code. Recommended to use with\n /// the internal constants with predefined codes.\n function panic(uint256 code) internal pure {\n assembly (\"memory-safe\") {\n mstore(0x00, 0x4e487b71)\n mstore(0x20, code)\n revert(0x1c, 0x24)\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/SlotDerivation.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/SlotDerivation.sol)\n// This file was procedurally generated from scripts/generate/templates/SlotDerivation.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for computing storage (and transient storage) locations from namespaces and deriving slots\n * corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by\n * the solidity language / compiler.\n *\n * See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.].\n *\n * Example usage:\n * ```solidity\n * contract Example {\n * // Add the library methods\n * using StorageSlot for bytes32;\n * using SlotDerivation for bytes32;\n *\n * // Declare a namespace\n * string private constant _NAMESPACE = \"\"; // eg. OpenZeppelin.Slot\n *\n * function setValueInNamespace(uint256 key, address newValue) internal {\n * _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue;\n * }\n *\n * function getValueInNamespace(uint256 key) internal view returns (address) {\n * return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value;\n * }\n * }\n * ```\n *\n * TIP: Consider using this library along with {StorageSlot}.\n *\n * NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking\n * upgrade safety will ignore the slots accessed through this library.\n *\n * _Available since v5.1._\n */\nlibrary SlotDerivation {\n /**\n * @dev Derive an ERC-7201 slot from a string (namespace).\n */\n function erc7201Slot(string memory namespace) internal pure returns (bytes32 slot) {\n assembly (\"memory-safe\") {\n mstore(0x00, sub(keccak256(add(namespace, 0x20), mload(namespace)), 1))\n slot := and(keccak256(0x00, 0x20), not(0xff))\n }\n }\n\n /**\n * @dev Add an offset to a slot to get the n-th element of a structure or an array.\n */\n function offset(bytes32 slot, uint256 pos) internal pure returns (bytes32 result) {\n unchecked {\n return bytes32(uint256(slot) + pos);\n }\n }\n\n /**\n * @dev Derive the location of the first element in an array from the slot where the length is stored.\n */\n function deriveArray(bytes32 slot) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n mstore(0x00, slot)\n result := keccak256(0x00, 0x20)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, address key) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n mstore(0x00, and(key, shr(96, not(0))))\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, bool key) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n mstore(0x00, iszero(iszero(key)))\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, bytes32 key) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, uint256 key) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, int256 key) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n mstore(0x00, key)\n mstore(0x20, slot)\n result := keccak256(0x00, 0x40)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, string memory key) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n let length := mload(key)\n let begin := add(key, 0x20)\n let end := add(begin, length)\n let cache := mload(end)\n mstore(end, slot)\n result := keccak256(begin, add(length, 0x20))\n mstore(end, cache)\n }\n }\n\n /**\n * @dev Derive the location of a mapping element from the key.\n */\n function deriveMapping(bytes32 slot, bytes memory key) internal pure returns (bytes32 result) {\n assembly (\"memory-safe\") {\n let length := mload(key)\n let begin := add(key, 0x20)\n let end := add(begin, length)\n let cache := mload(end)\n mstore(end, slot)\n result := keccak256(begin, add(length, 0x20))\n mstore(end, cache)\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/StorageSlot.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.1.0) (utils/StorageSlot.sol)\n// This file was procedurally generated from scripts/generate/templates/StorageSlot.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for reading and writing primitive types to specific storage slots.\n *\n * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n * This library helps with reading and writing to such slots without the need for inline assembly.\n *\n * The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n *\n * Example usage to set ERC-1967 implementation slot:\n * ```solidity\n * contract ERC1967 {\n * // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n *\n * function _getImplementation() internal view returns (address) {\n * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n * }\n *\n * function _setImplementation(address newImplementation) internal {\n * require(newImplementation.code.length > 0);\n * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n * }\n * }\n * ```\n *\n * TIP: Consider using this library along with {SlotDerivation}.\n */\nlibrary StorageSlot {\n struct AddressSlot {\n address value;\n }\n\n struct BooleanSlot {\n bool value;\n }\n\n struct Bytes32Slot {\n bytes32 value;\n }\n\n struct Uint256Slot {\n uint256 value;\n }\n\n struct Int256Slot {\n int256 value;\n }\n\n struct StringSlot {\n string value;\n }\n\n struct BytesSlot {\n bytes value;\n }\n\n /**\n * @dev Returns an `AddressSlot` with member `value` located at `slot`.\n */\n function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `BooleanSlot` with member `value` located at `slot`.\n */\n function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `Bytes32Slot` with member `value` located at `slot`.\n */\n function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `Uint256Slot` with member `value` located at `slot`.\n */\n function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `Int256Slot` with member `value` located at `slot`.\n */\n function getInt256Slot(bytes32 slot) internal pure returns (Int256Slot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns a `StringSlot` with member `value` located at `slot`.\n */\n function getStringSlot(bytes32 slot) internal pure returns (StringSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `StringSlot` representation of the string storage pointer `store`.\n */\n function getStringSlot(string storage store) internal pure returns (StringSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := store.slot\n }\n }\n\n /**\n * @dev Returns a `BytesSlot` with member `value` located at `slot`.\n */\n function getBytesSlot(bytes32 slot) internal pure returns (BytesSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := slot\n }\n }\n\n /**\n * @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`.\n */\n function getBytesSlot(bytes storage store) internal pure returns (BytesSlot storage r) {\n assembly (\"memory-safe\") {\n r.slot := store.slot\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SafeCast} from \"./math/SafeCast.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n using SafeCast for *;\n\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n uint256 private constant SPECIAL_CHARS_LOOKUP =\n (1 << 0x08) | // backspace\n (1 << 0x09) | // tab\n (1 << 0x0a) | // newline\n (1 << 0x0c) | // form feed\n (1 << 0x0d) | // carriage return\n (1 << 0x22) | // double quote\n (1 << 0x5c); // backslash\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\n\n /**\n * @dev The string being parsed contains characters that are not in scope of the given base.\n */\n error StringsInvalidChar();\n\n /**\n * @dev The string being parsed is not a properly formatted address.\n */\n error StringsInvalidAddressFormat();\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` decimal representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n assembly (\"memory-safe\") {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n assembly (\"memory-safe\") {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.\n */\n function toHexString(uint256 value) internal pure returns (string memory) {\n unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\n }\n\n /**\n * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.\n */\n function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {\n uint256 localValue = value;\n bytes memory buffer = new bytes(2 * length + 2);\n buffer[0] = \"0\";\n buffer[1] = \"x\";\n for (uint256 i = 2 * length + 1; i > 1; --i) {\n buffer[i] = HEX_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its checksummed ASCII `string` hexadecimal\n * representation, according to EIP-55.\n */\n function toChecksumHexString(address addr) internal pure returns (string memory) {\n bytes memory buffer = bytes(toHexString(addr));\n\n // hash the hex part of buffer (skip length + 2 bytes, length 40)\n uint256 hashValue;\n assembly (\"memory-safe\") {\n hashValue := shr(96, keccak256(add(buffer, 0x22), 40))\n }\n\n for (uint256 i = 41; i > 1; --i) {\n // possible values for buffer[i] are 48 (0) to 57 (9) and 97 (a) to 102 (f)\n if (hashValue & 0xf > 7 && uint8(buffer[i]) > 96) {\n // case shift by xoring with 0x20\n buffer[i] ^= 0x20;\n }\n hashValue >>= 4;\n }\n return string(buffer);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n\n /**\n * @dev Parse a decimal string and returns the value as a `uint256`.\n *\n * Requirements:\n * - The string must be formatted as `[0-9]*`\n * - The result must fit into an `uint256` type\n */\n function parseUint(string memory input) internal pure returns (uint256) {\n return parseUint(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseUint-string} that parses a substring of `input` located between position `begin` (included) and\n * `end` (excluded).\n *\n * Requirements:\n * - The substring must be formatted as `[0-9]*`\n * - The result must fit into an `uint256` type\n */\n function parseUint(string memory input, uint256 begin, uint256 end) internal pure returns (uint256) {\n (bool success, uint256 value) = tryParseUint(input, begin, end);\n if (!success) revert StringsInvalidChar();\n return value;\n }\n\n /**\n * @dev Variant of {parseUint-string} that returns false if the parsing fails because of an invalid character.\n *\n * NOTE: This function will revert if the result does not fit in a `uint256`.\n */\n function tryParseUint(string memory input) internal pure returns (bool success, uint256 value) {\n return _tryParseUintUncheckedBounds(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseUint-string-uint256-uint256} that returns false if the parsing fails because of an invalid\n * character.\n *\n * NOTE: This function will revert if the result does not fit in a `uint256`.\n */\n function tryParseUint(\n string memory input,\n uint256 begin,\n uint256 end\n ) internal pure returns (bool success, uint256 value) {\n if (end > bytes(input).length || begin > end) return (false, 0);\n return _tryParseUintUncheckedBounds(input, begin, end);\n }\n\n /**\n * @dev Implementation of {tryParseUint-string-uint256-uint256} that does not check bounds. Caller should make sure that\n * `begin <= end <= input.length`. Other inputs would result in undefined behavior.\n */\n function _tryParseUintUncheckedBounds(\n string memory input,\n uint256 begin,\n uint256 end\n ) private pure returns (bool success, uint256 value) {\n bytes memory buffer = bytes(input);\n\n uint256 result = 0;\n for (uint256 i = begin; i < end; ++i) {\n uint8 chr = _tryParseChr(bytes1(_unsafeReadBytesOffset(buffer, i)));\n if (chr > 9) return (false, 0);\n result *= 10;\n result += chr;\n }\n return (true, result);\n }\n\n /**\n * @dev Parse a decimal string and returns the value as a `int256`.\n *\n * Requirements:\n * - The string must be formatted as `[-+]?[0-9]*`\n * - The result must fit in an `int256` type.\n */\n function parseInt(string memory input) internal pure returns (int256) {\n return parseInt(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseInt-string} that parses a substring of `input` located between position `begin` (included) and\n * `end` (excluded).\n *\n * Requirements:\n * - The substring must be formatted as `[-+]?[0-9]*`\n * - The result must fit in an `int256` type.\n */\n function parseInt(string memory input, uint256 begin, uint256 end) internal pure returns (int256) {\n (bool success, int256 value) = tryParseInt(input, begin, end);\n if (!success) revert StringsInvalidChar();\n return value;\n }\n\n /**\n * @dev Variant of {parseInt-string} that returns false if the parsing fails because of an invalid character or if\n * the result does not fit in a `int256`.\n *\n * NOTE: This function will revert if the absolute value of the result does not fit in a `uint256`.\n */\n function tryParseInt(string memory input) internal pure returns (bool success, int256 value) {\n return _tryParseIntUncheckedBounds(input, 0, bytes(input).length);\n }\n\n uint256 private constant ABS_MIN_INT256 = 2 ** 255;\n\n /**\n * @dev Variant of {parseInt-string-uint256-uint256} that returns false if the parsing fails because of an invalid\n * character or if the result does not fit in a `int256`.\n *\n * NOTE: This function will revert if the absolute value of the result does not fit in a `uint256`.\n */\n function tryParseInt(\n string memory input,\n uint256 begin,\n uint256 end\n ) internal pure returns (bool success, int256 value) {\n if (end > bytes(input).length || begin > end) return (false, 0);\n return _tryParseIntUncheckedBounds(input, begin, end);\n }\n\n /**\n * @dev Implementation of {tryParseInt-string-uint256-uint256} that does not check bounds. Caller should make sure that\n * `begin <= end <= input.length`. Other inputs would result in undefined behavior.\n */\n function _tryParseIntUncheckedBounds(\n string memory input,\n uint256 begin,\n uint256 end\n ) private pure returns (bool success, int256 value) {\n bytes memory buffer = bytes(input);\n\n // Check presence of a negative sign.\n bytes1 sign = begin == end ? bytes1(0) : bytes1(_unsafeReadBytesOffset(buffer, begin)); // don't do out-of-bound (possibly unsafe) read if sub-string is empty\n bool positiveSign = sign == bytes1(\"+\");\n bool negativeSign = sign == bytes1(\"-\");\n uint256 offset = (positiveSign || negativeSign).toUint();\n\n (bool absSuccess, uint256 absValue) = tryParseUint(input, begin + offset, end);\n\n if (absSuccess && absValue < ABS_MIN_INT256) {\n return (true, negativeSign ? -int256(absValue) : int256(absValue));\n } else if (absSuccess && negativeSign && absValue == ABS_MIN_INT256) {\n return (true, type(int256).min);\n } else return (false, 0);\n }\n\n /**\n * @dev Parse a hexadecimal string (with or without \"0x\" prefix), and returns the value as a `uint256`.\n *\n * Requirements:\n * - The string must be formatted as `(0x)?[0-9a-fA-F]*`\n * - The result must fit in an `uint256` type.\n */\n function parseHexUint(string memory input) internal pure returns (uint256) {\n return parseHexUint(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseHexUint-string} that parses a substring of `input` located between position `begin` (included) and\n * `end` (excluded).\n *\n * Requirements:\n * - The substring must be formatted as `(0x)?[0-9a-fA-F]*`\n * - The result must fit in an `uint256` type.\n */\n function parseHexUint(string memory input, uint256 begin, uint256 end) internal pure returns (uint256) {\n (bool success, uint256 value) = tryParseHexUint(input, begin, end);\n if (!success) revert StringsInvalidChar();\n return value;\n }\n\n /**\n * @dev Variant of {parseHexUint-string} that returns false if the parsing fails because of an invalid character.\n *\n * NOTE: This function will revert if the result does not fit in a `uint256`.\n */\n function tryParseHexUint(string memory input) internal pure returns (bool success, uint256 value) {\n return _tryParseHexUintUncheckedBounds(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseHexUint-string-uint256-uint256} that returns false if the parsing fails because of an\n * invalid character.\n *\n * NOTE: This function will revert if the result does not fit in a `uint256`.\n */\n function tryParseHexUint(\n string memory input,\n uint256 begin,\n uint256 end\n ) internal pure returns (bool success, uint256 value) {\n if (end > bytes(input).length || begin > end) return (false, 0);\n return _tryParseHexUintUncheckedBounds(input, begin, end);\n }\n\n /**\n * @dev Implementation of {tryParseHexUint-string-uint256-uint256} that does not check bounds. Caller should make sure that\n * `begin <= end <= input.length`. Other inputs would result in undefined behavior.\n */\n function _tryParseHexUintUncheckedBounds(\n string memory input,\n uint256 begin,\n uint256 end\n ) private pure returns (bool success, uint256 value) {\n bytes memory buffer = bytes(input);\n\n // skip 0x prefix if present\n bool hasPrefix = (end > begin + 1) && bytes2(_unsafeReadBytesOffset(buffer, begin)) == bytes2(\"0x\"); // don't do out-of-bound (possibly unsafe) read if sub-string is empty\n uint256 offset = hasPrefix.toUint() * 2;\n\n uint256 result = 0;\n for (uint256 i = begin + offset; i < end; ++i) {\n uint8 chr = _tryParseChr(bytes1(_unsafeReadBytesOffset(buffer, i)));\n if (chr > 15) return (false, 0);\n result *= 16;\n unchecked {\n // Multiplying by 16 is equivalent to a shift of 4 bits (with additional overflow check).\n // This guarantees that adding a value < 16 will not cause an overflow, hence the unchecked.\n result += chr;\n }\n }\n return (true, result);\n }\n\n /**\n * @dev Parse a hexadecimal string (with or without \"0x\" prefix), and returns the value as an `address`.\n *\n * Requirements:\n * - The string must be formatted as `(0x)?[0-9a-fA-F]{40}`\n */\n function parseAddress(string memory input) internal pure returns (address) {\n return parseAddress(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseAddress-string} that parses a substring of `input` located between position `begin` (included) and\n * `end` (excluded).\n *\n * Requirements:\n * - The substring must be formatted as `(0x)?[0-9a-fA-F]{40}`\n */\n function parseAddress(string memory input, uint256 begin, uint256 end) internal pure returns (address) {\n (bool success, address value) = tryParseAddress(input, begin, end);\n if (!success) revert StringsInvalidAddressFormat();\n return value;\n }\n\n /**\n * @dev Variant of {parseAddress-string} that returns false if the parsing fails because the input is not a properly\n * formatted address. See {parseAddress-string} requirements.\n */\n function tryParseAddress(string memory input) internal pure returns (bool success, address value) {\n return tryParseAddress(input, 0, bytes(input).length);\n }\n\n /**\n * @dev Variant of {parseAddress-string-uint256-uint256} that returns false if the parsing fails because input is not a properly\n * formatted address. See {parseAddress-string-uint256-uint256} requirements.\n */\n function tryParseAddress(\n string memory input,\n uint256 begin,\n uint256 end\n ) internal pure returns (bool success, address value) {\n if (end > bytes(input).length || begin > end) return (false, address(0));\n\n bool hasPrefix = (end > begin + 1) && bytes2(_unsafeReadBytesOffset(bytes(input), begin)) == bytes2(\"0x\"); // don't do out-of-bound (possibly unsafe) read if sub-string is empty\n uint256 expectedLength = 40 + hasPrefix.toUint() * 2;\n\n // check that input is the correct length\n if (end - begin == expectedLength) {\n // length guarantees that this does not overflow, and value is at most type(uint160).max\n (bool s, uint256 v) = _tryParseHexUintUncheckedBounds(input, begin, end);\n return (s, address(uint160(v)));\n } else {\n return (false, address(0));\n }\n }\n\n function _tryParseChr(bytes1 chr) private pure returns (uint8) {\n uint8 value = uint8(chr);\n\n // Try to parse `chr`:\n // - Case 1: [0-9]\n // - Case 2: [a-f]\n // - Case 3: [A-F]\n // - otherwise not supported\n unchecked {\n if (value > 47 && value < 58) value -= 48;\n else if (value > 96 && value < 103) value -= 87;\n else if (value > 64 && value < 71) value -= 55;\n else return type(uint8).max;\n }\n\n return value;\n }\n\n /**\n * @dev Escape special characters in JSON strings. This can be useful to prevent JSON injection in NFT metadata.\n *\n * WARNING: This function should only be used in double quoted JSON strings. Single quotes are not escaped.\n *\n * NOTE: This function escapes all unicode characters, and not just the ones in ranges defined in section 2.5 of\n * RFC-4627 (U+0000 to U+001F, U+0022 and U+005C). ECMAScript's `JSON.parse` does recover escaped unicode\n * characters that are not in this range, but other tooling may provide different results.\n */\n function escapeJSON(string memory input) internal pure returns (string memory) {\n bytes memory buffer = bytes(input);\n bytes memory output = new bytes(2 * buffer.length); // worst case scenario\n uint256 outputLength = 0;\n\n for (uint256 i; i < buffer.length; ++i) {\n bytes1 char = bytes1(_unsafeReadBytesOffset(buffer, i));\n if (((SPECIAL_CHARS_LOOKUP & (1 << uint8(char))) != 0)) {\n output[outputLength++] = \"\\\\\";\n if (char == 0x08) output[outputLength++] = \"b\";\n else if (char == 0x09) output[outputLength++] = \"t\";\n else if (char == 0x0a) output[outputLength++] = \"n\";\n else if (char == 0x0c) output[outputLength++] = \"f\";\n else if (char == 0x0d) output[outputLength++] = \"r\";\n else if (char == 0x5c) output[outputLength++] = \"\\\\\";\n else if (char == 0x22) {\n // solhint-disable-next-line quotes\n output[outputLength++] = '\"';\n }\n } else {\n output[outputLength++] = char;\n }\n }\n // write the actual length and deallocate unused memory\n assembly (\"memory-safe\") {\n mstore(output, outputLength)\n mstore(0x40, add(output, shl(5, shr(5, add(outputLength, 63)))))\n }\n\n return string(output);\n }\n\n /**\n * @dev Reads a bytes32 from a bytes array without bounds checking.\n *\n * NOTE: making this function internal would mean it could be used with memory unsafe offset, and marking the\n * assembly block as such would prevent some optimizations.\n */\n function _unsafeReadBytesOffset(bytes memory buffer, uint256 offset) private pure returns (bytes32 value) {\n // This is not memory safe in the general case, but all calls to this private function are within bounds.\n assembly (\"memory-safe\") {\n value := mload(add(buffer, add(0x20, offset)))\n }\n }\n}\n" + }, + "@openzeppelin/contracts/utils/structs/EnumerableSet.sol": { + "content": "// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.3.0) (utils/structs/EnumerableSet.sol)\n// This file was procedurally generated from scripts/generate/templates/EnumerableSet.js.\n\npragma solidity ^0.8.20;\n\nimport {Arrays} from \"../Arrays.sol\";\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n * - Set can be cleared (all elements removed) in O(n).\n *\n * ```solidity\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n *\n * [WARNING]\n * ====\n * Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\n * unusable.\n * See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n *\n * In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\n * array of EnumerableSet.\n * ====\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n // Position is the index of the value in the `values` array plus 1.\n // Position 0 is used to mean a value is not in the set.\n mapping(bytes32 value => uint256) _positions;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._positions[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We cache the value's position to prevent multiple reads from the same storage slot\n uint256 position = set._positions[value];\n\n if (position != 0) {\n // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 valueIndex = position - 1;\n uint256 lastIndex = set._values.length - 1;\n\n if (valueIndex != lastIndex) {\n bytes32 lastValue = set._values[lastIndex];\n\n // Move the lastValue to the index where the value to delete is\n set._values[valueIndex] = lastValue;\n // Update the tracked position of the lastValue (that was just moved)\n set._positions[lastValue] = position;\n }\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the tracked position for the deleted slot\n delete set._positions[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes all the values from a set. O(n).\n *\n * WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n * function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block.\n */\n function _clear(Set storage set) private {\n uint256 len = _length(set);\n for (uint256 i = 0; i < len; ++i) {\n delete set._positions[set._values[i]];\n }\n Arrays.unsafeSetLength(set._values, 0);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._positions[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n return set._values[index];\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function _values(Set storage set) private view returns (bytes32[] memory) {\n return set._values;\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Removes all the values from a set. O(n).\n *\n * WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n * function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block.\n */\n function clear(Bytes32Set storage set) internal {\n _clear(set._inner);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function values(Bytes32Set storage set) internal view returns (bytes32[] memory) {\n bytes32[] memory store = _values(set._inner);\n bytes32[] memory result;\n\n assembly (\"memory-safe\") {\n result := store\n }\n\n return result;\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes all the values from a set. O(n).\n *\n * WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n * function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block.\n */\n function clear(AddressSet storage set) internal {\n _clear(set._inner);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function values(AddressSet storage set) internal view returns (address[] memory) {\n bytes32[] memory store = _values(set._inner);\n address[] memory result;\n\n assembly (\"memory-safe\") {\n result := store\n }\n\n return result;\n }\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes all the values from a set. O(n).\n *\n * WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n * function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block.\n */\n function clear(UintSet storage set) internal {\n _clear(set._inner);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function values(UintSet storage set) internal view returns (uint256[] memory) {\n bytes32[] memory store = _values(set._inner);\n uint256[] memory result;\n\n assembly (\"memory-safe\") {\n result := store\n }\n\n return result;\n }\n}\n" + }, + "@quant-finance/solidity-datetime/contracts/DateTime.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity ^0.8.0;\n\n// ----------------------------------------------------------------------------\n// DateTime Library v2.0\n//\n// A gas-efficient Solidity date and time library\n//\n// https://github.com/bokkypoobah/BokkyPooBahsDateTimeLibrary\n//\n// Tested date range 1970/01/01 to 2345/12/31\n//\n// Conventions:\n// Unit | Range | Notes\n// :-------- |:-------------:|:-----\n// timestamp | >= 0 | Unix timestamp, number of seconds since 1970/01/01 00:00:00 UTC\n// year | 1970 ... 2345 |\n// month | 1 ... 12 |\n// day | 1 ... 31 |\n// hour | 0 ... 23 |\n// minute | 0 ... 59 |\n// second | 0 ... 59 |\n// dayOfWeek | 1 ... 7 | 1 = Monday, ..., 7 = Sunday\n//\n//\n// Enjoy. (c) BokkyPooBah / Bok Consulting Pty Ltd 2018-2019. The MIT Licence.\n// ----------------------------------------------------------------------------\n\nlibrary DateTime {\n uint256 constant SECONDS_PER_DAY = 24 * 60 * 60;\n uint256 constant SECONDS_PER_HOUR = 60 * 60;\n uint256 constant SECONDS_PER_MINUTE = 60;\n int256 constant OFFSET19700101 = 2440588;\n\n uint256 constant DOW_MON = 1;\n uint256 constant DOW_TUE = 2;\n uint256 constant DOW_WED = 3;\n uint256 constant DOW_THU = 4;\n uint256 constant DOW_FRI = 5;\n uint256 constant DOW_SAT = 6;\n uint256 constant DOW_SUN = 7;\n\n // ------------------------------------------------------------------------\n // Calculate the number of days from 1970/01/01 to year/month/day using\n // the date conversion algorithm from\n // http://aa.usno.navy.mil/faq/docs/JD_Formula.php\n // and subtracting the offset 2440588 so that 1970/01/01 is day 0\n //\n // days = day\n // - 32075\n // + 1461 * (year + 4800 + (month - 14) / 12) / 4\n // + 367 * (month - 2 - (month - 14) / 12 * 12) / 12\n // - 3 * ((year + 4900 + (month - 14) / 12) / 100) / 4\n // - offset\n // ------------------------------------------------------------------------\n function _daysFromDate(uint256 year, uint256 month, uint256 day) internal pure returns (uint256 _days) {\n require(year >= 1970);\n int256 _year = int256(year);\n int256 _month = int256(month);\n int256 _day = int256(day);\n\n int256 __days = _day - 32075 + (1461 * (_year + 4800 + (_month - 14) / 12)) / 4\n + (367 * (_month - 2 - ((_month - 14) / 12) * 12)) / 12\n - (3 * ((_year + 4900 + (_month - 14) / 12) / 100)) / 4 - OFFSET19700101;\n\n _days = uint256(__days);\n }\n\n // ------------------------------------------------------------------------\n // Calculate year/month/day from the number of days since 1970/01/01 using\n // the date conversion algorithm from\n // http://aa.usno.navy.mil/faq/docs/JD_Formula.php\n // and adding the offset 2440588 so that 1970/01/01 is day 0\n //\n // int L = days + 68569 + offset\n // int N = 4 * L / 146097\n // L = L - (146097 * N + 3) / 4\n // year = 4000 * (L + 1) / 1461001\n // L = L - 1461 * year / 4 + 31\n // month = 80 * L / 2447\n // dd = L - 2447 * month / 80\n // L = month / 11\n // month = month + 2 - 12 * L\n // year = 100 * (N - 49) + year + L\n // ------------------------------------------------------------------------\n function _daysToDate(uint256 _days) internal pure returns (uint256 year, uint256 month, uint256 day) {\n unchecked {\n int256 __days = int256(_days);\n\n int256 L = __days + 68569 + OFFSET19700101;\n int256 N = (4 * L) / 146097;\n L = L - (146097 * N + 3) / 4;\n int256 _year = (4000 * (L + 1)) / 1461001;\n L = L - (1461 * _year) / 4 + 31;\n int256 _month = (80 * L) / 2447;\n int256 _day = L - (2447 * _month) / 80;\n L = _month / 11;\n _month = _month + 2 - 12 * L;\n _year = 100 * (N - 49) + _year + L;\n\n year = uint256(_year);\n month = uint256(_month);\n day = uint256(_day);\n }\n }\n\n function timestampFromDate(uint256 year, uint256 month, uint256 day) internal pure returns (uint256 timestamp) {\n timestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY;\n }\n\n function timestampFromDateTime(\n uint256 year,\n uint256 month,\n uint256 day,\n uint256 hour,\n uint256 minute,\n uint256 second\n )\n internal\n pure\n returns (uint256 timestamp)\n {\n timestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + hour * SECONDS_PER_HOUR\n + minute * SECONDS_PER_MINUTE + second;\n }\n\n function timestampToDate(uint256 timestamp) internal pure returns (uint256 year, uint256 month, uint256 day) {\n unchecked {\n (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY);\n }\n }\n\n function timestampToDateTime(uint256 timestamp)\n internal\n pure\n returns (uint256 year, uint256 month, uint256 day, uint256 hour, uint256 minute, uint256 second)\n {\n unchecked {\n (year, month, day) = _daysToDate(timestamp / SECONDS_PER_DAY);\n uint256 secs = timestamp % SECONDS_PER_DAY;\n hour = secs / SECONDS_PER_HOUR;\n secs = secs % SECONDS_PER_HOUR;\n minute = secs / SECONDS_PER_MINUTE;\n second = secs % SECONDS_PER_MINUTE;\n }\n }\n\n function isValidDate(uint256 year, uint256 month, uint256 day) internal pure returns (bool valid) {\n if (year >= 1970 && month > 0 && month <= 12) {\n uint256 daysInMonth = _getDaysInMonth(year, month);\n if (day > 0 && day <= daysInMonth) {\n valid = true;\n }\n }\n }\n\n function isValidDateTime(uint256 year, uint256 month, uint256 day, uint256 hour, uint256 minute, uint256 second)\n internal\n pure\n returns (bool valid)\n {\n if (isValidDate(year, month, day)) {\n if (hour < 24 && minute < 60 && second < 60) {\n valid = true;\n }\n }\n }\n\n function isLeapYear(uint256 timestamp) internal pure returns (bool leapYear) {\n (uint256 year,,) = _daysToDate(timestamp / SECONDS_PER_DAY);\n leapYear = _isLeapYear(year);\n }\n\n function _isLeapYear(uint256 year) internal pure returns (bool leapYear) {\n leapYear = ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);\n }\n\n function isWeekDay(uint256 timestamp) internal pure returns (bool weekDay) {\n weekDay = getDayOfWeek(timestamp) <= DOW_FRI;\n }\n\n function isWeekEnd(uint256 timestamp) internal pure returns (bool weekEnd) {\n weekEnd = getDayOfWeek(timestamp) >= DOW_SAT;\n }\n\n function getDaysInMonth(uint256 timestamp) internal pure returns (uint256 daysInMonth) {\n (uint256 year, uint256 month,) = _daysToDate(timestamp / SECONDS_PER_DAY);\n daysInMonth = _getDaysInMonth(year, month);\n }\n\n function _getDaysInMonth(uint256 year, uint256 month) internal pure returns (uint256 daysInMonth) {\n if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {\n daysInMonth = 31;\n } else if (month != 2) {\n daysInMonth = 30;\n } else {\n daysInMonth = _isLeapYear(year) ? 29 : 28;\n }\n }\n\n // 1 = Monday, 7 = Sunday\n function getDayOfWeek(uint256 timestamp) internal pure returns (uint256 dayOfWeek) {\n uint256 _days = timestamp / SECONDS_PER_DAY;\n dayOfWeek = ((_days + 3) % 7) + 1;\n }\n\n function getYear(uint256 timestamp) internal pure returns (uint256 year) {\n (year,,) = _daysToDate(timestamp / SECONDS_PER_DAY);\n }\n\n function getMonth(uint256 timestamp) internal pure returns (uint256 month) {\n (, month,) = _daysToDate(timestamp / SECONDS_PER_DAY);\n }\n\n function getDay(uint256 timestamp) internal pure returns (uint256 day) {\n (,, day) = _daysToDate(timestamp / SECONDS_PER_DAY);\n }\n\n function getHour(uint256 timestamp) internal pure returns (uint256 hour) {\n uint256 secs = timestamp % SECONDS_PER_DAY;\n hour = secs / SECONDS_PER_HOUR;\n }\n\n function getMinute(uint256 timestamp) internal pure returns (uint256 minute) {\n uint256 secs = timestamp % SECONDS_PER_HOUR;\n minute = secs / SECONDS_PER_MINUTE;\n }\n\n function getSecond(uint256 timestamp) internal pure returns (uint256 second) {\n second = timestamp % SECONDS_PER_MINUTE;\n }\n\n function addYears(uint256 timestamp, uint256 _years) internal pure returns (uint256 newTimestamp) {\n (uint256 year, uint256 month, uint256 day) = _daysToDate(timestamp / SECONDS_PER_DAY);\n year += _years;\n uint256 daysInMonth = _getDaysInMonth(year, month);\n if (day > daysInMonth) {\n day = daysInMonth;\n }\n newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + (timestamp % SECONDS_PER_DAY);\n require(newTimestamp >= timestamp);\n }\n\n function addMonths(uint256 timestamp, uint256 _months) internal pure returns (uint256 newTimestamp) {\n (uint256 year, uint256 month, uint256 day) = _daysToDate(timestamp / SECONDS_PER_DAY);\n month += _months;\n year += (month - 1) / 12;\n month = ((month - 1) % 12) + 1;\n uint256 daysInMonth = _getDaysInMonth(year, month);\n if (day > daysInMonth) {\n day = daysInMonth;\n }\n newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + (timestamp % SECONDS_PER_DAY);\n require(newTimestamp >= timestamp);\n }\n\n function addDays(uint256 timestamp, uint256 _days) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp + _days * SECONDS_PER_DAY;\n require(newTimestamp >= timestamp);\n }\n\n function addHours(uint256 timestamp, uint256 _hours) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp + _hours * SECONDS_PER_HOUR;\n require(newTimestamp >= timestamp);\n }\n\n function addMinutes(uint256 timestamp, uint256 _minutes) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp + _minutes * SECONDS_PER_MINUTE;\n require(newTimestamp >= timestamp);\n }\n\n function addSeconds(uint256 timestamp, uint256 _seconds) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp + _seconds;\n require(newTimestamp >= timestamp);\n }\n\n function subYears(uint256 timestamp, uint256 _years) internal pure returns (uint256 newTimestamp) {\n (uint256 year, uint256 month, uint256 day) = _daysToDate(timestamp / SECONDS_PER_DAY);\n year -= _years;\n uint256 daysInMonth = _getDaysInMonth(year, month);\n if (day > daysInMonth) {\n day = daysInMonth;\n }\n newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + (timestamp % SECONDS_PER_DAY);\n require(newTimestamp <= timestamp);\n }\n\n function subMonths(uint256 timestamp, uint256 _months) internal pure returns (uint256 newTimestamp) {\n (uint256 year, uint256 month, uint256 day) = _daysToDate(timestamp / SECONDS_PER_DAY);\n uint256 yearMonth = year * 12 + (month - 1) - _months;\n year = yearMonth / 12;\n month = (yearMonth % 12) + 1;\n uint256 daysInMonth = _getDaysInMonth(year, month);\n if (day > daysInMonth) {\n day = daysInMonth;\n }\n newTimestamp = _daysFromDate(year, month, day) * SECONDS_PER_DAY + (timestamp % SECONDS_PER_DAY);\n require(newTimestamp <= timestamp);\n }\n\n function subDays(uint256 timestamp, uint256 _days) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp - _days * SECONDS_PER_DAY;\n require(newTimestamp <= timestamp);\n }\n\n function subHours(uint256 timestamp, uint256 _hours) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp - _hours * SECONDS_PER_HOUR;\n require(newTimestamp <= timestamp);\n }\n\n function subMinutes(uint256 timestamp, uint256 _minutes) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp - _minutes * SECONDS_PER_MINUTE;\n require(newTimestamp <= timestamp);\n }\n\n function subSeconds(uint256 timestamp, uint256 _seconds) internal pure returns (uint256 newTimestamp) {\n newTimestamp = timestamp - _seconds;\n require(newTimestamp <= timestamp);\n }\n\n function diffYears(uint256 fromTimestamp, uint256 toTimestamp) internal pure returns (uint256 _years) {\n require(fromTimestamp <= toTimestamp);\n (uint256 fromYear,,) = _daysToDate(fromTimestamp / SECONDS_PER_DAY);\n (uint256 toYear,,) = _daysToDate(toTimestamp / SECONDS_PER_DAY);\n _years = toYear - fromYear;\n }\n\n function diffMonths(uint256 fromTimestamp, uint256 toTimestamp) internal pure returns (uint256 _months) {\n require(fromTimestamp <= toTimestamp);\n (uint256 fromYear, uint256 fromMonth,) = _daysToDate(fromTimestamp / SECONDS_PER_DAY);\n (uint256 toYear, uint256 toMonth,) = _daysToDate(toTimestamp / SECONDS_PER_DAY);\n _months = toYear * 12 + toMonth - fromYear * 12 - fromMonth;\n }\n\n function diffDays(uint256 fromTimestamp, uint256 toTimestamp) internal pure returns (uint256 _days) {\n require(fromTimestamp <= toTimestamp);\n _days = (toTimestamp - fromTimestamp) / SECONDS_PER_DAY;\n }\n\n function diffHours(uint256 fromTimestamp, uint256 toTimestamp) internal pure returns (uint256 _hours) {\n require(fromTimestamp <= toTimestamp);\n _hours = (toTimestamp - fromTimestamp) / SECONDS_PER_HOUR;\n }\n\n function diffMinutes(uint256 fromTimestamp, uint256 toTimestamp) internal pure returns (uint256 _minutes) {\n require(fromTimestamp <= toTimestamp);\n _minutes = (toTimestamp - fromTimestamp) / SECONDS_PER_MINUTE;\n }\n\n function diffSeconds(uint256 fromTimestamp, uint256 toTimestamp) internal pure returns (uint256 _seconds) {\n require(fromTimestamp <= toTimestamp);\n _seconds = toTimestamp - fromTimestamp;\n }\n}\n" + }, + "contracts/constants/CircuitConstants.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.27;\n\n/**\n * @title Circuit Constants Library\n * @notice This library defines constants representing indices used to access public signals\n * of various circuits.\n * @dev These indices map directly to specific data fields in the corresponding circuits proofs.\n */\nlibrary CircuitConstants {\n // ---------------------------\n // CREDENTIAL Circuit Constants\n // ---------------------------\n\n /**\n * @notice Index to access the hashIndex in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_HASH_INDEX_INDEX = 0;\n /**\n * @notice Index to access the hashValue in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_HASH_VALUE_INDEX = 1;\n /**\n * @notice Index to access the linkId in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_LINK_ID_INDEX = 2;\n /**\n * @notice Index to access the currentDate in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_CURRENT_DATE_INDEX = 3;\n /**\n * @notice Index to access the issuanceDate in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_ISSUANCE_DATE_INDEX = 4;\n /**\n * @notice Index to access the templateRoot in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_TEMPLATE_ROOT_INDEX = 5;\n /**\n * @notice Index to access the issuerDidHash in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_ISSUER_DID_HASH_INDEX = 6;\n /**\n * @notice Index to access the revocationNonce in the credential circuit public signals.\n */\n uint256 constant CREDENTIAL_REVOCATION_NONCE_INDEX = 7;\n}\n" + }, + "contracts/interfaces/IAnonAadhaarCircuitVerifier.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.27;\n/**\n * @title IAnonAadhaarCircuitVerifier\n * @notice Interface for verifying AnonAadhaar circuit proofs.\n * @dev This interface defines the structure of an AnonAadhaar\n * circuit proof and exposes a function to verify such proofs.\n */\ninterface IAnonAadhaarCircuitVerifier {\n /**\n * @notice Represents an AnonAadhaar circuit proof.\n * @dev This structure encapsulates the required proof elements.\n * @param a An array of two unsigned integers representing the proof component 'a'.\n * @param b A 2x2 array of unsigned integers representing the proof component 'b'.\n * @param c An array of two unsigned integers representing the proof component 'c'.\n * @param pubSignals An array of three unsigned integers representing the public signals associated with the proof.\n */\n struct AnonAadhaarCircuitProof {\n uint256[2] a;\n uint256[2][2] b;\n uint256[2] c;\n uint256[12] pubSignals;\n }\n\n /**\n * @notice Verifies a given AnonAadhaar circuit proof.\n * @dev This function checks the validity of the provided proof parameters.\n * @param a The 'a' component of the proof.\n * @param b The 'b' component of the proof.\n * @param c The 'c' component of the proof.\n * @param pubSignals The public signals associated with the proof.\n * @return isValid A boolean value indicating whether the provided proof is valid (true) or not (false).\n */\n function verifyProof(\n uint256[2] calldata a,\n uint256[2][2] calldata b,\n uint256[2] calldata c,\n uint256[12] calldata pubSignals\n ) external view returns (bool isValid);\n}\n" + }, + "contracts/interfaces/IAttestationValidator.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {ICertificatesValidator} from \"./ICertificatesValidator.sol\";\n\n/**\n * @dev IAttestationValidator. Interface for verification of attestations.\n */\ninterface IAttestationValidator {\n struct Attestation {\n uint256 tag;\n AttestationValue value;\n }\n\n struct AttestationValue {\n bytes protectedHeader;\n bytes unprotectedHeader;\n Payload payload;\n bytes rawPayload;\n bytes signature;\n bytes32 imageHash;\n }\n\n struct Payload {\n string moduleId;\n string digest;\n uint256 timestamp;\n bytes[] pcrs;\n bytes certificate;\n bytes[] cabundle;\n bytes publicKey;\n bytes userData;\n bytes nonce;\n }\n\n /**\n * @dev Get version of the contract\n */\n function version() external view returns (string memory);\n\n /**\n * @dev Validates the attestation\n * @param attestation bytes for the attestation\n * @return User data fields and a boolean indicating if the attestation is valid\n */\n function validateAttestation(\n bytes calldata attestation\n ) external returns (bytes memory, bytes32 imageHash, bool);\n\n /**\n * @dev Parse the attestation data and return the parsed data\n * @param attestation The attestation bytes data\n */\n function parseAttestation(\n bytes calldata attestation\n ) external pure returns (Attestation memory);\n\n /**\n * @dev Set certificates validator\n * @param validator - certificates validator\n */\n function setCertificatesValidator(ICertificatesValidator validator) external;\n}\n" + }, + "contracts/interfaces/ICertificatesValidator.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\n/**\n * @dev ICertificatesValidator. Interface for validation of certificates.\n */\ninterface ICertificatesValidator {\n /**\n * @dev Get version of the contract\n */\n function version() external view returns (string memory);\n\n /**\n * @dev Validate the chain of certificates\n * @param certificates Chain of certificates in PEM format sorted. Root certificate is latest.\n */\n function validateChainOfCertificates(\n bytes[] calldata certificates\n ) external view returns (bool);\n\n /**\n * @dev Adds certificate verification to the contract\n * @param subjectCertificate Certificate to verify the signature with issuer public key.\n * @param issuerCertificate Certificate of the issuer.\n */\n function addCertificateVerification(\n bytes calldata subjectCertificate,\n bytes calldata issuerCertificate\n ) external;\n}\n" + }, + "contracts/interfaces/ICredentialCircuitVerifier.sol": { + "content": "// SPDX-License-Identifier: MIT\npragma solidity 0.8.27;\n/**\n * @title ICredentialCircuitVerifier\n * @notice Interface for verifying credential circuit proofs.\n * @dev This interface defines the structure of a credential circuit proof and exposes a function to verify such proofs.\n */\ninterface ICredentialCircuitVerifier {\n /**\n * @notice Represents a credential circuit proof.\n * @dev This structure encapsulates the required proof elements.\n * @param a An array of two unsigned integers representing the proof component 'a'.\n * @param b A 2x2 array of unsigned integers representing the proof component 'b'.\n * @param c An array of two unsigned integers representing the proof component 'c'.\n * @param pubSignals An array of three unsigned integers representing the public signals associated with the proof.\n */\n struct CredentialCircuitProof {\n uint256[2] a;\n uint256[2][2] b;\n uint256[2] c;\n uint256[8] pubSignals;\n }\n\n /**\n * @notice Verifies a given credential circuit proof.\n * @dev This function checks the validity of the provided proof parameters.\n * @param a The 'a' component of the proof.\n * @param b The 'b' component of the proof.\n * @param c The 'c' component of the proof.\n * @param pubSignals The public signals associated with the proof.\n * @return isValid A boolean value indicating whether the provided proof is valid (true) or not (false).\n */\n function verifyProof(\n uint256[2] calldata a,\n uint256[2][2] calldata b,\n uint256[2] calldata c,\n uint256[8] calldata pubSignals\n ) external view returns (bool isValid);\n}\n" + }, + "contracts/verifiers/AnonAadhaarCredentialIssuer.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {IdentityLib} from \"@iden3/contracts/lib/IdentityLib.sol\";\nimport {IdentityBase} from \"@iden3/contracts/lib/IdentityBase.sol\";\nimport {IZKPVerifier} from \"@iden3/contracts/interfaces/IZKPVerifier.sol\";\nimport {IAnonAadhaarCircuitVerifier} from \"../interfaces/IAnonAadhaarCircuitVerifier.sol\";\nimport {Ownable2StepUpgradeable} from \"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\";\n\nerror NoVerifierSet();\nerror InvalidAnonAadhaarProof();\nerror InvalidHashIndex();\nerror InvalidHashValue();\nerror InvalidNullifierSeed();\nerror InvalidTemplateRoot();\nerror InvalidIssuerDidHash();\nerror InvalidExpirationDate(uint256 expected, uint256 provided);\nerror ProofExpired();\nerror InvalidPubKeyHash();\nerror NullifierDoesNotExist();\nerror InvalidVerifierAddress();\nerror InvalidStateContractAddress();\nerror UnsupportedQrVersion(uint256 qrVersion);\nerror InvalidRevocationNonce(uint64 revocationNonce);\nerror LengthMismatch(uint256 length1, uint256 length2);\nerror NoAnonAadhaarCircuitIdFound(string circuitId);\n\nevent IssuerDidHashUpdated(uint256 issuerDidHash);\nevent TemplateRootUpdated(uint256 templateRoot);\nevent PublicKeyHashAdded(uint256 publicKeyHash);\nevent CredentialRevoked(uint256 nullifier, uint64 revocationNonce);\nevent AnonAadhaarCircuitVerifierUpdated(string circuitId, address verifierAddress);\n\n/**\n * @dev Address ownership credential issuer.\n * This issuer issues non-merklized credentials in a decentralized manner.\n */\ncontract AnonAadhaarCredentialIssuer is IdentityBase, Ownable2StepUpgradeable {\n using IdentityLib for IdentityLib.Data;\n\n string public constant VERSION = \"1.0.3\";\n string private constant defaultCircuitId = \"anon_aadhaar_v1\";\n\n struct StateInfo {\n address stateAddress;\n bytes2 idType;\n }\n \n struct CredentialProof {\n string circuitId;\n bytes proof;\n }\n\n /// @custom:storage-location erc7201:polygonid.storage.AnonAadhaarCredentialIssuer\n struct AnonAadhaarCredentialIssuerStorage {\n uint256 nullifierSeed;\n uint256 expirationTime;\n uint256 templateRoot;\n uint256 issuerDidHash;\n mapping(string circuitId => address verifier) _anonAadhaarVerifiers;\n mapping(uint256 => bool) publicKeysHashes;\n mapping(uint256 nullifier => uint64 revocationNonce) _nullifiersToRevocationNonce;\n mapping(uint256 qrVersion => bool) qrVersions;\n }\n\n // check if the hash was calculated correctly\n // keccak256(abi.encode(uint256(keccak256(\"polygonid.storage.AnonAadhaarCredentialIssuer\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant AnonAadhaarCredentialIssuerStorageLocation =\n 0x45045675f3efe2ec0ccfad8aa4c678179d3e20b95a34ad9d981fab6f95ba1e00;\n\n function _getAnonAadhaarCredentialIssuerStorage()\n private\n pure\n returns (AnonAadhaarCredentialIssuerStorage storage store)\n {\n assembly {\n store.slot := AnonAadhaarCredentialIssuerStorageLocation\n }\n }\n\n /**\n * @notice Constructor that disables initializers.\n * @dev Prevents direct initialization of the implementation contract.\n */\n constructor() {\n _disableInitializers();\n }\n\n function initializeIssuer(\n uint256 nullifierSeed,\n uint256[] calldata publicKeysHashes,\n uint256[] calldata qrVersions,\n uint256 expirationTime,\n uint256 templateRoot,\n address anonAadhaarVerifier,\n StateInfo calldata stateInfo,\n address owner\n ) public initializer {\n if (anonAadhaarVerifier == address(0)) revert InvalidVerifierAddress();\n if (stateInfo.stateAddress == address(0)) revert InvalidStateContractAddress();\n\n super.initialize(stateInfo.stateAddress, stateInfo.idType);\n __Ownable_init(owner);\n\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n $.nullifierSeed = nullifierSeed;\n $.expirationTime = expirationTime;\n $.templateRoot = templateRoot;\n // Set the default circuit verifier\n $._anonAadhaarVerifiers[defaultCircuitId] = anonAadhaarVerifier;\n\n _addPublicKeyHashesBatch(publicKeysHashes);\n _addQrVersionBatch(qrVersions);\n }\n\n function setNullifierSeed(uint256 nullifierSeed) external onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n $.nullifierSeed = nullifierSeed;\n }\n\n /**\n * @notice Updates the issuer DID hash.\n * @param issuerDidHash The new issuer DID hash.\n */\n function setIssuerDidHash(uint256 issuerDidHash) public onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n $.issuerDidHash = issuerDidHash;\n emit IssuerDidHashUpdated(issuerDidHash);\n }\n\n function nullifierExists(uint256 nullifier) external view returns (bool) {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n return $._nullifiersToRevocationNonce[nullifier] != 0;\n }\n\n /**\n * @notice Updates the template root.\n * @param templateRoot The new template root.\n */\n function setTemplateRoot(uint256 templateRoot) public onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n $.templateRoot = templateRoot;\n emit TemplateRootUpdated(templateRoot);\n }\n\n /**\n * @notice Revoke credential and remove nullifier.\n * @param nullifier credential nullifier.\n */\n function revokeCredential(uint256 nullifier) external onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n uint64 nonce = $._nullifiersToRevocationNonce[nullifier];\n if (nonce == 0) revert NullifierDoesNotExist();\n _revokeClaimAndTransit(nonce);\n $._nullifiersToRevocationNonce[nullifier] = 0;\n emit CredentialRevoked(nullifier, nonce);\n }\n\n /**\n * @notice Adds a public key hash.\n * @param publicKeyHash The public key hash to add.\n */\n function addPublicKeyHash(uint256 publicKeyHash) public onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n $.publicKeysHashes[publicKeyHash] = true;\n emit PublicKeyHashAdded(publicKeyHash);\n }\n\n /**\n * @notice Adds multiple public key hashes in a batch.\n * @param publicKeysHashes The array of public key hashes to add.\n */\n function addPublicKeyHashesBatch(uint256[] calldata publicKeysHashes) public onlyOwner {\n _addPublicKeyHashesBatch(publicKeysHashes);\n }\n\n /**\n * @notice Removes a public key hash.\n * @param publicKeyHash The public key hash to remove.\n */\n function removePublicKeyHash(uint256 publicKeyHash) public onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n if (!$.publicKeysHashes[publicKeyHash]) {\n revert InvalidPubKeyHash();\n }\n $.publicKeysHashes[publicKeyHash] = false;\n }\n\n /**\n * @dev Updates the AnonAadhar circuit verifiers for a specific circuit identifiers.\n * @param circuitIds The AnonAadhar circuit identifiers.\n * @param verifierAddresses The new AnonAadhar circuit verifier addresses.\n */\n function updateAnonAadhaarVerifiers(\n string[] calldata circuitIds,\n address[] calldata verifierAddresses\n ) public virtual onlyOwner {\n _updateAnonAadhaarVerifiers(circuitIds, verifierAddresses);\n }\n\n /**\n * @notice Retrieves the anonAadhaar verifier address for a given circuit id.\n * @param circuitId The circuit id identifier.\n * @return The anonAadhaar verifier address.\n */\n function anonAadhaarVerifiers(string memory circuitId) external view virtual returns (address) {\n return _getAnonAadhaarCredentialIssuerStorage()._anonAadhaarVerifiers[circuitId];\n }\n\n /**\n * @notice Verifies the passport credential.\n * @param credentialProof Credential proof for the passport credential\n * @param passportSignatureProof Signature proof of the validation of the passport credential\n */\n function verifyAadhaar(\n CredentialProof memory credentialProof,\n bytes memory passportSignatureProof\n ) external {\n if (bytes(credentialProof.circuitId).length == 0) {\n revert NoAnonAadhaarCircuitIdFound(credentialProof.circuitId);\n }\n\n (\n uint256[] memory inputs,\n uint256[2] memory a1,\n uint256[2][2] memory b1,\n uint256[2] memory c1\n ) = abi.decode(credentialProof.proof, (uint256[], uint256[2], uint256[2][2], uint256[2]));\n\n IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof\n memory groth16Proof = IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof(\n a1,\n b1,\n c1,\n [\n inputs[0],\n inputs[1],\n inputs[2],\n inputs[3],\n inputs[4],\n inputs[5],\n inputs[6],\n inputs[7],\n inputs[8],\n inputs[9],\n inputs[10],\n inputs[11]\n ]\n );\n\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n address verifier = $._anonAadhaarVerifiers[credentialProof.circuitId];\n if (verifier == address(0)) {\n revert NoVerifierSet();\n }\n if (\n !IAnonAadhaarCircuitVerifier(verifier).verifyProof(\n groth16Proof.a,\n groth16Proof.b,\n groth16Proof.c,\n groth16Proof.pubSignals\n )\n ) {\n revert InvalidAnonAadhaarProof();\n }\n\n _afterProofSubmit(groth16Proof);\n }\n\n /**\n * @notice Returns the nullifier seed.\n * @return The nullifier seed.\n */\n function getNullifierSeed() public view returns (uint256) {\n return _getAnonAadhaarCredentialIssuerStorage().nullifierSeed;\n }\n\n /**\n * @notice Returns if the public key hash exists.\n * @param publicKeyHash The public key hash to check.\n * @return True if the public key hash exists, false otherwise.\n */\n function publicKeyHashExists(uint256 publicKeyHash) public view returns (bool) {\n return _getAnonAadhaarCredentialIssuerStorage().publicKeysHashes[publicKeyHash];\n }\n\n /**\n * @notice Returns the template root.\n * @return The template root.\n */\n function getTemplateRoot() public view returns (uint256) {\n return _getAnonAadhaarCredentialIssuerStorage().templateRoot;\n }\n\n /**\n * @notice Returns the expiration time.\n * @return The expiration time.\n */\n function getExpirationTime() public view returns (uint256) {\n return _getAnonAadhaarCredentialIssuerStorage().expirationTime;\n }\n\n /**\n * @notice Adds a QR version.\n * @param qrVersion The QR version to add.\n */\n function addQrVersion(uint256 qrVersion) public onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n $.qrVersions[qrVersion] = true;\n }\n\n /**\n * @notice Adds multiple QR versions in a batch.\n * @param qrVersions The array of QR versions to add.\n */\n function addQrVersionBatch(uint256[] calldata qrVersions) public onlyOwner {\n _addQrVersionBatch(qrVersions);\n }\n\n /**\n * @notice Removes a QR version.\n * @param qrVersion The QR version to remove.\n */\n function removeQrVersion(uint256 qrVersion) public onlyOwner {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n if (!$.qrVersions[qrVersion]) revert UnsupportedQrVersion(qrVersion);\n $.qrVersions[qrVersion] = false;\n }\n\n /**\n * @notice Checks if a QR version is supported.\n * @param qrVersion The QR version to check.\n * @return True if the QR version is supported, false otherwise.\n */\n function qrVersionSupported(uint256 qrVersion) public view returns (bool) {\n return _getAnonAadhaarCredentialIssuerStorage().qrVersions[qrVersion];\n }\n\n /**\n * @notice Revokes a claim and transit the state.\n * @param nonce The nonce of the claim to revoke.\n */\n function _revokeClaimAndTransit(uint64 nonce) internal {\n _getIdentityBaseStorage().identity.revokeClaim(nonce);\n _getIdentityBaseStorage().identity.transitState();\n }\n\n function _addPublicKeyHashesBatch(uint256[] calldata publicKeysHashes) internal {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n for (uint256 i = 0; i < publicKeysHashes.length; i++) {\n $.publicKeysHashes[publicKeysHashes[i]] = true;\n emit PublicKeyHashAdded(publicKeysHashes[i]);\n }\n }\n\n function _updateAnonAadhaarVerifiers(\n string[] calldata circuitIds,\n address[] calldata verifierAddresses\n ) internal {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n if (circuitIds.length != verifierAddresses.length) {\n revert LengthMismatch(circuitIds.length, verifierAddresses.length);\n }\n for (uint256 i = 0; i < circuitIds.length; i++) {\n $._anonAadhaarVerifiers[circuitIds[i]] = verifierAddresses[i];\n\n emit AnonAadhaarCircuitVerifierUpdated(circuitIds[i], verifierAddresses[i]);\n }\n }\n\n function _afterProofSubmit(\n IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory proof\n ) internal {\n uint256 pubKeyHash = proof.pubSignals[0];\n uint256 nullifier = proof.pubSignals[1];\n uint256 hashIndex = proof.pubSignals[2];\n uint256 hashValue = proof.pubSignals[3];\n uint256 issuanceDate = proof.pubSignals[4];\n uint256 expirationDate = proof.pubSignals[5];\n uint256 qrVersion = proof.pubSignals[6];\n uint256 nullifierSeed = proof.pubSignals[7];\n uint256 signalHash = proof.pubSignals[8];\n uint256 templateRoot = proof.pubSignals[9];\n uint256 issuerDidHash = proof.pubSignals[10];\n uint64 revocationNonce = uint64(proof.pubSignals[11]);\n\n _validatePublicInputs(\n hashIndex,\n hashValue,\n nullifier,\n pubKeyHash,\n nullifierSeed,\n issuanceDate,\n expirationDate,\n templateRoot,\n issuerDidHash,\n qrVersion\n );\n _setNullifier(nullifier, revocationNonce);\n _addHashAndTransit(hashIndex, hashValue);\n }\n\n // solhint-disable-next-line code-complexity\n function _validatePublicInputs(\n uint256 hashIndex,\n uint256 hashValue,\n uint256 nullifier,\n uint256 pubKeyHash,\n uint256 nullifierSeed,\n uint256 issuanceDate,\n uint256 expirationDate,\n uint256 templateRoot,\n uint256 issuerDidHash,\n uint256 qrVersion\n ) internal view {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n if (hashIndex == 0) revert InvalidHashIndex();\n if (hashValue == 0) revert InvalidHashValue();\n if (nullifierSeed != $.nullifierSeed) revert InvalidNullifierSeed();\n if (templateRoot != $.templateRoot) revert InvalidTemplateRoot();\n if (issuerDidHash != $.issuerDidHash) revert InvalidIssuerDidHash();\n\n uint256 expectedExpiration = issuanceDate + $.expirationTime;\n if (expirationDate != expectedExpiration) {\n revert InvalidExpirationDate(expectedExpiration, expirationDate);\n }\n if (expirationDate <= block.timestamp) revert ProofExpired();\n if (!$.publicKeysHashes[pubKeyHash]) revert InvalidPubKeyHash();\n if (!$.qrVersions[qrVersion]) revert UnsupportedQrVersion(qrVersion);\n }\n\n function _addHashAndTransit(uint256 hi, uint256 hv) internal {\n _getIdentityBaseStorage().identity.addClaimHash(hi, hv);\n _getIdentityBaseStorage().identity.transitState();\n }\n\n function _setNullifier(uint256 nullifier, uint64 revocationNonce) private {\n if (revocationNonce == 0) revert InvalidRevocationNonce(revocationNonce);\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n uint64 existingNonce = $._nullifiersToRevocationNonce[nullifier];\n if (existingNonce != 0) {\n _getIdentityBaseStorage().identity.revokeClaim(existingNonce);\n emit CredentialRevoked(nullifier, existingNonce);\n }\n $._nullifiersToRevocationNonce[nullifier] = revocationNonce;\n }\n\n function _addQrVersionBatch(uint256[] calldata qrVersions) internal {\n AnonAadhaarCredentialIssuerStorage storage $ = _getAnonAadhaarCredentialIssuerStorage();\n for (uint256 i = 0; i < qrVersions.length; i++) {\n $.qrVersions[qrVersions[i]] = true;\n }\n }\n}\n" + }, + "contracts/verifiers/idcard/Verifier_idcard_sha1.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\n/*\n Copyright 2021 0KIMS association.\n\n This file is generated with [snarkJS](https://github.com/iden3/snarkjs).\n\n snarkJS is a free software: you can redistribute it and/or modify it\n under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n snarkJS is distributed in the hope that it will be useful, but WITHOUT\n ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n License for more details.\n\n You should have received a copy of the GNU General Public License\n along with snarkJS. If not, see .\n*/\n\npragma solidity >=0.7.0 <0.9.0;\n\ncontract Verifier_idcard_sha1 {\n // Scalar field size\n uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n // Base field size\n uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n\n // Verification Key data\n uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;\n uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;\n uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;\n uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;\n uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;\n uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;\n uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;\n uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;\n uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;\n uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;\n uint256 constant deltax1 = 17619978066981023815786197539891834595467101800168005440602760726252419224182;\n uint256 constant deltax2 = 18977671751559096556952089773959459997838190076805335585523439415828663041091;\n uint256 constant deltay1 = 20908933493580347546254738498174154838704896433856769222253193499541811828688;\n uint256 constant deltay2 = 14228223910638183943848630972622539108882152661926856215951516846313437227100;\n\n \n uint256 constant IC0x = 18996279980038711758193690354940715782561235380342286407554135740201513779279;\n uint256 constant IC0y = 11625887395259635500670464496187717958964706644081328357030137540193674702015;\n \n uint256 constant IC1x = 2803372302542279061992801806634278926291194002619610390291532752624573014173;\n uint256 constant IC1y = 10299540508560758826097485034731152593441586555541996535916675882907375474435;\n \n uint256 constant IC2x = 3515557068537248154485087584130170954856304985271889186452891924457640062970;\n uint256 constant IC2y = 1470817234371769592572885478845544364540877905963971376961793016405008053683;\n \n uint256 constant IC3x = 9882623278822854916070400357014056422896394552342808356843508747816984172644;\n uint256 constant IC3y = 15531717559181484462850765055876863273664930315712089064242339049088256330437;\n \n uint256 constant IC4x = 1901898694368678166577209587685345696272596482922653049767926510562298598974;\n uint256 constant IC4y = 5058572446650720343780896019894709715665377022988535030242875984721308263761;\n \n uint256 constant IC5x = 20431838211546078848142643584396353147225169357005485193415850116721939313698;\n uint256 constant IC5y = 12674687627463988134904336509745795614944363742165672249109257935456985648885;\n \n uint256 constant IC6x = 4014435991936218046726515736305912875209372027501216181172190606316328747472;\n uint256 constant IC6y = 16912585017352105870989796655854968791219729237634485846585064696134374045934;\n \n uint256 constant IC7x = 12553131107985421444412332178956153560186927617121861418939287320178940975682;\n uint256 constant IC7y = 15211374507967162250825030127268522561555464722253667504386597832287358118777;\n \n uint256 constant IC8x = 9360822385172522643659404900386728650189826239156564955589551865188818779244;\n uint256 constant IC8y = 1600740977972980205306895108993336563635329497019830065817810193590153972774;\n \n \n // Memory data\n uint16 constant pVk = 0;\n uint16 constant pPairing = 128;\n\n uint16 constant pLastMem = 896;\n\n function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) {\n assembly {\n function checkField(v) {\n if iszero(lt(v, r)) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n \n // G1 function to multiply a G1 value(x,y) to value in an address\n function g1_mulAccC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn, 32), y)\n mstore(add(mIn, 64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n\n mstore(add(mIn, 64), mload(pR))\n mstore(add(mIn, 96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n\n function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk {\n let _pPairing := add(pMem, pPairing)\n let _pVk := add(pMem, pVk)\n\n mstore(_pVk, IC0x)\n mstore(add(_pVk, 32), IC0y)\n\n // Compute the linear combination vk_x\n \n g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0)))\n \n g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32)))\n \n g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64)))\n \n g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96)))\n \n g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128)))\n \n g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160)))\n \n g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192)))\n \n g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224)))\n \n\n // -A\n mstore(_pPairing, calldataload(pA))\n mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))\n\n // B\n mstore(add(_pPairing, 64), calldataload(pB))\n mstore(add(_pPairing, 96), calldataload(add(pB, 32)))\n mstore(add(_pPairing, 128), calldataload(add(pB, 64)))\n mstore(add(_pPairing, 160), calldataload(add(pB, 96)))\n\n // alpha1\n mstore(add(_pPairing, 192), alphax)\n mstore(add(_pPairing, 224), alphay)\n\n // beta2\n mstore(add(_pPairing, 256), betax1)\n mstore(add(_pPairing, 288), betax2)\n mstore(add(_pPairing, 320), betay1)\n mstore(add(_pPairing, 352), betay2)\n\n // vk_x\n mstore(add(_pPairing, 384), mload(add(pMem, pVk)))\n mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))\n\n\n // gamma2\n mstore(add(_pPairing, 448), gammax1)\n mstore(add(_pPairing, 480), gammax2)\n mstore(add(_pPairing, 512), gammay1)\n mstore(add(_pPairing, 544), gammay2)\n\n // C\n mstore(add(_pPairing, 576), calldataload(pC))\n mstore(add(_pPairing, 608), calldataload(add(pC, 32)))\n\n // delta2\n mstore(add(_pPairing, 640), deltax1)\n mstore(add(_pPairing, 672), deltax2)\n mstore(add(_pPairing, 704), deltay1)\n mstore(add(_pPairing, 736), deltay2)\n\n\n let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)\n\n isOk := and(success, mload(_pPairing))\n }\n\n let pMem := mload(0x40)\n mstore(0x40, add(pMem, pLastMem))\n\n // Validate that all evaluations ∈ F\n \n checkField(calldataload(add(_pubSignals, 0)))\n \n checkField(calldataload(add(_pubSignals, 32)))\n \n checkField(calldataload(add(_pubSignals, 64)))\n \n checkField(calldataload(add(_pubSignals, 96)))\n \n checkField(calldataload(add(_pubSignals, 128)))\n \n checkField(calldataload(add(_pubSignals, 160)))\n \n checkField(calldataload(add(_pubSignals, 192)))\n \n checkField(calldataload(add(_pubSignals, 224)))\n \n\n // Validate all evaluations\n let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem)\n\n mstore(0, isValid)\n return(0, 0x20)\n }\n }\n }\n" + }, + "contracts/verifiers/idcard/Verifier_idcard_sha224.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\n/*\n Copyright 2021 0KIMS association.\n\n This file is generated with [snarkJS](https://github.com/iden3/snarkjs).\n\n snarkJS is a free software: you can redistribute it and/or modify it\n under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n snarkJS is distributed in the hope that it will be useful, but WITHOUT\n ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n License for more details.\n\n You should have received a copy of the GNU General Public License\n along with snarkJS. If not, see .\n*/\n\npragma solidity >=0.7.0 <0.9.0;\n\ncontract Verifier_idcard_sha224 {\n // Scalar field size\n uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n // Base field size\n uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n\n // Verification Key data\n uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;\n uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;\n uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;\n uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;\n uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;\n uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;\n uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;\n uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;\n uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;\n uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;\n uint256 constant deltax1 = 11528676451769479893890586016735137918738468325373806791162804722335540091687;\n uint256 constant deltax2 = 1669837297114499788327298581040767838561450127612980516405627911946405462534;\n uint256 constant deltay1 = 6941559998409292029643061692869111692962972983639467708165579202057066355393;\n uint256 constant deltay2 = 5830426388149171192237417426123628387055857734312228139923031685962780158683;\n\n \n uint256 constant IC0x = 7956549064730906111377240031143142340365041322388677884335874178877686787764;\n uint256 constant IC0y = 21790724438154385202050210979362691842601057366517795997725819221691066711755;\n \n uint256 constant IC1x = 194496735259530299748406225961144873675065744182291314773378155732660624785;\n uint256 constant IC1y = 11997520324628331139758497735152902564190894765922626854425531937009442055993;\n \n uint256 constant IC2x = 20715659899206363009959001352152706938315031879094658313760729922559866072687;\n uint256 constant IC2y = 7206931389654884759550699855892139536019290824089073066664826074006671238130;\n \n uint256 constant IC3x = 15647600021508609611386466189009105815365382348025150745900556253207448104416;\n uint256 constant IC3y = 21505866779139736379603548820171953204904071774611582301872666143749664223782;\n \n uint256 constant IC4x = 20755365119539793284398369809183714774718274129718886008840939250709368056443;\n uint256 constant IC4y = 1514096099909968992998399649590292902743246116759867014081902827133607740031;\n \n uint256 constant IC5x = 546503567340616503487627262812738482343972115809910511635137549145784523079;\n uint256 constant IC5y = 19642933456728346239715412395526737799407086369371836139030446410313981127143;\n \n uint256 constant IC6x = 8655387554042588479764841421113461904648339947579594888232313481540140210605;\n uint256 constant IC6y = 6194582962607983379640117680151386004082379702276643252309562756392639795036;\n \n uint256 constant IC7x = 19998957772364520049216030643423539846174804959493071837156234560114053372045;\n uint256 constant IC7y = 7876066213188359986267785706274504001460175706745828533890570001500672413722;\n \n uint256 constant IC8x = 17919646429039771684856980550026060820137724553201143039316157510821681334959;\n uint256 constant IC8y = 12252744369277572141619541598958408920185159640281676168728109026113461424943;\n \n \n // Memory data\n uint16 constant pVk = 0;\n uint16 constant pPairing = 128;\n\n uint16 constant pLastMem = 896;\n\n function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) {\n assembly {\n function checkField(v) {\n if iszero(lt(v, r)) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n \n // G1 function to multiply a G1 value(x,y) to value in an address\n function g1_mulAccC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn, 32), y)\n mstore(add(mIn, 64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n\n mstore(add(mIn, 64), mload(pR))\n mstore(add(mIn, 96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n\n function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk {\n let _pPairing := add(pMem, pPairing)\n let _pVk := add(pMem, pVk)\n\n mstore(_pVk, IC0x)\n mstore(add(_pVk, 32), IC0y)\n\n // Compute the linear combination vk_x\n \n g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0)))\n \n g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32)))\n \n g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64)))\n \n g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96)))\n \n g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128)))\n \n g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160)))\n \n g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192)))\n \n g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224)))\n \n\n // -A\n mstore(_pPairing, calldataload(pA))\n mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))\n\n // B\n mstore(add(_pPairing, 64), calldataload(pB))\n mstore(add(_pPairing, 96), calldataload(add(pB, 32)))\n mstore(add(_pPairing, 128), calldataload(add(pB, 64)))\n mstore(add(_pPairing, 160), calldataload(add(pB, 96)))\n\n // alpha1\n mstore(add(_pPairing, 192), alphax)\n mstore(add(_pPairing, 224), alphay)\n\n // beta2\n mstore(add(_pPairing, 256), betax1)\n mstore(add(_pPairing, 288), betax2)\n mstore(add(_pPairing, 320), betay1)\n mstore(add(_pPairing, 352), betay2)\n\n // vk_x\n mstore(add(_pPairing, 384), mload(add(pMem, pVk)))\n mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))\n\n\n // gamma2\n mstore(add(_pPairing, 448), gammax1)\n mstore(add(_pPairing, 480), gammax2)\n mstore(add(_pPairing, 512), gammay1)\n mstore(add(_pPairing, 544), gammay2)\n\n // C\n mstore(add(_pPairing, 576), calldataload(pC))\n mstore(add(_pPairing, 608), calldataload(add(pC, 32)))\n\n // delta2\n mstore(add(_pPairing, 640), deltax1)\n mstore(add(_pPairing, 672), deltax2)\n mstore(add(_pPairing, 704), deltay1)\n mstore(add(_pPairing, 736), deltay2)\n\n\n let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)\n\n isOk := and(success, mload(_pPairing))\n }\n\n let pMem := mload(0x40)\n mstore(0x40, add(pMem, pLastMem))\n\n // Validate that all evaluations ∈ F\n \n checkField(calldataload(add(_pubSignals, 0)))\n \n checkField(calldataload(add(_pubSignals, 32)))\n \n checkField(calldataload(add(_pubSignals, 64)))\n \n checkField(calldataload(add(_pubSignals, 96)))\n \n checkField(calldataload(add(_pubSignals, 128)))\n \n checkField(calldataload(add(_pubSignals, 160)))\n \n checkField(calldataload(add(_pubSignals, 192)))\n \n checkField(calldataload(add(_pubSignals, 224)))\n \n\n // Validate all evaluations\n let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem)\n\n mstore(0, isValid)\n return(0, 0x20)\n }\n }\n }\n" + }, + "contracts/verifiers/idcard/Verifier_idcard_sha256.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\n/*\n Copyright 2021 0KIMS association.\n\n This file is generated with [snarkJS](https://github.com/iden3/snarkjs).\n\n snarkJS is a free software: you can redistribute it and/or modify it\n under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n snarkJS is distributed in the hope that it will be useful, but WITHOUT\n ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n License for more details.\n\n You should have received a copy of the GNU General Public License\n along with snarkJS. If not, see .\n*/\n\npragma solidity >=0.7.0 <0.9.0;\n\ncontract Verifier_idcard_sha256 {\n // Scalar field size\n uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n // Base field size\n uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n\n // Verification Key data\n uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;\n uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;\n uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;\n uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;\n uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;\n uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;\n uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;\n uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;\n uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;\n uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;\n uint256 constant deltax1 = 7108172092573882105714150420819903874929273543981336077096548575233836698051;\n uint256 constant deltax2 = 9695439068955503176000162189209453260970522179427226826392485950884732033729;\n uint256 constant deltay1 = 16624583325771504903535054637337144476996725989113711836927112345441013919930;\n uint256 constant deltay2 = 19276965844456483080300510857160492253225414152970648735893251665359428236630;\n\n \n uint256 constant IC0x = 5807073784152025986669718972725067491508529549260211827791183407948915436053;\n uint256 constant IC0y = 3153946873969499332822384811010472154710578920431675755800464865969736663036;\n \n uint256 constant IC1x = 5283721587798488023915095641638604156996041660509251368562130109756059799599;\n uint256 constant IC1y = 2251445930270611158926192324108159716803841205251031703916621053847441007382;\n \n uint256 constant IC2x = 21407052562448988952738358426382390833296254762259827778796379478555008692000;\n uint256 constant IC2y = 18591747716383551089930777925944581376763038844729833670184573014967075693963;\n \n uint256 constant IC3x = 16064178344486809248644271655972142215473007569225250956257403428941755984216;\n uint256 constant IC3y = 16062675701931919990917355706503482044477775920236427526503412929529399918562;\n \n uint256 constant IC4x = 1546275417863397238581225548343538707005318324353758499244112897265836238229;\n uint256 constant IC4y = 13063754323861482376286995035193283748950215952642567157801002274791495918786;\n \n uint256 constant IC5x = 1141079313021565119492833931790595578183633299696035861651276524275111123783;\n uint256 constant IC5y = 7166084310153930480927638721172548523660750971204544078450628343211919242925;\n \n uint256 constant IC6x = 1971179529908889456121637385865871080294916196885258489908146419781659282160;\n uint256 constant IC6y = 50579574438141375186398099028392679205914531546519480875621917297963856441;\n \n uint256 constant IC7x = 9100199755459715713519393317043280025615287889744180275461286004332778013036;\n uint256 constant IC7y = 7061165107258796431766606546368143418686100123207385991264212484194753568741;\n \n uint256 constant IC8x = 17364972641898162599433694008538623445213336000800890562234624733284246493780;\n uint256 constant IC8y = 12746849599984592234975470756593776746553513502857491451188960360675308816217;\n \n \n // Memory data\n uint16 constant pVk = 0;\n uint16 constant pPairing = 128;\n\n uint16 constant pLastMem = 896;\n\n function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) {\n assembly {\n function checkField(v) {\n if iszero(lt(v, r)) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n \n // G1 function to multiply a G1 value(x,y) to value in an address\n function g1_mulAccC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn, 32), y)\n mstore(add(mIn, 64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n\n mstore(add(mIn, 64), mload(pR))\n mstore(add(mIn, 96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n\n function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk {\n let _pPairing := add(pMem, pPairing)\n let _pVk := add(pMem, pVk)\n\n mstore(_pVk, IC0x)\n mstore(add(_pVk, 32), IC0y)\n\n // Compute the linear combination vk_x\n \n g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0)))\n \n g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32)))\n \n g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64)))\n \n g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96)))\n \n g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128)))\n \n g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160)))\n \n g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192)))\n \n g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224)))\n \n\n // -A\n mstore(_pPairing, calldataload(pA))\n mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))\n\n // B\n mstore(add(_pPairing, 64), calldataload(pB))\n mstore(add(_pPairing, 96), calldataload(add(pB, 32)))\n mstore(add(_pPairing, 128), calldataload(add(pB, 64)))\n mstore(add(_pPairing, 160), calldataload(add(pB, 96)))\n\n // alpha1\n mstore(add(_pPairing, 192), alphax)\n mstore(add(_pPairing, 224), alphay)\n\n // beta2\n mstore(add(_pPairing, 256), betax1)\n mstore(add(_pPairing, 288), betax2)\n mstore(add(_pPairing, 320), betay1)\n mstore(add(_pPairing, 352), betay2)\n\n // vk_x\n mstore(add(_pPairing, 384), mload(add(pMem, pVk)))\n mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))\n\n\n // gamma2\n mstore(add(_pPairing, 448), gammax1)\n mstore(add(_pPairing, 480), gammax2)\n mstore(add(_pPairing, 512), gammay1)\n mstore(add(_pPairing, 544), gammay2)\n\n // C\n mstore(add(_pPairing, 576), calldataload(pC))\n mstore(add(_pPairing, 608), calldataload(add(pC, 32)))\n\n // delta2\n mstore(add(_pPairing, 640), deltax1)\n mstore(add(_pPairing, 672), deltax2)\n mstore(add(_pPairing, 704), deltay1)\n mstore(add(_pPairing, 736), deltay2)\n\n\n let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)\n\n isOk := and(success, mload(_pPairing))\n }\n\n let pMem := mload(0x40)\n mstore(0x40, add(pMem, pLastMem))\n\n // Validate that all evaluations ∈ F\n \n checkField(calldataload(add(_pubSignals, 0)))\n \n checkField(calldataload(add(_pubSignals, 32)))\n \n checkField(calldataload(add(_pubSignals, 64)))\n \n checkField(calldataload(add(_pubSignals, 96)))\n \n checkField(calldataload(add(_pubSignals, 128)))\n \n checkField(calldataload(add(_pubSignals, 160)))\n \n checkField(calldataload(add(_pubSignals, 192)))\n \n checkField(calldataload(add(_pubSignals, 224)))\n \n\n // Validate all evaluations\n let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem)\n\n mstore(0, isValid)\n return(0, 0x20)\n }\n }\n }\n" + }, + "contracts/verifiers/idcard/Verifier_idcard_sha384.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\n/*\n Copyright 2021 0KIMS association.\n\n This file is generated with [snarkJS](https://github.com/iden3/snarkjs).\n\n snarkJS is a free software: you can redistribute it and/or modify it\n under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n snarkJS is distributed in the hope that it will be useful, but WITHOUT\n ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n License for more details.\n\n You should have received a copy of the GNU General Public License\n along with snarkJS. If not, see .\n*/\n\npragma solidity >=0.7.0 <0.9.0;\n\ncontract Verifier_idcard_sha384 {\n // Scalar field size\n uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n // Base field size\n uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n\n // Verification Key data\n uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;\n uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;\n uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;\n uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;\n uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;\n uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;\n uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;\n uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;\n uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;\n uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;\n uint256 constant deltax1 = 19655267862703232013829558435145045870843976930317590302824065146843396793287;\n uint256 constant deltax2 = 14195549125710551284606145175737530478528743926899571023260883255716761594395;\n uint256 constant deltay1 = 12351506351799819269703309449630651195742753280534835077105389539461715372776;\n uint256 constant deltay2 = 7757467232203449399932908423406007245263352828411880209643256057184653017967;\n\n \n uint256 constant IC0x = 11270188442615110054592905685303866070211371561895152828128613979248055308430;\n uint256 constant IC0y = 17094828042062504652619232971444441284630915101777029406911574231991586336724;\n \n uint256 constant IC1x = 18751691849380434759742123152792239506083151498563933974092309240285734437188;\n uint256 constant IC1y = 20049688398989672878619117574546912141000756138423254830622095575650209521;\n \n uint256 constant IC2x = 5938392327398300804986545026506195748618068681474530419676855339051724354681;\n uint256 constant IC2y = 8496173201972055300493072974747730402044794614021033901250025816096583531491;\n \n uint256 constant IC3x = 18000232485605953449068588695892070696902807064395147271058762007105019126334;\n uint256 constant IC3y = 13923155271741522539404325966123937970365444537725373655255388853887141798562;\n \n uint256 constant IC4x = 18010446893195512579759629398857801006052931911571641584652135841768992002694;\n uint256 constant IC4y = 8276620288288895394093542524347952614344582824042813385149643354238997853456;\n \n uint256 constant IC5x = 1772200220203916441938998769520117542016198278365528522982894992382620434050;\n uint256 constant IC5y = 10763253272545780012285573652711822860500927391871532508832349175799702957899;\n \n uint256 constant IC6x = 2845166560779510830835994118050041826820064658573423743433800926181089860866;\n uint256 constant IC6y = 11211513421119271124146455847515997833727893766507544722895265116859776449715;\n \n uint256 constant IC7x = 20144845268222422495539907720657978943445065896623586123199733159048326999760;\n uint256 constant IC7y = 19718463288658080919803732449300100569607034448022178085387100796258626298784;\n \n uint256 constant IC8x = 7058482481805554138205851299679309168316653411824837725236270182057684890239;\n uint256 constant IC8y = 10896475570578198455810015516790890845312936312589495726969700601169379853378;\n \n \n // Memory data\n uint16 constant pVk = 0;\n uint16 constant pPairing = 128;\n\n uint16 constant pLastMem = 896;\n\n function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) {\n assembly {\n function checkField(v) {\n if iszero(lt(v, r)) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n \n // G1 function to multiply a G1 value(x,y) to value in an address\n function g1_mulAccC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn, 32), y)\n mstore(add(mIn, 64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n\n mstore(add(mIn, 64), mload(pR))\n mstore(add(mIn, 96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n\n function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk {\n let _pPairing := add(pMem, pPairing)\n let _pVk := add(pMem, pVk)\n\n mstore(_pVk, IC0x)\n mstore(add(_pVk, 32), IC0y)\n\n // Compute the linear combination vk_x\n \n g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0)))\n \n g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32)))\n \n g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64)))\n \n g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96)))\n \n g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128)))\n \n g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160)))\n \n g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192)))\n \n g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224)))\n \n\n // -A\n mstore(_pPairing, calldataload(pA))\n mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))\n\n // B\n mstore(add(_pPairing, 64), calldataload(pB))\n mstore(add(_pPairing, 96), calldataload(add(pB, 32)))\n mstore(add(_pPairing, 128), calldataload(add(pB, 64)))\n mstore(add(_pPairing, 160), calldataload(add(pB, 96)))\n\n // alpha1\n mstore(add(_pPairing, 192), alphax)\n mstore(add(_pPairing, 224), alphay)\n\n // beta2\n mstore(add(_pPairing, 256), betax1)\n mstore(add(_pPairing, 288), betax2)\n mstore(add(_pPairing, 320), betay1)\n mstore(add(_pPairing, 352), betay2)\n\n // vk_x\n mstore(add(_pPairing, 384), mload(add(pMem, pVk)))\n mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))\n\n\n // gamma2\n mstore(add(_pPairing, 448), gammax1)\n mstore(add(_pPairing, 480), gammax2)\n mstore(add(_pPairing, 512), gammay1)\n mstore(add(_pPairing, 544), gammay2)\n\n // C\n mstore(add(_pPairing, 576), calldataload(pC))\n mstore(add(_pPairing, 608), calldataload(add(pC, 32)))\n\n // delta2\n mstore(add(_pPairing, 640), deltax1)\n mstore(add(_pPairing, 672), deltax2)\n mstore(add(_pPairing, 704), deltay1)\n mstore(add(_pPairing, 736), deltay2)\n\n\n let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)\n\n isOk := and(success, mload(_pPairing))\n }\n\n let pMem := mload(0x40)\n mstore(0x40, add(pMem, pLastMem))\n\n // Validate that all evaluations ∈ F\n \n checkField(calldataload(add(_pubSignals, 0)))\n \n checkField(calldataload(add(_pubSignals, 32)))\n \n checkField(calldataload(add(_pubSignals, 64)))\n \n checkField(calldataload(add(_pubSignals, 96)))\n \n checkField(calldataload(add(_pubSignals, 128)))\n \n checkField(calldataload(add(_pubSignals, 160)))\n \n checkField(calldataload(add(_pubSignals, 192)))\n \n checkField(calldataload(add(_pubSignals, 224)))\n \n\n // Validate all evaluations\n let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem)\n\n mstore(0, isValid)\n return(0, 0x20)\n }\n }\n }\n" + }, + "contracts/verifiers/idcard/Verifier_idcard_sha512.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\n/*\n Copyright 2021 0KIMS association.\n\n This file is generated with [snarkJS](https://github.com/iden3/snarkjs).\n\n snarkJS is a free software: you can redistribute it and/or modify it\n under the terms of the GNU General Public License as published by\n the Free Software Foundation, either version 3 of the License, or\n (at your option) any later version.\n\n snarkJS is distributed in the hope that it will be useful, but WITHOUT\n ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public\n License for more details.\n\n You should have received a copy of the GNU General Public License\n along with snarkJS. If not, see .\n*/\n\npragma solidity >=0.7.0 <0.9.0;\n\ncontract Verifier_idcard_sha512 {\n // Scalar field size\n uint256 constant r = 21888242871839275222246405745257275088548364400416034343698204186575808495617;\n // Base field size\n uint256 constant q = 21888242871839275222246405745257275088696311157297823662689037894645226208583;\n\n // Verification Key data\n uint256 constant alphax = 20491192805390485299153009773594534940189261866228447918068658471970481763042;\n uint256 constant alphay = 9383485363053290200918347156157836566562967994039712273449902621266178545958;\n uint256 constant betax1 = 4252822878758300859123897981450591353533073413197771768651442665752259397132;\n uint256 constant betax2 = 6375614351688725206403948262868962793625744043794305715222011528459656738731;\n uint256 constant betay1 = 21847035105528745403288232691147584728191162732299865338377159692350059136679;\n uint256 constant betay2 = 10505242626370262277552901082094356697409835680220590971873171140371331206856;\n uint256 constant gammax1 = 11559732032986387107991004021392285783925812861821192530917403151452391805634;\n uint256 constant gammax2 = 10857046999023057135944570762232829481370756359578518086990519993285655852781;\n uint256 constant gammay1 = 4082367875863433681332203403145435568316851327593401208105741076214120093531;\n uint256 constant gammay2 = 8495653923123431417604973247489272438418190587263600148770280649306958101930;\n uint256 constant deltax1 = 4935033327587461782389399627854920991236616908810469118714751732342275061446;\n uint256 constant deltax2 = 15040958817808294539935544369419776183117239349380901163111409504958017663844;\n uint256 constant deltay1 = 2007224316571344161465238472801840878489508282789288888858559848605646240848;\n uint256 constant deltay2 = 18559749753958183583592478532149214224703016975298333460861915544653661358144;\n\n \n uint256 constant IC0x = 6775054402228643716255802334734986948682682430518279486253196481989309566722;\n uint256 constant IC0y = 1256219047132642118025609848816390346107005389894625383105806516968349425164;\n \n uint256 constant IC1x = 10110553127718601502494156062027021792279415695007706303064445895305746796972;\n uint256 constant IC1y = 19898978399161065879464846829838064639432473397440657393515694239075549459414;\n \n uint256 constant IC2x = 14560187434499034871351467627171103172625120844651854114827556003788720970417;\n uint256 constant IC2y = 14936108571712972245301749671097039789606832305941080664225776268655751656953;\n \n uint256 constant IC3x = 14059919891828809017722021432418231931402595098208687542598123338150745640383;\n uint256 constant IC3y = 5287189187302449882380587305482098132045305570686129384654017642428856537257;\n \n uint256 constant IC4x = 6706949763853995059505242437648432929838165367162467746373417384817649939970;\n uint256 constant IC4y = 2015510185648144270749764376656342256126280301977931907354368277198561816787;\n \n uint256 constant IC5x = 18546765018009385869253392738080678323434493864448585402685748329856156497557;\n uint256 constant IC5y = 9710848189318571196518271373510494268801356872445810355853168058492459988199;\n \n uint256 constant IC6x = 544902746110577324329364298650693667366017259389786868738072664789424802924;\n uint256 constant IC6y = 19862963901307499231830066453364234728952499255639862660100552186005791941065;\n \n uint256 constant IC7x = 9061076520764351620379515690585690079034134082404925699620585204866352078475;\n uint256 constant IC7y = 19484642542605957456985051447710501567528279902650299867448130248236291732801;\n \n uint256 constant IC8x = 9914119697422775374510091216988900063691223646782798037580428451954809638249;\n uint256 constant IC8y = 12901895327948330263975865343040217195073424381052892161417037093019981392204;\n \n \n // Memory data\n uint16 constant pVk = 0;\n uint16 constant pPairing = 128;\n\n uint16 constant pLastMem = 896;\n\n function verifyProof(uint[2] calldata _pA, uint[2][2] calldata _pB, uint[2] calldata _pC, uint[8] calldata _pubSignals) public view returns (bool) {\n assembly {\n function checkField(v) {\n if iszero(lt(v, r)) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n \n // G1 function to multiply a G1 value(x,y) to value in an address\n function g1_mulAccC(pR, x, y, s) {\n let success\n let mIn := mload(0x40)\n mstore(mIn, x)\n mstore(add(mIn, 32), y)\n mstore(add(mIn, 64), s)\n\n success := staticcall(sub(gas(), 2000), 7, mIn, 96, mIn, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n\n mstore(add(mIn, 64), mload(pR))\n mstore(add(mIn, 96), mload(add(pR, 32)))\n\n success := staticcall(sub(gas(), 2000), 6, mIn, 128, pR, 64)\n\n if iszero(success) {\n mstore(0, 0)\n return(0, 0x20)\n }\n }\n\n function checkPairing(pA, pB, pC, pubSignals, pMem) -> isOk {\n let _pPairing := add(pMem, pPairing)\n let _pVk := add(pMem, pVk)\n\n mstore(_pVk, IC0x)\n mstore(add(_pVk, 32), IC0y)\n\n // Compute the linear combination vk_x\n \n g1_mulAccC(_pVk, IC1x, IC1y, calldataload(add(pubSignals, 0)))\n \n g1_mulAccC(_pVk, IC2x, IC2y, calldataload(add(pubSignals, 32)))\n \n g1_mulAccC(_pVk, IC3x, IC3y, calldataload(add(pubSignals, 64)))\n \n g1_mulAccC(_pVk, IC4x, IC4y, calldataload(add(pubSignals, 96)))\n \n g1_mulAccC(_pVk, IC5x, IC5y, calldataload(add(pubSignals, 128)))\n \n g1_mulAccC(_pVk, IC6x, IC6y, calldataload(add(pubSignals, 160)))\n \n g1_mulAccC(_pVk, IC7x, IC7y, calldataload(add(pubSignals, 192)))\n \n g1_mulAccC(_pVk, IC8x, IC8y, calldataload(add(pubSignals, 224)))\n \n\n // -A\n mstore(_pPairing, calldataload(pA))\n mstore(add(_pPairing, 32), mod(sub(q, calldataload(add(pA, 32))), q))\n\n // B\n mstore(add(_pPairing, 64), calldataload(pB))\n mstore(add(_pPairing, 96), calldataload(add(pB, 32)))\n mstore(add(_pPairing, 128), calldataload(add(pB, 64)))\n mstore(add(_pPairing, 160), calldataload(add(pB, 96)))\n\n // alpha1\n mstore(add(_pPairing, 192), alphax)\n mstore(add(_pPairing, 224), alphay)\n\n // beta2\n mstore(add(_pPairing, 256), betax1)\n mstore(add(_pPairing, 288), betax2)\n mstore(add(_pPairing, 320), betay1)\n mstore(add(_pPairing, 352), betay2)\n\n // vk_x\n mstore(add(_pPairing, 384), mload(add(pMem, pVk)))\n mstore(add(_pPairing, 416), mload(add(pMem, add(pVk, 32))))\n\n\n // gamma2\n mstore(add(_pPairing, 448), gammax1)\n mstore(add(_pPairing, 480), gammax2)\n mstore(add(_pPairing, 512), gammay1)\n mstore(add(_pPairing, 544), gammay2)\n\n // C\n mstore(add(_pPairing, 576), calldataload(pC))\n mstore(add(_pPairing, 608), calldataload(add(pC, 32)))\n\n // delta2\n mstore(add(_pPairing, 640), deltax1)\n mstore(add(_pPairing, 672), deltax2)\n mstore(add(_pPairing, 704), deltay1)\n mstore(add(_pPairing, 736), deltay2)\n\n\n let success := staticcall(sub(gas(), 2000), 8, _pPairing, 768, _pPairing, 0x20)\n\n isOk := and(success, mload(_pPairing))\n }\n\n let pMem := mload(0x40)\n mstore(0x40, add(pMem, pLastMem))\n\n // Validate that all evaluations ∈ F\n \n checkField(calldataload(add(_pubSignals, 0)))\n \n checkField(calldataload(add(_pubSignals, 32)))\n \n checkField(calldataload(add(_pubSignals, 64)))\n \n checkField(calldataload(add(_pubSignals, 96)))\n \n checkField(calldataload(add(_pubSignals, 128)))\n \n checkField(calldataload(add(_pubSignals, 160)))\n \n checkField(calldataload(add(_pubSignals, 192)))\n \n checkField(calldataload(add(_pubSignals, 224)))\n \n\n // Validate all evaluations\n let isValid := checkPairing(_pA, _pB, _pC, _pubSignals, pMem)\n\n mstore(0, isValid)\n return(0, 0x20)\n }\n }\n }\n" + }, + "contracts/verifiers/PassportCredentialIssuer.sol": { + "content": "// SPDX-License-Identifier: GPL-3.0\npragma solidity 0.8.27;\n\nimport {ECDSA} from \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\nimport {EIP712Upgradeable} from \"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol\";\nimport {EnumerableSet} from \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\nimport {IdentityLib} from \"@iden3/contracts/lib/IdentityLib.sol\";\nimport {IdentityBase} from \"@iden3/contracts/lib/IdentityBase.sol\";\nimport {ICredentialCircuitVerifier} from \"../interfaces/ICredentialCircuitVerifier.sol\";\nimport {CircuitConstants} from \"../constants/CircuitConstants.sol\";\nimport {Ownable2StepUpgradeable} from \"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\";\nimport {DateTime} from \"@quant-finance/solidity-datetime/contracts/DateTime.sol\";\nimport {IAttestationValidator} from \"../interfaces/IAttestationValidator.sol\";\n\nerror InvalidLinkId(uint256 linkId1, uint256 linkId2);\nerror InvalidHashIndex(uint256 hashIndex);\nerror InvalidHashValue(uint256 hashValue);\nerror InvalidTemplateRoot(uint256 templateRoot, uint256 expectedTemplateRoot);\nerror IssuanceDateExpired(uint256 issuanceDate);\nerror IssuanceDateInFuture(uint256 issuanceDate);\nerror CurrentDateExpired(uint256 currentDate);\nerror CurrentDateInFuture(uint256 currentDate);\nerror NullifierDoesNotExist(uint256 nullifier);\nerror LengthMismatch(uint256 length1, uint256 length2);\nerror NoVerifierSet();\nerror InvalidCredentialProof();\nerror InvalidPassportSignatureProof();\nerror InvalidSignerPassportSignatureProof(address signer);\nerror NoCredentialCircuitIdFound(string circuitId);\nerror InvalidTransactor(address transactor);\nerror ImageHashIsNotWhitelisted(bytes32 imageHash);\nerror InvalidAttestation();\nerror InvalidSignerAddress();\nerror InvalidAttestationUserDataLength();\nerror InvalidIssuerDidHash();\nerror InvalidRevocationNonce(uint64 revocationNonce);\n\n/**\n * @dev Address ownership credential issuer.\n * This issuer issue non-merklized credentials decentralized.\n */\ncontract PassportCredentialIssuer is IdentityBase, EIP712Upgradeable, Ownable2StepUpgradeable {\n using IdentityLib for IdentityLib.Data;\n using ECDSA for bytes32;\n using EnumerableSet for EnumerableSet.AddressSet;\n using DateTime for uint256;\n\n /**\n * @dev Version of the contract\n */\n string public constant VERSION = \"1.0.3\";\n\n /**\n * @dev Version of EIP 712 domain\n */\n string public constant DOMAIN_VERSION = \"1.0.0\";\n\n uint256 private constant DATE_20TH_CENTURY = 500000;\n\n /**\n * @dev PassportCredential message data type hash\n */\n bytes32 public constant PASSPORT_CREDENTIAL_MESSAGE_TYPEHASH =\n keccak256(\"PassportCredential(uint256 linkId,uint256 nullifier)\");\n\n struct StateInfo {\n address stateAddress;\n bytes2 idType;\n }\n\n struct PassportCredentialMessage {\n uint256 linkId;\n uint256 nullifier;\n }\n\n struct PassportSignatureProof {\n PassportCredentialMessage passportCredentialMsg;\n bytes signature;\n }\n\n struct CredentialProof {\n string circuitId;\n bytes proof;\n }\n\n struct ProofInputs {\n uint256 hashIndex;\n uint256 hashValue;\n uint256 issuanceDate;\n uint256 currentDate;\n uint256 templateRoot;\n uint256 linkIdCredentialProof;\n uint64 revocationNonce;\n uint256 issuerDidHash;\n }\n\n /// @custom:storage-location erc7201:polygonid.storage.PassportCredentialIssuer\n struct PassportCredentialIssuerStorage {\n uint256 _expirationTime;\n uint256 _templateRoot;\n uint256 _maxFutureTime;\n mapping(string circuitId => address verifier) _credentialVerifiers;\n EnumerableSet.AddressSet _signers;\n IAttestationValidator _attestationValidator;\n mapping(bytes32 imageHash => bool isApproved) _imageHashesWhitelist;\n EnumerableSet.AddressSet _transactors;\n mapping(uint256 nullifier => uint64 revocationNonce) _nullifiersToRevocationNonce;\n uint256 _issuerDidHash;\n }\n\n // check if the hash was calculated correctly\n // keccak256(abi.encode(uint256(keccak256(\"polygonid.storage.PassportCredentialIssuer\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant PassportCredentialIssuerStorageLocation =\n 0x405d73f251ed6c997b1c097c46d2f830c946626e510c12346d80e7c5a4dad300;\n\n function _getPassportCredentialIssuerStorage()\n private\n pure\n returns (PassportCredentialIssuerStorage storage store)\n {\n assembly {\n store.slot := PassportCredentialIssuerStorageLocation\n }\n }\n\n /**\n * @notice Emitted when a credential circuit verifier is updated.\n * @param circuitId The credential circuit id.\n * @param verifier The new verifier address for the credential circuit.\n */\n event CredentialCircuitVerifierUpdated(string circuitId, address verifier);\n /**\n * @notice Emitted when the expiration time is updated.\n * @param expirationTime The new expiration time.\n */\n event ExpirationTimeUpdated(uint256 expirationTime);\n /**\n * @notice Emitted when the template root is updated.\n * @param tampletRoot The new template root.\n */\n event TemplateRootUpdated(uint256 tampletRoot);\n /**\n * @notice Emitted when a new signer is added.\n * @param signer The signer address.\n */\n event SignerAdded(address signer);\n /**\n * @notice Emitted when a new transactor is added.\n * @param transactor The transactor address.\n */\n event TransactorAdded(address transactor);\n /**\n * @notice Emitted when a credential is revoked.\n * @param revocationNonce The revocation nonce of the revoked credential.\n */\n event CredentialRevoked(uint256 nullifier, uint64 revocationNonce);\n /**\n * @notice Emitted when the max future time is updated.\n * @param maxFutureTime The new max future time.\n */\n event MaxFutureTimeUpdated(uint256 maxFutureTime);\n\n // ====================================================\n // Constructor\n // ====================================================\n\n /**\n * @notice Constructor that disables initializers.\n * @dev Prevents direct initialization of the implementation contract.\n */\n constructor() {\n _disableInitializers();\n }\n\n /**\n * @dev Throws if called by any account other than transactors.\n */\n modifier onlyTransactors() {\n _checkTransactor();\n _;\n }\n\n // ====================================================\n // Initializer\n // ====================================================\n\n function initializeIssuer(\n uint256 expirationTime,\n uint256 maxFutureTime,\n uint256 templateRoot,\n string[] calldata credentialCircuitIds,\n address[] calldata credentialVerifierAddresses,\n StateInfo calldata stateInfo,\n address owner,\n IAttestationValidator validator\n ) public initializer {\n super.initialize(stateInfo.stateAddress, stateInfo.idType);\n __Ownable_init(owner);\n\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n $._expirationTime = expirationTime;\n $._maxFutureTime = maxFutureTime;\n $._templateRoot = templateRoot;\n $._attestationValidator = validator;\n\n __EIP712_init(\"PassportIssuerV1\", DOMAIN_VERSION);\n _updateCredentialVerifiers(credentialCircuitIds, credentialVerifierAddresses);\n }\n\n function addSigner(bytes memory attestation) public onlyTransactors {\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n\n (bytes memory userData, bytes32 imageHash, bool validated) = $\n ._attestationValidator\n .validateAttestation(attestation);\n\n if (!isWhitelistedImageHash(imageHash)) {\n revert ImageHashIsNotWhitelisted(imageHash);\n }\n\n if (!validated) {\n revert InvalidAttestation();\n }\n\n if (userData.length < 20) {\n revert InvalidAttestationUserDataLength();\n }\n\n // 1. decode user data\n address userDataDecoded;\n assembly {\n userDataDecoded := mload(add(userData, 20))\n }\n\n if (userDataDecoded == address(0)) {\n revert InvalidSignerAddress();\n }\n\n // 2. add signer\n $._signers.add(userDataDecoded);\n emit SignerAdded(userDataDecoded);\n }\n\n /**\n * @notice Retrieves the signers.\n */\n function getSigners() external view returns (address[] memory) {\n return _getPassportCredentialIssuerStorage()._signers.values();\n }\n\n function addTransactor(address transactor) public onlyOwner {\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n $._transactors.add(transactor);\n emit TransactorAdded(transactor);\n }\n\n /**\n * @notice Retrieves the transactors.\n */\n function getTransactors() external view returns (address[] memory) {\n return _getPassportCredentialIssuerStorage()._transactors.values();\n }\n\n /**\n * @notice Retrieves the expiration time.\n * @return The expiration time.\n */\n function getExpirationTime() external view virtual returns (uint256) {\n return _getPassportCredentialIssuerStorage()._expirationTime;\n }\n\n /**\n * @notice Sets the expiration time.\n * @param expirationTime The new expiration time.\n */\n function setExpirationTime(uint256 expirationTime) external onlyOwner {\n _getPassportCredentialIssuerStorage()._expirationTime = expirationTime;\n emit ExpirationTimeUpdated(expirationTime);\n }\n\n /**\n * @notice Retrieves the template root.\n * @return The template root.\n */\n function getTemplateRoot() external view virtual returns (uint256) {\n return _getPassportCredentialIssuerStorage()._templateRoot;\n }\n\n /**\n * @notice Sets the template root.\n * @param templateRoot The new template root.\n */\n function setTemplateRoot(uint256 templateRoot) external onlyOwner {\n _getPassportCredentialIssuerStorage()._templateRoot = templateRoot;\n emit TemplateRootUpdated(templateRoot);\n }\n\n /**\n * @notice Retrieves the max future time.\n * @return The max future time.\n */\n function getMaxFutureTime() external view virtual returns (uint256) {\n return _getPassportCredentialIssuerStorage()._maxFutureTime;\n }\n\n /**\n * @notice Sets the max future time.\n * @param maxFutureTime The new max future time.\n */\n function setMaxFutureTime(uint256 maxFutureTime) external onlyOwner {\n _getPassportCredentialIssuerStorage()._maxFutureTime = maxFutureTime;\n emit MaxFutureTimeUpdated(maxFutureTime);\n }\n\n /**\n * @dev Set attestation validator\n * @param validator - attestation validator\n */\n function setAttestationValidator(IAttestationValidator validator) external onlyOwner {\n _getPassportCredentialIssuerStorage()._attestationValidator = validator;\n }\n\n /**\n * @dev Updates the credential circuit verifiers for a specific circuit identifiers.\n * @param circuitIds The credential circuit identifiers.\n * @param verifierAddresses The new credential circuit verifier addresses.\n */\n function updateCredentialVerifiers(\n string[] calldata circuitIds,\n address[] calldata verifierAddresses\n ) public virtual onlyOwner {\n _updateCredentialVerifiers(circuitIds, verifierAddresses);\n }\n\n /**\n * @notice Retrieves the credential verifier address for a given circuit id.\n * @param circuitId The circuit id identifier.\n * @return The credential verifier address.\n */\n function credentialVerifiers(string memory circuitId) external view virtual returns (address) {\n return _getPassportCredentialIssuerStorage()._credentialVerifiers[circuitId];\n }\n\n /**\n * @notice Revoke credential and remove nullifier.\n * @param nullifier credential nullifier.\n */\n function revokeCredential(uint256 nullifier) external onlyOwner {\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n uint64 nonce = $._nullifiersToRevocationNonce[nullifier];\n if (nonce == 0) {\n revert NullifierDoesNotExist(nullifier);\n }\n _revokeClaimAndTransit(nonce);\n $._nullifiersToRevocationNonce[nullifier] = 0;\n emit CredentialRevoked(nullifier, nonce);\n }\n\n /**\n * @notice Retrieves wether the nullifier exists.\n * @param nullifier The nullifier to check.\n * @return Wether the nullifier exists.\n */\n function nullifierExists(uint256 nullifier) external view returns (bool) {\n uint64 nonce = _getPassportCredentialIssuerStorage()._nullifiersToRevocationNonce[\n nullifier\n ];\n return nonce != 0;\n }\n\n /**\n * @notice Verifies the passport credential.\n * @param credentialProof Credential proof for the passport credential\n * @param passportSignatureProof Signature proof of the validation of the passport credential\n */\n function verifyPassport(\n CredentialProof memory credentialProof,\n bytes memory passportSignatureProof\n ) external {\n if (bytes(credentialProof.circuitId).length == 0) {\n revert NoCredentialCircuitIdFound(credentialProof.circuitId);\n }\n\n (\n uint256[] memory inputs1,\n uint256[2] memory a1,\n uint256[2][2] memory b1,\n uint256[2] memory c1\n ) = abi.decode(credentialProof.proof, (uint256[], uint256[2], uint256[2][2], uint256[2]));\n\n ICredentialCircuitVerifier.CredentialCircuitProof\n memory credentialCircuitProof = ICredentialCircuitVerifier.CredentialCircuitProof(\n a1,\n b1,\n c1,\n [\n inputs1[0],\n inputs1[1],\n inputs1[2],\n inputs1[3],\n inputs1[4],\n inputs1[5],\n inputs1[6],\n inputs1[7]\n ]\n );\n\n PassportSignatureProof memory passportSignatureProofDecoded = abi.decode(\n passportSignatureProof,\n (PassportSignatureProof)\n );\n\n _verifyPassportCredential(\n credentialProof.circuitId,\n credentialCircuitProof,\n passportSignatureProofDecoded\n );\n }\n\n /**\n * @dev Checks if imageHash of the enclave is whitelisted\n * @param imageHash The imageHash of the enclave\n * @return True if imageHash is whitelisted, otherwise returns false\n */\n function isWhitelistedImageHash(bytes32 imageHash) public view virtual returns (bool) {\n return _getPassportCredentialIssuerStorage()._imageHashesWhitelist[imageHash];\n }\n\n /**\n * @dev Adds an imageHash of the enclave to the whitelist\n * @param imageHash The imageHash of the enclave to add\n */\n function addImageHashToWhitelist(bytes32 imageHash) public onlyOwner {\n _getPassportCredentialIssuerStorage()._imageHashesWhitelist[imageHash] = true;\n }\n\n /**\n * @dev Removes an imageHash of the enclave from the whitelist\n * @param imageHash The imageHash of the enclave to remove\n */\n function removeImageHashFromWhitelist(bytes32 imageHash) public onlyOwner {\n _getPassportCredentialIssuerStorage()._imageHashesWhitelist[imageHash] = false;\n }\n\n /**\n * @dev Removes a signer from the list of signers\n * @param signer The address of the signer to remove\n */\n function removeSigner(address signer) external onlyOwner {\n _getPassportCredentialIssuerStorage()._signers.remove(signer);\n }\n\n /**\n * @dev Removes a transactor from the list of transactors\n * @param transactor The address of the transactor to remove\n */\n function removeTransactor(address transactor) external onlyOwner {\n _getPassportCredentialIssuerStorage()._transactors.remove(transactor);\n }\n\n /**\n * @notice Retrieves the issuer DID hash.\n * @return The issuer DID hash.\n */\n function getIssuerDIDHash() external view returns (uint256) {\n return _getPassportCredentialIssuerStorage()._issuerDidHash;\n }\n\n /**\n * @notice Updates the issuer DID hash.\n * @param issuerDidHash The new issuer DID hash.\n */\n function setIssuerDIDHash(uint256 issuerDidHash) external onlyOwner {\n _getPassportCredentialIssuerStorage()._issuerDidHash = issuerDidHash;\n }\n\n function _checkTransactor() internal view {\n if (!_getPassportCredentialIssuerStorage()._transactors.contains(_msgSender())) {\n revert InvalidTransactor(_msgSender());\n }\n }\n\n function _verifyPassportCredential(\n string memory credentialCircuitId,\n ICredentialCircuitVerifier.CredentialCircuitProof memory credentialCircuitProof,\n PassportSignatureProof memory passportSignatureProof\n ) internal {\n _verifyCredentialProof(credentialCircuitId, credentialCircuitProof);\n _verifySignature(passportSignatureProof);\n _afterProofsSubmit(credentialCircuitProof, passportSignatureProof);\n }\n\n function _validatePublicInputs(\n uint256 hashIndex,\n uint256 hashValue,\n uint256 issuanceDate,\n uint256 currentDate,\n uint256 templateRoot,\n uint256 linkIdCredentialProof,\n uint256 linkIdSignature,\n uint256 nullifier,\n uint256 issuerDidHash\n ) internal view {\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n if (hashIndex == 0) revert InvalidHashIndex(hashIndex);\n if (hashValue == 0) revert InvalidHashValue(hashValue);\n\n if (templateRoot != $._templateRoot)\n revert InvalidTemplateRoot(templateRoot, $._templateRoot);\n\n if (linkIdSignature != linkIdCredentialProof)\n revert InvalidLinkId(linkIdSignature, linkIdCredentialProof);\n\n uint256 currentDateWithFullYear;\n // currentDate is YYMMDD format\n if (currentDate > DATE_20TH_CENTURY) {\n // 19xx\n currentDateWithFullYear = currentDate + 19000000;\n } else {\n // 20xx\n currentDateWithFullYear = currentDate + 20000000;\n }\n\n // This scope was added to avoid stack too deep error\n // scope: verify if currentDate is in time range\n {\n (uint256 year, uint256 month, uint256 day) = DateTime.timestampToDate(\n block.timestamp - $._expirationTime\n );\n uint256 minimumExpectedCurrentDate = year * 10000 + month * 100 + day;\n if (minimumExpectedCurrentDate > currentDateWithFullYear) {\n revert CurrentDateExpired(currentDate);\n }\n (uint256 futureYear, uint256 futureMonth, uint256 futureDay) = DateTime.timestampToDate(\n block.timestamp + $._maxFutureTime\n );\n uint256 futureDate = futureYear * 10000 + futureMonth * 100 + futureDay;\n if (currentDateWithFullYear > futureDate) {\n revert CurrentDateInFuture(currentDate);\n }\n }\n\n if (issuanceDate + $._expirationTime < block.timestamp)\n revert IssuanceDateExpired(issuanceDate);\n if (issuanceDate > block.timestamp + $._maxFutureTime)\n revert IssuanceDateInFuture(issuanceDate);\n\n if ($._issuerDidHash != issuerDidHash) revert InvalidIssuerDidHash();\n }\n\n function _addHashAndTransit(uint256 hi, uint256 hv) internal {\n _getIdentityBaseStorage().identity.addClaimHash(hi, hv);\n _getIdentityBaseStorage().identity.transitState();\n }\n\n function _revokeClaimAndTransit(uint64 nonce) internal {\n _getIdentityBaseStorage().identity.revokeClaim(nonce);\n _getIdentityBaseStorage().identity.transitState();\n }\n\n function _setNullifier(uint256 nullifier, uint64 revocationNonce) internal {\n if (revocationNonce == 0) revert InvalidRevocationNonce(revocationNonce);\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n uint64 existingNonce = $._nullifiersToRevocationNonce[nullifier];\n if (existingNonce != 0) {\n _getIdentityBaseStorage().identity.revokeClaim(existingNonce);\n emit CredentialRevoked(nullifier, existingNonce);\n }\n $._nullifiersToRevocationNonce[nullifier] = revocationNonce;\n }\n\n function _verifyCredentialProof(\n string memory credentialCircuitId,\n ICredentialCircuitVerifier.CredentialCircuitProof memory credentialCircuitProof\n ) internal view {\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n address verifier = $._credentialVerifiers[credentialCircuitId];\n if (verifier == address(0)) {\n revert NoVerifierSet();\n }\n if (\n !ICredentialCircuitVerifier(verifier).verifyProof(\n credentialCircuitProof.a,\n credentialCircuitProof.b,\n credentialCircuitProof.c,\n credentialCircuitProof.pubSignals\n )\n ) {\n revert InvalidCredentialProof();\n }\n }\n\n function _verifySignature(PassportSignatureProof memory passportSignatureProof) internal view {\n (bool isValid, address recovered) = _recoverPassportSignatureProofSigner(\n passportSignatureProof.passportCredentialMsg,\n passportSignatureProof.signature\n );\n if (!isValid) {\n revert InvalidPassportSignatureProof();\n }\n if (!_getPassportCredentialIssuerStorage()._signers.contains(recovered)) {\n revert InvalidSignerPassportSignatureProof(recovered);\n }\n }\n\n function _recoverPassportSignatureProofSigner(\n PassportCredentialMessage memory message,\n bytes memory signature\n ) internal view virtual returns (bool, address) {\n bytes32 hashTypedData = _hashTypedDataV4(\n keccak256(\n abi.encode(PASSPORT_CREDENTIAL_MESSAGE_TYPEHASH, message.linkId, message.nullifier)\n )\n );\n\n (address recovered, ECDSA.RecoverError err, ) = hashTypedData.tryRecover(signature);\n\n return (err == ECDSA.RecoverError.NoError, recovered);\n }\n\n function _afterProofsSubmit(\n ICredentialCircuitVerifier.CredentialCircuitProof memory credentialCircuitProof,\n PassportSignatureProof memory passportSignatureProof\n ) internal {\n ProofInputs memory inputs = _extractProofInputs(credentialCircuitProof);\n\n uint256 nullifier = passportSignatureProof.passportCredentialMsg.nullifier;\n _validatePublicInputs(\n inputs.hashIndex,\n inputs.hashValue,\n inputs.issuanceDate,\n inputs.currentDate,\n inputs.templateRoot,\n inputs.linkIdCredentialProof,\n passportSignatureProof.passportCredentialMsg.linkId,\n nullifier,\n inputs.issuerDidHash\n );\n _setNullifier(nullifier, inputs.revocationNonce);\n _addHashAndTransit(inputs.hashIndex, inputs.hashValue);\n }\n\n function _updateCredentialVerifiers(\n string[] calldata circuitIds,\n address[] calldata verifierAddresses\n ) internal {\n PassportCredentialIssuerStorage storage $ = _getPassportCredentialIssuerStorage();\n if (circuitIds.length != verifierAddresses.length) {\n revert LengthMismatch(circuitIds.length, verifierAddresses.length);\n }\n for (uint256 i = 0; i < circuitIds.length; i++) {\n $._credentialVerifiers[circuitIds[i]] = verifierAddresses[i];\n\n emit CredentialCircuitVerifierUpdated(circuitIds[i], verifierAddresses[i]);\n }\n }\n\n function _extractProofInputs(\n ICredentialCircuitVerifier.CredentialCircuitProof memory credentialCircuitProof\n ) internal pure returns (ProofInputs memory) {\n return\n ProofInputs({\n hashIndex: credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_HASH_INDEX_INDEX\n ],\n hashValue: credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_HASH_VALUE_INDEX\n ],\n issuanceDate: credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_ISSUANCE_DATE_INDEX\n ],\n currentDate: credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_CURRENT_DATE_INDEX\n ],\n templateRoot: credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_TEMPLATE_ROOT_INDEX\n ],\n linkIdCredentialProof: credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_LINK_ID_INDEX\n ],\n revocationNonce: uint64(\n credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_REVOCATION_NONCE_INDEX\n ]\n ),\n issuerDidHash: credentialCircuitProof.pubSignals[\n CircuitConstants.CREDENTIAL_ISSUER_DID_HASH_INDEX\n ]\n });\n }\n}\n" + }, + "solidity-bytes-utils/contracts/BytesLib.sol": { + "content": "// SPDX-License-Identifier: Unlicense\n/*\n * @title Solidity Bytes Arrays Utils\n * @author Gonçalo Sá \n *\n * @dev Bytes tightly packed arrays utility library for ethereum contracts written in Solidity.\n * The library lets you concatenate, slice and type cast bytes arrays both in memory and storage.\n */\npragma solidity >=0.8.0 <0.9.0;\n\n\nlibrary BytesLib {\n function concat(\n bytes memory _preBytes,\n bytes memory _postBytes\n )\n internal\n pure\n returns (bytes memory)\n {\n bytes memory tempBytes;\n\n assembly {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // Store the length of the first bytes array at the beginning of\n // the memory for tempBytes.\n let length := mload(_preBytes)\n mstore(tempBytes, length)\n\n // Maintain a memory counter for the current write location in the\n // temp bytes array by adding the 32 bytes for the array length to\n // the starting location.\n let mc := add(tempBytes, 0x20)\n // Stop copying when the memory counter reaches the length of the\n // first bytes array.\n let end := add(mc, length)\n\n for {\n // Initialize a copy counter to the start of the _preBytes data,\n // 32 bytes into its memory.\n let cc := add(_preBytes, 0x20)\n } lt(mc, end) {\n // Increase both counters by 32 bytes each iteration.\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // Write the _preBytes data into the tempBytes memory 32 bytes\n // at a time.\n mstore(mc, mload(cc))\n }\n\n // Add the length of _postBytes to the current length of tempBytes\n // and store it as the new length in the first 32 bytes of the\n // tempBytes memory.\n length := mload(_postBytes)\n mstore(tempBytes, add(length, mload(tempBytes)))\n\n // Move the memory counter back from a multiple of 0x20 to the\n // actual end of the _preBytes data.\n mc := end\n // Stop copying when the memory counter reaches the new combined\n // length of the arrays.\n end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n // Update the free-memory pointer by padding our last write location\n // to 32 bytes: add 31 bytes to the end of tempBytes to move to the\n // next 32 byte block, then round down to the nearest multiple of\n // 32. If the sum of the length of the two arrays is zero then add\n // one before rounding down to leave a blank 32 bytes (the length block with 0).\n mstore(0x40, and(\n add(add(end, iszero(add(length, mload(_preBytes)))), 31),\n not(31) // Round down to the nearest 32 bytes.\n ))\n }\n\n return tempBytes;\n }\n\n function concatStorage(bytes storage _preBytes, bytes memory _postBytes) internal {\n assembly {\n // Read the first 32 bytes of _preBytes storage, which is the length\n // of the array. (We don't need to use the offset into the slot\n // because arrays use the entire slot.)\n let fslot := sload(_preBytes.slot)\n // Arrays of 31 bytes or less have an even value in their slot,\n // while longer arrays have an odd value. The actual length is\n // the slot divided by two for odd values, and the lowest order\n // byte divided by two for even values.\n // If the slot is even, bitwise and the slot with 255 and divide by\n // two to get the length. If the slot is odd, bitwise and the slot\n // with -1 and divide by two.\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n let newlength := add(slength, mlength)\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n switch add(lt(slength, 32), lt(newlength, 32))\n case 2 {\n // Since the new array still fits in the slot, we just need to\n // update the contents of the slot.\n // uint256(bytes_storage) = uint256(bytes_storage) + uint256(bytes_memory) + new_length\n sstore(\n _preBytes.slot,\n // all the modifications to the slot are inside this\n // next block\n add(\n // we can just add to the slot contents because the\n // bytes we want to change are the LSBs\n fslot,\n add(\n mul(\n div(\n // load the bytes from memory\n mload(add(_postBytes, 0x20)),\n // zero all bytes to the right\n exp(0x100, sub(32, mlength))\n ),\n // and now shift left the number of bytes to\n // leave space for the length in the slot\n exp(0x100, sub(32, newlength))\n ),\n // increase length by the double of the memory\n // bytes length\n mul(mlength, 2)\n )\n )\n )\n }\n case 1 {\n // The stored value fits in the slot, but the combined value\n // will exceed it.\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n // The contents of the _postBytes array start 32 bytes into\n // the structure. Our first read should obtain the `submod`\n // bytes that can fit into the unused space in the last word\n // of the stored array. To get this, we read 32 bytes starting\n // from `submod`, so the data we read overlaps with the array\n // contents by `submod` bytes. Masking the lowest-order\n // `submod` bytes allows us to add that value directly to the\n // stored value.\n\n let submod := sub(32, slength)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(\n sc,\n add(\n and(\n fslot,\n 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00\n ),\n and(mload(mc), mask)\n )\n )\n\n for {\n mc := add(mc, 0x20)\n sc := add(sc, 1)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n default {\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n // Start copying to the last used word of the stored array.\n let sc := add(keccak256(0x0, 0x20), div(slength, 32))\n\n // save new length\n sstore(_preBytes.slot, add(mul(newlength, 2), 1))\n\n // Copy over the first `submod` bytes of the new data as in\n // case 1 above.\n let slengthmod := mod(slength, 32)\n let mlengthmod := mod(mlength, 32)\n let submod := sub(32, slengthmod)\n let mc := add(_postBytes, submod)\n let end := add(_postBytes, mlength)\n let mask := sub(exp(0x100, submod), 1)\n\n sstore(sc, add(sload(sc), and(mload(mc), mask)))\n\n for {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } lt(mc, end) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n sstore(sc, mload(mc))\n }\n\n mask := exp(0x100, sub(mc, end))\n\n sstore(sc, mul(div(mload(mc), mask), mask))\n }\n }\n }\n\n function slice(\n bytes memory _bytes,\n uint256 _start,\n uint256 _length\n )\n internal\n pure\n returns (bytes memory)\n {\n require(_length + 31 >= _length, \"slice_overflow\");\n require(_bytes.length >= _start + _length, \"slice_outOfBounds\");\n\n bytes memory tempBytes;\n\n assembly {\n switch iszero(_length)\n case 0 {\n // Get a location of some free memory and store it in tempBytes as\n // Solidity does for memory variables.\n tempBytes := mload(0x40)\n\n // The first word of the slice result is potentially a partial\n // word read from the original array. To read it, we calculate\n // the length of that partial word and start copying that many\n // bytes into the array. The first word we copy will start with\n // data we don't care about, but the last `lengthmod` bytes will\n // land at the beginning of the contents of the new array. When\n // we're done copying, we overwrite the full first word with\n // the actual length of the slice.\n let lengthmod := and(_length, 31)\n\n // The multiplication in the next line is necessary\n // because when slicing multiples of 32 bytes (lengthmod == 0)\n // the following copy loop was copying the origin's length\n // and then ending prematurely not copying everything it should.\n let mc := add(add(tempBytes, lengthmod), mul(0x20, iszero(lengthmod)))\n let end := add(mc, _length)\n\n for {\n // The multiplication in the next line has the same exact purpose\n // as the one above.\n let cc := add(add(add(_bytes, lengthmod), mul(0x20, iszero(lengthmod))), _start)\n } lt(mc, end) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n mstore(mc, mload(cc))\n }\n\n mstore(tempBytes, _length)\n\n //update free-memory pointer\n //allocating the array padded to 32 bytes like the compiler does now\n mstore(0x40, and(add(mc, 31), not(31)))\n }\n //if we want a zero-length slice let's just return a zero-length array\n default {\n tempBytes := mload(0x40)\n //zero out the 32 bytes slice we are about to return\n //we need to do it because Solidity does not garbage collect\n mstore(tempBytes, 0)\n\n mstore(0x40, add(tempBytes, 0x20))\n }\n }\n\n return tempBytes;\n }\n\n function toAddress(bytes memory _bytes, uint256 _start) internal pure returns (address) {\n require(_bytes.length >= _start + 20, \"toAddress_outOfBounds\");\n address tempAddress;\n\n assembly {\n tempAddress := div(mload(add(add(_bytes, 0x20), _start)), 0x1000000000000000000000000)\n }\n\n return tempAddress;\n }\n\n function toUint8(bytes memory _bytes, uint256 _start) internal pure returns (uint8) {\n require(_bytes.length >= _start + 1 , \"toUint8_outOfBounds\");\n uint8 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x1), _start))\n }\n\n return tempUint;\n }\n\n function toUint16(bytes memory _bytes, uint256 _start) internal pure returns (uint16) {\n require(_bytes.length >= _start + 2, \"toUint16_outOfBounds\");\n uint16 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x2), _start))\n }\n\n return tempUint;\n }\n\n function toUint32(bytes memory _bytes, uint256 _start) internal pure returns (uint32) {\n require(_bytes.length >= _start + 4, \"toUint32_outOfBounds\");\n uint32 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x4), _start))\n }\n\n return tempUint;\n }\n\n function toUint64(bytes memory _bytes, uint256 _start) internal pure returns (uint64) {\n require(_bytes.length >= _start + 8, \"toUint64_outOfBounds\");\n uint64 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x8), _start))\n }\n\n return tempUint;\n }\n\n function toUint96(bytes memory _bytes, uint256 _start) internal pure returns (uint96) {\n require(_bytes.length >= _start + 12, \"toUint96_outOfBounds\");\n uint96 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0xc), _start))\n }\n\n return tempUint;\n }\n\n function toUint128(bytes memory _bytes, uint256 _start) internal pure returns (uint128) {\n require(_bytes.length >= _start + 16, \"toUint128_outOfBounds\");\n uint128 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x10), _start))\n }\n\n return tempUint;\n }\n\n function toUint256(bytes memory _bytes, uint256 _start) internal pure returns (uint256) {\n require(_bytes.length >= _start + 32, \"toUint256_outOfBounds\");\n uint256 tempUint;\n\n assembly {\n tempUint := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempUint;\n }\n\n function toBytes32(bytes memory _bytes, uint256 _start) internal pure returns (bytes32) {\n require(_bytes.length >= _start + 32, \"toBytes32_outOfBounds\");\n bytes32 tempBytes32;\n\n assembly {\n tempBytes32 := mload(add(add(_bytes, 0x20), _start))\n }\n\n return tempBytes32;\n }\n\n function equal(bytes memory _preBytes, bytes memory _postBytes) internal pure returns (bool) {\n bool success = true;\n\n assembly {\n let length := mload(_preBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(length, mload(_postBytes))\n case 1 {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n let mc := add(_preBytes, 0x20)\n let end := add(mc, length)\n\n for {\n let cc := add(_postBytes, 0x20)\n // the next line is the loop condition:\n // while(uint256(mc < end) + cb == 2)\n } eq(add(lt(mc, end), cb), 2) {\n mc := add(mc, 0x20)\n cc := add(cc, 0x20)\n } {\n // if any of these checks fails then arrays are not equal\n if iszero(eq(mload(mc), mload(cc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n\n function equalStorage(\n bytes storage _preBytes,\n bytes memory _postBytes\n )\n internal\n view\n returns (bool)\n {\n bool success = true;\n\n assembly {\n // we know _preBytes_offset is 0\n let fslot := sload(_preBytes.slot)\n // Decode the length of the stored array like in concatStorage().\n let slength := div(and(fslot, sub(mul(0x100, iszero(and(fslot, 1))), 1)), 2)\n let mlength := mload(_postBytes)\n\n // if lengths don't match the arrays are not equal\n switch eq(slength, mlength)\n case 1 {\n // slength can contain both the length and contents of the array\n // if length < 32 bytes so let's prepare for that\n // v. http://solidity.readthedocs.io/en/latest/miscellaneous.html#layout-of-state-variables-in-storage\n if iszero(iszero(slength)) {\n switch lt(slength, 32)\n case 1 {\n // blank the last byte which is the length\n fslot := mul(div(fslot, 0x100), 0x100)\n\n if iszero(eq(fslot, mload(add(_postBytes, 0x20)))) {\n // unsuccess:\n success := 0\n }\n }\n default {\n // cb is a circuit breaker in the for loop since there's\n // no said feature for inline assembly loops\n // cb = 1 - don't breaker\n // cb = 0 - break\n let cb := 1\n\n // get the keccak hash to get the contents of the array\n mstore(0x0, _preBytes.slot)\n let sc := keccak256(0x0, 0x20)\n\n let mc := add(_postBytes, 0x20)\n let end := add(mc, mlength)\n\n // the next line is the loop condition:\n // while(uint256(mc < end) + cb == 2)\n for {} eq(add(lt(mc, end), cb), 2) {\n sc := add(sc, 1)\n mc := add(mc, 0x20)\n } {\n if iszero(eq(sload(sc), mload(mc))) {\n // unsuccess:\n success := 0\n cb := 0\n }\n }\n }\n }\n }\n default {\n // unsuccess:\n success := 0\n }\n }\n\n return success;\n }\n}\n" + } + }, + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata", + "storageLayout" + ], + "": [ + "ast" + ] + } + } + } + }, + "output": { + "errors": [ + { + "component": "general", + "errorCode": "5667", + "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/verifiers/AnonAadhaarCredentialIssuer.sol:217:9:\n |\n217 | bytes memory passportSignatureProof\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", + "severity": "warning", + "sourceLocation": { + "end": 8437, + "file": "contracts/verifiers/AnonAadhaarCredentialIssuer.sol", + "start": 8402 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "2072", + "formattedMessage": "Warning: Unused local variable.\n --> contracts/verifiers/AnonAadhaarCredentialIssuer.sol:382:9:\n |\n382 | uint256 signalHash = proof.pubSignals[8];\n | ^^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused local variable.", + "severity": "warning", + "sourceLocation": { + "end": 14357, + "file": "contracts/verifiers/AnonAadhaarCredentialIssuer.sol", + "start": 14339 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "5667", + "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/verifiers/AnonAadhaarCredentialIssuer.sol:407:9:\n |\n407 | uint256 nullifier,\n | ^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", + "severity": "warning", + "sourceLocation": { + "end": 15114, + "file": "contracts/verifiers/AnonAadhaarCredentialIssuer.sol", + "start": 15097 + }, + "type": "Warning" + }, + { + "component": "general", + "errorCode": "5667", + "formattedMessage": "Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/verifiers/PassportCredentialIssuer.sol:501:9:\n |\n501 | uint256 nullifier,\n | ^^^^^^^^^^^^^^^^^\n\n", + "message": "Unused function parameter. Remove or comment out the variable name to silence this warning.", + "severity": "warning", + "sourceLocation": { + "end": 17676, + "file": "contracts/verifiers/PassportCredentialIssuer.sol", + "start": 17659 + }, + "type": "Warning" + } + ], + "sources": { + "@iden3/contracts/interfaces/ICircuitValidator.sol": { + "ast": { + "absolutePath": "@iden3/contracts/interfaces/ICircuitValidator.sol", + "exportedSymbols": { + "ICircuitValidator": [ + 84 + ], + "IState": [ + 407 + ] + }, + "id": 85, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "36:23:0" + }, + { + "absolutePath": "@iden3/contracts/interfaces/IState.sol", + "file": "./IState.sol", + "id": 3, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 85, + "sourceUnit": 408, + "src": "61:36:0", + "symbolAliases": [ + { + "foreign": { + "id": 2, + "name": "IState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 407, + "src": "69:6:0", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ICircuitValidator", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 4, + "nodeType": "StructuredDocumentation", + "src": "99:70:0", + "text": " @dev ICircuitValidator. Interface for circuit verification." + }, + "fullyImplemented": false, + "id": 84, + "linearizedBaseContracts": [ + 84 + ], + "name": "ICircuitValidator", + "nameLocation": "180:17:0", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "ICircuitValidator.KeyToInputIndex", + "documentation": { + "id": 5, + "nodeType": "StructuredDocumentation", + "src": "204:331:0", + "text": " @dev KeyToInputIndex. Information about public inputs of the circuit verification. Used in verify function.\n @param key Name of the public input\n @param inputIndex Index of the public input\n Note: Kept for backward compatibility. Now it's replaced by Signal struct for verifyV2 function." + }, + "id": 10, + "members": [ + { + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "key", + "nameLocation": "580:3:0", + "nodeType": "VariableDeclaration", + "scope": 10, + "src": "573:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "573:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "inputIndex", + "nameLocation": "601:10:0", + "nodeType": "VariableDeclaration", + "scope": 10, + "src": "593:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "593:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "KeyToInputIndex", + "nameLocation": "547:15:0", + "nodeType": "StructDefinition", + "scope": 84, + "src": "540:78:0", + "visibility": "public" + }, + { + "canonicalName": "ICircuitValidator.Signal", + "documentation": { + "id": 11, + "nodeType": "StructuredDocumentation", + "src": "624:212:0", + "text": " @dev Signal. Information about public signals of the circuit verification. Used in verifyV2 function.\n @param name Name of the public signal\n @param value Value of the public signal" + }, + "id": 16, + "members": [ + { + "constant": false, + "id": 13, + "mutability": "mutable", + "name": "name", + "nameLocation": "872:4:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "865:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 12, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "865:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15, + "mutability": "mutable", + "name": "value", + "nameLocation": "894:5:0", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "886:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "886:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Signal", + "nameLocation": "848:6:0", + "nodeType": "StructDefinition", + "scope": 84, + "src": "841:65:0", + "visibility": "public" + }, + { + "documentation": { + "id": 17, + "nodeType": "StructuredDocumentation", + "src": "912:51:0", + "text": " @dev Get version of the contract" + }, + "functionSelector": "54fd4d50", + "id": 22, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "version", + "nameLocation": "977:7:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18, + "nodeType": "ParameterList", + "parameters": [], + "src": "984:2:0" + }, + "returnParameters": { + "id": 21, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 20, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 22, + "src": "1010:13:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 19, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1010:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1009:15:0" + }, + "scope": 84, + "src": "968:57:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 23, + "nodeType": "StructuredDocumentation", + "src": "1031:562:0", + "text": " @dev Verify with the supported circuit informed in the request query data the groth16 proof\n π=([πa]1,[πb]2,[πc]1) and that the proof was generated by the sender.\n @param inputs Public inputs of the circuit.\n @param a πa element of the groth16 proof.\n @param b πb element of the groth16 proof.\n @param c πc element of the groth16 proof.\n @param data Request query data of the credential to verify.\n @param sender Sender of the proof.\n @return Array of key to public input index as result." + }, + "functionSelector": "f177a69e", + "id": 51, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "verify", + "nameLocation": "1607:6:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 45, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 26, + "mutability": "mutable", + "name": "inputs", + "nameLocation": "1640:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "1623:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 24, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1623:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 25, + "nodeType": "ArrayTypeName", + "src": "1623:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30, + "mutability": "mutable", + "name": "a", + "nameLocation": "1674:1:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "1656:19:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 27, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1656:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 29, + "length": { + "hexValue": "32", + "id": 28, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1664:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1656:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "b", + "nameLocation": "1706:1:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "1685:22: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": 31, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1685:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 33, + "length": { + "hexValue": "32", + "id": 32, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1693:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1685:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "id": 35, + "length": { + "hexValue": "32", + "id": 34, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1696:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1685:13:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 40, + "mutability": "mutable", + "name": "c", + "nameLocation": "1735:1:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "1717:19:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 37, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1717:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 39, + "length": { + "hexValue": "32", + "id": 38, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1725:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1717:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 42, + "mutability": "mutable", + "name": "data", + "nameLocation": "1761:4:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "1746:19:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 41, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1746:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "mutability": "mutable", + "name": "sender", + "nameLocation": "1783:6:0", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "1775:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 43, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1775:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1613:182:0" + }, + "returnParameters": { + "id": 50, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 49, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 51, + "src": "1814:42:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_KeyToInputIndex_$10_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ICircuitValidator.KeyToInputIndex[]" + }, + "typeName": { + "baseType": { + "id": 47, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 46, + "name": "ICircuitValidator.KeyToInputIndex", + "nameLocations": [ + "1814:17:0", + "1832:15:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 10, + "src": "1814:33:0" + }, + "referencedDeclaration": 10, + "src": "1814:33:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_KeyToInputIndex_$10_storage_ptr", + "typeString": "struct ICircuitValidator.KeyToInputIndex" + } + }, + "id": 48, + "nodeType": "ArrayTypeName", + "src": "1814:35:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_KeyToInputIndex_$10_storage_$dyn_storage_ptr", + "typeString": "struct ICircuitValidator.KeyToInputIndex[]" + } + }, + "visibility": "internal" + } + ], + "src": "1813:44:0" + }, + "scope": 84, + "src": "1598:260:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 52, + "nodeType": "StructuredDocumentation", + "src": "1864:474:0", + "text": " @dev Verify with the supported circuit informed in the request query data the groth16 proof\n packed as bytes and that the proof was generated by the sender.\n @param zkProof Proof packed as bytes to verify.\n @param data Request query data of the credential to verify.\n @param sender Sender of the proof.\n @param state State contract to get identities and gist states to check.\n @return Array of public signals as result." + }, + "functionSelector": "d6614a6b", + "id": 68, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "verifyV2", + "nameLocation": "2352:8:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 62, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 54, + "mutability": "mutable", + "name": "zkProof", + "nameLocation": "2385:7:0", + "nodeType": "VariableDeclaration", + "scope": 68, + "src": "2370:22:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 53, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2370:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 56, + "mutability": "mutable", + "name": "data", + "nameLocation": "2417:4:0", + "nodeType": "VariableDeclaration", + "scope": 68, + "src": "2402:19:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 55, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2402:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 58, + "mutability": "mutable", + "name": "sender", + "nameLocation": "2439:6:0", + "nodeType": "VariableDeclaration", + "scope": 68, + "src": "2431:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 57, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2431:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 61, + "mutability": "mutable", + "name": "state", + "nameLocation": "2462:5:0", + "nodeType": "VariableDeclaration", + "scope": 68, + "src": "2455:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IState_$407", + "typeString": "contract IState" + }, + "typeName": { + "id": 60, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 59, + "name": "IState", + "nameLocations": [ + "2455:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 407, + "src": "2455:6:0" + }, + "referencedDeclaration": 407, + "src": "2455:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IState_$407", + "typeString": "contract IState" + } + }, + "visibility": "internal" + } + ], + "src": "2360:113:0" + }, + "returnParameters": { + "id": 67, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 66, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 68, + "src": "2492:33:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Signal_$16_memory_ptr_$dyn_memory_ptr", + "typeString": "struct ICircuitValidator.Signal[]" + }, + "typeName": { + "baseType": { + "id": 64, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 63, + "name": "ICircuitValidator.Signal", + "nameLocations": [ + "2492:17:0", + "2510:6:0" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16, + "src": "2492:24:0" + }, + "referencedDeclaration": 16, + "src": "2492:24:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Signal_$16_storage_ptr", + "typeString": "struct ICircuitValidator.Signal" + } + }, + "id": 65, + "nodeType": "ArrayTypeName", + "src": "2492:26:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Signal_$16_storage_$dyn_storage_ptr", + "typeString": "struct ICircuitValidator.Signal[]" + } + }, + "visibility": "internal" + } + ], + "src": "2491:35:0" + }, + "scope": 84, + "src": "2343:184:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 69, + "nodeType": "StructuredDocumentation", + "src": "2533:101:0", + "text": " @dev Get supported circuit ids.\n @return ids Array of circuit ids supported." + }, + "functionSelector": "fb5af2a2", + "id": 75, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getSupportedCircuitIds", + "nameLocation": "2648:22:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 70, + "nodeType": "ParameterList", + "parameters": [], + "src": "2670:2:0" + }, + "returnParameters": { + "id": 74, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 73, + "mutability": "mutable", + "name": "ids", + "nameLocation": "2712:3:0", + "nodeType": "VariableDeclaration", + "scope": 75, + "src": "2696:19:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_memory_ptr_$dyn_memory_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 71, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2696:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 72, + "nodeType": "ArrayTypeName", + "src": "2696:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + } + ], + "src": "2695:21:0" + }, + "scope": 84, + "src": "2639:78:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 76, + "nodeType": "StructuredDocumentation", + "src": "2723:168:0", + "text": " @dev Get the index of the public input of the circuit by name.\n @param name Name of the public input.\n @return Index of the public input." + }, + "functionSelector": "b16a394f", + "id": 83, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "inputIndexOf", + "nameLocation": "2905:12:0", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 79, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 78, + "mutability": "mutable", + "name": "name", + "nameLocation": "2932:4:0", + "nodeType": "VariableDeclaration", + "scope": 83, + "src": "2918:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 77, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2918:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2917:20:0" + }, + "returnParameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 81, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 83, + "src": "2961:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 80, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2961:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2960:9:0" + }, + "scope": 84, + "src": "2896:74:0", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 85, + "src": "170:2802:0", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "36:2937:0" + }, + "id": 0 + }, + "@iden3/contracts/interfaces/IIdentifiable.sol": { + "ast": { + "absolutePath": "@iden3/contracts/interfaces/IIdentifiable.sol", + "exportedSymbols": { + "IIdentifiable": [ + 94 + ] + }, + "id": 95, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 86, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "36:23:1" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IIdentifiable", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 87, + "nodeType": "StructuredDocumentation", + "src": "61:67:1", + "text": " @dev IIdentifiable. Interface for identifiable entities." + }, + "fullyImplemented": false, + "id": 94, + "linearizedBaseContracts": [ + 94 + ], + "name": "IIdentifiable", + "nameLocation": "139:13:1", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 88, + "nodeType": "StructuredDocumentation", + "src": "159:53:1", + "text": " @dev getId. Get id of the identity" + }, + "functionSelector": "5d1ca631", + "id": 93, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getId", + "nameLocation": "226:5:1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 89, + "nodeType": "ParameterList", + "parameters": [], + "src": "231:2:1" + }, + "returnParameters": { + "id": 92, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 91, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 93, + "src": "257:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 90, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "257:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "256:9:1" + }, + "scope": 94, + "src": "217:49:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 95, + "src": "129:139:1", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "36:233:1" + }, + "id": 1 + }, + "@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol": { + "ast": { + "absolutePath": "@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol", + "exportedSymbols": { + "IOnchainCredentialStatusResolver": [ + 158 + ] + }, + "id": 159, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 96, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "36:23:2" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IOnchainCredentialStatusResolver", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 158, + "linearizedBaseContracts": [ + 158 + ], + "name": "IOnchainCredentialStatusResolver", + "nameLocation": "71:32:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IOnchainCredentialStatusResolver.Proof", + "documentation": { + "id": 97, + "nodeType": "StructuredDocumentation", + "src": "110:554:2", + "text": " @dev Struct of the node proof in the SMT.\n @param root SMT root.\n @param existence A flag, which shows if the leaf index exists in the SMT.\n @param siblings An array of SMT sibling node hashes.\n @param index An index of the leaf in the SMT.\n @param value A value of the leaf in the SMT.\n @param auxExistence A flag, which shows if the auxiliary leaf exists in the SMT.\n @param auxIndex An index of the auxiliary leaf in the SMT.\n @param auxValue A value of the auxiliary leaf in the SMT." + }, + "id": 115, + "members": [ + { + "constant": false, + "id": 99, + "mutability": "mutable", + "name": "root", + "nameLocation": "700:4:2", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "692:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 98, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "692:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 101, + "mutability": "mutable", + "name": "existence", + "nameLocation": "719:9:2", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "714:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 100, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "714:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 104, + "mutability": "mutable", + "name": "siblings", + "nameLocation": "748:8:2", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "738:18:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "738:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 103, + "nodeType": "ArrayTypeName", + "src": "738:9:2", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 106, + "mutability": "mutable", + "name": "index", + "nameLocation": "774:5:2", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "766:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 105, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "766:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 108, + "mutability": "mutable", + "name": "value", + "nameLocation": "797:5:2", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "789:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 107, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "789:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 110, + "mutability": "mutable", + "name": "auxExistence", + "nameLocation": "817:12:2", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "812:17:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 109, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "812:4:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 112, + "mutability": "mutable", + "name": "auxIndex", + "nameLocation": "847:8:2", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "839:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 111, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "839:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 114, + "mutability": "mutable", + "name": "auxValue", + "nameLocation": "873:8:2", + "nodeType": "VariableDeclaration", + "scope": 115, + "src": "865:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "865:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Proof", + "nameLocation": "676:5:2", + "nodeType": "StructDefinition", + "scope": 158, + "src": "669:219:2", + "visibility": "public" + }, + { + "canonicalName": "IOnchainCredentialStatusResolver.IdentityStateRoots", + "documentation": { + "id": 116, + "nodeType": "StructuredDocumentation", + "src": "894:280:2", + "text": " @dev Struct to represent Identity State and it's Roots\n @param state An identity state\n @param claimsTreeRoot A root of the claims tree\n @param revocationTreeRoot A root of the revocation tree\n @param rootOfRoots A root of the roots tree" + }, + "id": 125, + "members": [ + { + "constant": false, + "id": 118, + "mutability": "mutable", + "name": "state", + "nameLocation": "1223:5:2", + "nodeType": "VariableDeclaration", + "scope": 125, + "src": "1215:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 117, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1215:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 120, + "mutability": "mutable", + "name": "claimsTreeRoot", + "nameLocation": "1246:14:2", + "nodeType": "VariableDeclaration", + "scope": 125, + "src": "1238:22:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1238:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 122, + "mutability": "mutable", + "name": "revocationTreeRoot", + "nameLocation": "1278:18:2", + "nodeType": "VariableDeclaration", + "scope": 125, + "src": "1270:26:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1270:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 124, + "mutability": "mutable", + "name": "rootOfRoots", + "nameLocation": "1314:11:2", + "nodeType": "VariableDeclaration", + "scope": 125, + "src": "1306:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 123, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1306:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "IdentityStateRoots", + "nameLocation": "1186:18:2", + "nodeType": "StructDefinition", + "scope": 158, + "src": "1179:153:2", + "visibility": "public" + }, + { + "canonicalName": "IOnchainCredentialStatusResolver.CredentialStatus", + "documentation": { + "id": 126, + "nodeType": "StructuredDocumentation", + "src": "1338:184:2", + "text": " @dev Credential Status Struct\n @param issuer Issuer's identity state and roots\n @param mtp A Merkle Tree Proof of credential revocation or non-revocation" + }, + "id": 133, + "members": [ + { + "constant": false, + "id": 129, + "mutability": "mutable", + "name": "issuer", + "nameLocation": "1580:6:2", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "1561:25:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityStateRoots_$125_storage_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.IdentityStateRoots" + }, + "typeName": { + "id": 128, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 127, + "name": "IdentityStateRoots", + "nameLocations": [ + "1561:18:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 125, + "src": "1561:18:2" + }, + "referencedDeclaration": 125, + "src": "1561:18:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityStateRoots_$125_storage_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.IdentityStateRoots" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 132, + "mutability": "mutable", + "name": "mtp", + "nameLocation": "1602:3:2", + "nodeType": "VariableDeclaration", + "scope": 133, + "src": "1596:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$115_storage_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.Proof" + }, + "typeName": { + "id": 131, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 130, + "name": "Proof", + "nameLocations": [ + "1596:5:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 115, + "src": "1596:5:2" + }, + "referencedDeclaration": 115, + "src": "1596:5:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$115_storage_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.Proof" + } + }, + "visibility": "internal" + } + ], + "name": "CredentialStatus", + "nameLocation": "1534:16:2", + "nodeType": "StructDefinition", + "scope": 158, + "src": "1527:85:2", + "visibility": "public" + }, + { + "documentation": { + "id": 134, + "nodeType": "StructuredDocumentation", + "src": "1618:195:2", + "text": " @dev returns revocation status of a claim using given revocation nonce\n @param id Issuer's identifier\n @param nonce Revocation nonce\n @return CredentialStatus" + }, + "functionSelector": "110c96a7", + "id": 144, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getRevocationStatus", + "nameLocation": "1827:19:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 139, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 136, + "mutability": "mutable", + "name": "id", + "nameLocation": "1864:2:2", + "nodeType": "VariableDeclaration", + "scope": 144, + "src": "1856:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1856:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 138, + "mutability": "mutable", + "name": "nonce", + "nameLocation": "1883:5:2", + "nodeType": "VariableDeclaration", + "scope": 144, + "src": "1876:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 137, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1876:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1846:48:2" + }, + "returnParameters": { + "id": 143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 142, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 144, + "src": "1918:23:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialStatus_$133_memory_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus" + }, + "typeName": { + "id": 141, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 140, + "name": "CredentialStatus", + "nameLocations": [ + "1918:16:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 133, + "src": "1918:16:2" + }, + "referencedDeclaration": 133, + "src": "1918:16:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialStatus_$133_storage_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus" + } + }, + "visibility": "internal" + } + ], + "src": "1917:25:2" + }, + "scope": 158, + "src": "1818:125:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 145, + "nodeType": "StructuredDocumentation", + "src": "1949:243:2", + "text": " @dev returns revocation status of a claim using given revocation nonce, id and state\n @param id Issuer's identifier\n @param state of the Issuer\n @param nonce Revocation nonce\n @return CredentialStatus" + }, + "functionSelector": "aad72921", + "id": 157, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getRevocationStatusByIdAndState", + "nameLocation": "2206:31:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 147, + "mutability": "mutable", + "name": "id", + "nameLocation": "2255:2:2", + "nodeType": "VariableDeclaration", + "scope": 157, + "src": "2247:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2247:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 149, + "mutability": "mutable", + "name": "state", + "nameLocation": "2275:5:2", + "nodeType": "VariableDeclaration", + "scope": 157, + "src": "2267:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2267:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 151, + "mutability": "mutable", + "name": "nonce", + "nameLocation": "2297:5:2", + "nodeType": "VariableDeclaration", + "scope": 157, + "src": "2290:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 150, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2290:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "2237:71:2" + }, + "returnParameters": { + "id": 156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 155, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 157, + "src": "2332:23:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialStatus_$133_memory_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus" + }, + "typeName": { + "id": 154, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 153, + "name": "CredentialStatus", + "nameLocations": [ + "2332:16:2" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 133, + "src": "2332:16:2" + }, + "referencedDeclaration": 133, + "src": "2332:16:2", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialStatus_$133_storage_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus" + } + }, + "visibility": "internal" + } + ], + "src": "2331:25:2" + }, + "scope": 158, + "src": "2197:160:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 159, + "src": "61:2298:2", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "36:2324:2" + }, + "id": 2 + }, + "@iden3/contracts/interfaces/IState.sol": { + "ast": { + "absolutePath": "@iden3/contracts/interfaces/IState.sol", + "exportedSymbols": { + "IState": [ + 407 + ], + "MAX_SMT_DEPTH": [ + 163 + ] + }, + "id": 408, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 160, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "36:23:3" + }, + { + "constant": true, + "id": 163, + "mutability": "constant", + "name": "MAX_SMT_DEPTH", + "nameLocation": "243:13:3", + "nodeType": "VariableDeclaration", + "scope": 408, + "src": "226:35:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 161, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "226:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3634", + "id": 162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "259:2:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "visibility": "internal" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IState", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 407, + "linearizedBaseContracts": [ + 407 + ], + "name": "IState", + "nameLocation": "274:6:3", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IState.StateInfo", + "documentation": { + "id": 164, + "nodeType": "StructuredDocumentation", + "src": "287:566:3", + "text": " @dev Struct for public interfaces to represent a state information.\n @param id An identity.\n @param state A state.\n @param replacedByState A state, which replaced this state for the identity.\n @param createdAtTimestamp A time when the state was created.\n @param replacedAtTimestamp A time when the state was replaced by the next identity state.\n @param createdAtBlock A block number when the state was created.\n @param replacedAtBlock A block number when the state was replaced by the next identity state." + }, + "id": 179, + "members": [ + { + "constant": false, + "id": 166, + "mutability": "mutable", + "name": "id", + "nameLocation": "893:2:3", + "nodeType": "VariableDeclaration", + "scope": 179, + "src": "885:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 165, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "885:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 168, + "mutability": "mutable", + "name": "state", + "nameLocation": "913:5:3", + "nodeType": "VariableDeclaration", + "scope": 179, + "src": "905:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "905:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 170, + "mutability": "mutable", + "name": "replacedByState", + "nameLocation": "936:15:3", + "nodeType": "VariableDeclaration", + "scope": 179, + "src": "928:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 169, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "928:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 172, + "mutability": "mutable", + "name": "createdAtTimestamp", + "nameLocation": "969:18:3", + "nodeType": "VariableDeclaration", + "scope": 179, + "src": "961:26:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "961:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 174, + "mutability": "mutable", + "name": "replacedAtTimestamp", + "nameLocation": "1005:19:3", + "nodeType": "VariableDeclaration", + "scope": 179, + "src": "997:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "997:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 176, + "mutability": "mutable", + "name": "createdAtBlock", + "nameLocation": "1042:14:3", + "nodeType": "VariableDeclaration", + "scope": 179, + "src": "1034:22:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1034:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 178, + "mutability": "mutable", + "name": "replacedAtBlock", + "nameLocation": "1074:15:3", + "nodeType": "VariableDeclaration", + "scope": 179, + "src": "1066:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 177, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1066:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "StateInfo", + "nameLocation": "865:9:3", + "nodeType": "StructDefinition", + "scope": 407, + "src": "858:238:3", + "visibility": "public" + }, + { + "canonicalName": "IState.GistRootInfo", + "documentation": { + "id": 180, + "nodeType": "StructuredDocumentation", + "src": "1102:562:3", + "text": " @dev Struct for public interfaces to represent GIST root information.\n @param root This GIST root.\n @param replacedByRoot A root, which replaced this root.\n @param createdAtTimestamp A time, when the root was saved to blockchain.\n @param replacedAtTimestamp A time, when the root was replaced by the next root in blockchain.\n @param createdAtBlock A number of block, when the root was saved to blockchain.\n @param replacedAtBlock A number of block, when the root was replaced by the next root in blockchain." + }, + "id": 193, + "members": [ + { + "constant": false, + "id": 182, + "mutability": "mutable", + "name": "root", + "nameLocation": "1707:4:3", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1699:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 181, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1699:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 184, + "mutability": "mutable", + "name": "replacedByRoot", + "nameLocation": "1729:14:3", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1721:22:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 183, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1721:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 186, + "mutability": "mutable", + "name": "createdAtTimestamp", + "nameLocation": "1761:18:3", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1753:26:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 185, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1753:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 188, + "mutability": "mutable", + "name": "replacedAtTimestamp", + "nameLocation": "1797:19:3", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1789:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 187, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1789:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 190, + "mutability": "mutable", + "name": "createdAtBlock", + "nameLocation": "1834:14:3", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1826:22:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 189, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1826:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 192, + "mutability": "mutable", + "name": "replacedAtBlock", + "nameLocation": "1866:15:3", + "nodeType": "VariableDeclaration", + "scope": 193, + "src": "1858:23:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 191, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1858:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "GistRootInfo", + "nameLocation": "1676:12:3", + "nodeType": "StructDefinition", + "scope": 407, + "src": "1669:219:3", + "visibility": "public" + }, + { + "canonicalName": "IState.GistProof", + "documentation": { + "id": 194, + "nodeType": "StructuredDocumentation", + "src": "1894:597:3", + "text": " @dev Struct for public interfaces to represent GIST proof information.\n @param root This GIST root.\n @param existence A flag, which shows if the leaf index exists in the GIST.\n @param siblings An array of GIST sibling node hashes.\n @param index An index of the leaf in the GIST.\n @param value A value of the leaf in the GIST.\n @param auxExistence A flag, which shows if the auxiliary leaf exists in the GIST.\n @param auxIndex An index of the auxiliary leaf in the GIST.\n @param auxValue An value of the auxiliary leaf in the GIST." + }, + "id": 213, + "members": [ + { + "constant": false, + "id": 196, + "mutability": "mutable", + "name": "root", + "nameLocation": "2531:4:3", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "2523:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2523:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 198, + "mutability": "mutable", + "name": "existence", + "nameLocation": "2550:9:3", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "2545:14:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 197, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2545:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 202, + "mutability": "mutable", + "name": "siblings", + "nameLocation": "2581:8:3", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "2569:20:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$64_storage_ptr", + "typeString": "uint256[64]" + }, + "typeName": { + "baseType": { + "id": 199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2569:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 201, + "length": { + "hexValue": "3634", + "id": 200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2577:2:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "nodeType": "ArrayTypeName", + "src": "2569:11:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$64_storage_ptr", + "typeString": "uint256[64]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 204, + "mutability": "mutable", + "name": "index", + "nameLocation": "2672:5:3", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "2664:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2664:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 206, + "mutability": "mutable", + "name": "value", + "nameLocation": "2695:5:3", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "2687:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 205, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2687:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 208, + "mutability": "mutable", + "name": "auxExistence", + "nameLocation": "2715:12:3", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "2710:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 207, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2710:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 210, + "mutability": "mutable", + "name": "auxIndex", + "nameLocation": "2745:8:3", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "2737:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 209, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2737:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 212, + "mutability": "mutable", + "name": "auxValue", + "nameLocation": "2771:8:3", + "nodeType": "VariableDeclaration", + "scope": 213, + "src": "2763:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2763:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "GistProof", + "nameLocation": "2503:9:3", + "nodeType": "StructDefinition", + "scope": 407, + "src": "2496:290:3", + "visibility": "public" + }, + { + "canonicalName": "IState.IdentityStateUpdate", + "documentation": { + "id": 214, + "nodeType": "StructuredDocumentation", + "src": "2791:164:3", + "text": " @dev Struct for signed identity states.\n @param idStateMsg Message of the identity state.\n @param signature Signature of the message." + }, + "id": 220, + "members": [ + { + "constant": false, + "id": 217, + "mutability": "mutable", + "name": "idStateMsg", + "nameLocation": "3018:10:3", + "nodeType": "VariableDeclaration", + "scope": 220, + "src": "2997:31:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityStateMessage_$237_storage_ptr", + "typeString": "struct IState.IdentityStateMessage" + }, + "typeName": { + "id": 216, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 215, + "name": "IdentityStateMessage", + "nameLocations": [ + "2997:20:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 237, + "src": "2997:20:3" + }, + "referencedDeclaration": 237, + "src": "2997:20:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityStateMessage_$237_storage_ptr", + "typeString": "struct IState.IdentityStateMessage" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 219, + "mutability": "mutable", + "name": "signature", + "nameLocation": "3044:9:3", + "nodeType": "VariableDeclaration", + "scope": 220, + "src": "3038:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 218, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3038:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "IdentityStateUpdate", + "nameLocation": "2967:19:3", + "nodeType": "StructDefinition", + "scope": 407, + "src": "2960:100:3", + "visibility": "public" + }, + { + "canonicalName": "IState.GlobalStateUpdate", + "documentation": { + "id": 221, + "nodeType": "StructuredDocumentation", + "src": "3065:164:3", + "text": " @dev Struct for signed global states.\n @param globalStateMsg Message of the global state.\n @param signature Signature of the message." + }, + "id": 227, + "members": [ + { + "constant": false, + "id": 224, + "mutability": "mutable", + "name": "globalStateMsg", + "nameLocation": "3288:14:3", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "3269:33:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GlobalStateMessage_$247_storage_ptr", + "typeString": "struct IState.GlobalStateMessage" + }, + "typeName": { + "id": 223, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 222, + "name": "GlobalStateMessage", + "nameLocations": [ + "3269:18:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 247, + "src": "3269:18:3" + }, + "referencedDeclaration": 247, + "src": "3269:18:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GlobalStateMessage_$247_storage_ptr", + "typeString": "struct IState.GlobalStateMessage" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 226, + "mutability": "mutable", + "name": "signature", + "nameLocation": "3318:9:3", + "nodeType": "VariableDeclaration", + "scope": 227, + "src": "3312:15:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 225, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3312:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "GlobalStateUpdate", + "nameLocation": "3241:17:3", + "nodeType": "StructDefinition", + "scope": 407, + "src": "3234:100:3", + "visibility": "public" + }, + { + "canonicalName": "IState.IdentityStateMessage", + "documentation": { + "id": 228, + "nodeType": "StructuredDocumentation", + "src": "3339:297:3", + "text": " @dev Struct for identity state message.\n @param timestamp Timestamp when the message was signed.\n @param id Id of the identity.\n @param state State of the identity.\n @param replacedAtTimestamp Timestamp when the state was replaced by next identity state." + }, + "id": 237, + "members": [ + { + "constant": false, + "id": 230, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "3687:9:3", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3679:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3679:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 232, + "mutability": "mutable", + "name": "id", + "nameLocation": "3714:2:3", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3706:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3706:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 234, + "mutability": "mutable", + "name": "state", + "nameLocation": "3734:5:3", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3726:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3726:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 236, + "mutability": "mutable", + "name": "replacedAtTimestamp", + "nameLocation": "3757:19:3", + "nodeType": "VariableDeclaration", + "scope": 237, + "src": "3749:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 235, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3749:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "IdentityStateMessage", + "nameLocation": "3648:20:3", + "nodeType": "StructDefinition", + "scope": 407, + "src": "3641:142:3", + "visibility": "public" + }, + { + "canonicalName": "IState.GlobalStateMessage", + "documentation": { + "id": 238, + "nodeType": "StructuredDocumentation", + "src": "3789:308:3", + "text": " @dev Struct for global state message.\n @param timestamp Timestamp when the message was signed.\n @param idType Id type of the chain.\n @param root Root of the global state.\n @param replacedAtTimestamp Timestamp when the global state was replaced by next global state." + }, + "id": 247, + "members": [ + { + "constant": false, + "id": 240, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "4146:9:3", + "nodeType": "VariableDeclaration", + "scope": 247, + "src": "4138:17:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 239, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4138:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 242, + "mutability": "mutable", + "name": "idType", + "nameLocation": "4172:6:3", + "nodeType": "VariableDeclaration", + "scope": 247, + "src": "4165:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "typeName": { + "id": 241, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "4165:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 244, + "mutability": "mutable", + "name": "root", + "nameLocation": "4196:4:3", + "nodeType": "VariableDeclaration", + "scope": 247, + "src": "4188:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 243, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4188:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 246, + "mutability": "mutable", + "name": "replacedAtTimestamp", + "nameLocation": "4218:19:3", + "nodeType": "VariableDeclaration", + "scope": 247, + "src": "4210:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4210:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "GlobalStateMessage", + "nameLocation": "4109:18:3", + "nodeType": "StructDefinition", + "scope": 407, + "src": "4102:142:3", + "visibility": "public" + }, + { + "canonicalName": "IState.CrossChainProof", + "documentation": { + "id": 248, + "nodeType": "StructuredDocumentation", + "src": "4249:186:3", + "text": " @dev Struct for cross chain proof.\n @param proofType Proof type for the proof provided (\"stateProof\", \"globalStateProof\").\n @param proof Cross chain proof." + }, + "id": 253, + "members": [ + { + "constant": false, + "id": 250, + "mutability": "mutable", + "name": "proofType", + "nameLocation": "4480:9:3", + "nodeType": "VariableDeclaration", + "scope": 253, + "src": "4473:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 249, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4473:6:3", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 252, + "mutability": "mutable", + "name": "proof", + "nameLocation": "4505:5:3", + "nodeType": "VariableDeclaration", + "scope": 253, + "src": "4499:11:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 251, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4499:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "CrossChainProof", + "nameLocation": "4447:15:3", + "nodeType": "StructDefinition", + "scope": 407, + "src": "4440:77:3", + "visibility": "public" + }, + { + "canonicalName": "IState.GlobalStateProcessResult", + "documentation": { + "id": 254, + "nodeType": "StructuredDocumentation", + "src": "4523:252:3", + "text": " @dev Struct for global state process result.\n @param idType Id type of the chain.\n @param root Root of the global state.\n @param replacedAtTimestamp Timestamp when the global state was replaced by next global state." + }, + "id": 261, + "members": [ + { + "constant": false, + "id": 256, + "mutability": "mutable", + "name": "idType", + "nameLocation": "4829:6:3", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "4822:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "typeName": { + "id": 255, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "4822:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 258, + "mutability": "mutable", + "name": "root", + "nameLocation": "4853:4:3", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "4845:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4845:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 260, + "mutability": "mutable", + "name": "replacedAtTimestamp", + "nameLocation": "4875:19:3", + "nodeType": "VariableDeclaration", + "scope": 261, + "src": "4867:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 259, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4867:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "GlobalStateProcessResult", + "nameLocation": "4787:24:3", + "nodeType": "StructDefinition", + "scope": 407, + "src": "4780:121:3", + "visibility": "public" + }, + { + "canonicalName": "IState.IdentityStateProcessResult", + "documentation": { + "id": 262, + "nodeType": "StructuredDocumentation", + "src": "4906:250:3", + "text": " @dev Struct for identity state process result.\n @param id Id of the identity.\n @param state State of the identity.\n @param replacedAtTimestamp Timestamp when the identity state was replaced by next identity state." + }, + "id": 269, + "members": [ + { + "constant": false, + "id": 264, + "mutability": "mutable", + "name": "id", + "nameLocation": "5213:2:3", + "nodeType": "VariableDeclaration", + "scope": 269, + "src": "5205:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 263, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5205:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 266, + "mutability": "mutable", + "name": "state", + "nameLocation": "5233:5:3", + "nodeType": "VariableDeclaration", + "scope": 269, + "src": "5225:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 265, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5225:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 268, + "mutability": "mutable", + "name": "replacedAtTimestamp", + "nameLocation": "5256:19:3", + "nodeType": "VariableDeclaration", + "scope": 269, + "src": "5248:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5248:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "IdentityStateProcessResult", + "nameLocation": "5168:26:3", + "nodeType": "StructDefinition", + "scope": 407, + "src": "5161:121:3", + "visibility": "public" + }, + { + "documentation": { + "id": 270, + "nodeType": "StructuredDocumentation", + "src": "5288:132:3", + "text": " @dev Retrieve last state information of specific id.\n @param id An identity.\n @return The state info." + }, + "functionSelector": "b4bdea55", + "id": 278, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getStateInfoById", + "nameLocation": "5434:16:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 272, + "mutability": "mutable", + "name": "id", + "nameLocation": "5459:2:3", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "5451:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5451:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5450:12:3" + }, + "returnParameters": { + "id": 277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 276, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "5486:16:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$179_memory_ptr", + "typeString": "struct IState.StateInfo" + }, + "typeName": { + "id": 275, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 274, + "name": "StateInfo", + "nameLocations": [ + "5486:9:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 179, + "src": "5486:9:3" + }, + "referencedDeclaration": 179, + "src": "5486:9:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$179_storage_ptr", + "typeString": "struct IState.StateInfo" + } + }, + "visibility": "internal" + } + ], + "src": "5485:18:3" + }, + "scope": 407, + "src": "5425:79:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 279, + "nodeType": "StructuredDocumentation", + "src": "5510:157:3", + "text": " @dev Retrieve state information by id and state.\n @param id An identity.\n @param state A state.\n @return The state info." + }, + "functionSelector": "53c87312", + "id": 289, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getStateInfoByIdAndState", + "nameLocation": "5681:24:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 284, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 281, + "mutability": "mutable", + "name": "id", + "nameLocation": "5723:2:3", + "nodeType": "VariableDeclaration", + "scope": 289, + "src": "5715:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 280, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5715:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 283, + "mutability": "mutable", + "name": "state", + "nameLocation": "5743:5:3", + "nodeType": "VariableDeclaration", + "scope": 289, + "src": "5735:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5735:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5705:49:3" + }, + "returnParameters": { + "id": 288, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 287, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 289, + "src": "5778:16:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$179_memory_ptr", + "typeString": "struct IState.StateInfo" + }, + "typeName": { + "id": 286, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 285, + "name": "StateInfo", + "nameLocations": [ + "5778:9:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 179, + "src": "5778:9:3" + }, + "referencedDeclaration": 179, + "src": "5778:9:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$179_storage_ptr", + "typeString": "struct IState.StateInfo" + } + }, + "visibility": "internal" + } + ], + "src": "5777:18:3" + }, + "scope": 407, + "src": "5672:124:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 290, + "nodeType": "StructuredDocumentation", + "src": "5802:133:3", + "text": " @dev Retrieve the specific GIST root information.\n @param root GIST root.\n @return The GIST root info." + }, + "functionSelector": "7c1a66de", + "id": 298, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getGISTRootInfo", + "nameLocation": "5949:15:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 292, + "mutability": "mutable", + "name": "root", + "nameLocation": "5973:4:3", + "nodeType": "VariableDeclaration", + "scope": 298, + "src": "5965:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 291, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5965:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5964:14:3" + }, + "returnParameters": { + "id": 297, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 296, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 298, + "src": "6002:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GistRootInfo_$193_memory_ptr", + "typeString": "struct IState.GistRootInfo" + }, + "typeName": { + "id": 295, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 294, + "name": "GistRootInfo", + "nameLocations": [ + "6002:12:3" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 193, + "src": "6002:12:3" + }, + "referencedDeclaration": 193, + "src": "6002:12:3", + "typeDescriptions": { + "typeIdentifier": "t_struct$_GistRootInfo_$193_storage_ptr", + "typeString": "struct IState.GistRootInfo" + } + }, + "visibility": "internal" + } + ], + "src": "6001:21:3" + }, + "scope": 407, + "src": "5940:83:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 299, + "nodeType": "StructuredDocumentation", + "src": "6029:131:3", + "text": " @dev Check if the id type supported.\n @param idType id type.\n @return True if the id type supported." + }, + "functionSelector": "932e87a1", + "id": 306, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isIdTypeSupported", + "nameLocation": "6174:17:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 301, + "mutability": "mutable", + "name": "idType", + "nameLocation": "6199:6:3", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "6192:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "typeName": { + "id": 300, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "6192:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "visibility": "internal" + } + ], + "src": "6191:15:3" + }, + "returnParameters": { + "id": 305, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 304, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 306, + "src": "6230:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 303, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6230:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6229:6:3" + }, + "scope": 407, + "src": "6165:71:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 307, + "nodeType": "StructuredDocumentation", + "src": "6242:143:3", + "text": " @dev Get id if the id type supported for the id, otherwise revert.\n @param id An identity.\n @return The id type." + }, + "functionSelector": "dd16059e", + "id": 314, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getIdTypeIfSupported", + "nameLocation": "6399:20:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 310, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 309, + "mutability": "mutable", + "name": "id", + "nameLocation": "6428:2:3", + "nodeType": "VariableDeclaration", + "scope": 314, + "src": "6420:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6420:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6419:12:3" + }, + "returnParameters": { + "id": 313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 312, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 314, + "src": "6455:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "typeName": { + "id": 311, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "6455:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "visibility": "internal" + } + ], + "src": "6454:8:3" + }, + "scope": 407, + "src": "6390:73:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 315, + "nodeType": "StructuredDocumentation", + "src": "6469:70:3", + "text": " @dev Get defaultIdType\n @return defaultIdType" + }, + "functionSelector": "133fe385", + "id": 320, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getDefaultIdType", + "nameLocation": "6553:16:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 316, + "nodeType": "ParameterList", + "parameters": [], + "src": "6569:2:3" + }, + "returnParameters": { + "id": 319, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 318, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 320, + "src": "6595:6:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "typeName": { + "id": 317, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "6595:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "visibility": "internal" + } + ], + "src": "6594:8:3" + }, + "scope": 407, + "src": "6544:59:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 321, + "nodeType": "StructuredDocumentation", + "src": "6609:343:3", + "text": " @dev Performs state transition\n @param id Identifier of the identity\n @param oldState Previous state of the identity\n @param newState New state of the identity\n @param isOldStateGenesis Flag if previous identity state is genesis\n @param a Proof.A\n @param b Proof.B\n @param c Proof.C" + }, + "functionSelector": "28f88a65", + "id": 346, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transitState", + "nameLocation": "6966:12:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 323, + "mutability": "mutable", + "name": "id", + "nameLocation": "6996:2:3", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "6988:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 322, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6988:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 325, + "mutability": "mutable", + "name": "oldState", + "nameLocation": "7016:8:3", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "7008:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 324, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7008:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 327, + "mutability": "mutable", + "name": "newState", + "nameLocation": "7042:8:3", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "7034:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 326, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7034:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 329, + "mutability": "mutable", + "name": "isOldStateGenesis", + "nameLocation": "7065:17:3", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "7060:22:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 328, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7060:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 333, + "mutability": "mutable", + "name": "a", + "nameLocation": "7110:1:3", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "7092:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 330, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7092:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 332, + "length": { + "hexValue": "32", + "id": 331, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7100:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "7092:10:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 339, + "mutability": "mutable", + "name": "b", + "nameLocation": "7142:1:3", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "7121:22:3", + "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": 334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7121:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 336, + "length": { + "hexValue": "32", + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7129:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "7121:10:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "id": 338, + "length": { + "hexValue": "32", + "id": 337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7132:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "7121:13:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 343, + "mutability": "mutable", + "name": "c", + "nameLocation": "7171:1:3", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "7153:19:3", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 340, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7153:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 342, + "length": { + "hexValue": "32", + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7161:1:3", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "7153:10:3", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + } + ], + "src": "6978:200:3" + }, + "returnParameters": { + "id": 345, + "nodeType": "ParameterList", + "parameters": [], + "src": "7187:0:3" + }, + "scope": 407, + "src": "6957:231:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 347, + "nodeType": "StructuredDocumentation", + "src": "7194:344:3", + "text": " @dev Performs state transition\n @param id Identity\n @param oldState Previous identity state\n @param newState New identity state\n @param isOldStateGenesis Is the previous state genesis?\n @param methodId State transition method id\n @param methodParams State transition method-specific params" + }, + "functionSelector": "7d0dcba5", + "id": 362, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transitStateGeneric", + "nameLocation": "7552:19:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 349, + "mutability": "mutable", + "name": "id", + "nameLocation": "7589:2:3", + "nodeType": "VariableDeclaration", + "scope": 362, + "src": "7581:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 348, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7581:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 351, + "mutability": "mutable", + "name": "oldState", + "nameLocation": "7609:8:3", + "nodeType": "VariableDeclaration", + "scope": 362, + "src": "7601:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 350, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7601:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 353, + "mutability": "mutable", + "name": "newState", + "nameLocation": "7635:8:3", + "nodeType": "VariableDeclaration", + "scope": 362, + "src": "7627:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 352, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7627:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 355, + "mutability": "mutable", + "name": "isOldStateGenesis", + "nameLocation": "7658:17:3", + "nodeType": "VariableDeclaration", + "scope": 362, + "src": "7653:22:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 354, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7653:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 357, + "mutability": "mutable", + "name": "methodId", + "nameLocation": "7693:8:3", + "nodeType": "VariableDeclaration", + "scope": 362, + "src": "7685:16:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 356, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7685:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 359, + "mutability": "mutable", + "name": "methodParams", + "nameLocation": "7726:12:3", + "nodeType": "VariableDeclaration", + "scope": 362, + "src": "7711:27:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 358, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7711:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "7571:173:3" + }, + "returnParameters": { + "id": 361, + "nodeType": "ParameterList", + "parameters": [], + "src": "7753:0:3" + }, + "scope": 407, + "src": "7543:211:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 363, + "nodeType": "StructuredDocumentation", + "src": "7760:118:3", + "text": " @dev Check if identity exists.\n @param id Identity\n @return True if the identity exists" + }, + "functionSelector": "0b8a295a", + "id": 370, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "idExists", + "nameLocation": "7892:8:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 366, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 365, + "mutability": "mutable", + "name": "id", + "nameLocation": "7909:2:3", + "nodeType": "VariableDeclaration", + "scope": 370, + "src": "7901:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 364, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7901:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7900:12:3" + }, + "returnParameters": { + "id": 369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 368, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 370, + "src": "7936:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 367, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7936:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7935:6:3" + }, + "scope": 407, + "src": "7883:59:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 371, + "nodeType": "StructuredDocumentation", + "src": "7948:138:3", + "text": " @dev Check if state exists.\n @param id Identity\n @param state State\n @return True if the state exists" + }, + "functionSelector": "233a4d23", + "id": 380, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "stateExists", + "nameLocation": "8100:11:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 376, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 373, + "mutability": "mutable", + "name": "id", + "nameLocation": "8120:2:3", + "nodeType": "VariableDeclaration", + "scope": 380, + "src": "8112:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 372, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8112:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 375, + "mutability": "mutable", + "name": "state", + "nameLocation": "8132:5:3", + "nodeType": "VariableDeclaration", + "scope": 380, + "src": "8124:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 374, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8124:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8111:27:3" + }, + "returnParameters": { + "id": 379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 378, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 380, + "src": "8162:4:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 377, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8162:4:3", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8161:6:3" + }, + "scope": 407, + "src": "8091:77:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 381, + "nodeType": "StructuredDocumentation", + "src": "8174:247:3", + "text": " @dev Get timestamp when the identity state was replaced.\n @param id Identity\n @param state State of the identity\n @return replacedAtTimestamp Timestamp when the identity state was replaced by new identity state" + }, + "functionSelector": "09478aa4", + "id": 390, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getStateReplacedAt", + "nameLocation": "8435:18:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 386, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 383, + "mutability": "mutable", + "name": "id", + "nameLocation": "8471:2:3", + "nodeType": "VariableDeclaration", + "scope": 390, + "src": "8463:10:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 382, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8463:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 385, + "mutability": "mutable", + "name": "state", + "nameLocation": "8491:5:3", + "nodeType": "VariableDeclaration", + "scope": 390, + "src": "8483:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 384, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8483:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8453:49:3" + }, + "returnParameters": { + "id": 389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 388, + "mutability": "mutable", + "name": "replacedAtTimestamp", + "nameLocation": "8534:19:3", + "nodeType": "VariableDeclaration", + "scope": 390, + "src": "8526:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 387, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8526:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8525:29:3" + }, + "scope": 407, + "src": "8426:129:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 391, + "nodeType": "StructuredDocumentation", + "src": "8561:259:3", + "text": " @dev Get timestamp when the global state was replaced.\n @param idType Id type of the chain\n @param root Root of the global state\n @return replacedAtTimestamp Timestamp when the global state was replaced by new global state" + }, + "functionSelector": "0a7a5469", + "id": 400, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getGistRootReplacedAt", + "nameLocation": "8834:21:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 396, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 393, + "mutability": "mutable", + "name": "idType", + "nameLocation": "8872:6:3", + "nodeType": "VariableDeclaration", + "scope": 400, + "src": "8865:13:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "typeName": { + "id": 392, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "8865:6:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 395, + "mutability": "mutable", + "name": "root", + "nameLocation": "8896:4:3", + "nodeType": "VariableDeclaration", + "scope": 400, + "src": "8888:12:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 394, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8888:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8855:51:3" + }, + "returnParameters": { + "id": 399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 398, + "mutability": "mutable", + "name": "replacedAtTimestamp", + "nameLocation": "8938:19:3", + "nodeType": "VariableDeclaration", + "scope": 400, + "src": "8930:27:3", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8930:7:3", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8929:29:3" + }, + "scope": 407, + "src": "8825:134:3", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 401, + "nodeType": "StructuredDocumentation", + "src": "8965:159:3", + "text": " @dev Process the cross chain proofs with the identities and global states.\n @param proofs Proofs with the identities and global states" + }, + "functionSelector": "e28d24b0", + "id": 406, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "processCrossChainProofs", + "nameLocation": "9138:23:3", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 403, + "mutability": "mutable", + "name": "proofs", + "nameLocation": "9177:6:3", + "nodeType": "VariableDeclaration", + "scope": 406, + "src": "9162:21:3", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 402, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9162:5:3", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "9161:23:3" + }, + "returnParameters": { + "id": 405, + "nodeType": "ParameterList", + "parameters": [], + "src": "9193:0:3" + }, + "scope": 407, + "src": "9129:65:3", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 408, + "src": "264:8932:3", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "36:9161:3" + }, + "id": 3 + }, + "@iden3/contracts/interfaces/IZKPVerifier.sol": { + "ast": { + "absolutePath": "@iden3/contracts/interfaces/IZKPVerifier.sol", + "exportedSymbols": { + "ICircuitValidator": [ + 84 + ], + "IZKPVerifier": [ + 550 + ] + }, + "id": 551, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 409, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "37:23:4" + }, + { + "absolutePath": "@iden3/contracts/interfaces/ICircuitValidator.sol", + "file": "./ICircuitValidator.sol", + "id": 411, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 551, + "sourceUnit": 85, + "src": "62:58:4", + "symbolAliases": [ + { + "foreign": { + "id": 410, + "name": "ICircuitValidator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 84, + "src": "70:17:4", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IZKPVerifier", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 412, + "nodeType": "StructuredDocumentation", + "src": "122:99:4", + "text": " @dev IZKPVerifier. Interface for verification of groth16 proofs for validators circuits." + }, + "fullyImplemented": false, + "id": 550, + "linearizedBaseContracts": [ + 550 + ], + "name": "IZKPVerifier", + "nameLocation": "232:12:4", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IZKPVerifier.ZKPRequest", + "documentation": { + "id": 413, + "nodeType": "StructuredDocumentation", + "src": "251:193:4", + "text": " @dev ZKPRequest. Structure for ZKP request.\n @param metadata Metadata of the request.\n @param validator Validator circuit.\n @param data Data of the request." + }, + "id": 421, + "members": [ + { + "constant": false, + "id": 415, + "mutability": "mutable", + "name": "metadata", + "nameLocation": "484:8:4", + "nodeType": "VariableDeclaration", + "scope": 421, + "src": "477:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 414, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "477:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 418, + "mutability": "mutable", + "name": "validator", + "nameLocation": "520:9:4", + "nodeType": "VariableDeclaration", + "scope": 421, + "src": "502:27:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICircuitValidator_$84", + "typeString": "contract ICircuitValidator" + }, + "typeName": { + "id": 417, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 416, + "name": "ICircuitValidator", + "nameLocations": [ + "502:17:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 84, + "src": "502:17:4" + }, + "referencedDeclaration": 84, + "src": "502:17:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICircuitValidator_$84", + "typeString": "contract ICircuitValidator" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 420, + "mutability": "mutable", + "name": "data", + "nameLocation": "545:4:4", + "nodeType": "VariableDeclaration", + "scope": 421, + "src": "539:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 419, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "539:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "ZKPRequest", + "nameLocation": "456:10:4", + "nodeType": "StructDefinition", + "scope": 550, + "src": "449:107:4", + "visibility": "public" + }, + { + "canonicalName": "IZKPVerifier.ProofStatus", + "documentation": { + "id": 422, + "nodeType": "StructuredDocumentation", + "src": "561:289:4", + "text": " @dev ProofStatus. Structure for proof status.\n @param isVerified True if the proof is verified.\n @param validatorVersion Version of the validator.\n @param blockNumber Block number of the proof.\n @param blockTimestamp Block timestamp of the proof." + }, + "id": 431, + "members": [ + { + "constant": false, + "id": 424, + "mutability": "mutable", + "name": "isVerified", + "nameLocation": "889:10:4", + "nodeType": "VariableDeclaration", + "scope": 431, + "src": "884:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 423, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "884:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 426, + "mutability": "mutable", + "name": "validatorVersion", + "nameLocation": "916:16:4", + "nodeType": "VariableDeclaration", + "scope": 431, + "src": "909:23:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 425, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "909:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 428, + "mutability": "mutable", + "name": "blockNumber", + "nameLocation": "950:11:4", + "nodeType": "VariableDeclaration", + "scope": 431, + "src": "942:19:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "942:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 430, + "mutability": "mutable", + "name": "blockTimestamp", + "nameLocation": "979:14:4", + "nodeType": "VariableDeclaration", + "scope": 431, + "src": "971:22:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 429, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "971:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ProofStatus", + "nameLocation": "862:11:4", + "nodeType": "StructDefinition", + "scope": 550, + "src": "855:145:4", + "visibility": "public" + }, + { + "canonicalName": "IZKPVerifier.ZKPResponse", + "documentation": { + "id": 432, + "nodeType": "StructuredDocumentation", + "src": "1006:206:4", + "text": " @dev ZKPResponse. Structure for ZKP response.\n @param requestId Request id of the ZKP request.\n @param zkProof ZKP proof to verify.\n @param data Metadata of the request." + }, + "id": 439, + "members": [ + { + "constant": false, + "id": 434, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "1253:9:4", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "1246:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 433, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1246:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 436, + "mutability": "mutable", + "name": "zkProof", + "nameLocation": "1278:7:4", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "1272:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 435, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1272:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 438, + "mutability": "mutable", + "name": "data", + "nameLocation": "1301:4:4", + "nodeType": "VariableDeclaration", + "scope": 439, + "src": "1295:10:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 437, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1295:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "ZKPResponse", + "nameLocation": "1224:11:4", + "nodeType": "StructDefinition", + "scope": 550, + "src": "1217:95:4", + "visibility": "public" + }, + { + "documentation": { + "id": 440, + "nodeType": "StructuredDocumentation", + "src": "1318:361:4", + "text": " @dev Submit the groth16 proof π=([πa]1,[πb]2,[πc]1) for the ZKP request requestId.\n @param requestId Request id of the ZKP request.\n @param inputs Public inputs of the circuit.\n @param a πa element of the groth16 proof.\n @param b πb element of the groth16 proof.\n @param c πc element of the groth16 proof." + }, + "functionSelector": "b68967e2", + "id": 462, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "submitZKPResponse", + "nameLocation": "1693:17:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 460, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 442, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "1727:9:4", + "nodeType": "VariableDeclaration", + "scope": 462, + "src": "1720:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 441, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1720:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 445, + "mutability": "mutable", + "name": "inputs", + "nameLocation": "1763:6:4", + "nodeType": "VariableDeclaration", + "scope": 462, + "src": "1746:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 443, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1746:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 444, + "nodeType": "ArrayTypeName", + "src": "1746:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 449, + "mutability": "mutable", + "name": "a", + "nameLocation": "1797:1:4", + "nodeType": "VariableDeclaration", + "scope": 462, + "src": "1779:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 446, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1779:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 448, + "length": { + "hexValue": "32", + "id": 447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1787:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1779:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 455, + "mutability": "mutable", + "name": "b", + "nameLocation": "1829:1:4", + "nodeType": "VariableDeclaration", + "scope": 462, + "src": "1808:22:4", + "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": 450, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1808:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 452, + "length": { + "hexValue": "32", + "id": 451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1816:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1808:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "id": 454, + "length": { + "hexValue": "32", + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1819:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1808:13:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 459, + "mutability": "mutable", + "name": "c", + "nameLocation": "1858:1:4", + "nodeType": "VariableDeclaration", + "scope": 462, + "src": "1840:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 456, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1840:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 458, + "length": { + "hexValue": "32", + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1848:1:4", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1840:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + } + ], + "src": "1710:155:4" + }, + "returnParameters": { + "id": 461, + "nodeType": "ParameterList", + "parameters": [], + "src": "1874:0:4" + }, + "scope": 550, + "src": "1684:191:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 463, + "nodeType": "StructuredDocumentation", + "src": "1881:296:4", + "text": " @dev Submit the groth16 proof π=([πa]1,[πb]2,[πc]1) for the ZKP request requestId.\n @param responses The list of responses including ZKP request ID, ZK proof and metadata.\n @param crossChainProofs The list of cross chain proofs from universal resolver (oracle)." + }, + "functionSelector": "ade09fcd", + "id": 472, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "submitZKPResponseV2", + "nameLocation": "2191:19:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 470, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 467, + "mutability": "mutable", + "name": "responses", + "nameLocation": "2241:9:4", + "nodeType": "VariableDeclaration", + "scope": 472, + "src": "2220:30:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ZKPResponse_$439_memory_ptr_$dyn_memory_ptr", + "typeString": "struct IZKPVerifier.ZKPResponse[]" + }, + "typeName": { + "baseType": { + "id": 465, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 464, + "name": "ZKPResponse", + "nameLocations": [ + "2220:11:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 439, + "src": "2220:11:4" + }, + "referencedDeclaration": 439, + "src": "2220:11:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZKPResponse_$439_storage_ptr", + "typeString": "struct IZKPVerifier.ZKPResponse" + } + }, + "id": 466, + "nodeType": "ArrayTypeName", + "src": "2220:13:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ZKPResponse_$439_storage_$dyn_storage_ptr", + "typeString": "struct IZKPVerifier.ZKPResponse[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 469, + "mutability": "mutable", + "name": "crossChainProofs", + "nameLocation": "2273:16:4", + "nodeType": "VariableDeclaration", + "scope": 472, + "src": "2260:29:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 468, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2260:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2210:85:4" + }, + "returnParameters": { + "id": 471, + "nodeType": "ParameterList", + "parameters": [], + "src": "2304:0:4" + }, + "scope": 550, + "src": "2182:123:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 473, + "nodeType": "StructuredDocumentation", + "src": "2311:159:4", + "text": " @dev Set the ZKP request for the requestId.\n @param requestId Request id of the ZKP request.\n @param request ZKP request to set." + }, + "functionSelector": "9f5223e0", + "id": 481, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setZKPRequest", + "nameLocation": "2484:13:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 475, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "2505:9:4", + "nodeType": "VariableDeclaration", + "scope": 481, + "src": "2498:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 474, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2498:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 478, + "mutability": "mutable", + "name": "request", + "nameLocation": "2536:7:4", + "nodeType": "VariableDeclaration", + "scope": 481, + "src": "2516:27:4", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZKPRequest_$421_calldata_ptr", + "typeString": "struct IZKPVerifier.ZKPRequest" + }, + "typeName": { + "id": 477, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 476, + "name": "ZKPRequest", + "nameLocations": [ + "2516:10:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 421, + "src": "2516:10:4" + }, + "referencedDeclaration": 421, + "src": "2516:10:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZKPRequest_$421_storage_ptr", + "typeString": "struct IZKPVerifier.ZKPRequest" + } + }, + "visibility": "internal" + } + ], + "src": "2497:47:4" + }, + "returnParameters": { + "id": 480, + "nodeType": "ParameterList", + "parameters": [], + "src": "2553:0:4" + }, + "scope": 550, + "src": "2475:79:4", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 482, + "nodeType": "StructuredDocumentation", + "src": "2560:145:4", + "text": " @dev Get the ZKP request for the requestId.\n @param requestId Request id of the ZKP request.\n @return ZKP request." + }, + "functionSelector": "c76d0845", + "id": 490, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getZKPRequest", + "nameLocation": "2719:13:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 484, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "2740:9:4", + "nodeType": "VariableDeclaration", + "scope": 490, + "src": "2733:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 483, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2733:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "2732:18:4" + }, + "returnParameters": { + "id": 489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 488, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 490, + "src": "2774:17:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZKPRequest_$421_memory_ptr", + "typeString": "struct IZKPVerifier.ZKPRequest" + }, + "typeName": { + "id": 487, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 486, + "name": "ZKPRequest", + "nameLocations": [ + "2774:10:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 421, + "src": "2774:10:4" + }, + "referencedDeclaration": 421, + "src": "2774:10:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZKPRequest_$421_storage_ptr", + "typeString": "struct IZKPVerifier.ZKPRequest" + } + }, + "visibility": "internal" + } + ], + "src": "2773:19:4" + }, + "scope": 550, + "src": "2710:83:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 491, + "nodeType": "StructuredDocumentation", + "src": "2799:84:4", + "text": " @dev Get the ZKP request count.\n @return ZKP request count." + }, + "functionSelector": "6508e1b4", + "id": 496, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getZKPRequestsCount", + "nameLocation": "2897:19:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 492, + "nodeType": "ParameterList", + "parameters": [], + "src": "2916:2:4" + }, + "returnParameters": { + "id": 495, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 494, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 496, + "src": "2942:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 493, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2942:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2941:9:4" + }, + "scope": 550, + "src": "2888:63:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 497, + "nodeType": "StructuredDocumentation", + "src": "2957:154:4", + "text": " @dev Check if the requestId exists.\n @param requestId Request id of the ZKP request.\n @return True if the requestId exists." + }, + "functionSelector": "ab7bcfb7", + "id": 504, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "requestIdExists", + "nameLocation": "3125:15:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 499, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "3148:9:4", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "3141:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 498, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3141:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3140:18:4" + }, + "returnParameters": { + "id": 503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 502, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 504, + "src": "3182:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 501, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3182:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3181:6:4" + }, + "scope": 550, + "src": "3116:72:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 505, + "nodeType": "StructuredDocumentation", + "src": "3194:194:4", + "text": " @dev Get the ZKP requests.\n @param startIndex Start index of the ZKP requests.\n @param length Length of the ZKP requests.\n @return Array of the ZKP requests." + }, + "functionSelector": "5f9e60d7", + "id": 516, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getZKPRequests", + "nameLocation": "3402:14:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 507, + "mutability": "mutable", + "name": "startIndex", + "nameLocation": "3434:10:4", + "nodeType": "VariableDeclaration", + "scope": 516, + "src": "3426:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 506, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3426:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 509, + "mutability": "mutable", + "name": "length", + "nameLocation": "3462:6:4", + "nodeType": "VariableDeclaration", + "scope": 516, + "src": "3454:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3454:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3416:58:4" + }, + "returnParameters": { + "id": 515, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 514, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 516, + "src": "3498:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ZKPRequest_$421_memory_ptr_$dyn_memory_ptr", + "typeString": "struct IZKPVerifier.ZKPRequest[]" + }, + "typeName": { + "baseType": { + "id": 512, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 511, + "name": "ZKPRequest", + "nameLocations": [ + "3498:10:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 421, + "src": "3498:10:4" + }, + "referencedDeclaration": 421, + "src": "3498:10:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ZKPRequest_$421_storage_ptr", + "typeString": "struct IZKPVerifier.ZKPRequest" + } + }, + "id": 513, + "nodeType": "ArrayTypeName", + "src": "3498:12:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_ZKPRequest_$421_storage_$dyn_storage_ptr", + "typeString": "struct IZKPVerifier.ZKPRequest[]" + } + }, + "visibility": "internal" + } + ], + "src": "3497:21:4" + }, + "scope": 550, + "src": "3393:126:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 517, + "nodeType": "StructuredDocumentation", + "src": "3525:274:4", + "text": " @dev Get if proof is verified for the sender and ZKP request with requestId.\n @param sender Sender of the proof.\n @param requestId Request id of the ZKP Request to verify.\n @return True if proof is verified for the sender and request id." + }, + "functionSelector": "49555fb1", + "id": 526, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isProofVerified", + "nameLocation": "3813:15:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 519, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3837:6:4", + "nodeType": "VariableDeclaration", + "scope": 526, + "src": "3829:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 518, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3829:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "3852:9:4", + "nodeType": "VariableDeclaration", + "scope": 526, + "src": "3845:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 520, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3845:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3828:34:4" + }, + "returnParameters": { + "id": 525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 524, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 526, + "src": "3886:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 523, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3886:4:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3885:6:4" + }, + "scope": 550, + "src": "3804:88:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 527, + "nodeType": "StructuredDocumentation", + "src": "3898:211:4", + "text": " @dev Get the proof status for the sender and ZKP request with requestId.\n @param sender Sender of the proof.\n @param requestId Request id of the proof.\n @return Proof status." + }, + "functionSelector": "8c1da2c9", + "id": 537, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getProofStatus", + "nameLocation": "4123:14:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 532, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 529, + "mutability": "mutable", + "name": "sender", + "nameLocation": "4155:6:4", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "4147:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 528, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4147:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 531, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "4178:9:4", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "4171:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 530, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4171:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "4137:56:4" + }, + "returnParameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 537, + "src": "4217:18:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofStatus_$431_memory_ptr", + "typeString": "struct IZKPVerifier.ProofStatus" + }, + "typeName": { + "id": 534, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 533, + "name": "ProofStatus", + "nameLocations": [ + "4217:11:4" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 431, + "src": "4217:11:4" + }, + "referencedDeclaration": 431, + "src": "4217:11:4", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofStatus_$431_storage_ptr", + "typeString": "struct IZKPVerifier.ProofStatus" + } + }, + "visibility": "internal" + } + ], + "src": "4216:20:4" + }, + "scope": 550, + "src": "4114:123:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 538, + "nodeType": "StructuredDocumentation", + "src": "4243:252:4", + "text": " @dev Get the proof storage field for the user, requestId and key.\n @param user User address.\n @param requestId Request id of the proof.\n @param key Key of the proof storage field.\n @return Proof storage field." + }, + "functionSelector": "d4858051", + "id": 549, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getProofStorageField", + "nameLocation": "4509:20:4", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 545, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 540, + "mutability": "mutable", + "name": "user", + "nameLocation": "4547:4:4", + "nodeType": "VariableDeclaration", + "scope": 549, + "src": "4539:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 539, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4539:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 542, + "mutability": "mutable", + "name": "requestId", + "nameLocation": "4568:9:4", + "nodeType": "VariableDeclaration", + "scope": 549, + "src": "4561:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 541, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4561:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 544, + "mutability": "mutable", + "name": "key", + "nameLocation": "4601:3:4", + "nodeType": "VariableDeclaration", + "scope": 549, + "src": "4587:17:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 543, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4587:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4529:81:4" + }, + "returnParameters": { + "id": 548, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 547, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 549, + "src": "4634:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4634:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4633:9:4" + }, + "scope": 550, + "src": "4500:143:4", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 551, + "src": "222:4423:4", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "37:4609:4" + }, + "id": 4 + }, + "@iden3/contracts/lib/ArrayUtils.sol": { + "ast": { + "absolutePath": "@iden3/contracts/lib/ArrayUtils.sol", + "exportedSymbols": { + "ArrayUtils": [ + 611 + ] + }, + "id": 612, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 552, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "36:23:5" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ArrayUtils", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 553, + "nodeType": "StructuredDocumentation", + "src": "61:42:5", + "text": "@title A common functions for arrays." + }, + "fullyImplemented": true, + "id": 611, + "linearizedBaseContracts": [ + 611 + ], + "name": "ArrayUtils", + "nameLocation": "111:10:5", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 609, + "nodeType": "Block", + "src": "589:334:5", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 570, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 560, + "src": "607:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "616:1:5", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "607:10:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4c656e6774682073686f756c642062652067726561746572207468616e2030", + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "619:33:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7d4bcbad4eb3a77bbd93aeffb447dd4a40bb90d7f9bcb1e7b24196129dc65c2a", + "typeString": "literal_string \"Length should be greater than 0\"" + }, + "value": "Length should be greater than 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7d4bcbad4eb3a77bbd93aeffb447dd4a40bb90d7f9bcb1e7b24196129dc65c2a", + "typeString": "literal_string \"Length should be greater than 0\"" + } + ], + "id": 569, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "599:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "599:54:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 575, + "nodeType": "ExpressionStatement", + "src": "599:54:5" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 577, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 560, + "src": "671:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 578, + "name": "limit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 562, + "src": "681:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "671:15:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4c656e677468206c696d6974206578636565646564", + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "688:23:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7c161ae563d93d0a051be3b5891d7ee230c24127d59714e18bb10048ca6f9e84", + "typeString": "literal_string \"Length limit exceeded\"" + }, + "value": "Length limit exceeded" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7c161ae563d93d0a051be3b5891d7ee230c24127d59714e18bb10048ca6f9e84", + "typeString": "literal_string \"Length limit exceeded\"" + } + ], + "id": 576, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "663:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "663:49:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 582, + "nodeType": "ExpressionStatement", + "src": "663:49:5" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 584, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "730:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 585, + "name": "arrLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 556, + "src": "738:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "730:17:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "537461727420696e646578206f7574206f6620626f756e6473", + "id": 587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "749:27:5", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e68aa2945d9d826fe10860e3b76417578773840626355af3554acc1da6ab249f", + "typeString": "literal_string \"Start index out of bounds\"" + }, + "value": "Start index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e68aa2945d9d826fe10860e3b76417578773840626355af3554acc1da6ab249f", + "typeString": "literal_string \"Start index out of bounds\"" + } + ], + "id": 583, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "722:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "722:55:5", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 589, + "nodeType": "ExpressionStatement", + "src": "722:55:5" + }, + { + "assignments": [ + 591 + ], + "declarations": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "end", + "nameLocation": "796:3:5", + "nodeType": "VariableDeclaration", + "scope": 609, + "src": "788:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 590, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "788:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 595, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 592, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "802:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 593, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 560, + "src": "810:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "802:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "788:28:5" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 596, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "830:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 597, + "name": "arrLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 556, + "src": "836:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "830:15:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 604, + "nodeType": "IfStatement", + "src": "826:61:5", + "trueBody": { + "id": 603, + "nodeType": "Block", + "src": "847:40:5", + "statements": [ + { + "expression": { + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 599, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "861:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 600, + "name": "arrLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 556, + "src": "867:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "861:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 602, + "nodeType": "ExpressionStatement", + "src": "861:15:5" + } + ] + } + }, + { + "expression": { + "components": [ + { + "id": 605, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 558, + "src": "905:5:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 606, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 591, + "src": "912:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 607, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "904:12:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "functionReturnParameters": 568, + "id": 608, + "nodeType": "Return", + "src": "897:19:5" + } + ] + }, + "documentation": { + "id": 554, + "nodeType": "StructuredDocumentation", + "src": "128:287:5", + "text": " @dev Calculates bounds for the slice of the array.\n @param arrLength An array length.\n @param start A start index.\n @param length A length of the slice.\n @param limit A limit for the length.\n @return The bounds for the slice of the array." + }, + "id": 610, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "calculateBounds", + "nameLocation": "429:15:5", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 563, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 556, + "mutability": "mutable", + "name": "arrLength", + "nameLocation": "462:9:5", + "nodeType": "VariableDeclaration", + "scope": 610, + "src": "454:17:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 555, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "454:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 558, + "mutability": "mutable", + "name": "start", + "nameLocation": "489:5:5", + "nodeType": "VariableDeclaration", + "scope": 610, + "src": "481:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 557, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "481:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 560, + "mutability": "mutable", + "name": "length", + "nameLocation": "512:6:5", + "nodeType": "VariableDeclaration", + "scope": 610, + "src": "504:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 559, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "504:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 562, + "mutability": "mutable", + "name": "limit", + "nameLocation": "536:5:5", + "nodeType": "VariableDeclaration", + "scope": 610, + "src": "528:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "528:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "444:103:5" + }, + "returnParameters": { + "id": 568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 565, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 610, + "src": "571:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "571:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 567, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 610, + "src": "580:7:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "580:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "570:18:5" + }, + "scope": 611, + "src": "420:503:5", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 612, + "src": "103:822:5", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "36:890:5" + }, + "id": 5 + }, + "@iden3/contracts/lib/GenesisUtils.sol": { + "ast": { + "absolutePath": "@iden3/contracts/lib/GenesisUtils.sol", + "exportedSymbols": { + "GenesisUtils": [ + 816 + ], + "PrimitiveTypeUtils": [ + 2915 + ] + }, + "id": 817, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 613, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "36:23:6" + }, + { + "absolutePath": "@iden3/contracts/lib/PrimitiveTypeUtils.sol", + "file": "./PrimitiveTypeUtils.sol", + "id": 615, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 817, + "sourceUnit": 2916, + "src": "61:60:6", + "symbolAliases": [ + { + "foreign": { + "id": 614, + "name": "PrimitiveTypeUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2915, + "src": "69:18:6", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "GenesisUtils", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 816, + "linearizedBaseContracts": [ + 816 + ], + "name": "GenesisUtils", + "nameLocation": "131:12:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 656, + "nodeType": "Block", + "src": "250:187:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 624, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 618, + "src": "268:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "274:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "268:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3239", + "id": 626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "284:2:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_29_by_1", + "typeString": "int_const 29" + }, + "value": "29" + }, + "src": "268:18:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "436865636b73756d207265717569726573203239206c656e677468206172726179", + "id": 628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "288:35:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8913fb6098b083fbd4c1742211a970a034991471b53e0cd894357bdfba5ebae5", + "typeString": "literal_string \"Checksum requires 29 length array\"" + }, + "value": "Checksum requires 29 length array" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8913fb6098b083fbd4c1742211a970a034991471b53e0cd894357bdfba5ebae5", + "typeString": "literal_string \"Checksum requires 29 length array\"" + } + ], + "id": 623, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "260:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "260:64:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 630, + "nodeType": "ExpressionStatement", + "src": "260:64:6" + }, + { + "body": { + "id": 654, + "nodeType": "Block", + "src": "378:53:6", + "statements": [ + { + "expression": { + "id": 652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 642, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 621, + "src": "392:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "baseExpression": { + "id": 647, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 618, + "src": "410:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 649, + "indexExpression": { + "id": 648, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 632, + "src": "416:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "410:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "404:5:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 645, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "404:5:6", + "typeDescriptions": {} + } + }, + "id": 650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "404:15:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "397:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 643, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "397:6:6", + "typeDescriptions": {} + } + }, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "397:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "392:28:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 653, + "nodeType": "ExpressionStatement", + "src": "392:28:6" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 635, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 632, + "src": "355:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 636, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 618, + "src": "359:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "365:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "359:12:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "355:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 655, + "initializationExpression": { + "assignments": [ + 632 + ], + "declarations": [ + { + "constant": false, + "id": 632, + "mutability": "mutable", + "name": "i", + "nameLocation": "348:1:6", + "nodeType": "VariableDeclaration", + "scope": 655, + "src": "340:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 631, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "340:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 634, + "initialValue": { + "hexValue": "30", + "id": 633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "352:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "340:13:6" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "373:3:6", + "subExpression": { + "id": 639, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 632, + "src": "375:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 641, + "nodeType": "ExpressionStatement", + "src": "373:3:6" + }, + "nodeType": "ForStatement", + "src": "335:96:6" + } + ] + }, + "documentation": { + "id": 616, + "nodeType": "StructuredDocumentation", + "src": "150:29:6", + "text": " @dev sum" + }, + "id": 657, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sum", + "nameLocation": "193:3:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 618, + "mutability": "mutable", + "name": "array", + "nameLocation": "210:5:6", + "nodeType": "VariableDeclaration", + "scope": 657, + "src": "197:18:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 617, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "197:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "196:20:6" + }, + "returnParameters": { + "id": 622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 621, + "mutability": "mutable", + "name": "s", + "nameLocation": "247:1:6", + "nodeType": "VariableDeclaration", + "scope": 657, + "src": "240:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 620, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "240:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "src": "239:10:6" + }, + "scope": 816, + "src": "184:253:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 684, + "nodeType": "Block", + "src": "568:149:6", + "statements": [ + { + "assignments": [ + 668 + ], + "declarations": [ + { + "constant": false, + "id": 668, + "mutability": "mutable", + "name": "idType", + "nameLocation": "585:6:6", + "nodeType": "VariableDeclaration", + "scope": 684, + "src": "578:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "typeName": { + "id": 667, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "578:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "visibility": "internal" + } + ], + "id": 672, + "initialValue": { + "arguments": [ + { + "id": 670, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 660, + "src": "604:2:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 669, + "name": "getIdType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 705, + "src": "594:9:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes2_$", + "typeString": "function (uint256) pure returns (bytes2)" + } + }, + "id": 671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "594:13:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "578:29:6" + }, + { + "assignments": [ + 674 + ], + "declarations": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "computedId", + "nameLocation": "625:10:6", + "nodeType": "VariableDeclaration", + "scope": 684, + "src": "617:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "617:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 679, + "initialValue": { + "arguments": [ + { + "id": 676, + "name": "idType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 668, + "src": "661:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + { + "id": 677, + "name": "idState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 662, + "src": "669:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 675, + "name": "calcIdFromGenesisState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "638:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes2_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bytes2,uint256) pure returns (uint256)" + } + }, + "id": 678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "638:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "617:60:6" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 680, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 660, + "src": "694:2:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 681, + "name": "computedId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 674, + "src": "700:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "694:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 666, + "id": 683, + "nodeType": "Return", + "src": "687:23:6" + } + ] + }, + "documentation": { + "id": 658, + "nodeType": "StructuredDocumentation", + "src": "443:38:6", + "text": " @dev isGenesisState" + }, + "id": 685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isGenesisState", + "nameLocation": "495:14:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 660, + "mutability": "mutable", + "name": "id", + "nameLocation": "518:2:6", + "nodeType": "VariableDeclaration", + "scope": 685, + "src": "510:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 659, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "510:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 662, + "mutability": "mutable", + "name": "idState", + "nameLocation": "530:7:6", + "nodeType": "VariableDeclaration", + "scope": 685, + "src": "522:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 661, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "522:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "509:29:6" + }, + "returnParameters": { + "id": 666, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 665, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 685, + "src": "562:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 664, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "562:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "561:6:6" + }, + "scope": 816, + "src": "486:231:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 704, + "nodeType": "Block", + "src": "823:104:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 699, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 688, + "src": "915:2:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 697, + "name": "PrimitiveTypeUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2915, + "src": "881:18:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$", + "typeString": "type(library PrimitiveTypeUtils)" + } + }, + "id": 698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "900:14:6", + "memberName": "reverseUint256", + "nodeType": "MemberAccess", + "referencedDeclaration": 2632, + "src": "881:33:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "881:37:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 695, + "name": "PrimitiveTypeUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2915, + "src": "847:18:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$", + "typeString": "type(library PrimitiveTypeUtils)" + } + }, + "id": 696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "866:14:6", + "memberName": "uint256ToBytes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "847:33:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + } + }, + "id": 701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "847:72:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 694, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "840:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes2_$", + "typeString": "type(bytes2)" + }, + "typeName": { + "id": 693, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "840:6:6", + "typeDescriptions": {} + } + }, + "id": 702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "840:80:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "functionReturnParameters": 692, + "id": 703, + "nodeType": "Return", + "src": "833:87:6" + } + ] + }, + "documentation": { + "id": 686, + "nodeType": "StructuredDocumentation", + "src": "723:33:6", + "text": " @dev getIdType" + }, + "id": 705, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getIdType", + "nameLocation": "770:9:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "id", + "nameLocation": "788:2:6", + "nodeType": "VariableDeclaration", + "scope": 705, + "src": "780:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "780:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "779:12:6" + }, + "returnParameters": { + "id": 692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 691, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 705, + "src": "815:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "typeName": { + "id": 690, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "815:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "visibility": "internal" + } + ], + "src": "814:8:6" + }, + "scope": 816, + "src": "761:166:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 788, + "nodeType": "Block", + "src": "1102:755:6", + "statements": [ + { + "assignments": [ + 716 + ], + "declarations": [ + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "userStateB1", + "nameLocation": "1125:11:6", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "1112:24:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 715, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1112:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 724, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 721, + "name": "idState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 710, + "src": "1220:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 719, + "name": "PrimitiveTypeUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2915, + "src": "1186:18:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$", + "typeString": "type(library PrimitiveTypeUtils)" + } + }, + "id": 720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1205:14:6", + "memberName": "reverseUint256", + "nodeType": "MemberAccess", + "referencedDeclaration": 2632, + "src": "1186:33:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1186:42:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 717, + "name": "PrimitiveTypeUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2915, + "src": "1139:18:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$", + "typeString": "type(library PrimitiveTypeUtils)" + } + }, + "id": 718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1158:14:6", + "memberName": "uint256ToBytes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "1139:33:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + } + }, + "id": 723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1139:99:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1112:126:6" + }, + { + "assignments": [ + 726 + ], + "declarations": [ + { + "constant": false, + "id": 726, + "mutability": "mutable", + "name": "cutState", + "nameLocation": "1262:8:6", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "1249:21:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 725, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1249:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 736, + "initialValue": { + "arguments": [ + { + "id": 729, + "name": "userStateB1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 716, + "src": "1298:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 730, + "name": "userStateB1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 716, + "src": "1311:11:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1323:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1311:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "3237", + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1332:2:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_27_by_1", + "typeString": "int_const 27" + }, + "value": "27" + }, + "src": "1311:23:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "3237", + "id": 734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1336:2:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_27_by_1", + "typeString": "int_const 27" + }, + "value": "27" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_27_by_1", + "typeString": "int_const 27" + } + ], + "expression": { + "id": 727, + "name": "PrimitiveTypeUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2915, + "src": "1273:18:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$", + "typeString": "type(library PrimitiveTypeUtils)" + } + }, + "id": 728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1292:5:6", + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 2807, + "src": "1273:24:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1273:66:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1249:90:6" + }, + { + "assignments": [ + 738 + ], + "declarations": [ + { + "constant": false, + "id": 738, + "mutability": "mutable", + "name": "beforeChecksum", + "nameLocation": "1362:14:6", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "1349:27:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 737, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1349:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 747, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 743, + "name": "idType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 708, + "src": "1422:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + ], + "expression": { + "id": 741, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1405:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1409:12:6", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "1405:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1405:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 745, + "name": "cutState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "1431:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 739, + "name": "PrimitiveTypeUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2915, + "src": "1379:18:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$", + "typeString": "type(library PrimitiveTypeUtils)" + } + }, + "id": 740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1398:6:6", + "memberName": "concat", + "nodeType": "MemberAccess", + "referencedDeclaration": 2787, + "src": "1379:25:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,bytes memory) pure returns (bytes memory)" + } + }, + "id": 746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1379:61:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1349:91:6" + }, + { + "assignments": [ + 749 + ], + "declarations": [ + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "checksum", + "nameLocation": "1458:8:6", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "1451:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 748, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1451:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "id": 756, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 753, + "name": "beforeChecksum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "1506:14:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 752, + "name": "sum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 657, + "src": "1502:3:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint16_$", + "typeString": "function (bytes memory) pure returns (uint16)" + } + }, + "id": 754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1502:19:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "id": 750, + "name": "PrimitiveTypeUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2915, + "src": "1469:18:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$", + "typeString": "type(library PrimitiveTypeUtils)" + } + }, + "id": 751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1488:13:6", + "memberName": "reverseUint16", + "nodeType": "MemberAccess", + "referencedDeclaration": 2657, + "src": "1469:32:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_uint16_$", + "typeString": "function (uint16) pure returns (uint16)" + } + }, + "id": 755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1469:53:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1451:71:6" + }, + { + "assignments": [ + 758 + ], + "declarations": [ + { + "constant": false, + "id": 758, + "mutability": "mutable", + "name": "checkSumBytes", + "nameLocation": "1545:13:6", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "1532:26:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 757, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1532:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 763, + "initialValue": { + "arguments": [ + { + "id": 761, + "name": "checksum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "1578:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "expression": { + "id": 759, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "1561:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1565:12:6", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "1561:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1561:26:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1532:55:6" + }, + { + "assignments": [ + 765 + ], + "declarations": [ + { + "constant": false, + "id": 765, + "mutability": "mutable", + "name": "idBytes", + "nameLocation": "1611:7:6", + "nodeType": "VariableDeclaration", + "scope": 788, + "src": "1598:20:6", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 764, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1598:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 771, + "initialValue": { + "arguments": [ + { + "id": 768, + "name": "beforeChecksum", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "1647:14:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 769, + "name": "checkSumBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 758, + "src": "1663:13:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 766, + "name": "PrimitiveTypeUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2915, + "src": "1621:18:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$", + "typeString": "type(library PrimitiveTypeUtils)" + } + }, + "id": 767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1640:6:6", + "memberName": "concat", + "nodeType": "MemberAccess", + "referencedDeclaration": 2787, + "src": "1621:25:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,bytes memory) pure returns (bytes memory)" + } + }, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1621:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1598:79:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 773, + "name": "idBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 765, + "src": "1695:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1703:6:6", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1695:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3331", + "id": 775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1713:2:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "1695:20:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "69644279746573207265717569726573203331206c656e677468206172726179", + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1717:34:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_927599b089841c4ed82223494044191b3442ce5fcdceba2208631608986675d1", + "typeString": "literal_string \"idBytes requires 31 length array\"" + }, + "value": "idBytes requires 31 length array" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_927599b089841c4ed82223494044191b3442ce5fcdceba2208631608986675d1", + "typeString": "literal_string \"idBytes requires 31 length array\"" + } + ], + "id": 772, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "1687:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1687:65:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 779, + "nodeType": "ExpressionStatement", + "src": "1687:65:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 784, + "name": "idBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 765, + "src": "1841:7:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 782, + "name": "PrimitiveTypeUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2915, + "src": "1804:18:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$", + "typeString": "type(library PrimitiveTypeUtils)" + } + }, + "id": 783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1823:17:6", + "memberName": "padRightToUint256", + "nodeType": "MemberAccess", + "referencedDeclaration": 2760, + "src": "1804:36:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1804:45:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 780, + "name": "PrimitiveTypeUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2915, + "src": "1770:18:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$", + "typeString": "type(library PrimitiveTypeUtils)" + } + }, + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1789:14:6", + "memberName": "reverseUint256", + "nodeType": "MemberAccess", + "referencedDeclaration": 2632, + "src": "1770:33:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1770:80:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 714, + "id": 787, + "nodeType": "Return", + "src": "1763:87:6" + } + ] + }, + "documentation": { + "id": 706, + "nodeType": "StructuredDocumentation", + "src": "933:46:6", + "text": " @dev calcIdFromGenesisState" + }, + "id": 789, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "calcIdFromGenesisState", + "nameLocation": "993:22:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 708, + "mutability": "mutable", + "name": "idType", + "nameLocation": "1032:6:6", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1025:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "typeName": { + "id": 707, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "1025:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 710, + "mutability": "mutable", + "name": "idState", + "nameLocation": "1056:7:6", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1048:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 709, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1048:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1015:54:6" + }, + "returnParameters": { + "id": 714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 713, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 789, + "src": "1093:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 712, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1093:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1092:9:6" + }, + "scope": 816, + "src": "984:873:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 814, + "nodeType": "Block", + "src": "2005:164:6", + "statements": [ + { + "assignments": [ + 800 + ], + "declarations": [ + { + "constant": false, + "id": 800, + "mutability": "mutable", + "name": "addr", + "nameLocation": "2023:4:6", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "2015:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 799, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2015:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 805, + "initialValue": { + "arguments": [ + { + "id": 803, + "name": "caller", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 794, + "src": "2066:6:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 801, + "name": "PrimitiveTypeUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2915, + "src": "2030:18:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$", + "typeString": "type(library PrimitiveTypeUtils)" + } + }, + "id": 802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2049:16:6", + "memberName": "addressToUint256", + "nodeType": "MemberAccess", + "referencedDeclaration": 2824, + "src": "2030:35:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) pure returns (uint256)" + } + }, + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2030:43:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2015:58:6" + }, + { + "expression": { + "arguments": [ + { + "id": 807, + "name": "idType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 792, + "src": "2114:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + { + "arguments": [ + { + "id": 810, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "2156:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 808, + "name": "PrimitiveTypeUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2915, + "src": "2122:18:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PrimitiveTypeUtils_$2915_$", + "typeString": "type(library PrimitiveTypeUtils)" + } + }, + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2141:14:6", + "memberName": "reverseUint256", + "nodeType": "MemberAccess", + "referencedDeclaration": 2632, + "src": "2122:33:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2122:39:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 806, + "name": "calcIdFromGenesisState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "2091:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes2_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bytes2,uint256) pure returns (uint256)" + } + }, + "id": 812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2091:71:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 798, + "id": 813, + "nodeType": "Return", + "src": "2084:78:6" + } + ] + }, + "documentation": { + "id": 790, + "nodeType": "StructuredDocumentation", + "src": "1863:44:6", + "text": " @dev calcIdFromEthAddress" + }, + "id": 815, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "calcIdFromEthAddress", + "nameLocation": "1921:20:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 792, + "mutability": "mutable", + "name": "idType", + "nameLocation": "1949:6:6", + "nodeType": "VariableDeclaration", + "scope": 815, + "src": "1942:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "typeName": { + "id": 791, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "1942:6:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 794, + "mutability": "mutable", + "name": "caller", + "nameLocation": "1965:6:6", + "nodeType": "VariableDeclaration", + "scope": 815, + "src": "1957:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1957:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1941:31:6" + }, + "returnParameters": { + "id": 798, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 797, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 815, + "src": "1996:7:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 796, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1996:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1995:9:6" + }, + "scope": 816, + "src": "1912:257:6", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 817, + "src": "123:2048:6", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "36:2136:6" + }, + "id": 6 + }, + "@iden3/contracts/lib/IdentityBase.sol": { + "ast": { + "absolutePath": "@iden3/contracts/lib/IdentityBase.sol", + "exportedSymbols": { + "ERC165": [ + 8727 + ], + "IIdentifiable": [ + 94 + ], + "IOnchainCredentialStatusResolver": [ + 158 + ], + "IdentityBase": [ + 1327 + ], + "IdentityLib": [ + 2217 + ], + "SmtLib": [ + 4449 + ] + }, + "id": 1328, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 818, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "36:23:7" + }, + { + "absolutePath": "@iden3/contracts/interfaces/IIdentifiable.sol", + "file": "../interfaces/IIdentifiable.sol", + "id": 820, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1328, + "sourceUnit": 95, + "src": "61:62:7", + "symbolAliases": [ + { + "foreign": { + "id": 819, + "name": "IIdentifiable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "69:13:7", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol", + "file": "../interfaces/IOnchainCredentialStatusResolver.sol", + "id": 822, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1328, + "sourceUnit": 159, + "src": "124:100:7", + "symbolAliases": [ + { + "foreign": { + "id": 821, + "name": "IOnchainCredentialStatusResolver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 158, + "src": "132:32:7", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@iden3/contracts/lib/IdentityLib.sol", + "file": "../lib/IdentityLib.sol", + "id": 824, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1328, + "sourceUnit": 2218, + "src": "225:51:7", + "symbolAliases": [ + { + "foreign": { + "id": 823, + "name": "IdentityLib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2217, + "src": "233:11:7", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@iden3/contracts/lib/SmtLib.sol", + "file": "../lib/SmtLib.sol", + "id": 826, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1328, + "sourceUnit": 4637, + "src": "277:41:7", + "symbolAliases": [ + { + "foreign": { + "id": 825, + "name": "SmtLib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4449, + "src": "285:6:7", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "file": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "id": 828, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1328, + "sourceUnit": 8728, + "src": "319:78:7", + "symbolAliases": [ + { + "foreign": { + "id": 827, + "name": "ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8727, + "src": "327:6:7", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 829, + "name": "IIdentifiable", + "nameLocations": [ + "493:13:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 94, + "src": "493:13:7" + }, + "id": 830, + "nodeType": "InheritanceSpecifier", + "src": "493:13:7" + }, + { + "baseName": { + "id": 831, + "name": "IOnchainCredentialStatusResolver", + "nameLocations": [ + "508:32:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 158, + "src": "508:32:7" + }, + "id": 832, + "nodeType": "InheritanceSpecifier", + "src": "508:32:7" + }, + { + "baseName": { + "id": 833, + "name": "ERC165", + "nameLocations": [ + "542:6:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8727, + "src": "542:6:7" + }, + "id": 834, + "nodeType": "InheritanceSpecifier", + "src": "542:6:7" + } + ], + "canonicalName": "IdentityBase", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1327, + "linearizedBaseContracts": [ + 1327, + 8727, + 8739, + 158, + 94 + ], + "name": "IdentityBase", + "nameLocation": "477:12:7", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 838, + "libraryName": { + "id": 835, + "name": "IdentityLib", + "nameLocations": [ + "561:11:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2217, + "src": "561:11:7" + }, + "nodeType": "UsingForDirective", + "src": "555:39:7", + "typeName": { + "id": 837, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 836, + "name": "IdentityLib.Data", + "nameLocations": [ + "577:11:7", + "589:4:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "577:16:7" + }, + "referencedDeclaration": 1371, + "src": "577:16:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + } + }, + { + "canonicalName": "IdentityBase.IdentityBaseStorage", + "documentation": { + "id": 839, + "nodeType": "StructuredDocumentation", + "src": "600:48:7", + "text": "@dev Main storage structure for the contract" + }, + "id": 843, + "members": [ + { + "constant": false, + "id": 842, + "mutability": "mutable", + "name": "identity", + "nameLocation": "707:8:7", + "nodeType": "VariableDeclaration", + "scope": 843, + "src": "690:25:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 841, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 840, + "name": "IdentityLib.Data", + "nameLocations": [ + "690:11:7", + "702:4:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "690:16:7" + }, + "referencedDeclaration": 1371, + "src": "690:16:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + } + ], + "name": "IdentityBaseStorage", + "nameLocation": "660:19:7", + "nodeType": "StructDefinition", + "scope": 1327, + "src": "653:69:7", + "visibility": "public" + }, + { + "constant": true, + "id": 846, + "mutability": "constant", + "name": "IdentityBaseStorageLocation", + "nameLocation": "875:27:7", + "nodeType": "VariableDeclaration", + "scope": 1327, + "src": "850:129:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 844, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "850:7:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307833303138613331306333366334663832323866303962663362313832323638356366303937316461613832363561353863613830376334613464616261343030", + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "913:66:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_21754546498145594665686036366567490177206693549650858221762873689363909944320_by_1", + "typeString": "int_const 2175...(69 digits omitted)...4320" + }, + "value": "0x3018a310c36c4f8228f09bf3b1822685cf0971daa8265a58ca807c4a4daba400" + }, + "visibility": "private" + }, + { + "body": { + "id": 854, + "nodeType": "Block", + "src": "1160:86:7", + "statements": [ + { + "AST": { + "nativeSrc": "1179:61:7", + "nodeType": "YulBlock", + "src": "1179:61:7", + "statements": [ + { + "nativeSrc": "1193:37:7", + "nodeType": "YulAssignment", + "src": "1193:37:7", + "value": { + "name": "IdentityBaseStorageLocation", + "nativeSrc": "1203:27:7", + "nodeType": "YulIdentifier", + "src": "1203:27:7" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "1193:6:7", + "nodeType": "YulIdentifier", + "src": "1193:6:7" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 851, + "isOffset": false, + "isSlot": true, + "src": "1193:6:7", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 846, + "isOffset": false, + "isSlot": false, + "src": "1203:27:7", + "valueSize": 1 + } + ], + "id": 853, + "nodeType": "InlineAssembly", + "src": "1170:70:7" + } + ] + }, + "documentation": { + "id": 847, + "nodeType": "StructuredDocumentation", + "src": "986:80:7", + "text": "@dev Get the main storage using assembly to ensure specific storage location" + }, + "id": 855, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getIdentityBaseStorage", + "nameLocation": "1080:23:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 848, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:2:7" + }, + "returnParameters": { + "id": 852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "$", + "nameLocation": "1157:1:7", + "nodeType": "VariableDeclaration", + "scope": 855, + "src": "1129:29:7", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage" + }, + "typeName": { + "id": 850, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 849, + "name": "IdentityBaseStorage", + "nameLocations": [ + "1129:19:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 843, + "src": "1129:19:7" + }, + "referencedDeclaration": 843, + "src": "1129:19:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage" + } + }, + "visibility": "internal" + } + ], + "src": "1128:31:7" + }, + "scope": 1327, + "src": "1071:175:7", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 863, + "nodeType": "Block", + "src": "1408:26:7", + "statements": [ + { + "expression": { + "hexValue": "3430", + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1425:2:7", + "typeDescriptions": { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + "value": "40" + }, + "functionReturnParameters": 860, + "id": 862, + "nodeType": "Return", + "src": "1418:9:7" + } + ] + }, + "documentation": { + "id": 856, + "nodeType": "StructuredDocumentation", + "src": "1252:90:7", + "text": " @dev Get configured Identity SMT depth.\n @return depth of the SMT" + }, + "functionSelector": "3f0c6648", + "id": 864, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSmtDepth", + "nameLocation": "1356:11:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 857, + "nodeType": "ParameterList", + "parameters": [], + "src": "1367:2:7" + }, + "returnParameters": { + "id": 860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 859, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 864, + "src": "1399:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1399:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1398:9:7" + }, + "scope": 1327, + "src": "1347:87:7", + "stateMutability": "pure", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 886, + "nodeType": "Block", + "src": "1649:178:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 876, + "name": "_stateContractAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 867, + "src": "1718:18:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 879, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "1758:4:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IdentityBase_$1327", + "typeString": "contract IdentityBase" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IdentityBase_$1327", + "typeString": "contract IdentityBase" + } + ], + "id": 878, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1750:7:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 877, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1750:7:7", + "typeDescriptions": {} + } + }, + "id": 880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1750:13:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 881, + "name": "getSmtDepth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 864, + "src": "1777:11:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_uint256_$", + "typeString": "function () pure returns (uint256)" + } + }, + "id": 882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1777:13:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 883, + "name": "idType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 869, + "src": "1804:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 872, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "1659:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1659:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 874, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1685:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "1659:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 875, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1694:10:7", + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 1486, + "src": "1659:45:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_address_$_t_address_$_t_uint256_$_t_bytes2_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,address,address,uint256,bytes2)" + } + }, + "id": 884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1659:161:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 885, + "nodeType": "ExpressionStatement", + "src": "1659:161:7" + } + ] + }, + "documentation": { + "id": 865, + "nodeType": "StructuredDocumentation", + "src": "1440:126:7", + "text": " @dev Initialization of IdentityLib library\n @param _stateContractAddr - address of the State contract" + }, + "functionSelector": "406e8b4c", + "id": 887, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nameLocation": "1580:10:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 867, + "mutability": "mutable", + "name": "_stateContractAddr", + "nameLocation": "1599:18:7", + "nodeType": "VariableDeclaration", + "scope": 887, + "src": "1591:26:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 866, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1591:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 869, + "mutability": "mutable", + "name": "idType", + "nameLocation": "1626:6:7", + "nodeType": "VariableDeclaration", + "scope": 887, + "src": "1619:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "typeName": { + "id": 868, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "1619:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "visibility": "internal" + } + ], + "src": "1590:43:7" + }, + "returnParameters": { + "id": 871, + "nodeType": "ParameterList", + "parameters": [], + "src": "1649:0:7" + }, + "scope": 1327, + "src": "1571:256:7", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 903, + "nodeType": "Block", + "src": "2173:88:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 900, + "name": "claimIndexHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 890, + "src": "2239:14:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 896, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "2190:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2190:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 898, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2216:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "2190:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 899, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2225:13:7", + "memberName": "getClaimProof", + "nodeType": "MemberAccess", + "referencedDeclaration": 1831, + "src": "2190:48:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2190:64:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 895, + "id": 902, + "nodeType": "Return", + "src": "2183:71:7" + } + ] + }, + "documentation": { + "id": 888, + "nodeType": "StructuredDocumentation", + "src": "1833:224:7", + "text": " @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index.\n @param claimIndexHash - hash of Claim Index\n @return The ClaimsTree inclusion or non-inclusion proof for the claim" + }, + "functionSelector": "b57a40cb", + "id": 904, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getClaimProof", + "nameLocation": "2071:13:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 891, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "claimIndexHash", + "nameLocation": "2102:14:7", + "nodeType": "VariableDeclaration", + "scope": 904, + "src": "2094:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 889, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2094:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2084:38:7" + }, + "returnParameters": { + "id": 895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 894, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 904, + "src": "2152:19:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 893, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 892, + "name": "SmtLib.Proof", + "nameLocations": [ + "2152:6:7", + "2159:5:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "2152:12:7" + }, + "referencedDeclaration": 2979, + "src": "2152:12:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "2151:21:7" + }, + "scope": 1327, + "src": "2062:199:7", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 923, + "nodeType": "Block", + "src": "2682:101:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 920, + "name": "claimIndexHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "2761:14:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 916, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "2699:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2699:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 918, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2725:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "2699:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 919, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2734:26:7", + "memberName": "getClaimProofWithStateInfo", + "nodeType": "MemberAccess", + "referencedDeclaration": 1871, + "src": "2699:61:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint256) view returns (struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)" + } + }, + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2699:77:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$", + "typeString": "tuple(struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)" + } + }, + "functionReturnParameters": 915, + "id": 922, + "nodeType": "Return", + "src": "2692:84:7" + } + ] + }, + "documentation": { + "id": 905, + "nodeType": "StructuredDocumentation", + "src": "2267:256:7", + "text": " @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index with state info.\n @param claimIndexHash - hash of Claim Index\n @return The ClaimsTree inclusion or non-inclusion proof for the claim and state info." + }, + "functionSelector": "b37feda4", + "id": 924, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getClaimProofWithStateInfo", + "nameLocation": "2537:26:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 908, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 907, + "mutability": "mutable", + "name": "claimIndexHash", + "nameLocation": "2581:14:7", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "2573:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2573:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2563:38:7" + }, + "returnParameters": { + "id": 915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 911, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "2631:19:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 910, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 909, + "name": "SmtLib.Proof", + "nameLocations": [ + "2631:6:7", + "2638:5:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "2631:12:7" + }, + "referencedDeclaration": 2979, + "src": "2631:12:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 924, + "src": "2652:28:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr", + "typeString": "struct IdentityLib.StateInfo" + }, + "typeName": { + "id": 913, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 912, + "name": "IdentityLib.StateInfo", + "nameLocations": [ + "2652:11:7", + "2664:9:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1400, + "src": "2652:21:7" + }, + "referencedDeclaration": 1400, + "src": "2652:21:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$1400_storage_ptr", + "typeString": "struct IdentityLib.StateInfo" + } + }, + "visibility": "internal" + } + ], + "src": "2630:51:7" + }, + "scope": 1327, + "src": "2528:255:7", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 943, + "nodeType": "Block", + "src": "3210:100:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 939, + "name": "claimIndexHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 927, + "src": "3282:14:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 940, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 929, + "src": "3298:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 935, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "3227:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3227:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 937, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3253:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "3227:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 938, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3262:19:7", + "memberName": "getClaimProofByRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1894, + "src": "3227:54:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3227:76:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 934, + "id": 942, + "nodeType": "Return", + "src": "3220:83:7" + } + ] + }, + "documentation": { + "id": 925, + "nodeType": "StructuredDocumentation", + "src": "2789:277:7", + "text": " @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index by target root.\n @param claimIndexHash - hash of Claim Index\n @param root - root of the tree\n @return The ClaimsTree inclusion or non-inclusion proof for the claim" + }, + "functionSelector": "310d0d5b", + "id": 944, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getClaimProofByRoot", + "nameLocation": "3080:19:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 930, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 927, + "mutability": "mutable", + "name": "claimIndexHash", + "nameLocation": "3117:14:7", + "nodeType": "VariableDeclaration", + "scope": 944, + "src": "3109:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3109:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 929, + "mutability": "mutable", + "name": "root", + "nameLocation": "3149:4:7", + "nodeType": "VariableDeclaration", + "scope": 944, + "src": "3141:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 928, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3141:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3099:60:7" + }, + "returnParameters": { + "id": 934, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 933, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 944, + "src": "3189:19:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 932, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 931, + "name": "SmtLib.Proof", + "nameLocations": [ + "3189:6:7", + "3196:5:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "3189:12:7" + }, + "referencedDeclaration": 2979, + "src": "3189:12:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "3188:21:7" + }, + "scope": 1327, + "src": "3071:239:7", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 956, + "nodeType": "Block", + "src": "3486:78:7", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 950, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "3503:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3503:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 952, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3529:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "3503:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 953, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3538:17:7", + "memberName": "getClaimsTreeRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1910, + "src": "3503:52:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3503:54:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 949, + "id": 955, + "nodeType": "Return", + "src": "3496:61:7" + } + ] + }, + "documentation": { + "id": 945, + "nodeType": "StructuredDocumentation", + "src": "3316:98:7", + "text": " @dev Retrieve ClaimsTree latest root.\n @return The latest ClaimsTree root" + }, + "functionSelector": "3df432fc", + "id": 957, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getClaimsTreeRoot", + "nameLocation": "3428:17:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 946, + "nodeType": "ParameterList", + "parameters": [], + "src": "3445:2:7" + }, + "returnParameters": { + "id": 949, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 948, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 957, + "src": "3477:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3477:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3476:9:7" + }, + "scope": 1327, + "src": "3419:145:7", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 973, + "nodeType": "Block", + "src": "3928:94:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 970, + "name": "revocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 960, + "src": "3999:15:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 966, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "3945:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3945:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 968, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3971:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "3945:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 969, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3980:18:7", + "memberName": "getRevocationProof", + "nodeType": "MemberAccess", + "referencedDeclaration": 1936, + "src": "3945:53:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint64) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3945:70:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 965, + "id": 972, + "nodeType": "Return", + "src": "3938:77:7" + } + ] + }, + "documentation": { + "id": 958, + "nodeType": "StructuredDocumentation", + "src": "3570:237:7", + "text": " @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce.\n @param revocationNonce - revocation nonce\n @return The RevocationsTree inclusion or non-inclusion proof for the revocation nonce" + }, + "functionSelector": "26485063", + "id": 974, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRevocationProof", + "nameLocation": "3821:18:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 961, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 960, + "mutability": "mutable", + "name": "revocationNonce", + "nameLocation": "3856:15:7", + "nodeType": "VariableDeclaration", + "scope": 974, + "src": "3849:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 959, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3849:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3839:38:7" + }, + "returnParameters": { + "id": 965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 964, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 974, + "src": "3907:19:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 963, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 962, + "name": "SmtLib.Proof", + "nameLocations": [ + "3907:6:7", + "3914:5:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "3907:12:7" + }, + "referencedDeclaration": 2979, + "src": "3907:12:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "3906:21:7" + }, + "scope": 1327, + "src": "3812:210:7", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 993, + "nodeType": "Block", + "src": "4461:107:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 990, + "name": "revocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "4545:15:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 986, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "4478:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4478:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 988, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4504:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "4478:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4513:31:7", + "memberName": "getRevocationProofWithStateInfo", + "nodeType": "MemberAccess", + "referencedDeclaration": 1979, + "src": "4478:66:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$returns$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint64) view returns (struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)" + } + }, + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4478:83:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$", + "typeString": "tuple(struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)" + } + }, + "functionReturnParameters": 985, + "id": 992, + "nodeType": "Return", + "src": "4471:90:7" + } + ] + }, + "documentation": { + "id": 975, + "nodeType": "StructuredDocumentation", + "src": "4028:269:7", + "text": " @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce with state info.\n @param revocationNonce - revocation nonce\n @return The RevocationsTree inclusion or non-inclusion proof for the revocation nonce and state info." + }, + "functionSelector": "0033058d", + "id": 994, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRevocationProofWithStateInfo", + "nameLocation": "4311:31:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 978, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 977, + "mutability": "mutable", + "name": "revocationNonce", + "nameLocation": "4359:15:7", + "nodeType": "VariableDeclaration", + "scope": 994, + "src": "4352:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 976, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4352:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "4342:38:7" + }, + "returnParameters": { + "id": 985, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 981, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 994, + "src": "4410:19:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 980, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 979, + "name": "SmtLib.Proof", + "nameLocations": [ + "4410:6:7", + "4417:5:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "4410:12:7" + }, + "referencedDeclaration": 2979, + "src": "4410:12:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 984, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 994, + "src": "4431:28:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr", + "typeString": "struct IdentityLib.StateInfo" + }, + "typeName": { + "id": 983, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 982, + "name": "IdentityLib.StateInfo", + "nameLocations": [ + "4431:11:7", + "4443:9:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1400, + "src": "4431:21:7" + }, + "referencedDeclaration": 1400, + "src": "4431:21:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$1400_storage_ptr", + "typeString": "struct IdentityLib.StateInfo" + } + }, + "visibility": "internal" + } + ], + "src": "4409:51:7" + }, + "scope": 1327, + "src": "4302:266:7", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1013, + "nodeType": "Block", + "src": "5013:106:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1009, + "name": "revocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 997, + "src": "5090:15:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "id": 1010, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 999, + "src": "5107:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1005, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "5030:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5030:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1007, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5056:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "5030:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1008, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5065:24:7", + "memberName": "getRevocationProofByRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 2005, + "src": "5030:59:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint64,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5030:82:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 1004, + "id": 1012, + "nodeType": "Return", + "src": "5023:89:7" + } + ] + }, + "documentation": { + "id": 995, + "nodeType": "StructuredDocumentation", + "src": "4574:290:7", + "text": " @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce by target root.\n @param revocationNonce - revocation nonce\n @param root - root of the tree\n @return The RevocationsTree inclusion or non-inclusion proof for the revocation nonce" + }, + "functionSelector": "e26ecb0b", + "id": 1014, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRevocationProofByRoot", + "nameLocation": "4878:24:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1000, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 997, + "mutability": "mutable", + "name": "revocationNonce", + "nameLocation": "4919:15:7", + "nodeType": "VariableDeclaration", + "scope": 1014, + "src": "4912:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 996, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4912:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 999, + "mutability": "mutable", + "name": "root", + "nameLocation": "4952:4:7", + "nodeType": "VariableDeclaration", + "scope": 1014, + "src": "4944:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 998, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4944:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4902:60:7" + }, + "returnParameters": { + "id": 1004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1003, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1014, + "src": "4992:19:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 1002, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1001, + "name": "SmtLib.Proof", + "nameLocations": [ + "4992:6:7", + "4999:5:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "4992:12:7" + }, + "referencedDeclaration": 2979, + "src": "4992:12:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "4991:21:7" + }, + "scope": 1327, + "src": "4869:250:7", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1026, + "nodeType": "Block", + "src": "5310:83:7", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1020, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "5327:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5327:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1022, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5353:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "5327:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1023, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5362:22:7", + "memberName": "getRevocationsTreeRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 2021, + "src": "5327:57:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5327:59:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1019, + "id": 1025, + "nodeType": "Return", + "src": "5320:66:7" + } + ] + }, + "documentation": { + "id": 1015, + "nodeType": "StructuredDocumentation", + "src": "5125:108:7", + "text": " @dev Retrieve RevocationsTree latest root.\n @return The latest RevocationsTree root" + }, + "functionSelector": "01c85c77", + "id": 1027, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRevocationsTreeRoot", + "nameLocation": "5247:22:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1016, + "nodeType": "ParameterList", + "parameters": [], + "src": "5269:2:7" + }, + "returnParameters": { + "id": 1019, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1018, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1027, + "src": "5301:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5301:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5300:9:7" + }, + "scope": 1327, + "src": "5238:155:7", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1043, + "nodeType": "Block", + "src": "5723:86:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1040, + "name": "rootsTreeRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1030, + "src": "5788:13:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1036, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "5740:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5740:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1038, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5766:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "5740:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1039, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5775:12:7", + "memberName": "getRootProof", + "nodeType": "MemberAccess", + "referencedDeclaration": 2044, + "src": "5740:47:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 1041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5740:62:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 1035, + "id": 1042, + "nodeType": "Return", + "src": "5733:69:7" + } + ] + }, + "documentation": { + "id": 1028, + "nodeType": "StructuredDocumentation", + "src": "5399:224:7", + "text": " @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot.\n @param rootsTreeRoot - roots tree root\n @return The RootsTree inclusion or non-inclusion proof for the roots tree root" + }, + "functionSelector": "c1e32733", + "id": 1044, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRootProof", + "nameLocation": "5637:12:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1030, + "mutability": "mutable", + "name": "rootsTreeRoot", + "nameLocation": "5658:13:7", + "nodeType": "VariableDeclaration", + "scope": 1044, + "src": "5650:21:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1029, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5650:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5649:23:7" + }, + "returnParameters": { + "id": 1035, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1034, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1044, + "src": "5702:19:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 1033, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1032, + "name": "SmtLib.Proof", + "nameLocations": [ + "5702:6:7", + "5709:5:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "5702:12:7" + }, + "referencedDeclaration": 2979, + "src": "5702:12:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "5701:21:7" + }, + "scope": 1327, + "src": "5628:181:7", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1063, + "nodeType": "Block", + "src": "6228:99:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1060, + "name": "rootsTreeRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1047, + "src": "6306:13:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1056, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "6245:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6245:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1058, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6271:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "6245:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1059, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6280:25:7", + "memberName": "getRootProofWithStateInfo", + "nodeType": "MemberAccess", + "referencedDeclaration": 2084, + "src": "6245:60:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint256) view returns (struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)" + } + }, + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6245:75:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$", + "typeString": "tuple(struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)" + } + }, + "functionReturnParameters": 1055, + "id": 1062, + "nodeType": "Return", + "src": "6238:82:7" + } + ] + }, + "documentation": { + "id": 1045, + "nodeType": "StructuredDocumentation", + "src": "5815:256:7", + "text": " @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot with state info.\n @param rootsTreeRoot - roots tree root\n @return The RootsTree inclusion or non-inclusion proof for the claim tree root and state info." + }, + "functionSelector": "443d7534", + "id": 1064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRootProofWithStateInfo", + "nameLocation": "6085:25:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1048, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1047, + "mutability": "mutable", + "name": "rootsTreeRoot", + "nameLocation": "6128:13:7", + "nodeType": "VariableDeclaration", + "scope": 1064, + "src": "6120:21:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1046, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6120:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6110:37:7" + }, + "returnParameters": { + "id": 1055, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1051, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1064, + "src": "6177:19:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 1050, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1049, + "name": "SmtLib.Proof", + "nameLocations": [ + "6177:6:7", + "6184:5:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "6177:12:7" + }, + "referencedDeclaration": 2979, + "src": "6177:12:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1054, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1064, + "src": "6198:28:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr", + "typeString": "struct IdentityLib.StateInfo" + }, + "typeName": { + "id": 1053, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1052, + "name": "IdentityLib.StateInfo", + "nameLocations": [ + "6198:11:7", + "6210:9:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1400, + "src": "6198:21:7" + }, + "referencedDeclaration": 1400, + "src": "6198:21:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$1400_storage_ptr", + "typeString": "struct IdentityLib.StateInfo" + } + }, + "visibility": "internal" + } + ], + "src": "6176:51:7" + }, + "scope": 1327, + "src": "6076:251:7", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1083, + "nodeType": "Block", + "src": "6756:99:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1079, + "name": "claimsTreeRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "6827:14:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1080, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "6843:4:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1075, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "6773:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6773:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1077, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6799:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "6773:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1078, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6808:18:7", + "memberName": "getRootProofByRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 2107, + "src": "6773:53:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 1081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6773:75:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 1074, + "id": 1082, + "nodeType": "Return", + "src": "6766:82:7" + } + ] + }, + "documentation": { + "id": 1065, + "nodeType": "StructuredDocumentation", + "src": "6333:280:7", + "text": " @dev Retrieve inclusion or non-inclusion proof for a given claimsTreeRoot by target root.\n @param claimsTreeRoot - claims tree root\n @param root - root of the tree\n @return The RootsTree inclusion or non-inclusion proof for the claim tree root" + }, + "functionSelector": "2d5c4f25", + "id": 1084, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRootProofByRoot", + "nameLocation": "6627:18:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "claimsTreeRoot", + "nameLocation": "6663:14:7", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "6655:22:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6655:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "root", + "nameLocation": "6695:4:7", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "6687:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6687:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6645:60:7" + }, + "returnParameters": { + "id": 1074, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1073, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1084, + "src": "6735:19:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 1072, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1071, + "name": "SmtLib.Proof", + "nameLocations": [ + "6735:6:7", + "6742:5:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "6735:12:7" + }, + "referencedDeclaration": 2979, + "src": "6735:12:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "6734:21:7" + }, + "scope": 1327, + "src": "6618:237:7", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1096, + "nodeType": "Block", + "src": "7028:77:7", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1090, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "7045:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7045:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1092, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7071:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "7045:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1093, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7080:16:7", + "memberName": "getRootsTreeRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 2123, + "src": "7045:51:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7045:53:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1089, + "id": 1095, + "nodeType": "Return", + "src": "7038:60:7" + } + ] + }, + "documentation": { + "id": 1085, + "nodeType": "StructuredDocumentation", + "src": "6861:96:7", + "text": " @dev Retrieve RootsTree latest root.\n @return The latest RootsTree root" + }, + "functionSelector": "da68a0b1", + "id": 1097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRootsTreeRoot", + "nameLocation": "6971:16:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1086, + "nodeType": "ParameterList", + "parameters": [], + "src": "6987:2:7" + }, + "returnParameters": { + "id": 1089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1088, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1097, + "src": "7019:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7019:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7018:9:7" + }, + "scope": 1327, + "src": "6962:143:7", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 1113, + "nodeType": "Block", + "src": "7389:81:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1110, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1100, + "src": "7457:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1106, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "7406:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7406:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1108, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7432:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "7406:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1109, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7441:15:7", + "memberName": "getRootsByState", + "nodeType": "MemberAccess", + "referencedDeclaration": 2216, + "src": "7406:50:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$returns$_t_struct$_Roots_$1390_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint256) view returns (struct IdentityLib.Roots memory)" + } + }, + "id": 1111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7406:57:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr", + "typeString": "struct IdentityLib.Roots memory" + } + }, + "functionReturnParameters": 1105, + "id": 1112, + "nodeType": "Return", + "src": "7399:64:7" + } + ] + }, + "documentation": { + "id": 1098, + "nodeType": "StructuredDocumentation", + "src": "7111:178:7", + "text": " @dev returns historical claimsTree roots, revocationsTree roots, rootsTree roots\n by state\n @param state identity state\n @return set of roots" + }, + "functionSelector": "b8db6871", + "id": 1114, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRootsByState", + "nameLocation": "7303:15:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1100, + "mutability": "mutable", + "name": "state", + "nameLocation": "7327:5:7", + "nodeType": "VariableDeclaration", + "scope": 1114, + "src": "7319:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1099, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7319:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7318:15:7" + }, + "returnParameters": { + "id": 1105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1104, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1114, + "src": "7363:24:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr", + "typeString": "struct IdentityLib.Roots" + }, + "typeName": { + "id": 1103, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1102, + "name": "IdentityLib.Roots", + "nameLocations": [ + "7363:11:7", + "7375:5:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1390, + "src": "7363:17:7" + }, + "referencedDeclaration": 1390, + "src": "7363:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage_ptr", + "typeString": "struct IdentityLib.Roots" + } + }, + "visibility": "internal" + } + ], + "src": "7362:26:7" + }, + "scope": 1327, + "src": "7294:176:7", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 93 + ], + "body": { + "id": 1125, + "nodeType": "Block", + "src": "7597:61:7", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1120, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "7614:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7614:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1122, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7640:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "7614:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1123, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7649:2:7", + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 1348, + "src": "7614:37:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1119, + "id": 1124, + "nodeType": "Return", + "src": "7607:44:7" + } + ] + }, + "documentation": { + "id": 1115, + "nodeType": "StructuredDocumentation", + "src": "7476:69:7", + "text": " @dev returns identity Id\n @return uint256 Id" + }, + "functionSelector": "5d1ca631", + "id": 1126, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getId", + "nameLocation": "7559:5:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1116, + "nodeType": "ParameterList", + "parameters": [], + "src": "7564:2:7" + }, + "returnParameters": { + "id": 1119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1118, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1126, + "src": "7588:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1117, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7588:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7587:9:7" + }, + "scope": 1327, + "src": "7550:108:7", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1137, + "nodeType": "Block", + "src": "7820:76:7", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1132, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "7837:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7837:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7863:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "7837:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1135, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7872:17:7", + "memberName": "isOldStateGenesis", + "nodeType": "MemberAccess", + "referencedDeclaration": 1352, + "src": "7837:52:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1131, + "id": 1136, + "nodeType": "Return", + "src": "7830:59:7" + } + ] + }, + "documentation": { + "id": 1127, + "nodeType": "StructuredDocumentation", + "src": "7664:92:7", + "text": " @dev returns isOldStateGenesis flag\n @return bool isOldStateGenesis" + }, + "functionSelector": "f84c7c1e", + "id": 1138, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getIsOldStateGenesis", + "nameLocation": "7770:20:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1128, + "nodeType": "ParameterList", + "parameters": [], + "src": "7790:2:7" + }, + "returnParameters": { + "id": 1131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1130, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1138, + "src": "7814:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1129, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7814:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7813:6:7" + }, + "scope": 1327, + "src": "7761:135:7", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1150, + "nodeType": "Block", + "src": "8068:94:7", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1144, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "8085:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8085:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1146, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8111:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "8085:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1147, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8120:24:7", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "8085:59:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1148, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8145:10:7", + "memberName": "claimsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1385, + "src": "8085:70:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1143, + "id": 1149, + "nodeType": "Return", + "src": "8078:77:7" + } + ] + }, + "documentation": { + "id": 1139, + "nodeType": "StructuredDocumentation", + "src": "7902:91:7", + "text": " @dev returns latest published claims tree root\n @return claimsRoot" + }, + "functionSelector": "523b8136", + "id": 1151, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getLatestPublishedClaimsRoot", + "nameLocation": "8007:28:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1140, + "nodeType": "ParameterList", + "parameters": [], + "src": "8035:2:7" + }, + "returnParameters": { + "id": 1143, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1142, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1151, + "src": "8059:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1141, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8059:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8058:9:7" + }, + "scope": 1327, + "src": "7998:164:7", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1163, + "nodeType": "Block", + "src": "8348:99:7", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1157, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "8365:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8365:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1159, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8391:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "8365:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8400:24:7", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "8365:59:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1161, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8425:15:7", + "memberName": "revocationsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1387, + "src": "8365:75:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1156, + "id": 1162, + "nodeType": "Return", + "src": "8358:82:7" + } + ] + }, + "documentation": { + "id": 1152, + "nodeType": "StructuredDocumentation", + "src": "8168:100:7", + "text": " @dev returns latest published revocation tree root\n @return revocationsRoot" + }, + "functionSelector": "9674cfa4", + "id": 1164, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getLatestPublishedRevocationsRoot", + "nameLocation": "8282:33:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1153, + "nodeType": "ParameterList", + "parameters": [], + "src": "8315:2:7" + }, + "returnParameters": { + "id": 1156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1155, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1164, + "src": "8339:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8339:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8338:9:7" + }, + "scope": 1327, + "src": "8273:174:7", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1176, + "nodeType": "Block", + "src": "8616:93:7", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1170, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "8633:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8633:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1172, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8659:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "8633:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1173, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8668:24:7", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "8633:59:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8693:9:7", + "memberName": "rootsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1389, + "src": "8633:69:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1169, + "id": 1175, + "nodeType": "Return", + "src": "8626:76:7" + } + ] + }, + "documentation": { + "id": 1165, + "nodeType": "StructuredDocumentation", + "src": "8453:89:7", + "text": " @dev returns latest published roots tree root\n @return rootsRoot" + }, + "functionSelector": "c6365a3b", + "id": 1177, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getLatestPublishedRootsRoot", + "nameLocation": "8556:27:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1166, + "nodeType": "ParameterList", + "parameters": [], + "src": "8583:2:7" + }, + "returnParameters": { + "id": 1169, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1168, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1177, + "src": "8607:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1167, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8607:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8606:9:7" + }, + "scope": 1327, + "src": "8547:162:7", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1188, + "nodeType": "Block", + "src": "8881:79:7", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1183, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "8898:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8898:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8924:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "8898:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1186, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8933:20:7", + "memberName": "latestPublishedState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1350, + "src": "8898:55:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1182, + "id": 1187, + "nodeType": "Return", + "src": "8891:62:7" + } + ] + }, + "documentation": { + "id": 1178, + "nodeType": "StructuredDocumentation", + "src": "8715:96:7", + "text": " @dev returns identity latest state\n @return uint256 identityLatestState" + }, + "functionSelector": "3d59ec60", + "id": 1189, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getLatestPublishedState", + "nameLocation": "8825:23:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1179, + "nodeType": "ParameterList", + "parameters": [], + "src": "8848:2:7" + }, + "returnParameters": { + "id": 1182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1181, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1189, + "src": "8872:7:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8872:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8871:9:7" + }, + "scope": 1327, + "src": "8816:144:7", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 144 + ], + "body": { + "id": 1213, + "nodeType": "Block", + "src": "9289:166:7", + "statements": [ + { + "assignments": [ + 1201 + ], + "declarations": [ + { + "constant": false, + "id": 1201, + "mutability": "mutable", + "name": "latestState", + "nameLocation": "9307:11:7", + "nodeType": "VariableDeclaration", + "scope": 1213, + "src": "9299:19:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9299:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1206, + "initialValue": { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1202, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "9321:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9321:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1204, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9347:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "9321:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1205, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9356:20:7", + "memberName": "latestPublishedState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1350, + "src": "9321:55:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9299:77:7" + }, + { + "expression": { + "arguments": [ + { + "id": 1208, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1192, + "src": "9425:2:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1209, + "name": "latestState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1201, + "src": "9429:11:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1210, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1194, + "src": "9442:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 1207, + "name": "getRevocationStatusByIdAndState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1304, + "src": "9393:31:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint64_$returns$_t_struct$_CredentialStatus_$133_memory_ptr_$", + "typeString": "function (uint256,uint256,uint64) view returns (struct IOnchainCredentialStatusResolver.CredentialStatus memory)" + } + }, + "id": 1211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9393:55:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialStatus_$133_memory_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus memory" + } + }, + "functionReturnParameters": 1199, + "id": 1212, + "nodeType": "Return", + "src": "9386:62:7" + } + ] + }, + "documentation": { + "id": 1190, + "nodeType": "StructuredDocumentation", + "src": "8966:195:7", + "text": " @dev returns revocation status of a claim using given revocation nonce\n @param id Issuer's identifier\n @param nonce Revocation nonce\n @return CredentialStatus" + }, + "functionSelector": "110c96a7", + "id": 1214, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRevocationStatus", + "nameLocation": "9175:19:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1192, + "mutability": "mutable", + "name": "id", + "nameLocation": "9212:2:7", + "nodeType": "VariableDeclaration", + "scope": 1214, + "src": "9204:10:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1191, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9204:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1194, + "mutability": "mutable", + "name": "nonce", + "nameLocation": "9231:5:7", + "nodeType": "VariableDeclaration", + "scope": 1214, + "src": "9224:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1193, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "9224:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "9194:48:7" + }, + "returnParameters": { + "id": 1199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1198, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1214, + "src": "9264:23:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialStatus_$133_memory_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus" + }, + "typeName": { + "id": 1197, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1196, + "name": "CredentialStatus", + "nameLocations": [ + "9264:16:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 133, + "src": "9264:16:7" + }, + "referencedDeclaration": 133, + "src": "9264:16:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialStatus_$133_storage_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus" + } + }, + "visibility": "internal" + } + ], + "src": "9263:25:7" + }, + "scope": 1327, + "src": "9166:289:7", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 157 + ], + "body": { + "id": 1303, + "nodeType": "Block", + "src": "9867:1058:7", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1228, + "name": "id", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1217, + "src": "9885:2:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1229, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "9891:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9891:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9917:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "9891:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1232, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9926:2:7", + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 1348, + "src": "9891:37:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9885:43:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4964656e74697479206964206d69736d61746368", + "id": 1234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9930:22:7", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b95c2f31a6045566300565f2774af75c15f58eae84f1e4dafcb6cd16a89e425e", + "typeString": "literal_string \"Identity id mismatch\"" + }, + "value": "Identity id mismatch" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b95c2f31a6045566300565f2774af75c15f58eae84f1e4dafcb6cd16a89e425e", + "typeString": "literal_string \"Identity id mismatch\"" + } + ], + "id": 1227, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9877:7:7", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9877:76:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1236, + "nodeType": "ExpressionStatement", + "src": "9877:76:7" + }, + { + "assignments": [ + 1241 + ], + "declarations": [ + { + "constant": false, + "id": 1241, + "mutability": "mutable", + "name": "historicalStates", + "nameLocation": "9988:16:7", + "nodeType": "VariableDeclaration", + "scope": 1303, + "src": "9963:41:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr", + "typeString": "struct IdentityLib.Roots" + }, + "typeName": { + "id": 1240, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1239, + "name": "IdentityLib.Roots", + "nameLocations": [ + "9963:11:7", + "9975:5:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1390, + "src": "9963:17:7" + }, + "referencedDeclaration": 1390, + "src": "9963:17:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage_ptr", + "typeString": "struct IdentityLib.Roots" + } + }, + "visibility": "internal" + } + ], + "id": 1248, + "initialValue": { + "arguments": [ + { + "id": 1246, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "10084:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1242, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "10007:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10007:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1244, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10046:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "10007:47:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1245, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10068:15:7", + "memberName": "getRootsByState", + "nodeType": "MemberAccess", + "referencedDeclaration": 2216, + "src": "10007:76:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$returns$_t_struct$_Roots_$1390_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint256) view returns (struct IdentityLib.Roots memory)" + } + }, + "id": 1247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10007:83:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr", + "typeString": "struct IdentityLib.Roots memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9963:127:7" + }, + { + "assignments": [ + 1251 + ], + "declarations": [ + { + "constant": false, + "id": 1251, + "mutability": "mutable", + "name": "issuerStates", + "nameLocation": "10126:12:7", + "nodeType": "VariableDeclaration", + "scope": 1303, + "src": "10100:38:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityStateRoots_$125_memory_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.IdentityStateRoots" + }, + "typeName": { + "id": 1250, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1249, + "name": "IdentityStateRoots", + "nameLocations": [ + "10100:18:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 125, + "src": "10100:18:7" + }, + "referencedDeclaration": 125, + "src": "10100:18:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityStateRoots_$125_storage_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.IdentityStateRoots" + } + }, + "visibility": "internal" + } + ], + "id": 1261, + "initialValue": { + "arguments": [ + { + "id": 1253, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1219, + "src": "10181:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1254, + "name": "historicalStates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "10213:16:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr", + "typeString": "struct IdentityLib.Roots memory" + } + }, + "id": 1255, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10230:9:7", + "memberName": "rootsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1389, + "src": "10213:26:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1256, + "name": "historicalStates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "10269:16:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr", + "typeString": "struct IdentityLib.Roots memory" + } + }, + "id": 1257, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10286:10:7", + "memberName": "claimsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1385, + "src": "10269:27:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1258, + "name": "historicalStates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "10330:16:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr", + "typeString": "struct IdentityLib.Roots memory" + } + }, + "id": 1259, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10347:15:7", + "memberName": "revocationsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1387, + "src": "10330:32:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1252, + "name": "IdentityStateRoots", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 125, + "src": "10141:18:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_IdentityStateRoots_$125_storage_ptr_$", + "typeString": "type(struct IOnchainCredentialStatusResolver.IdentityStateRoots storage pointer)" + } + }, + "id": 1260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "10174:5:7", + "10200:11:7", + "10253:14:7", + "10310:18:7" + ], + "names": [ + "state", + "rootOfRoots", + "claimsTreeRoot", + "revocationTreeRoot" + ], + "nodeType": "FunctionCall", + "src": "10141:232:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityStateRoots_$125_memory_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.IdentityStateRoots memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10100:273:7" + }, + { + "assignments": [ + 1266 + ], + "declarations": [ + { + "constant": false, + "id": 1266, + "mutability": "mutable", + "name": "p", + "nameLocation": "10404:1:7", + "nodeType": "VariableDeclaration", + "scope": 1303, + "src": "10384:21:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 1265, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1264, + "name": "SmtLib.Proof", + "nameLocations": [ + "10384:6:7", + "10391:5:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "10384:12:7" + }, + "referencedDeclaration": 2979, + "src": "10384:12:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "id": 1275, + "initialValue": { + "arguments": [ + { + "id": 1271, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1221, + "src": "10481:5:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "expression": { + "id": 1272, + "name": "historicalStates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "10500:16:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr", + "typeString": "struct IdentityLib.Roots memory" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10517:15:7", + "memberName": "revocationsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1387, + "src": "10500:32:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1267, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "10408:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10408:25:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 1269, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10434:8:7", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "10408:34:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 1270, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10443:24:7", + "memberName": "getRevocationProofByRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 2005, + "src": "10408:59:7", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint64,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10408:134:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10384:158:7" + }, + { + "assignments": [ + 1278 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "mtp", + "nameLocation": "10565:3:7", + "nodeType": "VariableDeclaration", + "scope": 1303, + "src": "10552:16:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$115_memory_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.Proof" + }, + "typeName": { + "id": 1277, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1276, + "name": "Proof", + "nameLocations": [ + "10552:5:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 115, + "src": "10552:5:7" + }, + "referencedDeclaration": 115, + "src": "10552:5:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$115_storage_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.Proof" + } + }, + "visibility": "internal" + } + ], + "id": 1297, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 1280, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "10597:1:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 1281, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10599:4:7", + "memberName": "root", + "nodeType": "MemberAccess", + "referencedDeclaration": 2963, + "src": "10597:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1282, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "10628:1:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 1283, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10630:9:7", + "memberName": "existence", + "nodeType": "MemberAccess", + "referencedDeclaration": 2965, + "src": "10628:11:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "expression": { + "id": 1284, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "10663:1:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 1285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10665:8:7", + "memberName": "siblings", + "nodeType": "MemberAccess", + "referencedDeclaration": 2968, + "src": "10663:10:7", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "expression": { + "id": 1286, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "10694:1:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 1287, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10696:5:7", + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 2970, + "src": "10694:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1288, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "10722:1:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 1289, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10724:5:7", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2972, + "src": "10722:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1290, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "10757:1:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 1291, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10759:12:7", + "memberName": "auxExistence", + "nodeType": "MemberAccess", + "referencedDeclaration": 2974, + "src": "10757:14:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "expression": { + "id": 1292, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "10795:1:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 1293, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10797:8:7", + "memberName": "auxIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 2976, + "src": "10795:10:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1294, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1266, + "src": "10829:1:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 1295, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10831:8:7", + "memberName": "auxValue", + "nodeType": "MemberAccess", + "referencedDeclaration": 2978, + "src": "10829:10:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1279, + "name": "Proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 115, + "src": "10571:5:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Proof_$115_storage_ptr_$", + "typeString": "type(struct IOnchainCredentialStatusResolver.Proof storage pointer)" + } + }, + "id": 1296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "10591:4:7", + "10617:9:7", + "10653:8:7", + "10687:5:7", + "10715:5:7", + "10743:12:7", + "10785:8:7", + "10819:8:7" + ], + "names": [ + "root", + "existence", + "siblings", + "index", + "value", + "auxExistence", + "auxIndex", + "auxValue" + ], + "nodeType": "FunctionCall", + "src": "10571:279:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$115_memory_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.Proof memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10552:298:7" + }, + { + "expression": { + "arguments": [ + { + "id": 1299, + "name": "issuerStates", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1251, + "src": "10894:12:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityStateRoots_$125_memory_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.IdentityStateRoots memory" + } + }, + { + "id": 1300, + "name": "mtp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "10913:3:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$115_memory_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.Proof memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_IdentityStateRoots_$125_memory_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.IdentityStateRoots memory" + }, + { + "typeIdentifier": "t_struct$_Proof_$115_memory_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.Proof memory" + } + ], + "id": 1298, + "name": "CredentialStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 133, + "src": "10868:16:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CredentialStatus_$133_storage_ptr_$", + "typeString": "type(struct IOnchainCredentialStatusResolver.CredentialStatus storage pointer)" + } + }, + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "10886:6:7", + "10908:3:7" + ], + "names": [ + "issuer", + "mtp" + ], + "nodeType": "FunctionCall", + "src": "10868:50:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialStatus_$133_memory_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus memory" + } + }, + "functionReturnParameters": 1226, + "id": 1302, + "nodeType": "Return", + "src": "10861:57:7" + } + ] + }, + "documentation": { + "id": 1215, + "nodeType": "StructuredDocumentation", + "src": "9461:243:7", + "text": " @dev returns revocation status of a claim using given revocation nonce, id and state\n @param id Issuer's identifier\n @param state of the Issuer\n @param nonce Revocation nonce\n @return CredentialStatus" + }, + "functionSelector": "aad72921", + "id": 1304, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRevocationStatusByIdAndState", + "nameLocation": "9718:31:7", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1222, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1217, + "mutability": "mutable", + "name": "id", + "nameLocation": "9767:2:7", + "nodeType": "VariableDeclaration", + "scope": 1304, + "src": "9759:10:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9759:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1219, + "mutability": "mutable", + "name": "state", + "nameLocation": "9787:5:7", + "nodeType": "VariableDeclaration", + "scope": 1304, + "src": "9779:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1218, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9779:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1221, + "mutability": "mutable", + "name": "nonce", + "nameLocation": "9809:5:7", + "nodeType": "VariableDeclaration", + "scope": 1304, + "src": "9802:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1220, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "9802:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "9749:71:7" + }, + "returnParameters": { + "id": 1226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1225, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1304, + "src": "9842:23:7", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialStatus_$133_memory_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus" + }, + "typeName": { + "id": 1224, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1223, + "name": "CredentialStatus", + "nameLocations": [ + "9842:16:7" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 133, + "src": "9842:16:7" + }, + "referencedDeclaration": 133, + "src": "9842:16:7", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialStatus_$133_storage_ptr", + "typeString": "struct IOnchainCredentialStatusResolver.CredentialStatus" + } + }, + "visibility": "internal" + } + ], + "src": "9841:25:7" + }, + "scope": 1327, + "src": "9709:1216:7", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 8726 + ], + "body": { + "id": 1325, + "nodeType": "Block", + "src": "11114:122:7", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 1318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1313, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1307, + "src": "11143:11:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 1315, + "name": "IIdentifiable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 94, + "src": "11163:13:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IIdentifiable_$94_$", + "typeString": "type(contract IIdentifiable)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IIdentifiable_$94_$", + "typeString": "type(contract IIdentifiable)" + } + ], + "id": 1314, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "11158:4:7", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 1316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11158:19:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IIdentifiable_$94", + "typeString": "type(contract IIdentifiable)" + } + }, + "id": 1317, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11178:11:7", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "11158:31:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "11143:46:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 1321, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1307, + "src": "11217:11:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "expression": { + "id": 1319, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "11193:5:7", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_IdentityBase_$1327_$", + "typeString": "type(contract super IdentityBase)" + } + }, + "id": 1320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11199:17:7", + "memberName": "supportsInterface", + "nodeType": "MemberAccess", + "referencedDeclaration": 8726, + "src": "11193:23:7", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", + "typeString": "function (bytes4) view returns (bool)" + } + }, + "id": 1322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11193:36:7", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11143:86:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1312, + "id": 1324, + "nodeType": "Return", + "src": "11124:105:7" + } + ] + }, + "documentation": { + "id": 1305, + "nodeType": "StructuredDocumentation", + "src": "10931:87:7", + "text": " @dev supportsInterface. Check if the contract supports the interface" + }, + "functionSelector": "01ffc9a7", + "id": 1326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "11032:17:7", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 1309, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "11090:8:7" + }, + "parameters": { + "id": 1308, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1307, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "11057:11:7", + "nodeType": "VariableDeclaration", + "scope": 1326, + "src": "11050:18:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 1306, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "11050:6:7", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "11049:20:7" + }, + "returnParameters": { + "id": 1312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1311, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1326, + "src": "11108:4:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1310, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11108:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "11107:6:7" + }, + "scope": 1327, + "src": "11023:213:7", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 1328, + "src": "459:10779:7", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "36:11203:7" + }, + "id": 7 + }, + "@iden3/contracts/lib/IdentityLib.sol": { + "ast": { + "absolutePath": "@iden3/contracts/lib/IdentityLib.sol", + "exportedSymbols": { + "GenesisUtils": [ + 816 + ], + "IState": [ + 407 + ], + "IdentityLib": [ + 2217 + ], + "PoseidonUnit3L": [ + 2252 + ], + "PoseidonUnit4L": [ + 2263 + ], + "SmtLib": [ + 4449 + ] + }, + "id": 2218, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1329, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "36:23:8" + }, + { + "absolutePath": "@iden3/contracts/interfaces/IState.sol", + "file": "../interfaces/IState.sol", + "id": 1331, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2218, + "sourceUnit": 408, + "src": "61:48:8", + "symbolAliases": [ + { + "foreign": { + "id": 1330, + "name": "IState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 407, + "src": "69:6:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@iden3/contracts/lib/SmtLib.sol", + "file": "../lib/SmtLib.sol", + "id": 1333, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2218, + "sourceUnit": 4637, + "src": "110:41:8", + "symbolAliases": [ + { + "foreign": { + "id": 1332, + "name": "SmtLib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4449, + "src": "118:6:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@iden3/contracts/lib/Poseidon.sol", + "file": "../lib/Poseidon.sol", + "id": 1336, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2218, + "sourceUnit": 2515, + "src": "152:67:8", + "symbolAliases": [ + { + "foreign": { + "id": 1334, + "name": "PoseidonUnit3L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2252, + "src": "160:14:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 1335, + "name": "PoseidonUnit4L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2263, + "src": "176:14:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@iden3/contracts/lib/GenesisUtils.sol", + "file": "../lib/GenesisUtils.sol", + "id": 1338, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2218, + "sourceUnit": 817, + "src": "220:53:8", + "symbolAliases": [ + { + "foreign": { + "id": 1337, + "name": "GenesisUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 816, + "src": "228:12:8", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IdentityLib", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 2217, + "linearizedBaseContracts": [ + 2217 + ], + "name": "IdentityLib", + "nameLocation": "343:11:8", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 1342, + "libraryName": { + "id": 1339, + "name": "SmtLib", + "nameLocations": [ + "367:6:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4449, + "src": "367:6:8" + }, + "nodeType": "UsingForDirective", + "src": "361:29:8", + "typeName": { + "id": 1341, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1340, + "name": "SmtLib.Data", + "nameLocations": [ + "378:6:8", + "385:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "378:11:8" + }, + "referencedDeclaration": 2960, + "src": "378:11:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + } + }, + { + "constant": true, + "functionSelector": "2c72e822", + "id": 1345, + "mutability": "constant", + "name": "IDENTITY_MAX_SMT_DEPTH", + "nameLocation": "420:22:8", + "nodeType": "VariableDeclaration", + "scope": 2217, + "src": "396:51:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1343, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "396:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3430", + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "445:2:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + "value": "40" + }, + "visibility": "public" + }, + { + "canonicalName": "IdentityLib.Data", + "documentation": { + "id": 1346, + "nodeType": "StructuredDocumentation", + "src": "454:191:8", + "text": " @dev Data\n Id\n Identity latest state\n Is old state genesis flag\n State contract\n Mapping of roots by state\n Trees\n Last tree roots" + }, + "id": 1371, + "members": [ + { + "constant": false, + "id": 1348, + "mutability": "mutable", + "name": "id", + "nameLocation": "680:2:8", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "672:10:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "672:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "latestPublishedState", + "nameLocation": "700:20:8", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "692:28:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "692:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "isOldStateGenesis", + "nameLocation": "735:17:8", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "730:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1351, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "730:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1355, + "mutability": "mutable", + "name": "stateContract", + "nameLocation": "769:13:8", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "762:20:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IState_$407", + "typeString": "contract IState" + }, + "typeName": { + "id": 1354, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1353, + "name": "IState", + "nameLocations": [ + "762:6:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 407, + "src": "762:6:8" + }, + "referencedDeclaration": 407, + "src": "762:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IState_$407", + "typeString": "contract IState" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1360, + "mutability": "mutable", + "name": "rootsByState", + "nameLocation": "818:12:8", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "792:38:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$", + "typeString": "mapping(uint256 => struct IdentityLib.Roots)" + }, + "typeName": { + "id": 1359, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 1356, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "800:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "792:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$", + "typeString": "mapping(uint256 => struct IdentityLib.Roots)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 1358, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1357, + "name": "Roots", + "nameLocations": [ + "811:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1390, + "src": "811:5:8" + }, + "referencedDeclaration": 1390, + "src": "811:5:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage_ptr", + "typeString": "struct IdentityLib.Roots" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1363, + "mutability": "mutable", + "name": "trees", + "nameLocation": "846:5:8", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "840:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage_ptr", + "typeString": "struct IdentityLib.Trees" + }, + "typeName": { + "id": 1362, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1361, + "name": "Trees", + "nameLocations": [ + "840:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1382, + "src": "840:5:8" + }, + "referencedDeclaration": 1382, + "src": "840:5:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage_ptr", + "typeString": "struct IdentityLib.Trees" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1366, + "mutability": "mutable", + "name": "latestPublishedTreeRoots", + "nameLocation": "867:24:8", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "861:30:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage_ptr", + "typeString": "struct IdentityLib.Roots" + }, + "typeName": { + "id": 1365, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1364, + "name": "Roots", + "nameLocations": [ + "861:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1390, + "src": "861:5:8" + }, + "referencedDeclaration": 1390, + "src": "861:5:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage_ptr", + "typeString": "struct IdentityLib.Roots" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1370, + "mutability": "mutable", + "name": "__gap", + "nameLocation": "1258:5:8", + "nodeType": "VariableDeclaration", + "scope": 1371, + "src": "1246:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$43_storage_ptr", + "typeString": "uint256[43]" + }, + "typeName": { + "baseType": { + "id": 1367, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1246:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1369, + "length": { + "hexValue": "3433", + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1254:2:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_43_by_1", + "typeString": "int_const 43" + }, + "value": "43" + }, + "nodeType": "ArrayTypeName", + "src": "1246:11:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$43_storage_ptr", + "typeString": "uint256[43]" + } + }, + "visibility": "internal" + } + ], + "name": "Data", + "nameLocation": "657:4:8", + "nodeType": "StructDefinition", + "scope": 2217, + "src": "650:620:8", + "visibility": "public" + }, + { + "canonicalName": "IdentityLib.Trees", + "documentation": { + "id": 1372, + "nodeType": "StructuredDocumentation", + "src": "1276:37:8", + "text": " @dev SMT addresses" + }, + "id": 1382, + "members": [ + { + "constant": false, + "id": 1375, + "mutability": "mutable", + "name": "claimsTree", + "nameLocation": "1353:10:8", + "nodeType": "VariableDeclaration", + "scope": 1382, + "src": "1341:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 1374, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1373, + "name": "SmtLib.Data", + "nameLocations": [ + "1341:6:8", + "1348:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "1341:11:8" + }, + "referencedDeclaration": 2960, + "src": "1341:11:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1378, + "mutability": "mutable", + "name": "revocationsTree", + "nameLocation": "1385:15:8", + "nodeType": "VariableDeclaration", + "scope": 1382, + "src": "1373:27:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 1377, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1376, + "name": "SmtLib.Data", + "nameLocations": [ + "1373:6:8", + "1380:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "1373:11:8" + }, + "referencedDeclaration": 2960, + "src": "1373:11:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1381, + "mutability": "mutable", + "name": "rootsTree", + "nameLocation": "1422:9:8", + "nodeType": "VariableDeclaration", + "scope": 1382, + "src": "1410:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 1380, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1379, + "name": "SmtLib.Data", + "nameLocations": [ + "1410:6:8", + "1417:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "1410:11:8" + }, + "referencedDeclaration": 2960, + "src": "1410:11:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + } + ], + "name": "Trees", + "nameLocation": "1325:5:8", + "nodeType": "StructDefinition", + "scope": 2217, + "src": "1318:120:8", + "visibility": "public" + }, + { + "canonicalName": "IdentityLib.Roots", + "documentation": { + "id": 1383, + "nodeType": "StructuredDocumentation", + "src": "1444:36:8", + "text": " @dev set of roots" + }, + "id": 1390, + "members": [ + { + "constant": false, + "id": 1385, + "mutability": "mutable", + "name": "claimsRoot", + "nameLocation": "1516:10:8", + "nodeType": "VariableDeclaration", + "scope": 1390, + "src": "1508:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1384, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1508:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1387, + "mutability": "mutable", + "name": "revocationsRoot", + "nameLocation": "1544:15:8", + "nodeType": "VariableDeclaration", + "scope": 1390, + "src": "1536:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1386, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1536:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1389, + "mutability": "mutable", + "name": "rootsRoot", + "nameLocation": "1577:9:8", + "nodeType": "VariableDeclaration", + "scope": 1390, + "src": "1569:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1388, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1569:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Roots", + "nameLocation": "1492:5:8", + "nodeType": "StructDefinition", + "scope": 2217, + "src": "1485:108:8", + "visibility": "public" + }, + { + "canonicalName": "IdentityLib.StateInfo", + "documentation": { + "id": 1391, + "nodeType": "StructuredDocumentation", + "src": "1599:34:8", + "text": " @dev state info" + }, + "id": 1400, + "members": [ + { + "constant": false, + "id": 1393, + "mutability": "mutable", + "name": "state", + "nameLocation": "1673:5:8", + "nodeType": "VariableDeclaration", + "scope": 1400, + "src": "1665:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1392, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1665:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1395, + "mutability": "mutable", + "name": "claimsRoot", + "nameLocation": "1696:10:8", + "nodeType": "VariableDeclaration", + "scope": 1400, + "src": "1688:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1394, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1688:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1397, + "mutability": "mutable", + "name": "revocationsRoot", + "nameLocation": "1724:15:8", + "nodeType": "VariableDeclaration", + "scope": 1400, + "src": "1716:23:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1396, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1716:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1399, + "mutability": "mutable", + "name": "rootsRoot", + "nameLocation": "1757:9:8", + "nodeType": "VariableDeclaration", + "scope": 1400, + "src": "1749:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1398, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1749:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "StateInfo", + "nameLocation": "1645:9:8", + "nodeType": "StructDefinition", + "scope": 2217, + "src": "1638:135:8", + "visibility": "public" + }, + { + "body": { + "id": 1485, + "nodeType": "Block", + "src": "2258:518:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1416, + "name": "depth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1410, + "src": "2276:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1417, + "name": "IDENTITY_MAX_SMT_DEPTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1345, + "src": "2285:22:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2276:31:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "534d542064657074682069732067726561746572207468616e206d617820616c6c6f776564206465707468", + "id": 1419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2309:45:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3373a85b98f1718c998a10926a0cc482f57a490b87fbf0ea79c758ce195432db", + "typeString": "literal_string \"SMT depth is greater than max allowed depth\"" + }, + "value": "SMT depth is greater than max allowed depth" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3373a85b98f1718c998a10926a0cc482f57a490b87fbf0ea79c758ce195432db", + "typeString": "literal_string \"SMT depth is greater than max allowed depth\"" + } + ], + "id": 1415, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2268:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2268:87:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1421, + "nodeType": "ExpressionStatement", + "src": "2268:87:8" + }, + { + "expression": { + "id": 1428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 1422, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1404, + "src": "2365:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1424, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2370:13:8", + "memberName": "stateContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1355, + "src": "2365:18:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IState_$407", + "typeString": "contract IState" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1426, + "name": "_stateContractAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1406, + "src": "2393:18:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1425, + "name": "IState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 407, + "src": "2386:6:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IState_$407_$", + "typeString": "type(contract IState)" + } + }, + "id": 1427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2386:26:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IState_$407", + "typeString": "contract IState" + } + }, + "src": "2365:47:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IState_$407", + "typeString": "contract IState" + } + }, + "id": 1429, + "nodeType": "ExpressionStatement", + "src": "2365:47:8" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1434, + "name": "idType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1412, + "src": "2467:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + ], + "expression": { + "expression": { + "id": 1431, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1404, + "src": "2430:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1432, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2435:13:8", + "memberName": "stateContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1355, + "src": "2430:18:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IState_$407", + "typeString": "contract IState" + } + }, + "id": 1433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2449:17:8", + "memberName": "isIdTypeSupported", + "nodeType": "MemberAccess", + "referencedDeclaration": 306, + "src": "2430:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_bytes2_$returns$_t_bool_$", + "typeString": "function (bytes2) view external returns (bool)" + } + }, + "id": 1435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2430:44:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "69642074797065206973206e6f7420737570706f72746564", + "id": 1436, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2476:26:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3050ac86504f6f4eb496200c8717848bbc64735985474666b0e5a7bb9a483662", + "typeString": "literal_string \"id type is not supported\"" + }, + "value": "id type is not supported" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3050ac86504f6f4eb496200c8717848bbc64735985474666b0e5a7bb9a483662", + "typeString": "literal_string \"id type is not supported\"" + } + ], + "id": 1430, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2422:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2422:81:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1438, + "nodeType": "ExpressionStatement", + "src": "2422:81:8" + }, + { + "expression": { + "id": 1443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 1439, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1404, + "src": "2513:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1441, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2518:17:8", + "memberName": "isOldStateGenesis", + "nodeType": "MemberAccess", + "referencedDeclaration": 1352, + "src": "2513:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 1442, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2538:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2513:29:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1444, + "nodeType": "ExpressionStatement", + "src": "2513:29:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1452, + "name": "depth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1410, + "src": "2585:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "expression": { + "id": 1445, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1404, + "src": "2552:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1449, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2557:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "2552:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1450, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2563:10:8", + "memberName": "claimsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1375, + "src": "2552:21:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1451, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2574:10:8", + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 3816, + "src": "2552:32:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2552:39:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1454, + "nodeType": "ExpressionStatement", + "src": "2552:39:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1462, + "name": "depth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1410, + "src": "2639:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "expression": { + "id": 1455, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1404, + "src": "2601:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2606:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "2601:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1460, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2612:15:8", + "memberName": "revocationsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1378, + "src": "2601:26:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2628:10:8", + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 3816, + "src": "2601:37:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256)" + } + }, + "id": 1463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2601:44:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1464, + "nodeType": "ExpressionStatement", + "src": "2601:44:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1472, + "name": "depth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1410, + "src": "2687:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "expression": { + "id": 1465, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1404, + "src": "2655:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2660:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "2655:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2666:9:8", + "memberName": "rootsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1381, + "src": "2655:20:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1471, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2676:10:8", + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 3816, + "src": "2655:31:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256)" + } + }, + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2655:38:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1474, + "nodeType": "ExpressionStatement", + "src": "2655:38:8" + }, + { + "expression": { + "id": 1483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 1475, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1404, + "src": "2703:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1477, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2708:2:8", + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 1348, + "src": "2703:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1480, + "name": "idType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1412, + "src": "2747:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + { + "id": 1481, + "name": "_identityAddr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1408, + "src": "2755:13:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1478, + "name": "GenesisUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 816, + "src": "2713:12:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_GenesisUtils_$816_$", + "typeString": "type(library GenesisUtils)" + } + }, + "id": 1479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2726:20:8", + "memberName": "calcIdFromEthAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 815, + "src": "2713:33:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes2_$_t_address_$returns$_t_uint256_$", + "typeString": "function (bytes2,address) pure returns (uint256)" + } + }, + "id": 1482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2713:56:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2703:66:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1484, + "nodeType": "ExpressionStatement", + "src": "2703:66:8" + } + ] + }, + "documentation": { + "id": 1401, + "nodeType": "StructuredDocumentation", + "src": "1779:299:8", + "text": " @dev Initialization of the library state variables\n @param _stateContractAddr - address of the State contract\n @param _identityAddr - address of the Identity contract, which calls this function\n @param depth - depth of identity SMTs\n @param idType - idType" + }, + "functionSelector": "59a60691", + "id": 1486, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nameLocation": "2092:10:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1404, + "mutability": "mutable", + "name": "self", + "nameLocation": "2125:4:8", + "nodeType": "VariableDeclaration", + "scope": 1486, + "src": "2112:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 1403, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1402, + "name": "Data", + "nameLocations": [ + "2112:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "2112:4:8" + }, + "referencedDeclaration": 1371, + "src": "2112:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1406, + "mutability": "mutable", + "name": "_stateContractAddr", + "nameLocation": "2147:18:8", + "nodeType": "VariableDeclaration", + "scope": 1486, + "src": "2139:26:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2139:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "_identityAddr", + "nameLocation": "2183:13:8", + "nodeType": "VariableDeclaration", + "scope": 1486, + "src": "2175:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1407, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2175:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1410, + "mutability": "mutable", + "name": "depth", + "nameLocation": "2214:5:8", + "nodeType": "VariableDeclaration", + "scope": 1486, + "src": "2206:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2206:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1412, + "mutability": "mutable", + "name": "idType", + "nameLocation": "2236:6:8", + "nodeType": "VariableDeclaration", + "scope": 1486, + "src": "2229:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "typeName": { + "id": 1411, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "2229:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "visibility": "internal" + } + ], + "src": "2102:146:8" + }, + "returnParameters": { + "id": 1414, + "nodeType": "ParameterList", + "parameters": [], + "src": "2258:0:8" + }, + "scope": 2217, + "src": "2083:693:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1566, + "nodeType": "Block", + "src": "2926:404:8", + "statements": [ + { + "assignments": [ + 1502 + ], + "declarations": [ + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "claimIndex", + "nameLocation": "2954:10:8", + "nodeType": "VariableDeclaration", + "scope": 1566, + "src": "2936:28:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 1500, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2936:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1501, + "length": { + "hexValue": "34", + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2944:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "2936:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "visibility": "internal" + } + ], + "id": 1503, + "nodeType": "VariableDeclarationStatement", + "src": "2936:28:8" + }, + { + "assignments": [ + 1509 + ], + "declarations": [ + { + "constant": false, + "id": 1509, + "mutability": "mutable", + "name": "claimValue", + "nameLocation": "2992:10:8", + "nodeType": "VariableDeclaration", + "scope": 1566, + "src": "2974:28:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 1507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2974:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1508, + "length": { + "hexValue": "34", + "id": 1506, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2982:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "2974:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "visibility": "internal" + } + ], + "id": 1510, + "nodeType": "VariableDeclarationStatement", + "src": "2974:28:8" + }, + { + "body": { + "id": 1539, + "nodeType": "Block", + "src": "3042:91:8", + "statements": [ + { + "expression": { + "id": 1527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1521, + "name": "claimIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "3056:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 1523, + "indexExpression": { + "id": 1522, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "3067:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3056:13:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 1524, + "name": "claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "3072:5:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" + } + }, + "id": 1526, + "indexExpression": { + "id": 1525, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "3078:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3072:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3056:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1528, + "nodeType": "ExpressionStatement", + "src": "3056:24:8" + }, + { + "expression": { + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1529, + "name": "claimValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1509, + "src": "3094:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + }, + "id": 1531, + "indexExpression": { + "id": 1530, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "3105:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3094:13:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 1532, + "name": "claim", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "3110:5:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8] calldata" + } + }, + "id": 1536, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1533, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "3116:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "34", + "id": 1534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3120:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "3116:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3110:12:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3094:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1538, + "nodeType": "ExpressionStatement", + "src": "3094:28:8" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 1517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1515, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "3030:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "34", + "id": 1516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3034:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "3030:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1540, + "initializationExpression": { + "assignments": [ + 1512 + ], + "declarations": [ + { + "constant": false, + "id": 1512, + "mutability": "mutable", + "name": "i", + "nameLocation": "3023:1:8", + "nodeType": "VariableDeclaration", + "scope": 1540, + "src": "3017:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 1511, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "3017:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 1514, + "initialValue": { + "hexValue": "30", + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3027:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3017:11:8" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 1519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3037:3:8", + "subExpression": { + "id": 1518, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1512, + "src": "3037:1:8", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 1520, + "nodeType": "ExpressionStatement", + "src": "3037:3:8" + }, + "nodeType": "ForStatement", + "src": "3012:121:8" + }, + { + "assignments": [ + 1542 + ], + "declarations": [ + { + "constant": false, + "id": 1542, + "mutability": "mutable", + "name": "hashIndex", + "nameLocation": "3150:9:8", + "nodeType": "VariableDeclaration", + "scope": 1566, + "src": "3142:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1541, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3142:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1547, + "initialValue": { + "arguments": [ + { + "id": 1545, + "name": "claimIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "3186:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + ], + "expression": { + "id": 1543, + "name": "PoseidonUnit4L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2263, + "src": "3162:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PoseidonUnit4L_$2263_$", + "typeString": "type(library PoseidonUnit4L)" + } + }, + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3177:8:8", + "memberName": "poseidon", + "nodeType": "MemberAccess", + "referencedDeclaration": 2262, + "src": "3162:23:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$4_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[4] memory) pure returns (uint256)" + } + }, + "id": 1546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3162:35:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3142:55:8" + }, + { + "assignments": [ + 1549 + ], + "declarations": [ + { + "constant": false, + "id": 1549, + "mutability": "mutable", + "name": "hashValue", + "nameLocation": "3215:9:8", + "nodeType": "VariableDeclaration", + "scope": 1566, + "src": "3207:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3207:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1554, + "initialValue": { + "arguments": [ + { + "id": 1552, + "name": "claimValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1509, + "src": "3251:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$4_memory_ptr", + "typeString": "uint256[4] memory" + } + ], + "expression": { + "id": 1550, + "name": "PoseidonUnit4L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2263, + "src": "3227:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PoseidonUnit4L_$2263_$", + "typeString": "type(library PoseidonUnit4L)" + } + }, + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3242:8:8", + "memberName": "poseidon", + "nodeType": "MemberAccess", + "referencedDeclaration": 2262, + "src": "3227:23:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$4_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[4] memory) pure returns (uint256)" + } + }, + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3227:35:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3207:55:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1562, + "name": "hashIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1542, + "src": "3302:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1563, + "name": "hashValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1549, + "src": "3313:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "expression": { + "id": 1555, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1490, + "src": "3272:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1559, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3277:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "3272:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1560, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3283:10:8", + "memberName": "claimsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1375, + "src": "3272:21:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1561, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3294:7:8", + "memberName": "addLeaf", + "nodeType": "MemberAccess", + "referencedDeclaration": 3091, + "src": "3272:29:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256)" + } + }, + "id": 1564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3272:51:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1565, + "nodeType": "ExpressionStatement", + "src": "3272:51:8" + } + ] + }, + "documentation": { + "id": 1487, + "nodeType": "StructuredDocumentation", + "src": "2782:66:8", + "text": " @dev Add claim\n @param claim - claim data" + }, + "functionSelector": "e1f0eaa9", + "id": 1567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addClaim", + "nameLocation": "2862:8:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1495, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1490, + "mutability": "mutable", + "name": "self", + "nameLocation": "2884:4:8", + "nodeType": "VariableDeclaration", + "scope": 1567, + "src": "2871:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 1489, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1488, + "name": "Data", + "nameLocations": [ + "2871:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "2871:4:8" + }, + "referencedDeclaration": 1371, + "src": "2871:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1494, + "mutability": "mutable", + "name": "claim", + "nameLocation": "2910:5:8", + "nodeType": "VariableDeclaration", + "scope": 1567, + "src": "2890:25:8", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8]" + }, + "typeName": { + "baseType": { + "id": 1491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2890:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1493, + "length": { + "hexValue": "38", + "id": 1492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2898:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "nodeType": "ArrayTypeName", + "src": "2890:10:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", + "typeString": "uint256[8]" + } + }, + "visibility": "internal" + } + ], + "src": "2870:46:8" + }, + "returnParameters": { + "id": 1496, + "nodeType": "ParameterList", + "parameters": [], + "src": "2926:0:8" + }, + "scope": 2217, + "src": "2853:477:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1589, + "nodeType": "Block", + "src": "3569:68:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1585, + "name": "hashIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1573, + "src": "3609:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1586, + "name": "hashValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1575, + "src": "3620:9:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "expression": { + "id": 1578, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1571, + "src": "3579:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1582, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3584:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "3579:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1583, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3590:10:8", + "memberName": "claimsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1375, + "src": "3579:21:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1584, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3601:7:8", + "memberName": "addLeaf", + "nodeType": "MemberAccess", + "referencedDeclaration": 3091, + "src": "3579:29:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256)" + } + }, + "id": 1587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3579:51:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1588, + "nodeType": "ExpressionStatement", + "src": "3579:51:8" + } + ] + }, + "documentation": { + "id": 1568, + "nodeType": "StructuredDocumentation", + "src": "3336:140:8", + "text": " @dev Add claim hash\n @param hashIndex - hash of claim index part\n @param hashValue - hash of claim value part" + }, + "functionSelector": "06fb1575", + "id": 1590, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addClaimHash", + "nameLocation": "3490:12:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1571, + "mutability": "mutable", + "name": "self", + "nameLocation": "3516:4:8", + "nodeType": "VariableDeclaration", + "scope": 1590, + "src": "3503:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 1570, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1569, + "name": "Data", + "nameLocations": [ + "3503:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "3503:4:8" + }, + "referencedDeclaration": 1371, + "src": "3503:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1573, + "mutability": "mutable", + "name": "hashIndex", + "nameLocation": "3530:9:8", + "nodeType": "VariableDeclaration", + "scope": 1590, + "src": "3522:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1572, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3522:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1575, + "mutability": "mutable", + "name": "hashValue", + "nameLocation": "3549:9:8", + "nodeType": "VariableDeclaration", + "scope": 1590, + "src": "3541:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3541:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3502:57:8" + }, + "returnParameters": { + "id": 1577, + "nodeType": "ParameterList", + "parameters": [], + "src": "3569:0:8" + }, + "scope": 2217, + "src": "3481:156:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1613, + "nodeType": "Block", + "src": "3833:80:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1608, + "name": "revocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1596, + "src": "3886:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3878:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1606, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3878:7:8", + "typeDescriptions": {} + } + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3878:24:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 1610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3904:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "expression": { + "expression": { + "expression": { + "id": 1599, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1594, + "src": "3843:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1603, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3848:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "3843:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3854:15:8", + "memberName": "revocationsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1378, + "src": "3843:26:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1605, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3870:7:8", + "memberName": "addLeaf", + "nodeType": "MemberAccess", + "referencedDeclaration": 3091, + "src": "3843:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256)" + } + }, + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3843:63:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1612, + "nodeType": "ExpressionStatement", + "src": "3843:63:8" + } + ] + }, + "documentation": { + "id": 1591, + "nodeType": "StructuredDocumentation", + "src": "3643:112:8", + "text": " @dev Revoke claim using it's revocationNonce\n @param revocationNonce - revocation nonce" + }, + "functionSelector": "8ad7195d", + "id": 1614, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "revokeClaim", + "nameLocation": "3769:11:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1594, + "mutability": "mutable", + "name": "self", + "nameLocation": "3794:4:8", + "nodeType": "VariableDeclaration", + "scope": 1614, + "src": "3781:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 1593, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1592, + "name": "Data", + "nameLocations": [ + "3781:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "3781:4:8" + }, + "referencedDeclaration": 1371, + "src": "3781:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1596, + "mutability": "mutable", + "name": "revocationNonce", + "nameLocation": "3807:15:8", + "nodeType": "VariableDeclaration", + "scope": 1614, + "src": "3800:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1595, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3800:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3780:43:8" + }, + "returnParameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [], + "src": "3833:0:8" + }, + "scope": 2217, + "src": "3760:153:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1777, + "nodeType": "Block", + "src": "4019:2307:8", + "statements": [ + { + "assignments": [ + 1622 + ], + "declarations": [ + { + "constant": false, + "id": 1622, + "mutability": "mutable", + "name": "oldIdentityState", + "nameLocation": "4037:16:8", + "nodeType": "VariableDeclaration", + "scope": 1777, + "src": "4029:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4029:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1625, + "initialValue": { + "expression": { + "id": 1623, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "4056:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1624, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4061:20:8", + "memberName": "latestPublishedState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1350, + "src": "4056:25:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4029:52:8" + }, + { + "assignments": [ + 1627 + ], + "declarations": [ + { + "constant": false, + "id": 1627, + "mutability": "mutable", + "name": "currentClaimsTreeRoot", + "nameLocation": "4099:21:8", + "nodeType": "VariableDeclaration", + "scope": 1777, + "src": "4091:29:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1626, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4091:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1633, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "expression": { + "id": 1628, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "4123:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1629, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4128:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "4123:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1630, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4134:10:8", + "memberName": "claimsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1375, + "src": "4123:21:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1631, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4145:7:8", + "memberName": "getRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3506, + "src": "4123:29:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4123:31:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4091:63:8" + }, + { + "assignments": [ + 1635 + ], + "declarations": [ + { + "constant": false, + "id": 1635, + "mutability": "mutable", + "name": "currentRevocationsTreeRoot", + "nameLocation": "4172:26:8", + "nodeType": "VariableDeclaration", + "scope": 1777, + "src": "4164:34:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1634, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4164:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1641, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "expression": { + "id": 1636, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "4201:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1637, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4206:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "4201:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1638, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4212:15:8", + "memberName": "revocationsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1378, + "src": "4201:26:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1639, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4228:7:8", + "memberName": "getRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3506, + "src": "4201:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 1640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4201:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4164:73:8" + }, + { + "assignments": [ + 1643 + ], + "declarations": [ + { + "constant": false, + "id": 1643, + "mutability": "mutable", + "name": "currentRootsTreeRoot", + "nameLocation": "4255:20:8", + "nodeType": "VariableDeclaration", + "scope": 1777, + "src": "4247:28:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1642, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4247:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1649, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "expression": { + "id": 1644, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "4278:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1645, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4283:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "4278:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1646, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4289:9:8", + "memberName": "rootsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1381, + "src": "4278:20:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1647, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4299:7:8", + "memberName": "getRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3506, + "src": "4278:28:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 1648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4278:30:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4247:61:8" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1651, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "4341:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1652, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4346:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "4341:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1653, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4371:10:8", + "memberName": "claimsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1385, + "src": "4341:40:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1654, + "name": "currentClaimsTreeRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1627, + "src": "4385:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4341:65:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1656, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4340:67:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1657, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "4428:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1658, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4433:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "4428:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1659, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4458:15:8", + "memberName": "revocationsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1387, + "src": "4428:45:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1660, + "name": "currentRevocationsTreeRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "4477:26:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4428:75:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1662, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4427:77:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4340:164:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1664, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "4525:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1665, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4530:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "4525:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4555:9:8", + "memberName": "rootsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1389, + "src": "4525:39:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1667, + "name": "currentRootsTreeRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1643, + "src": "4568:20:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4525:63:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1669, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4524:65:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4340:249:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4964656e7469747920747265657320686176656e2774206368616e676564", + "id": 1671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4603:32:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfe527d2ff3b58e820f9d3002817587119240858f81529ff0e2d6f59b5b5a3a4", + "typeString": "literal_string \"Identity trees haven't changed\"" + }, + "value": "Identity trees haven't changed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_bfe527d2ff3b58e820f9d3002817587119240858f81529ff0e2d6f59b5b5a3a4", + "typeString": "literal_string \"Identity trees haven't changed\"" + } + ], + "id": 1650, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4319:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4319:326:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1673, + "nodeType": "ExpressionStatement", + "src": "4319:326:8" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1674, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "4723:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1675, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4728:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "4723:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1676, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4753:10:8", + "memberName": "claimsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1385, + "src": "4723:40:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 1677, + "name": "currentClaimsTreeRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1627, + "src": "4767:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4723:65:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1691, + "nodeType": "IfStatement", + "src": "4719:150:8", + "trueBody": { + "id": 1690, + "nodeType": "Block", + "src": "4790:79:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1686, + "name": "currentClaimsTreeRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1627, + "src": "4833:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 1687, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4856:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "expression": { + "expression": { + "expression": { + "id": 1679, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "4804:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1683, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4809:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "4804:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1684, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4815:9:8", + "memberName": "rootsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1381, + "src": "4804:20:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1685, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4825:7:8", + "memberName": "addLeaf", + "nodeType": "MemberAccess", + "referencedDeclaration": 3091, + "src": "4804:28:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256)" + } + }, + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4804:54:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1689, + "nodeType": "ExpressionStatement", + "src": "4804:54:8" + } + ] + } + }, + { + "assignments": [ + 1693 + ], + "declarations": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "newIdentityState", + "nameLocation": "4887:16:8", + "nodeType": "VariableDeclaration", + "scope": 1777, + "src": "4879:24:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1692, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4879:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1697, + "initialValue": { + "arguments": [ + { + "id": 1695, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "4924:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + ], + "id": 1694, + "name": "calcIdentityState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1808, + "src": "4906:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$1371_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct IdentityLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 1696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4906:23:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4879:50:8" + }, + { + "expression": { + "id": 1702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 1698, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "4978:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1700, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4983:20:8", + "memberName": "latestPublishedState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1350, + "src": "4978:25:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1701, + "name": "newIdentityState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1693, + "src": "5006:16:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4978:44:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1703, + "nodeType": "ExpressionStatement", + "src": "4978:44:8" + }, + { + "expression": { + "id": 1710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "expression": { + "id": 1704, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "5032:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1707, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5037:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "5032:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1708, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5062:10:8", + "memberName": "claimsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1385, + "src": "5032:40:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1709, + "name": "currentClaimsTreeRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1627, + "src": "5075:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5032:64:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1711, + "nodeType": "ExpressionStatement", + "src": "5032:64:8" + }, + { + "expression": { + "id": 1718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "expression": { + "id": 1712, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "5106:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1715, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5111:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "5106:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1716, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5136:15:8", + "memberName": "revocationsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1387, + "src": "5106:45:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1717, + "name": "currentRevocationsTreeRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1635, + "src": "5154:26:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5106:74:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1719, + "nodeType": "ExpressionStatement", + "src": "5106:74:8" + }, + { + "expression": { + "id": 1730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "expression": { + "id": 1720, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "5190:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1723, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5195:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "5190:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1724, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5220:9:8", + "memberName": "rootsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1389, + "src": "5190:39:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "expression": { + "id": 1725, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "5232:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1726, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5237:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "5232:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1727, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5243:9:8", + "memberName": "rootsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1381, + "src": "5232:20:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5253:7:8", + "memberName": "getRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3506, + "src": "5232:28:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 1729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5232:30:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5190:72:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1731, + "nodeType": "ExpressionStatement", + "src": "5190:72:8" + }, + { + "assignments": [ + 1733 + ], + "declarations": [ + { + "constant": false, + "id": 1733, + "mutability": "mutable", + "name": "isOldStateGenesis", + "nameLocation": "5278:17:8", + "nodeType": "VariableDeclaration", + "scope": 1777, + "src": "5273:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1732, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5273:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 1736, + "initialValue": { + "expression": { + "id": 1734, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "5298:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1735, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5303:17:8", + "memberName": "isOldStateGenesis", + "nodeType": "MemberAccess", + "referencedDeclaration": 1352, + "src": "5298:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5273:47:8" + }, + { + "expression": { + "id": 1741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 1737, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "5607:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1739, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5612:17:8", + "memberName": "isOldStateGenesis", + "nodeType": "MemberAccess", + "referencedDeclaration": 1352, + "src": "5607:22:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 1740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5632:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "5607:30:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1742, + "nodeType": "ExpressionStatement", + "src": "5607:30:8" + }, + { + "expression": { + "arguments": [ + { + "id": 1744, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "5674:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + { + "expression": { + "id": 1745, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "5692:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1746, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5697:20:8", + "memberName": "latestPublishedState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1350, + "src": "5692:25:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "expression": { + "expression": { + "id": 1748, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "5767:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1749, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5772:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "5767:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1750, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5797:10:8", + "memberName": "claimsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1385, + "src": "5767:40:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1751, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "5842:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1752, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5847:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "5842:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1753, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5872:15:8", + "memberName": "revocationsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1387, + "src": "5842:45:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1754, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "5916:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1755, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5921:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "5916:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1756, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5946:9:8", + "memberName": "rootsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1389, + "src": "5916:39:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1747, + "name": "Roots", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1390, + "src": "5731:5:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Roots_$1390_storage_ptr_$", + "typeString": "type(struct IdentityLib.Roots storage pointer)" + } + }, + "id": 1757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "5755:10:8", + "5825:15:8", + "5905:9:8" + ], + "names": [ + "claimsRoot", + "revocationsRoot", + "rootsRoot" + ], + "nodeType": "FunctionCall", + "src": "5731:239:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr", + "typeString": "struct IdentityLib.Roots memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr", + "typeString": "struct IdentityLib.Roots memory" + } + ], + "id": 1743, + "name": "writeHistory", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2171, + "src": "5648:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$_t_struct$_Roots_$1390_memory_ptr_$returns$__$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint256,struct IdentityLib.Roots memory)" + } + }, + "id": 1758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5648:332:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1759, + "nodeType": "ExpressionStatement", + "src": "5648:332:8" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1765, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "6092:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1766, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6097:2:8", + "memberName": "id", + "nodeType": "MemberAccess", + "referencedDeclaration": 1348, + "src": "6092:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1767, + "name": "oldIdentityState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "6113:16:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1768, + "name": "newIdentityState", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1693, + "src": "6143:16:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1769, + "name": "isOldStateGenesis", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1733, + "src": "6173:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "31", + "id": 1770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6204:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6284:1:8", + "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" + } + ], + "id": 1772, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6274:9:8", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 1771, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6278:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 1774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6274:12:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "expression": { + "id": 1760, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1618, + "src": "6040:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1763, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6045:13:8", + "memberName": "stateContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1355, + "src": "6040:18:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IState_$407", + "typeString": "contract IState" + } + }, + "id": 1764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6059:19:8", + "memberName": "transitStateGeneric", + "nodeType": "MemberAccess", + "referencedDeclaration": 362, + "src": "6040:38:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,uint256,bool,uint256,bytes memory) external" + } + }, + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6040:279:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1776, + "nodeType": "ExpressionStatement", + "src": "6040:279:8" + } + ] + }, + "documentation": { + "id": 1615, + "nodeType": "StructuredDocumentation", + "src": "3919:45:8", + "text": " @dev Make state transition" + }, + "functionSelector": "2eb747d2", + "id": 1778, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transitState", + "nameLocation": "3978:12:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1618, + "mutability": "mutable", + "name": "self", + "nameLocation": "4004:4:8", + "nodeType": "VariableDeclaration", + "scope": 1778, + "src": "3991:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 1617, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1616, + "name": "Data", + "nameLocations": [ + "3991:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "3991:4:8" + }, + "referencedDeclaration": 1371, + "src": "3991:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + } + ], + "src": "3990:19:8" + }, + "returnParameters": { + "id": 1620, + "nodeType": "ParameterList", + "parameters": [], + "src": "4019:0:8" + }, + "scope": 2217, + "src": "3969:2357:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1807, + "nodeType": "Block", + "src": "6489:272:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "components": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "expression": { + "id": 1789, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1782, + "src": "6581:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1790, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6586:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "6581:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1791, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6592:10:8", + "memberName": "claimsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1375, + "src": "6581:21:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1792, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6603:7:8", + "memberName": "getRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3506, + "src": "6581:29:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6581:31:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "expression": { + "id": 1794, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1782, + "src": "6634:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1795, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6639:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "6634:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1796, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6645:15:8", + "memberName": "revocationsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1378, + "src": "6634:26:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1797, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6661:7:8", + "memberName": "getRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3506, + "src": "6634:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 1798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6634:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "expression": { + "id": 1799, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1782, + "src": "6692:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1800, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6697:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "6692:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1801, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6703:9:8", + "memberName": "rootsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1381, + "src": "6692:20:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1802, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6713:7:8", + "memberName": "getRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3506, + "src": "6692:28:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 1803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6692:30:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1804, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6559:181:8", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + ], + "expression": { + "id": 1787, + "name": "PoseidonUnit3L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2252, + "src": "6518:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PoseidonUnit3L_$2252_$", + "typeString": "type(library PoseidonUnit3L)" + } + }, + "id": 1788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6533:8:8", + "memberName": "poseidon", + "nodeType": "MemberAccess", + "referencedDeclaration": 2251, + "src": "6518:23:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$3_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[3] memory) pure returns (uint256)" + } + }, + "id": 1805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6518:236:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1786, + "id": 1806, + "nodeType": "Return", + "src": "6499:255:8" + } + ] + }, + "documentation": { + "id": 1779, + "nodeType": "StructuredDocumentation", + "src": "6332:76:8", + "text": " @dev Calculate IdentityState\n @return IdentityState" + }, + "functionSelector": "1a3046d7", + "id": 1808, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "calcIdentityState", + "nameLocation": "6422:17:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1783, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1782, + "mutability": "mutable", + "name": "self", + "nameLocation": "6453:4:8", + "nodeType": "VariableDeclaration", + "scope": 1808, + "src": "6440:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 1781, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1780, + "name": "Data", + "nameLocations": [ + "6440:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "6440:4:8" + }, + "referencedDeclaration": 1371, + "src": "6440:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + } + ], + "src": "6439:19:8" + }, + "returnParameters": { + "id": 1786, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1785, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1808, + "src": "6480:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1784, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6480:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6479:9:8" + }, + "scope": 2217, + "src": "6413:348:8", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1830, + "nodeType": "Block", + "src": "7203:176:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1824, + "name": "claimIndexHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1814, + "src": "7286:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1825, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1812, + "src": "7318:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7323:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "7318:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1827, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7348:10:8", + "memberName": "claimsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1385, + "src": "7318:40:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "expression": { + "id": 1820, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1812, + "src": "7232:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1821, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7237:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "7232:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1822, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7243:10:8", + "memberName": "claimsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1375, + "src": "7232:21:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1823, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7254:14:8", + "memberName": "getProofByRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3424, + "src": "7232:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 1828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7232:140:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 1819, + "id": 1829, + "nodeType": "Return", + "src": "7213:159:8" + } + ] + }, + "documentation": { + "id": 1809, + "nodeType": "StructuredDocumentation", + "src": "6767:299:8", + "text": " @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index.\n Note that proof is taken for the latest published claims tree root.\n @param claimIndexHash - hash of Claim Index\n @return The ClaimsTree inclusion or non-inclusion proof for the claim" + }, + "functionSelector": "00cf0890", + "id": 1831, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getClaimProof", + "nameLocation": "7080:13:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1815, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1812, + "mutability": "mutable", + "name": "self", + "nameLocation": "7116:4:8", + "nodeType": "VariableDeclaration", + "scope": 1831, + "src": "7103:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 1811, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1810, + "name": "Data", + "nameLocations": [ + "7103:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "7103:4:8" + }, + "referencedDeclaration": 1371, + "src": "7103:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1814, + "mutability": "mutable", + "name": "claimIndexHash", + "nameLocation": "7138:14:8", + "nodeType": "VariableDeclaration", + "scope": 1831, + "src": "7130:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1813, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7093:65:8" + }, + "returnParameters": { + "id": 1819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1818, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1831, + "src": "7182:19:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 1817, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1816, + "name": "SmtLib.Proof", + "nameLocations": [ + "7182:6:8", + "7189:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "7182:12:8" + }, + "referencedDeclaration": 2979, + "src": "7182:12:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "7181:21:8" + }, + "scope": 2217, + "src": "7071:308:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1870, + "nodeType": "Block", + "src": "7883:495:8", + "statements": [ + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 1850, + "name": "claimIndexHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1837, + "src": "7968:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1851, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1835, + "src": "8000:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1852, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8005:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "8000:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1853, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8030:10:8", + "memberName": "claimsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1385, + "src": "8000:40:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "expression": { + "id": 1846, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1835, + "src": "7914:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1847, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7919:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "7914:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1848, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7925:10:8", + "memberName": "claimsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1375, + "src": "7914:21:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1849, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7936:14:8", + "memberName": "getProofByRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3424, + "src": "7914:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 1854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7914:140:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + { + "arguments": [ + { + "expression": { + "id": 1856, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1835, + "src": "8103:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1857, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8108:20:8", + "memberName": "latestPublishedState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1350, + "src": "8103:25:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1858, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1835, + "src": "8158:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8163:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "8158:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1860, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8188:10:8", + "memberName": "claimsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1385, + "src": "8158:40:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1861, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1835, + "src": "8233:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1862, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8238:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "8233:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8263:15:8", + "memberName": "revocationsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1387, + "src": "8233:45:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1864, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1835, + "src": "8307:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1865, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8312:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "8307:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1866, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8337:9:8", + "memberName": "rootsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1389, + "src": "8307:39:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1855, + "name": "StateInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1400, + "src": "8068:9:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_StateInfo_$1400_storage_ptr_$", + "typeString": "type(struct IdentityLib.StateInfo storage pointer)" + } + }, + "id": 1867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "8096:5:8", + "8146:10:8", + "8216:15:8", + "8296:9:8" + ], + "names": [ + "state", + "claimsRoot", + "revocationsRoot", + "rootsRoot" + ], + "nodeType": "FunctionCall", + "src": "8068:293:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr", + "typeString": "struct IdentityLib.StateInfo memory" + } + } + ], + "id": 1868, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7900:471:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$", + "typeString": "tuple(struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)" + } + }, + "functionReturnParameters": 1845, + "id": 1869, + "nodeType": "Return", + "src": "7893:478:8" + } + ] + }, + "documentation": { + "id": 1832, + "nodeType": "StructuredDocumentation", + "src": "7385:330:8", + "text": " @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index with state info.\n Note that proof is taken for the latest published claims tree root.\n @param claimIndexHash - hash of Claim Index\n @return The ClaimsTree inclusion or non-inclusion proof for the claim and state info" + }, + "functionSelector": "d5a3b14e", + "id": 1871, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getClaimProofWithStateInfo", + "nameLocation": "7729:26:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1835, + "mutability": "mutable", + "name": "self", + "nameLocation": "7778:4:8", + "nodeType": "VariableDeclaration", + "scope": 1871, + "src": "7765:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 1834, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1833, + "name": "Data", + "nameLocations": [ + "7765:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "7765:4:8" + }, + "referencedDeclaration": 1371, + "src": "7765:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1837, + "mutability": "mutable", + "name": "claimIndexHash", + "nameLocation": "7800:14:8", + "nodeType": "VariableDeclaration", + "scope": 1871, + "src": "7792:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7792:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7755:65:8" + }, + "returnParameters": { + "id": 1845, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1841, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1871, + "src": "7844:19:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 1840, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1839, + "name": "SmtLib.Proof", + "nameLocations": [ + "7844:6:8", + "7851:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "7844:12:8" + }, + "referencedDeclaration": 2979, + "src": "7844:12:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1844, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1871, + "src": "7865:16:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr", + "typeString": "struct IdentityLib.StateInfo" + }, + "typeName": { + "id": 1843, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1842, + "name": "StateInfo", + "nameLocations": [ + "7865:9:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1400, + "src": "7865:9:8" + }, + "referencedDeclaration": 1400, + "src": "7865:9:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$1400_storage_ptr", + "typeString": "struct IdentityLib.StateInfo" + } + }, + "visibility": "internal" + } + ], + "src": "7843:39:8" + }, + "scope": 2217, + "src": "7720:658:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1893, + "nodeType": "Block", + "src": "8826:82:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1889, + "name": "claimIndexHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "8880:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1890, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1879, + "src": "8896:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "expression": { + "id": 1885, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "8843:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1886, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8848:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "8843:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1887, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8854:10:8", + "memberName": "claimsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1375, + "src": "8843:21:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1888, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8865:14:8", + "memberName": "getProofByRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3424, + "src": "8843:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 1891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8843:58:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 1884, + "id": 1892, + "nodeType": "Return", + "src": "8836:65:8" + } + ] + }, + "documentation": { + "id": 1872, + "nodeType": "StructuredDocumentation", + "src": "8384:277:8", + "text": " @dev Retrieve Claim inclusion or non-inclusion proof for a given claim index by target root.\n @param claimIndexHash - hash of Claim Index\n @param root - root of the tree\n @return The ClaimsTree inclusion or non-inclusion proof for the claim" + }, + "functionSelector": "d5818b8e", + "id": 1894, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getClaimProofByRoot", + "nameLocation": "8675:19:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1880, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1875, + "mutability": "mutable", + "name": "self", + "nameLocation": "8717:4:8", + "nodeType": "VariableDeclaration", + "scope": 1894, + "src": "8704:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 1874, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1873, + "name": "Data", + "nameLocations": [ + "8704:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "8704:4:8" + }, + "referencedDeclaration": 1371, + "src": "8704:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1877, + "mutability": "mutable", + "name": "claimIndexHash", + "nameLocation": "8739:14:8", + "nodeType": "VariableDeclaration", + "scope": 1894, + "src": "8731:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1876, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8731:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1879, + "mutability": "mutable", + "name": "root", + "nameLocation": "8771:4:8", + "nodeType": "VariableDeclaration", + "scope": 1894, + "src": "8763:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1878, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8763:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8694:87:8" + }, + "returnParameters": { + "id": 1884, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1883, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1894, + "src": "8805:19:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 1882, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1881, + "name": "SmtLib.Proof", + "nameLocations": [ + "8805:6:8", + "8812:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "8805:12:8" + }, + "referencedDeclaration": 2979, + "src": "8805:12:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "8804:21:8" + }, + "scope": 2217, + "src": "8666:242:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1909, + "nodeType": "Block", + "src": "9095:55:8", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "expression": { + "id": 1903, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1898, + "src": "9112:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1904, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9117:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "9112:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1905, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9123:10:8", + "memberName": "claimsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1375, + "src": "9112:21:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1906, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9134:7:8", + "memberName": "getRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3506, + "src": "9112:29:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 1907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9112:31:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1902, + "id": 1908, + "nodeType": "Return", + "src": "9105:38:8" + } + ] + }, + "documentation": { + "id": 1895, + "nodeType": "StructuredDocumentation", + "src": "8914:98:8", + "text": " @dev Retrieve ClaimsTree latest root.\n @return The latest ClaimsTree root" + }, + "functionSelector": "6e2fe66c", + "id": 1910, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getClaimsTreeRoot", + "nameLocation": "9026:17:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1899, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1898, + "mutability": "mutable", + "name": "self", + "nameLocation": "9057:4:8", + "nodeType": "VariableDeclaration", + "scope": 1910, + "src": "9044:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 1897, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1896, + "name": "Data", + "nameLocations": [ + "9044:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "9044:4:8" + }, + "referencedDeclaration": 1371, + "src": "9044:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + } + ], + "src": "9043:19:8" + }, + "returnParameters": { + "id": 1902, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1901, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1910, + "src": "9086:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1900, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9086:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9085:9:8" + }, + "scope": 2217, + "src": "9017:133:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1935, + "nodeType": "Block", + "src": "9601:196:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1928, + "name": "revocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1916, + "src": "9697:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 1927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9689:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9689:7:8", + "typeDescriptions": {} + } + }, + "id": 1929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9689:24:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1930, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1914, + "src": "9731:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1931, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9736:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "9731:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1932, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9761:15:8", + "memberName": "revocationsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1387, + "src": "9731:45:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "expression": { + "id": 1922, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1914, + "src": "9630:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1923, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9635:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "9630:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1924, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9641:15:8", + "memberName": "revocationsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1378, + "src": "9630:26:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1925, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9657:14:8", + "memberName": "getProofByRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3424, + "src": "9630:41:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 1933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9630:160:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 1921, + "id": 1934, + "nodeType": "Return", + "src": "9611:179:8" + } + ] + }, + "documentation": { + "id": 1911, + "nodeType": "StructuredDocumentation", + "src": "9156:303:8", + "text": " @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce.\nNote that proof is taken for the latest published revocation tree root.\n @param revocationNonce - revocation nonce\n @return The RevocationsTree inclusion or non-inclusion proof for the claim" + }, + "functionSelector": "7d0aba4f", + "id": 1936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRevocationProof", + "nameLocation": "9473:18:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1917, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1914, + "mutability": "mutable", + "name": "self", + "nameLocation": "9514:4:8", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "9501:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 1913, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1912, + "name": "Data", + "nameLocations": [ + "9501:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "9501:4:8" + }, + "referencedDeclaration": 1371, + "src": "9501:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1916, + "mutability": "mutable", + "name": "revocationNonce", + "nameLocation": "9535:15:8", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "9528:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1915, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "9528:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "9491:65:8" + }, + "returnParameters": { + "id": 1921, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1920, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "9580:19:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 1919, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1918, + "name": "SmtLib.Proof", + "nameLocations": [ + "9580:6:8", + "9587:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "9580:12:8" + }, + "referencedDeclaration": 2979, + "src": "9580:12:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "9579:21:8" + }, + "scope": 2217, + "src": "9464:333:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1978, + "nodeType": "Block", + "src": "10311:515:8", + "statements": [ + { + "expression": { + "components": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1957, + "name": "revocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1942, + "src": "10409:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10401:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10401:7:8", + "typeDescriptions": {} + } + }, + "id": 1958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10401:24:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1959, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1940, + "src": "10443:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1960, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10448:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "10443:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10473:15:8", + "memberName": "revocationsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1387, + "src": "10443:45:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "expression": { + "id": 1951, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1940, + "src": "10342:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1952, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10347:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "10342:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1953, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10353:15:8", + "memberName": "revocationsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1378, + "src": "10342:26:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1954, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10369:14:8", + "memberName": "getProofByRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3424, + "src": "10342:41:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10342:160:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + { + "arguments": [ + { + "expression": { + "id": 1964, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1940, + "src": "10551:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1965, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10556:20:8", + "memberName": "latestPublishedState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1350, + "src": "10551:25:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1966, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1940, + "src": "10606:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10611:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "10606:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1968, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10636:10:8", + "memberName": "claimsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1385, + "src": "10606:40:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1969, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1940, + "src": "10681:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1970, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10686:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "10681:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1971, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10711:15:8", + "memberName": "revocationsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1387, + "src": "10681:45:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 1972, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1940, + "src": "10755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1973, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10760:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "10755:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 1974, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10785:9:8", + "memberName": "rootsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1389, + "src": "10755:39:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1963, + "name": "StateInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1400, + "src": "10516:9:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_StateInfo_$1400_storage_ptr_$", + "typeString": "type(struct IdentityLib.StateInfo storage pointer)" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "10544:5:8", + "10594:10:8", + "10664:15:8", + "10744:9:8" + ], + "names": [ + "state", + "claimsRoot", + "revocationsRoot", + "rootsRoot" + ], + "nodeType": "FunctionCall", + "src": "10516:293:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr", + "typeString": "struct IdentityLib.StateInfo memory" + } + } + ], + "id": 1976, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10328:491:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$", + "typeString": "tuple(struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)" + } + }, + "functionReturnParameters": 1950, + "id": 1977, + "nodeType": "Return", + "src": "10321:498:8" + } + ] + }, + "documentation": { + "id": 1937, + "nodeType": "StructuredDocumentation", + "src": "9803:335:8", + "text": " @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce with state info.\nNote that proof is taken for the latest published revocation tree root.\n @param revocationNonce - revocation nonce\n @return The RevocationsTree inclusion or non-inclusion proof for the claim and state info." + }, + "functionSelector": "f8b80268", + "id": 1979, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRevocationProofWithStateInfo", + "nameLocation": "10152:31:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1943, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1940, + "mutability": "mutable", + "name": "self", + "nameLocation": "10206:4:8", + "nodeType": "VariableDeclaration", + "scope": 1979, + "src": "10193:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 1939, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1938, + "name": "Data", + "nameLocations": [ + "10193:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "10193:4:8" + }, + "referencedDeclaration": 1371, + "src": "10193:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1942, + "mutability": "mutable", + "name": "revocationNonce", + "nameLocation": "10227:15:8", + "nodeType": "VariableDeclaration", + "scope": 1979, + "src": "10220:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1941, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "10220:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "10183:65:8" + }, + "returnParameters": { + "id": 1950, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1946, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1979, + "src": "10272:19:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 1945, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1944, + "name": "SmtLib.Proof", + "nameLocations": [ + "10272:6:8", + "10279:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "10272:12:8" + }, + "referencedDeclaration": 2979, + "src": "10272:12:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1979, + "src": "10293:16:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr", + "typeString": "struct IdentityLib.StateInfo" + }, + "typeName": { + "id": 1948, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1947, + "name": "StateInfo", + "nameLocations": [ + "10293:9:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1400, + "src": "10293:9:8" + }, + "referencedDeclaration": 1400, + "src": "10293:9:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$1400_storage_ptr", + "typeString": "struct IdentityLib.StateInfo" + } + }, + "visibility": "internal" + } + ], + "src": "10271:39:8" + }, + "scope": 2217, + "src": "10143:683:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2004, + "nodeType": "Block", + "src": "11281:97:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1999, + "name": "revocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1985, + "src": "11348:15:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 1998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11340:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1997, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11340:7:8", + "typeDescriptions": {} + } + }, + "id": 2000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11340:24:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2001, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1987, + "src": "11366:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "expression": { + "id": 1993, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1983, + "src": "11298:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 1994, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11303:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "11298:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 1995, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11309:15:8", + "memberName": "revocationsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1378, + "src": "11298:26:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 1996, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11325:14:8", + "memberName": "getProofByRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3424, + "src": "11298:41:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 2002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11298:73:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 1992, + "id": 2003, + "nodeType": "Return", + "src": "11291:80:8" + } + ] + }, + "documentation": { + "id": 1980, + "nodeType": "StructuredDocumentation", + "src": "10832:279:8", + "text": " @dev Retrieve inclusion or non-inclusion proof for a given revocation nonce by target root.\n @param revocationNonce - revocation nonce\n @param root - root of the tree\n @return The RevocationsTree inclusion or non-inclusion proof for the claim" + }, + "functionSelector": "16579a36", + "id": 2005, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRevocationProofByRoot", + "nameLocation": "11125:24:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1983, + "mutability": "mutable", + "name": "self", + "nameLocation": "11172:4:8", + "nodeType": "VariableDeclaration", + "scope": 2005, + "src": "11159:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 1982, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1981, + "name": "Data", + "nameLocations": [ + "11159:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "11159:4:8" + }, + "referencedDeclaration": 1371, + "src": "11159:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1985, + "mutability": "mutable", + "name": "revocationNonce", + "nameLocation": "11193:15:8", + "nodeType": "VariableDeclaration", + "scope": 2005, + "src": "11186:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 1984, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "11186:6:8", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1987, + "mutability": "mutable", + "name": "root", + "nameLocation": "11226:4:8", + "nodeType": "VariableDeclaration", + "scope": 2005, + "src": "11218:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11218:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11149:87:8" + }, + "returnParameters": { + "id": 1992, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1991, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2005, + "src": "11260:19:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 1990, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1989, + "name": "SmtLib.Proof", + "nameLocations": [ + "11260:6:8", + "11267:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "11260:12:8" + }, + "referencedDeclaration": 2979, + "src": "11260:12:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "11259:21:8" + }, + "scope": 2217, + "src": "11116:262:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2020, + "nodeType": "Block", + "src": "11580:60:8", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "expression": { + "id": 2014, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "11597:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2015, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11602:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "11597:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 2016, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11608:15:8", + "memberName": "revocationsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1378, + "src": "11597:26:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 2017, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11624:7:8", + "memberName": "getRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3506, + "src": "11597:34:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 2018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11597:36:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2013, + "id": 2019, + "nodeType": "Return", + "src": "11590:43:8" + } + ] + }, + "documentation": { + "id": 2006, + "nodeType": "StructuredDocumentation", + "src": "11384:108:8", + "text": " @dev Retrieve RevocationsTree latest root.\n @return The latest RevocationsTree root" + }, + "functionSelector": "765c2c61", + "id": 2021, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRevocationsTreeRoot", + "nameLocation": "11506:22:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2010, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "self", + "nameLocation": "11542:4:8", + "nodeType": "VariableDeclaration", + "scope": 2021, + "src": "11529:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 2008, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2007, + "name": "Data", + "nameLocations": [ + "11529:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "11529:4:8" + }, + "referencedDeclaration": 1371, + "src": "11529:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + } + ], + "src": "11528:19:8" + }, + "returnParameters": { + "id": 2013, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2012, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2021, + "src": "11571:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11571:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11570:9:8" + }, + "scope": 2217, + "src": "11497:143:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2043, + "nodeType": "Block", + "src": "12077:173:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2037, + "name": "rootsTreeRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2027, + "src": "12159:13:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 2038, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2025, + "src": "12190:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2039, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12195:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "12190:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 2040, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12220:9:8", + "memberName": "rootsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1389, + "src": "12190:39:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "expression": { + "id": 2033, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2025, + "src": "12106:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2034, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12111:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "12106:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 2035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12117:9:8", + "memberName": "rootsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1381, + "src": "12106:20:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 2036, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12127:14:8", + "memberName": "getProofByRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3424, + "src": "12106:35:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 2041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12106:137:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 2032, + "id": 2042, + "nodeType": "Return", + "src": "12087:156:8" + } + ] + }, + "documentation": { + "id": 2022, + "nodeType": "StructuredDocumentation", + "src": "11646:296:8", + "text": " @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot.\nNote that proof is taken for the latest published roots tree root.\n @param rootsTreeRoot - roots tree root\n @return The RootsTree inclusion or non-inclusion proof for the roots tree root" + }, + "functionSelector": "97ac5391", + "id": 2044, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRootProof", + "nameLocation": "11956:12:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2028, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2025, + "mutability": "mutable", + "name": "self", + "nameLocation": "11991:4:8", + "nodeType": "VariableDeclaration", + "scope": 2044, + "src": "11978:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 2024, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2023, + "name": "Data", + "nameLocations": [ + "11978:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "11978:4:8" + }, + "referencedDeclaration": 1371, + "src": "11978:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2027, + "mutability": "mutable", + "name": "rootsTreeRoot", + "nameLocation": "12013:13:8", + "nodeType": "VariableDeclaration", + "scope": 2044, + "src": "12005:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2026, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12005:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11968:64:8" + }, + "returnParameters": { + "id": 2032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2031, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2044, + "src": "12056:19:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 2030, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2029, + "name": "SmtLib.Proof", + "nameLocations": [ + "12056:6:8", + "12063:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "12056:12:8" + }, + "referencedDeclaration": 2979, + "src": "12056:12:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "12055:21:8" + }, + "scope": 2217, + "src": "11947:303:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2083, + "nodeType": "Block", + "src": "12749:492:8", + "statements": [ + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 2063, + "name": "rootsTreeRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2050, + "src": "12833:13:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 2064, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2048, + "src": "12864:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2065, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12869:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "12864:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 2066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12894:9:8", + "memberName": "rootsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1389, + "src": "12864:39:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "expression": { + "id": 2059, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2048, + "src": "12780:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2060, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12785:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "12780:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12791:9:8", + "memberName": "rootsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1381, + "src": "12780:20:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12801:14:8", + "memberName": "getProofByRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3424, + "src": "12780:35:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 2067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12780:137:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + { + "arguments": [ + { + "expression": { + "id": 2069, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2048, + "src": "12966:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2070, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12971:20:8", + "memberName": "latestPublishedState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1350, + "src": "12966:25:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 2071, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2048, + "src": "13021:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2072, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13026:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "13021:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 2073, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13051:10:8", + "memberName": "claimsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1385, + "src": "13021:40:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 2074, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2048, + "src": "13096:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2075, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13101:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "13096:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 2076, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13126:15:8", + "memberName": "revocationsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1387, + "src": "13096:45:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 2077, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2048, + "src": "13170:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2078, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13175:24:8", + "memberName": "latestPublishedTreeRoots", + "nodeType": "MemberAccess", + "referencedDeclaration": 1366, + "src": "13170:29:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 2079, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13200:9:8", + "memberName": "rootsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1389, + "src": "13170:39:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2068, + "name": "StateInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1400, + "src": "12931:9:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_StateInfo_$1400_storage_ptr_$", + "typeString": "type(struct IdentityLib.StateInfo storage pointer)" + } + }, + "id": 2080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "12959:5:8", + "13009:10:8", + "13079:15:8", + "13159:9:8" + ], + "names": [ + "state", + "claimsRoot", + "revocationsRoot", + "rootsRoot" + ], + "nodeType": "FunctionCall", + "src": "12931:293:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr", + "typeString": "struct IdentityLib.StateInfo memory" + } + } + ], + "id": 2081, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12766:468:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_struct$_Proof_$2979_memory_ptr_$_t_struct$_StateInfo_$1400_memory_ptr_$", + "typeString": "tuple(struct SmtLib.Proof memory,struct IdentityLib.StateInfo memory)" + } + }, + "functionReturnParameters": 2058, + "id": 2082, + "nodeType": "Return", + "src": "12759:475:8" + } + ] + }, + "documentation": { + "id": 2045, + "nodeType": "StructuredDocumentation", + "src": "12256:327:8", + "text": " @dev Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot and state info.\nNote that proof is taken for the latest published roots tree root.\n @param rootsTreeRoot - roots tree root\n @return The RootsTree inclusion or non-inclusion proof for the roots tree root and state info." + }, + "functionSelector": "a3018d79", + "id": 2084, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRootProofWithStateInfo", + "nameLocation": "12597:25:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2051, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2048, + "mutability": "mutable", + "name": "self", + "nameLocation": "12645:4:8", + "nodeType": "VariableDeclaration", + "scope": 2084, + "src": "12632:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 2047, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2046, + "name": "Data", + "nameLocations": [ + "12632:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "12632:4:8" + }, + "referencedDeclaration": 1371, + "src": "12632:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2050, + "mutability": "mutable", + "name": "rootsTreeRoot", + "nameLocation": "12667:13:8", + "nodeType": "VariableDeclaration", + "scope": 2084, + "src": "12659:21:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2049, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12659:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12622:64:8" + }, + "returnParameters": { + "id": 2058, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2054, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2084, + "src": "12710:19:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 2053, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2052, + "name": "SmtLib.Proof", + "nameLocations": [ + "12710:6:8", + "12717:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "12710:12:8" + }, + "referencedDeclaration": 2979, + "src": "12710:12:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2057, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2084, + "src": "12731:16:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$1400_memory_ptr", + "typeString": "struct IdentityLib.StateInfo" + }, + "typeName": { + "id": 2056, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2055, + "name": "StateInfo", + "nameLocations": [ + "12731:9:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1400, + "src": "12731:9:8" + }, + "referencedDeclaration": 1400, + "src": "12731:9:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$1400_storage_ptr", + "typeString": "struct IdentityLib.StateInfo" + } + }, + "visibility": "internal" + } + ], + "src": "12709:39:8" + }, + "scope": 2217, + "src": "12588:653:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2106, + "nodeType": "Block", + "src": "13691:81:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2102, + "name": "claimsTreeRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2090, + "src": "13744:14:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2103, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2092, + "src": "13760:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "expression": { + "id": 2098, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2088, + "src": "13708:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2099, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13713:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "13708:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 2100, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13719:9:8", + "memberName": "rootsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1381, + "src": "13708:20:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 2101, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13729:14:8", + "memberName": "getProofByRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3424, + "src": "13708:35:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 2104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13708:57:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 2097, + "id": 2105, + "nodeType": "Return", + "src": "13701:64:8" + } + ] + }, + "documentation": { + "id": 2085, + "nodeType": "StructuredDocumentation", + "src": "13247:280:8", + "text": " @dev Retrieve inclusion or non-inclusion proof for a given claimsTreeRoot by target root.\n @param claimsTreeRoot - claims tree root\n @param root - root of the tree\n @return The RootsTree inclusion or non-inclusion proof for the claim tree root" + }, + "functionSelector": "d55da6a3", + "id": 2107, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRootProofByRoot", + "nameLocation": "13541:18:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2093, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2088, + "mutability": "mutable", + "name": "self", + "nameLocation": "13582:4:8", + "nodeType": "VariableDeclaration", + "scope": 2107, + "src": "13569:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 2087, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2086, + "name": "Data", + "nameLocations": [ + "13569:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "13569:4:8" + }, + "referencedDeclaration": 1371, + "src": "13569:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2090, + "mutability": "mutable", + "name": "claimsTreeRoot", + "nameLocation": "13604:14:8", + "nodeType": "VariableDeclaration", + "scope": 2107, + "src": "13596:22:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13596:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2092, + "mutability": "mutable", + "name": "root", + "nameLocation": "13636:4:8", + "nodeType": "VariableDeclaration", + "scope": 2107, + "src": "13628:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2091, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13628:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13559:87:8" + }, + "returnParameters": { + "id": 2097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2096, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2107, + "src": "13670:19:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 2095, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2094, + "name": "SmtLib.Proof", + "nameLocations": [ + "13670:6:8", + "13677:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "13670:12:8" + }, + "referencedDeclaration": 2979, + "src": "13670:12:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "13669:21:8" + }, + "scope": 2217, + "src": "13532:240:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2122, + "nodeType": "Block", + "src": "13956:54:8", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "expression": { + "id": 2116, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2111, + "src": "13973:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2117, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13978:5:8", + "memberName": "trees", + "nodeType": "MemberAccess", + "referencedDeclaration": 1363, + "src": "13973:10:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Trees_$1382_storage", + "typeString": "struct IdentityLib.Trees storage ref" + } + }, + "id": 2118, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13984:9:8", + "memberName": "rootsTree", + "nodeType": "MemberAccess", + "referencedDeclaration": 1381, + "src": "13973:20:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage", + "typeString": "struct SmtLib.Data storage ref" + } + }, + "id": 2119, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13994:7:8", + "memberName": "getRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 3506, + "src": "13973:28:8", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 2120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13973:30:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2115, + "id": 2121, + "nodeType": "Return", + "src": "13966:37:8" + } + ] + }, + "documentation": { + "id": 2108, + "nodeType": "StructuredDocumentation", + "src": "13778:96:8", + "text": " @dev Retrieve RootsTree latest root.\n @return The latest RootsTree root" + }, + "functionSelector": "1e75e7f3", + "id": 2123, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRootsTreeRoot", + "nameLocation": "13888:16:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2111, + "mutability": "mutable", + "name": "self", + "nameLocation": "13918:4:8", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "13905:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 2110, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2109, + "name": "Data", + "nameLocations": [ + "13905:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "13905:4:8" + }, + "referencedDeclaration": 1371, + "src": "13905:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + } + ], + "src": "13904:19:8" + }, + "returnParameters": { + "id": 2115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2114, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2123, + "src": "13947:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13947:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13946:9:8" + }, + "scope": 2217, + "src": "13879:131:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 2170, + "nodeType": "Block", + "src": "14257:304:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2136, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2127, + "src": "14288:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2137, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14293:12:8", + "memberName": "rootsByState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1360, + "src": "14288:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$", + "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)" + } + }, + "id": 2139, + "indexExpression": { + "id": 2138, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2129, + "src": "14306:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14288:24:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 2140, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14313:10:8", + "memberName": "claimsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1385, + "src": "14288:35:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14327:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14288:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2143, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2127, + "src": "14348:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2144, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14353:12:8", + "memberName": "rootsByState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1360, + "src": "14348:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$", + "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)" + } + }, + "id": 2146, + "indexExpression": { + "id": 2145, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2129, + "src": "14366:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14348:24:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 2147, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14373:15:8", + "memberName": "revocationsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1387, + "src": "14348:40:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14392:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14348:45:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14288:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2151, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2127, + "src": "14413:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2152, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14418:12:8", + "memberName": "rootsByState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1360, + "src": "14413:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$", + "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)" + } + }, + "id": 2154, + "indexExpression": { + "id": 2153, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2129, + "src": "14431:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14413:24:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 2155, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14438:9:8", + "memberName": "rootsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1389, + "src": "14413:34:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14451:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14413:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14288:164:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526f6f747320666f72207468697320737461746520616c7265616479206578697374", + "id": 2159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14466:36:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6824f57e98af605fc3b03feb3b76bdf32650aedf61a3aa7698b69a981ebba9a7", + "typeString": "literal_string \"Roots for this state already exist\"" + }, + "value": "Roots for this state already exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6824f57e98af605fc3b03feb3b76bdf32650aedf61a3aa7698b69a981ebba9a7", + "typeString": "literal_string \"Roots for this state already exist\"" + } + ], + "id": 2135, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14267:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14267:245:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2161, + "nodeType": "ExpressionStatement", + "src": "14267:245:8" + }, + { + "expression": { + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2162, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2127, + "src": "14522:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2165, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14527:12:8", + "memberName": "rootsByState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1360, + "src": "14522:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$", + "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)" + } + }, + "id": 2166, + "indexExpression": { + "id": 2164, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2129, + "src": "14540:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "14522:24:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2167, + "name": "roots", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "14549:5:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr", + "typeString": "struct IdentityLib.Roots memory" + } + }, + "src": "14522:32:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 2169, + "nodeType": "ExpressionStatement", + "src": "14522:32:8" + } + ] + }, + "documentation": { + "id": 2124, + "nodeType": "StructuredDocumentation", + "src": "14016:151:8", + "text": " @dev write roots to history by state\n @param self identity\n @param state identity state\n @param roots set of roots" + }, + "id": 2171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "writeHistory", + "nameLocation": "14181:12:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2127, + "mutability": "mutable", + "name": "self", + "nameLocation": "14207:4:8", + "nodeType": "VariableDeclaration", + "scope": 2171, + "src": "14194:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 2126, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2125, + "name": "Data", + "nameLocations": [ + "14194:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "14194:4:8" + }, + "referencedDeclaration": 1371, + "src": "14194:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2129, + "mutability": "mutable", + "name": "state", + "nameLocation": "14221:5:8", + "nodeType": "VariableDeclaration", + "scope": 2171, + "src": "14213:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14213:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "roots", + "nameLocation": "14241:5:8", + "nodeType": "VariableDeclaration", + "scope": 2171, + "src": "14228:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr", + "typeString": "struct IdentityLib.Roots" + }, + "typeName": { + "id": 2131, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2130, + "name": "Roots", + "nameLocations": [ + "14228:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1390, + "src": "14228:5:8" + }, + "referencedDeclaration": 1390, + "src": "14228:5:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage_ptr", + "typeString": "struct IdentityLib.Roots" + } + }, + "visibility": "internal" + } + ], + "src": "14193:54:8" + }, + "returnParameters": { + "id": 2134, + "nodeType": "ParameterList", + "parameters": [], + "src": "14257:0:8" + }, + "scope": 2217, + "src": "14172:389:8", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2215, + "nodeType": "Block", + "src": "14868:303:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2184, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2175, + "src": "14899:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2185, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14904:12:8", + "memberName": "rootsByState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1360, + "src": "14899:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$", + "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)" + } + }, + "id": 2187, + "indexExpression": { + "id": 2186, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2177, + "src": "14917:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14899:24:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 2188, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14924:10:8", + "memberName": "claimsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1385, + "src": "14899:35:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14938:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14899:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2191, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2175, + "src": "14959:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2192, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14964:12:8", + "memberName": "rootsByState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1360, + "src": "14959:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$", + "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)" + } + }, + "id": 2194, + "indexExpression": { + "id": 2193, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2177, + "src": "14977:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14959:24:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 2195, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14984:15:8", + "memberName": "revocationsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1387, + "src": "14959:40:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15003:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14959:45:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14899:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2199, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2175, + "src": "15024:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2200, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15029:12:8", + "memberName": "rootsByState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1360, + "src": "15024:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$", + "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)" + } + }, + "id": 2202, + "indexExpression": { + "id": 2201, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2177, + "src": "15042:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15024:24:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "id": 2203, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15049:9:8", + "memberName": "rootsRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 1389, + "src": "15024:34:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15062:1:8", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15024:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "14899:164:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526f6f747320666f72207468697320737461746520646f65736e2774206578697374", + "id": 2207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15077:36:8", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d7041224dbf1aef588efd8de52dba4ae3abf3cc31c9ba0eb5e93b35ed6048ad5", + "typeString": "literal_string \"Roots for this state doesn't exist\"" + }, + "value": "Roots for this state doesn't exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d7041224dbf1aef588efd8de52dba4ae3abf3cc31c9ba0eb5e93b35ed6048ad5", + "typeString": "literal_string \"Roots for this state doesn't exist\"" + } + ], + "id": 2183, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14878:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14878:245:8", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2209, + "nodeType": "ExpressionStatement", + "src": "14878:245:8" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 2210, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2175, + "src": "15140:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data storage pointer" + } + }, + "id": 2211, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15145:12:8", + "memberName": "rootsByState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1360, + "src": "15140:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Roots_$1390_storage_$", + "typeString": "mapping(uint256 => struct IdentityLib.Roots storage ref)" + } + }, + "id": 2213, + "indexExpression": { + "id": 2212, + "name": "state", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2177, + "src": "15158:5:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15140:24:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage", + "typeString": "struct IdentityLib.Roots storage ref" + } + }, + "functionReturnParameters": 2182, + "id": 2214, + "nodeType": "Return", + "src": "15133:31:8" + } + ] + }, + "documentation": { + "id": 2172, + "nodeType": "StructuredDocumentation", + "src": "14567:178:8", + "text": " @dev returns historical claimsTree roots, revocationsTree roots, rootsTree roots\n by state\n @param state identity state\n @return set of roots" + }, + "functionSelector": "0b1a9cd3", + "id": 2216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRootsByState", + "nameLocation": "14759:15:8", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2175, + "mutability": "mutable", + "name": "self", + "nameLocation": "14797:4:8", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "14784:17:8", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + }, + "typeName": { + "id": 2174, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2173, + "name": "Data", + "nameLocations": [ + "14784:4:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "14784:4:8" + }, + "referencedDeclaration": 1371, + "src": "14784:4:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2177, + "mutability": "mutable", + "name": "state", + "nameLocation": "14819:5:8", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "14811:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2176, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14811:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14774:56:8" + }, + "returnParameters": { + "id": 2182, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2181, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "14854:12:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_memory_ptr", + "typeString": "struct IdentityLib.Roots" + }, + "typeName": { + "id": 2180, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2179, + "name": "Roots", + "nameLocations": [ + "14854:5:8" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1390, + "src": "14854:5:8" + }, + "referencedDeclaration": 1390, + "src": "14854:5:8", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Roots_$1390_storage_ptr", + "typeString": "struct IdentityLib.Roots" + } + }, + "visibility": "internal" + } + ], + "src": "14853:14:8" + }, + "scope": 2217, + "src": "14750:421:8", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 2218, + "src": "335:14838:8", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "36:15138:8" + }, + "id": 8 + }, + "@iden3/contracts/lib/Poseidon.sol": { + "ast": { + "absolutePath": "@iden3/contracts/lib/Poseidon.sol", + "exportedSymbols": { + "PoseidonFacade": [ + 2514 + ], + "PoseidonUnit1L": [ + 2230 + ], + "PoseidonUnit2L": [ + 2241 + ], + "PoseidonUnit3L": [ + 2252 + ], + "PoseidonUnit4L": [ + 2263 + ], + "PoseidonUnit5L": [ + 2274 + ], + "PoseidonUnit6L": [ + 2285 + ], + "SpongePoseidon": [ + 2409 + ] + }, + "id": 2515, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2219, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "36:23:9" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PoseidonUnit1L", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 2230, + "linearizedBaseContracts": [ + 2230 + ], + "name": "PoseidonUnit1L", + "nameLocation": "69:14:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2228, + "nodeType": "Block", + "src": "159:2:9", + "statements": [] + }, + "functionSelector": "1caab9a7", + "id": 2229, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "poseidon", + "nameLocation": "99:8:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2229, + "src": "108:19:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_calldata_ptr", + "typeString": "uint256[1]" + }, + "typeName": { + "baseType": { + "id": 2220, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "108:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2222, + "length": { + "hexValue": "31", + "id": 2221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "116:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "ArrayTypeName", + "src": "108:10:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr", + "typeString": "uint256[1]" + } + }, + "visibility": "internal" + } + ], + "src": "107:21:9" + }, + "returnParameters": { + "id": 2227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2226, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2229, + "src": "150:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2225, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "150:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "149:9:9" + }, + "scope": 2230, + "src": "90:71:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2515, + "src": "61:102:9", + "usedErrors": [], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PoseidonUnit2L", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 2241, + "linearizedBaseContracts": [ + 2241 + ], + "name": "PoseidonUnit2L", + "nameLocation": "173:14:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2239, + "nodeType": "Block", + "src": "263:2:9", + "statements": [] + }, + "functionSelector": "29a5f2f6", + "id": 2240, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "poseidon", + "nameLocation": "203:8:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2235, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2234, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2240, + "src": "212:19:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 2231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "212:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2233, + "length": { + "hexValue": "32", + "id": 2232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "220:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "212:10:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + } + ], + "src": "211:21:9" + }, + "returnParameters": { + "id": 2238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2237, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2240, + "src": "254:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "254:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "253:9:9" + }, + "scope": 2241, + "src": "194:71:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2515, + "src": "165:102:9", + "usedErrors": [], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PoseidonUnit3L", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 2252, + "linearizedBaseContracts": [ + 2252 + ], + "name": "PoseidonUnit3L", + "nameLocation": "277:14:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2250, + "nodeType": "Block", + "src": "367:2:9", + "statements": [] + }, + "functionSelector": "25cc70e8", + "id": 2251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "poseidon", + "nameLocation": "307:8:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2245, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "316:19:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_calldata_ptr", + "typeString": "uint256[3]" + }, + "typeName": { + "baseType": { + "id": 2242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "316:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2244, + "length": { + "hexValue": "33", + "id": 2243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "324:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "ArrayTypeName", + "src": "316:10:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" + } + }, + "visibility": "internal" + } + ], + "src": "315:21:9" + }, + "returnParameters": { + "id": 2249, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2248, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "358:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2247, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "358:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "357:9:9" + }, + "scope": 2252, + "src": "298:71:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2515, + "src": "269:102:9", + "usedErrors": [], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PoseidonUnit4L", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 2263, + "linearizedBaseContracts": [ + 2263 + ], + "name": "PoseidonUnit4L", + "nameLocation": "381:14:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2261, + "nodeType": "Block", + "src": "471:2:9", + "statements": [] + }, + "functionSelector": "248f6677", + "id": 2262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "poseidon", + "nameLocation": "411:8:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2257, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2256, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2262, + "src": "420:19:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 2253, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "420:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2255, + "length": { + "hexValue": "34", + "id": 2254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "428:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "420:10:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "visibility": "internal" + } + ], + "src": "419:21:9" + }, + "returnParameters": { + "id": 2260, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2259, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2262, + "src": "462:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "462:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "461:9:9" + }, + "scope": 2263, + "src": "402:71:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2515, + "src": "373:102:9", + "usedErrors": [], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PoseidonUnit5L", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 2274, + "linearizedBaseContracts": [ + 2274 + ], + "name": "PoseidonUnit5L", + "nameLocation": "485:14:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2272, + "nodeType": "Block", + "src": "575:2:9", + "statements": [] + }, + "functionSelector": "4937a258", + "id": 2273, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "poseidon", + "nameLocation": "515:8:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2267, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2273, + "src": "524:19:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2264, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "524:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2266, + "length": { + "hexValue": "35", + "id": 2265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "532:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "524:10:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "visibility": "internal" + } + ], + "src": "523:21:9" + }, + "returnParameters": { + "id": 2271, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2270, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2273, + "src": "566:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2269, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "566:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "565:9:9" + }, + "scope": 2274, + "src": "506:71:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2515, + "src": "477:102:9", + "usedErrors": [], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PoseidonUnit6L", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 2285, + "linearizedBaseContracts": [ + 2285 + ], + "name": "PoseidonUnit6L", + "nameLocation": "589:14:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2283, + "nodeType": "Block", + "src": "679:2:9", + "statements": [] + }, + "functionSelector": "f5b4a788", + "id": 2284, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "poseidon", + "nameLocation": "619:8:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2278, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2284, + "src": "628:19:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_calldata_ptr", + "typeString": "uint256[6]" + }, + "typeName": { + "baseType": { + "id": 2275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "628:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2277, + "length": { + "hexValue": "36", + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "636:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "628:10:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" + } + }, + "visibility": "internal" + } + ], + "src": "627:21:9" + }, + "returnParameters": { + "id": 2282, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2281, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2284, + "src": "670:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2280, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "670:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "669:9:9" + }, + "scope": 2285, + "src": "610:71:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2515, + "src": "581:102:9", + "usedErrors": [], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SpongePoseidon", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 2409, + "linearizedBaseContracts": [ + 2409 + ], + "name": "SpongePoseidon", + "nameLocation": "693:14:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 2288, + "mutability": "constant", + "name": "BATCH_SIZE", + "nameLocation": "739:10:9", + "nodeType": "VariableDeclaration", + "scope": 2409, + "src": "714:39:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2286, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "714:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "value": { + "hexValue": "36", + "id": 2287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "752:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "visibility": "internal" + }, + { + "body": { + "id": 2407, + "nodeType": "Block", + "src": "829:783:9", + "statements": [ + { + "assignments": [ + 2301 + ], + "declarations": [ + { + "constant": false, + "id": 2301, + "mutability": "mutable", + "name": "frame", + "nameLocation": "866:5:9", + "nodeType": "VariableDeclaration", + "scope": 2407, + "src": "839:32:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6]" + }, + "typeName": { + "baseType": { + "id": 2299, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "839:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2300, + "length": { + "id": 2298, + "name": "BATCH_SIZE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2288, + "src": "847:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "ArrayTypeName", + "src": "839:19:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" + } + }, + "visibility": "internal" + } + ], + "id": 2312, + "initialValue": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 2304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "883:1:9", + "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" + } + ], + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "875:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2302, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "875:7:9", + "typeDescriptions": {} + } + }, + "id": 2305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "875:10:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 2306, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "887:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 2307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "890:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 2308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "893:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 2309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "896:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 2310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "899:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2311, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "874:27:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "839:62:9" + }, + { + "assignments": [ + 2314 + ], + "declarations": [ + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "dirty", + "nameLocation": "916:5:9", + "nodeType": "VariableDeclaration", + "scope": 2407, + "src": "911:10:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "911:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 2316, + "initialValue": { + "hexValue": "66616c7365", + "id": 2315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "924:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "nodeType": "VariableDeclarationStatement", + "src": "911:18:9" + }, + { + "assignments": [ + 2318 + ], + "declarations": [ + { + "constant": false, + "id": 2318, + "mutability": "mutable", + "name": "fullHash", + "nameLocation": "947:8:9", + "nodeType": "VariableDeclaration", + "scope": 2407, + "src": "939:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2317, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "939:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2320, + "initialValue": { + "hexValue": "30", + "id": 2319, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "958:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "939:20:9" + }, + { + "assignments": [ + 2322 + ], + "declarations": [ + { + "constant": false, + "id": 2322, + "mutability": "mutable", + "name": "k", + "nameLocation": "976:1:9", + "nodeType": "VariableDeclaration", + "scope": 2407, + "src": "969:8:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2321, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "969:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 2324, + "initialValue": { + "hexValue": "30", + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "980:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "969:12:9" + }, + { + "body": { + "id": 2393, + "nodeType": "Block", + "src": "1034:369:9", + "statements": [ + { + "expression": { + "id": 2338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2336, + "name": "dirty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2314, + "src": "1048:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1056:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1048:12:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2339, + "nodeType": "ExpressionStatement", + "src": "1048:12:9" + }, + { + "expression": { + "id": 2346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2340, + "name": "frame", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "1074:5:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + }, + "id": 2342, + "indexExpression": { + "id": 2341, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2322, + "src": "1080:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1074:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 2343, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "1085:6:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 2345, + "indexExpression": { + "id": 2344, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2326, + "src": "1092:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1085:9:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1074:20:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2347, + "nodeType": "ExpressionStatement", + "src": "1074:20:9" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2348, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2322, + "src": "1112:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2351, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "id": 2349, + "name": "BATCH_SIZE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2288, + "src": "1117:10:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1130:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1117:14:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1112:19:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2391, + "nodeType": "Block", + "src": "1357:36:9", + "statements": [ + { + "expression": { + "id": 2389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1375:3:9", + "subExpression": { + "id": 2388, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2322, + "src": "1375:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2390, + "nodeType": "ExpressionStatement", + "src": "1375:3:9" + } + ] + }, + "id": 2392, + "nodeType": "IfStatement", + "src": "1108:285:9", + "trueBody": { + "id": 2387, + "nodeType": "Block", + "src": "1133:218:9", + "statements": [ + { + "expression": { + "id": 2358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2353, + "name": "fullHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2318, + "src": "1151:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 2356, + "name": "frame", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "1186:5:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + ], + "expression": { + "id": 2354, + "name": "PoseidonUnit6L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2285, + "src": "1162:14:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PoseidonUnit6L_$2285_$", + "typeString": "type(library PoseidonUnit6L)" + } + }, + "id": 2355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1177:8:9", + "memberName": "poseidon", + "nodeType": "MemberAccess", + "referencedDeclaration": 2284, + "src": "1162:23:9", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$6_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[6] memory) pure returns (uint256)" + } + }, + "id": 2357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1162:30:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1151:41:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2359, + "nodeType": "ExpressionStatement", + "src": "1151:41:9" + }, + { + "expression": { + "id": 2362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2360, + "name": "dirty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2314, + "src": "1210:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 2361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1218:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "1210:13:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2363, + "nodeType": "ExpressionStatement", + "src": "1210:13:9" + }, + { + "expression": { + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2364, + "name": "frame", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "1241:5:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1258:1:9", + "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" + } + ], + "id": 2366, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1250:7:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1250:7:9", + "typeDescriptions": {} + } + }, + "id": 2368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1250:10:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1262:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 2370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1265:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1268:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 2372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1271:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1274:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2374, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1249:27:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + }, + "src": "1241:35:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + }, + "id": 2376, + "nodeType": "ExpressionStatement", + "src": "1241:35:9" + }, + { + "expression": { + "id": 2381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2377, + "name": "frame", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "1294:5:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + }, + "id": 2379, + "indexExpression": { + "hexValue": "30", + "id": 2378, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1300:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1294:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2380, + "name": "fullHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2318, + "src": "1305:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1294:19:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2382, + "nodeType": "ExpressionStatement", + "src": "1294:19:9" + }, + { + "expression": { + "id": 2385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2383, + "name": "k", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2322, + "src": "1331:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 2384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1335:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1331:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2386, + "nodeType": "ExpressionStatement", + "src": "1331:5:9" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2329, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2326, + "src": "1010:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 2330, + "name": "values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "1014:6:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 2331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1021:6:9", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1014:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1010:17:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2394, + "initializationExpression": { + "assignments": [ + 2326 + ], + "declarations": [ + { + "constant": false, + "id": 2326, + "mutability": "mutable", + "name": "i", + "nameLocation": "1003:1:9", + "nodeType": "VariableDeclaration", + "scope": 2394, + "src": "996:8:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2325, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "996:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 2328, + "initialValue": { + "hexValue": "30", + "id": 2327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1007:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "996:12:9" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 2334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1029:3:9", + "subExpression": { + "id": 2333, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2326, + "src": "1029:1:9", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2335, + "nodeType": "ExpressionStatement", + "src": "1029:3:9" + }, + "nodeType": "ForStatement", + "src": "991:412:9" + }, + { + "condition": { + "id": 2395, + "name": "dirty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2314, + "src": "1416:5:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2404, + "nodeType": "IfStatement", + "src": "1412:169:9", + "trueBody": { + "id": 2403, + "nodeType": "Block", + "src": "1423:158:9", + "statements": [ + { + "expression": { + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2396, + "name": "fullHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2318, + "src": "1529:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 2399, + "name": "frame", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2301, + "src": "1564:5:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$6_memory_ptr", + "typeString": "uint256[6] memory" + } + ], + "expression": { + "id": 2397, + "name": "PoseidonUnit6L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2285, + "src": "1540:14:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PoseidonUnit6L_$2285_$", + "typeString": "type(library PoseidonUnit6L)" + } + }, + "id": 2398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1555:8:9", + "memberName": "poseidon", + "nodeType": "MemberAccess", + "referencedDeclaration": 2284, + "src": "1540:23:9", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$6_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[6] memory) pure returns (uint256)" + } + }, + "id": 2400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1540:30:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1529:41:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2402, + "nodeType": "ExpressionStatement", + "src": "1529:41:9" + } + ] + } + }, + { + "expression": { + "id": 2405, + "name": "fullHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2318, + "src": "1597:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2295, + "id": 2406, + "nodeType": "Return", + "src": "1590:15:9" + } + ] + }, + "functionSelector": "40ec6e49", + "id": 2408, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hash", + "nameLocation": "769:4:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "values", + "nameLocation": "791:6:9", + "nodeType": "VariableDeclaration", + "scope": 2408, + "src": "774:23:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2289, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "774:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2290, + "nodeType": "ArrayTypeName", + "src": "774:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "773:25:9" + }, + "returnParameters": { + "id": 2295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2408, + "src": "820:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2293, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "820:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "819:9:9" + }, + "scope": 2409, + "src": "760:852:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2515, + "src": "685:929:9", + "usedErrors": [], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PoseidonFacade", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 2514, + "linearizedBaseContracts": [ + 2514 + ], + "name": "PoseidonFacade", + "nameLocation": "1624:14:9", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2423, + "nodeType": "Block", + "src": "1718:51:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2420, + "name": "el", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2413, + "src": "1759:2:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_calldata_ptr", + "typeString": "uint256[1] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$1_calldata_ptr", + "typeString": "uint256[1] calldata" + } + ], + "expression": { + "id": 2418, + "name": "PoseidonUnit1L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2230, + "src": "1735:14:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PoseidonUnit1L_$2230_$", + "typeString": "type(library PoseidonUnit1L)" + } + }, + "id": 2419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1750:8:9", + "memberName": "poseidon", + "nodeType": "MemberAccess", + "referencedDeclaration": 2229, + "src": "1735:23:9", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$1_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[1] memory) pure returns (uint256)" + } + }, + "id": 2421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1735:27:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2417, + "id": 2422, + "nodeType": "Return", + "src": "1728:34:9" + } + ] + }, + "functionSelector": "8844c1a6", + "id": 2424, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "poseidon1", + "nameLocation": "1654:9:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2413, + "mutability": "mutable", + "name": "el", + "nameLocation": "1684:2:9", + "nodeType": "VariableDeclaration", + "scope": 2424, + "src": "1664:22:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_calldata_ptr", + "typeString": "uint256[1]" + }, + "typeName": { + "baseType": { + "id": 2410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1664:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2412, + "length": { + "hexValue": "31", + "id": 2411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1672:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "ArrayTypeName", + "src": "1664:10:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$1_storage_ptr", + "typeString": "uint256[1]" + } + }, + "visibility": "internal" + } + ], + "src": "1663:24:9" + }, + "returnParameters": { + "id": 2417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2416, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2424, + "src": "1709:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2415, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1709:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1708:9:9" + }, + "scope": 2514, + "src": "1645:124:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2438, + "nodeType": "Block", + "src": "1848:51:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2435, + "name": "el", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2428, + "src": "1889:2:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2] calldata" + } + ], + "expression": { + "id": 2433, + "name": "PoseidonUnit2L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2241, + "src": "1865:14:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PoseidonUnit2L_$2241_$", + "typeString": "type(library PoseidonUnit2L)" + } + }, + "id": 2434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1880:8:9", + "memberName": "poseidon", + "nodeType": "MemberAccess", + "referencedDeclaration": 2240, + "src": "1865:23:9", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$2_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[2] memory) pure returns (uint256)" + } + }, + "id": 2436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1865:27:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2432, + "id": 2437, + "nodeType": "Return", + "src": "1858:34:9" + } + ] + }, + "functionSelector": "47632628", + "id": 2439, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "poseidon2", + "nameLocation": "1784:9:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2428, + "mutability": "mutable", + "name": "el", + "nameLocation": "1814:2:9", + "nodeType": "VariableDeclaration", + "scope": 2439, + "src": "1794:22:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 2425, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1794:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2427, + "length": { + "hexValue": "32", + "id": 2426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1802:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1794:10:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + } + ], + "src": "1793:24:9" + }, + "returnParameters": { + "id": 2432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2431, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2439, + "src": "1839:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2430, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1839:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1838:9:9" + }, + "scope": 2514, + "src": "1775:124:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2453, + "nodeType": "Block", + "src": "1978:51:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2450, + "name": "el", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2443, + "src": "2019:2:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_calldata_ptr", + "typeString": "uint256[3] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$3_calldata_ptr", + "typeString": "uint256[3] calldata" + } + ], + "expression": { + "id": 2448, + "name": "PoseidonUnit3L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2252, + "src": "1995:14:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PoseidonUnit3L_$2252_$", + "typeString": "type(library PoseidonUnit3L)" + } + }, + "id": 2449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2010:8:9", + "memberName": "poseidon", + "nodeType": "MemberAccess", + "referencedDeclaration": 2251, + "src": "1995:23:9", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$3_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[3] memory) pure returns (uint256)" + } + }, + "id": 2451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1995:27:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2447, + "id": 2452, + "nodeType": "Return", + "src": "1988:34:9" + } + ] + }, + "functionSelector": "27babae2", + "id": 2454, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "poseidon3", + "nameLocation": "1914:9:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2444, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2443, + "mutability": "mutable", + "name": "el", + "nameLocation": "1944:2:9", + "nodeType": "VariableDeclaration", + "scope": 2454, + "src": "1924:22:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_calldata_ptr", + "typeString": "uint256[3]" + }, + "typeName": { + "baseType": { + "id": 2440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1924:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2442, + "length": { + "hexValue": "33", + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1932:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "ArrayTypeName", + "src": "1924:10:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" + } + }, + "visibility": "internal" + } + ], + "src": "1923:24:9" + }, + "returnParameters": { + "id": 2447, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2446, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2454, + "src": "1969:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2445, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1969:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1968:9:9" + }, + "scope": 2514, + "src": "1905:124:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2468, + "nodeType": "Block", + "src": "2108:51:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2465, + "name": "el", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2458, + "src": "2149:2:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4] calldata" + } + ], + "expression": { + "id": 2463, + "name": "PoseidonUnit4L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2263, + "src": "2125:14:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PoseidonUnit4L_$2263_$", + "typeString": "type(library PoseidonUnit4L)" + } + }, + "id": 2464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2140:8:9", + "memberName": "poseidon", + "nodeType": "MemberAccess", + "referencedDeclaration": 2262, + "src": "2125:23:9", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$4_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[4] memory) pure returns (uint256)" + } + }, + "id": 2466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2125:27:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2462, + "id": 2467, + "nodeType": "Return", + "src": "2118:34:9" + } + ] + }, + "functionSelector": "ac490f26", + "id": 2469, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "poseidon4", + "nameLocation": "2044:9:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2459, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2458, + "mutability": "mutable", + "name": "el", + "nameLocation": "2074:2:9", + "nodeType": "VariableDeclaration", + "scope": 2469, + "src": "2054:22:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_calldata_ptr", + "typeString": "uint256[4]" + }, + "typeName": { + "baseType": { + "id": 2455, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2054:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2457, + "length": { + "hexValue": "34", + "id": 2456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2062:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "ArrayTypeName", + "src": "2054:10:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$4_storage_ptr", + "typeString": "uint256[4]" + } + }, + "visibility": "internal" + } + ], + "src": "2053:24:9" + }, + "returnParameters": { + "id": 2462, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2461, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2469, + "src": "2099:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2460, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2099:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2098:9:9" + }, + "scope": 2514, + "src": "2035:124:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2483, + "nodeType": "Block", + "src": "2238:51:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2480, + "name": "el", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2473, + "src": "2279:2:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5] calldata" + } + ], + "expression": { + "id": 2478, + "name": "PoseidonUnit5L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2274, + "src": "2255:14:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PoseidonUnit5L_$2274_$", + "typeString": "type(library PoseidonUnit5L)" + } + }, + "id": 2479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2270:8:9", + "memberName": "poseidon", + "nodeType": "MemberAccess", + "referencedDeclaration": 2273, + "src": "2255:23:9", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$5_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[5] memory) pure returns (uint256)" + } + }, + "id": 2481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2255:27:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2477, + "id": 2482, + "nodeType": "Return", + "src": "2248:34:9" + } + ] + }, + "functionSelector": "c2720d54", + "id": 2484, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "poseidon5", + "nameLocation": "2174:9:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2474, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2473, + "mutability": "mutable", + "name": "el", + "nameLocation": "2204:2:9", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2184:22:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_calldata_ptr", + "typeString": "uint256[5]" + }, + "typeName": { + "baseType": { + "id": 2470, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2184:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2472, + "length": { + "hexValue": "35", + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2192:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "nodeType": "ArrayTypeName", + "src": "2184:10:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$5_storage_ptr", + "typeString": "uint256[5]" + } + }, + "visibility": "internal" + } + ], + "src": "2183:24:9" + }, + "returnParameters": { + "id": 2477, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2476, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2484, + "src": "2229:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2475, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2229:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2228:9:9" + }, + "scope": 2514, + "src": "2165:124:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2498, + "nodeType": "Block", + "src": "2368:51:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2495, + "name": "el", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2488, + "src": "2409:2:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_calldata_ptr", + "typeString": "uint256[6] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$6_calldata_ptr", + "typeString": "uint256[6] calldata" + } + ], + "expression": { + "id": 2493, + "name": "PoseidonUnit6L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2285, + "src": "2385:14:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PoseidonUnit6L_$2285_$", + "typeString": "type(library PoseidonUnit6L)" + } + }, + "id": 2494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2400:8:9", + "memberName": "poseidon", + "nodeType": "MemberAccess", + "referencedDeclaration": 2284, + "src": "2385:23:9", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$6_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[6] memory) pure returns (uint256)" + } + }, + "id": 2496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2385:27:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2492, + "id": 2497, + "nodeType": "Return", + "src": "2378:34:9" + } + ] + }, + "functionSelector": "db809cd5", + "id": 2499, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "poseidon6", + "nameLocation": "2304:9:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2488, + "mutability": "mutable", + "name": "el", + "nameLocation": "2334:2:9", + "nodeType": "VariableDeclaration", + "scope": 2499, + "src": "2314:22:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_calldata_ptr", + "typeString": "uint256[6]" + }, + "typeName": { + "baseType": { + "id": 2485, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2314:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2487, + "length": { + "hexValue": "36", + "id": 2486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2322:1:9", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "2314:10:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$6_storage_ptr", + "typeString": "uint256[6]" + } + }, + "visibility": "internal" + } + ], + "src": "2313:24:9" + }, + "returnParameters": { + "id": 2492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2491, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2499, + "src": "2359:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2359:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2358:9:9" + }, + "scope": 2514, + "src": "2295:124:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 2512, + "nodeType": "Block", + "src": "2502:47:9", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2509, + "name": "el", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "2539:2:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + ], + "expression": { + "id": 2507, + "name": "SpongePoseidon", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2409, + "src": "2519:14:9", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SpongePoseidon_$2409_$", + "typeString": "type(library SpongePoseidon)" + } + }, + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2534:4:9", + "memberName": "hash", + "nodeType": "MemberAccess", + "referencedDeclaration": 2408, + "src": "2519:19:9", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[] memory) pure returns (uint256)" + } + }, + "id": 2510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2519:23:9", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2506, + "id": 2511, + "nodeType": "Return", + "src": "2512:30:9" + } + ] + }, + "functionSelector": "a8ba0b28", + "id": 2513, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "poseidonSponge", + "nameLocation": "2434:14:9", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "el", + "nameLocation": "2468:2:9", + "nodeType": "VariableDeclaration", + "scope": 2513, + "src": "2449:21:9", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2500, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2449:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2501, + "nodeType": "ArrayTypeName", + "src": "2449:9:9", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "2448:23:9" + }, + "returnParameters": { + "id": 2506, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2505, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2513, + "src": "2493:7:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2504, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2493:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2492:9:9" + }, + "scope": 2514, + "src": "2425:124:9", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "scope": 2515, + "src": "1616:935:9", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "36:2516:9" + }, + "id": 9 + }, + "@iden3/contracts/lib/PrimitiveTypeUtils.sol": { + "ast": { + "absolutePath": "@iden3/contracts/lib/PrimitiveTypeUtils.sol", + "exportedSymbols": { + "BytesLib": [ + 18568 + ], + "PrimitiveTypeUtils": [ + 2915 + ] + }, + "id": 2916, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2516, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "36:23:10" + }, + { + "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", + "file": "solidity-bytes-utils/contracts/BytesLib.sol", + "id": 2518, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 2916, + "sourceUnit": 18569, + "src": "61:69:10", + "symbolAliases": [ + { + "foreign": { + "id": 2517, + "name": "BytesLib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18568, + "src": "69:8:10", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "PrimitiveTypeUtils", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 2915, + "linearizedBaseContracts": [ + 2915 + ], + "name": "PrimitiveTypeUtils", + "nameLocation": "140:18:10", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2534, + "nodeType": "Block", + "src": "282:97:10", + "statements": [ + { + "expression": { + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2526, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2524, + "src": "292:1:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "3332", + "id": 2529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "306:2:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + } + ], + "id": 2528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "296:9:10", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2527, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "300:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "296:13:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "292:17:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "292:17:10" + }, + { + "AST": { + "nativeSrc": "328:45:10", + "nodeType": "YulBlock", + "src": "328:45:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "b", + "nativeSrc": "353:1:10", + "nodeType": "YulIdentifier", + "src": "353:1:10" + }, + { + "kind": "number", + "nativeSrc": "356:2:10", + "nodeType": "YulLiteral", + "src": "356:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "349:3:10", + "nodeType": "YulIdentifier", + "src": "349:3:10" + }, + "nativeSrc": "349:10:10", + "nodeType": "YulFunctionCall", + "src": "349:10:10" + }, + { + "name": "x", + "nativeSrc": "361:1:10", + "nodeType": "YulIdentifier", + "src": "361:1:10" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "342:6:10", + "nodeType": "YulIdentifier", + "src": "342:6:10" + }, + "nativeSrc": "342:21:10", + "nodeType": "YulFunctionCall", + "src": "342:21:10" + }, + "nativeSrc": "342:21:10", + "nodeType": "YulExpressionStatement", + "src": "342:21:10" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2524, + "isOffset": false, + "isSlot": false, + "src": "353:1:10", + "valueSize": 1 + }, + { + "declaration": 2521, + "isOffset": false, + "isSlot": false, + "src": "361:1:10", + "valueSize": 1 + } + ], + "id": 2533, + "nodeType": "InlineAssembly", + "src": "319:54:10" + } + ] + }, + "documentation": { + "id": 2519, + "nodeType": "StructuredDocumentation", + "src": "165:38:10", + "text": " @dev uint256ToBytes" + }, + "id": 2535, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uint256ToBytes", + "nameLocation": "217:14:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2521, + "mutability": "mutable", + "name": "x", + "nameLocation": "240:1:10", + "nodeType": "VariableDeclaration", + "scope": 2535, + "src": "232:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2520, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "232:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "231:11:10" + }, + "returnParameters": { + "id": 2525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2524, + "mutability": "mutable", + "name": "b", + "nameLocation": "279:1:10", + "nodeType": "VariableDeclaration", + "scope": 2535, + "src": "266:14:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2523, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "266:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "265:16:10" + }, + "scope": 2915, + "src": "208:171:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2631, + "nodeType": "Block", + "src": "502:1029:10", + "statements": [ + { + "expression": { + "id": 2545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2543, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "512:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2544, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2538, + "src": "516:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "512:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2546, + "nodeType": "ExpressionStatement", + "src": "512:9:10" + }, + { + "expression": { + "id": 2563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2547, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "554:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2548, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "572:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307846463030464630304646303046463030464630304646303046463030464630304646303046463030464630304646303046463030464630304646303046463030", + "id": 2549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "576:66:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_115341536360906404779899502576747487978354537254490211650198994186870666100480_by_1", + "typeString": "int_const 1153...(70 digits omitted)...0480" + }, + "value": "0xFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00" + }, + "src": "572:70:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2551, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "571:72:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 2552, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "647:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "571:77:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2554, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "570:79:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2555, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "666:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307830304646303046463030464630304646303046463030464630304646303046463030464630304646303046463030464630304646303046463030464630304646", + "id": 2556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "670:66:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_450552876409790643671482431940419874915447411150352389258589821042463539455_by_1", + "typeString": "int_const 4505...(67 digits omitted)...9455" + }, + "value": "0x00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF" + }, + "src": "666:70:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2558, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "665:72:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "38", + "id": 2559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "741:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "665:77:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2561, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "664:79:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "570:173:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "554:189:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2564, + "nodeType": "ExpressionStatement", + "src": "554:189:10" + }, + { + "expression": { + "id": 2581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2565, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "788:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2566, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "806:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307846464646303030304646464630303030464646463030303046464646303030304646464630303030464646463030303046464646303030304646464630303030", + "id": 2567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "810:66:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_115790322417210952336529717160220497262186272106556906860092653394915770695680_by_1", + "typeString": "int_const 1157...(70 digits omitted)...5680" + }, + "value": "0xFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000" + }, + "src": "806:70:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2569, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "805:72:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 2570, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "881:2:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "805:78:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2572, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "804:80:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2573, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "901:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307830303030464646463030303046464646303030304646464630303030464646463030303046464646303030304646464630303030464646463030303046464646", + "id": 2574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "905:66:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_1766820105243087041267848467410591083712559083657179364930612997358944255_by_1", + "typeString": "int_const 1766...(65 digits omitted)...4255" + }, + "value": "0x0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF" + }, + "src": "901:70:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2576, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "900:72:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "3136", + "id": 2577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "976:2:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "900:78:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2579, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "899:80:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "804:175:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "788:191:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2582, + "nodeType": "ExpressionStatement", + "src": "788:191:10" + }, + { + "expression": { + "id": 2599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2583, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "1024:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2584, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "1042:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307846464646464646463030303030303030464646464646464630303030303030304646464646464646303030303030303046464646464646463030303030303030", + "id": 2585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1046:66:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_115792089210356248762697446947946071893095522863849111501270640965525260206080_by_1", + "typeString": "int_const 1157...(70 digits omitted)...6080" + }, + "value": "0xFFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000" + }, + "src": "1042:70:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2587, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1041:72:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3332", + "id": 2588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1117:2:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "1041:78:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2590, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1040:80:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2591, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "1137:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307830303030303030304646464646464646303030303030303046464646464646463030303030303030464646464646464630303030303030304646464646464646", + "id": 2592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1141:66:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_26959946660873538060741835960174461801791452538186943042387869433855_by_1", + "typeString": "int_const 2695...(60 digits omitted)...3855" + }, + "value": "0x00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF" + }, + "src": "1137:70:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2594, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1136:72:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "3332", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1212:2:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "1136:78:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2597, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1135:80:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1040:175:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1024:191:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2600, + "nodeType": "ExpressionStatement", + "src": "1024:191:10" + }, + { + "expression": { + "id": 2617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2601, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "1260:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2602, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "1278:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307846464646464646464646464646464646303030303030303030303030303030304646464646464646464646464646464630303030303030303030303030303030", + "id": 2603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1282:66:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_115792089237316195417293883273301227089774477609353836086800156426807153786880_by_1", + "typeString": "int_const 1157...(70 digits omitted)...6880" + }, + "value": "0xFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF0000000000000000" + }, + "src": "1278:70:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2605, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1277:72:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3634", + "id": 2606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1353:2:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "1277:78:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2608, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1276:80:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2609, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "1373:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307830303030303030303030303030303030464646464646464646464646464646463030303030303030303030303030303046464646464646464646464646464646", + "id": 2610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1377:66:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_6277101735386680763495507056286727952657427581105975853055_by_1", + "typeString": "int_const 6277...(50 digits omitted)...3055" + }, + "value": "0x0000000000000000FFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF" + }, + "src": "1373:70:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2612, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1372:72:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "3634", + "id": 2613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1448:2:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "1372:78:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2615, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1371:80:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1276:175:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1260:191:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2618, + "nodeType": "ExpressionStatement", + "src": "1260:191:10" + }, + { + "expression": { + "id": 2629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2619, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "1497:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2620, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "1502:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "313238", + "id": 2621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1507:3:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "1502:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2623, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1501:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2624, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2541, + "src": "1515:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "313238", + "id": 2625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1520:3:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "1515:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2627, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1514:10:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1501:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1497:27:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2630, + "nodeType": "ExpressionStatement", + "src": "1497:27:10" + } + ] + }, + "documentation": { + "id": 2536, + "nodeType": "StructuredDocumentation", + "src": "385:39:10", + "text": " @dev reverse uint256" + }, + "id": 2632, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "reverseUint256", + "nameLocation": "438:14:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2538, + "mutability": "mutable", + "name": "input", + "nameLocation": "461:5:10", + "nodeType": "VariableDeclaration", + "scope": 2632, + "src": "453:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2537, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "453:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "452:15:10" + }, + "returnParameters": { + "id": 2542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2541, + "mutability": "mutable", + "name": "v", + "nameLocation": "499:1:10", + "nodeType": "VariableDeclaration", + "scope": 2632, + "src": "491:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "491:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "490:11:10" + }, + "scope": 2915, + "src": "429:1102:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2656, + "nodeType": "Block", + "src": "1650:82:10", + "statements": [ + { + "expression": { + "id": 2642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2640, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2638, + "src": "1660:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2641, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2635, + "src": "1664:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "1660:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 2643, + "nodeType": "ExpressionStatement", + "src": "1660:9:10" + }, + { + "expression": { + "id": 2654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2644, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2638, + "src": "1702:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 2647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2645, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2638, + "src": "1707:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 2646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1712:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "1707:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "id": 2648, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1706:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 2651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2649, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2638, + "src": "1718:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "38", + "id": 2650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1723:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "1718:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "id": 2652, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1717:8:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "1706:19:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "1702:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 2655, + "nodeType": "ExpressionStatement", + "src": "1702:23:10" + } + ] + }, + "documentation": { + "id": 2633, + "nodeType": "StructuredDocumentation", + "src": "1537:38:10", + "text": " @dev reverse uint16" + }, + "id": 2657, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "reverseUint16", + "nameLocation": "1589:13:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2636, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2635, + "mutability": "mutable", + "name": "input", + "nameLocation": "1610:5:10", + "nodeType": "VariableDeclaration", + "scope": 2657, + "src": "1603:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2634, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1603:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "src": "1602:14:10" + }, + "returnParameters": { + "id": 2639, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2638, + "mutability": "mutable", + "name": "v", + "nameLocation": "1647:1:10", + "nodeType": "VariableDeclaration", + "scope": 2657, + "src": "1640:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2637, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1640:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "src": "1639:10:10" + }, + "scope": 2915, + "src": "1580:152:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2699, + "nodeType": "Block", + "src": "1851:182:10", + "statements": [ + { + "expression": { + "id": 2667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2665, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "1861:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2666, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2660, + "src": "1865:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1861:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2668, + "nodeType": "ExpressionStatement", + "src": "1861:9:10" + }, + { + "expression": { + "id": 2685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2669, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "1903:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2670, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "1909:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "30784646303046463030", + "id": 2671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1913:10:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_4278255360_by_1", + "typeString": "int_const 4278255360" + }, + "value": "0xFF00FF00" + }, + "src": "1909:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 2673, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1908:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "38", + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1928:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "1908:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 2676, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1907:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2677, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "1935:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "30783030464630304646", + "id": 2678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1939:10:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_16711935_by_1", + "typeString": "int_const 16711935" + }, + "value": "0x00FF00FF" + }, + "src": "1935:14:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 2680, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1934:16:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "38", + "id": 2681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1954:1:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "1934:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 2683, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1933:23:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1907:49:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "1903:53:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2686, + "nodeType": "ExpressionStatement", + "src": "1903:53:10" + }, + { + "expression": { + "id": 2697, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2687, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "2001:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2688, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "2006:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "3136", + "id": 2689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2011:2:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "2006:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 2691, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2005:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2692, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "2018:1:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "3136", + "id": 2693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2023:2:10", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "2018:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "id": 2695, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2017:9:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "2005:21:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "2001:25:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 2698, + "nodeType": "ExpressionStatement", + "src": "2001:25:10" + } + ] + }, + "documentation": { + "id": 2658, + "nodeType": "StructuredDocumentation", + "src": "1738:38:10", + "text": " @dev reverse uint32" + }, + "id": 2700, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "reverseUint32", + "nameLocation": "1790:13:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2661, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2660, + "mutability": "mutable", + "name": "input", + "nameLocation": "1811:5:10", + "nodeType": "VariableDeclaration", + "scope": 2700, + "src": "1804:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2659, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1804:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "1803:14:10" + }, + "returnParameters": { + "id": 2664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2663, + "mutability": "mutable", + "name": "v", + "nameLocation": "1848:1:10", + "nodeType": "VariableDeclaration", + "scope": 2700, + "src": "1841:8:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2662, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1841:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "1840:10:10" + }, + "scope": 2915, + "src": "1781:252:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2742, + "nodeType": "Block", + "src": "2169:180:10", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2712, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2703, + "src": "2189:1:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2183:5:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2710, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2183:5:10", + "typeDescriptions": {} + } + }, + "id": 2713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2183:8:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2192:6:10", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2183:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 2717, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2705, + "src": "2208:1:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2202:5:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2715, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2202:5:10", + "typeDescriptions": {} + } + }, + "id": 2718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2202:8:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2211:6:10", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2202:15:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2183:34:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2724, + "nodeType": "IfStatement", + "src": "2179:77:10", + "trueBody": { + "id": 2723, + "nodeType": "Block", + "src": "2219:37:10", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2240:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2709, + "id": 2722, + "nodeType": "Return", + "src": "2233:12:10" + } + ] + } + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 2739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "components": [ + { + "id": 2728, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2703, + "src": "2301:1:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "id": 2729, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2300:3:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2726, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "2283:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2287:12:10", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "2283:16:10", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2283:21:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2725, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "2273:9:10", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2273:32:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "components": [ + { + "id": 2735, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2705, + "src": "2337:1:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "id": 2736, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2336:3:10", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2733, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "2319:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2323:12:10", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "2319:16:10", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2319:21:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2732, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "2309:9:10", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2309:32:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "2273:68:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 2740, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2272:70:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2709, + "id": 2741, + "nodeType": "Return", + "src": "2265:77:10" + } + ] + }, + "documentation": { + "id": 2701, + "nodeType": "StructuredDocumentation", + "src": "2039:38:10", + "text": " @dev compareStrings" + }, + "id": 2743, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "compareStrings", + "nameLocation": "2091:14:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2703, + "mutability": "mutable", + "name": "a", + "nameLocation": "2120:1:10", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "2106:15:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2702, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2106:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2705, + "mutability": "mutable", + "name": "b", + "nameLocation": "2137:1:10", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "2123:15:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2704, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2123:6:10", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2105:34:10" + }, + "returnParameters": { + "id": 2709, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2708, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2743, + "src": "2163:4:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2707, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2163:4:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2162:6:10" + }, + "scope": 2915, + "src": "2082:267:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2759, + "nodeType": "Block", + "src": "2712:43:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2755, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2746, + "src": "2745:1:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2737:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2753, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2737:7:10", + "typeDescriptions": {} + } + }, + "id": 2756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2737:10:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2729:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2729:7:10", + "typeDescriptions": {} + } + }, + "id": 2757, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2729:19:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2750, + "id": 2758, + "nodeType": "Return", + "src": "2722:26:10" + } + ] + }, + "documentation": { + "id": 2744, + "nodeType": "StructuredDocumentation", + "src": "2355:271:10", + "text": " @dev padRightToUint256 shift left 12 bytes\n @param b, bytes array with max length 32, other bytes are cut. e.g. 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n @return value e.g 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000" + }, + "id": 2760, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "padRightToUint256", + "nameLocation": "2640:17:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2746, + "mutability": "mutable", + "name": "b", + "nameLocation": "2671:1:10", + "nodeType": "VariableDeclaration", + "scope": 2760, + "src": "2658:14:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2745, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2658:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2657:16:10" + }, + "returnParameters": { + "id": 2750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2749, + "mutability": "mutable", + "name": "value", + "nameLocation": "2705:5:10", + "nodeType": "VariableDeclaration", + "scope": 2760, + "src": "2697:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2748, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2697:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2696:15:10" + }, + "scope": 2915, + "src": "2631:124:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2769, + "nodeType": "Block", + "src": "2883:76:10", + "statements": [ + { + "AST": { + "nativeSrc": "2902:51:10", + "nodeType": "YulBlock", + "src": "2902:51:10", + "statements": [ + { + "nativeSrc": "2916:27:10", + "nodeType": "YulAssignment", + "src": "2916:27:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "bys", + "nativeSrc": "2934:3:10", + "nodeType": "YulIdentifier", + "src": "2934:3:10" + }, + { + "kind": "number", + "nativeSrc": "2939:2:10", + "nodeType": "YulLiteral", + "src": "2939:2:10", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2930:3:10", + "nodeType": "YulIdentifier", + "src": "2930:3:10" + }, + "nativeSrc": "2930:12:10", + "nodeType": "YulFunctionCall", + "src": "2930:12:10" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2924:5:10", + "nodeType": "YulIdentifier", + "src": "2924:5:10" + }, + "nativeSrc": "2924:19:10", + "nodeType": "YulFunctionCall", + "src": "2924:19:10" + }, + "variableNames": [ + { + "name": "addr", + "nativeSrc": "2916:4:10", + "nodeType": "YulIdentifier", + "src": "2916:4:10" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 2766, + "isOffset": false, + "isSlot": false, + "src": "2916:4:10", + "valueSize": 1 + }, + { + "declaration": 2763, + "isOffset": false, + "isSlot": false, + "src": "2934:3:10", + "valueSize": 1 + } + ], + "id": 2768, + "nodeType": "InlineAssembly", + "src": "2893:60:10" + } + ] + }, + "documentation": { + "id": 2761, + "nodeType": "StructuredDocumentation", + "src": "2761:38:10", + "text": " @dev bytesToAddress" + }, + "id": 2770, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "bytesToAddress", + "nameLocation": "2813:14:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2763, + "mutability": "mutable", + "name": "bys", + "nameLocation": "2841:3:10", + "nodeType": "VariableDeclaration", + "scope": 2770, + "src": "2828:16:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2762, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2828:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2827:18:10" + }, + "returnParameters": { + "id": 2767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2766, + "mutability": "mutable", + "name": "addr", + "nameLocation": "2877:4:10", + "nodeType": "VariableDeclaration", + "scope": 2770, + "src": "2869:12:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2869:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2868:14:10" + }, + "scope": 2915, + "src": "2804:155:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2786, + "nodeType": "Block", + "src": "3122:60:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2782, + "name": "preBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2773, + "src": "3155:8:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2783, + "name": "postBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2775, + "src": "3165:9:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 2780, + "name": "BytesLib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18568, + "src": "3139:8:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_BytesLib_$18568_$", + "typeString": "type(library BytesLib)" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3148:6:10", + "memberName": "concat", + "nodeType": "MemberAccess", + "referencedDeclaration": 18253, + "src": "3139:15:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,bytes memory) pure returns (bytes memory)" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3139:36:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2779, + "id": 2785, + "nodeType": "Return", + "src": "3132:43:10" + } + ] + }, + "documentation": { + "id": 2771, + "nodeType": "StructuredDocumentation", + "src": "2965:30:10", + "text": " @dev concat" + }, + "id": 2787, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "concat", + "nameLocation": "3009:6:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2773, + "mutability": "mutable", + "name": "preBytes", + "nameLocation": "3038:8:10", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "3025:21:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2772, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3025:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2775, + "mutability": "mutable", + "name": "postBytes", + "nameLocation": "3069:9:10", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "3056:22:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2774, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3056:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3015:69:10" + }, + "returnParameters": { + "id": 2779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2778, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "3108:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2777, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3108:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3107:14:10" + }, + "scope": 2915, + "src": "3000:182:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2806, + "nodeType": "Block", + "src": "3353:58:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2801, + "name": "bys", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2790, + "src": "3385:3:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 2802, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2792, + "src": "3390:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 2803, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2794, + "src": "3397:6:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2799, + "name": "BytesLib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18568, + "src": "3370:8:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_BytesLib_$18568_$", + "typeString": "type(library BytesLib)" + } + }, + "id": 2800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3379:5:10", + "memberName": "slice", + "nodeType": "MemberAccess", + "referencedDeclaration": 18299, + "src": "3370:14:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,uint256,uint256) pure returns (bytes memory)" + } + }, + "id": 2804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3370:34:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2798, + "id": 2805, + "nodeType": "Return", + "src": "3363:41:10" + } + ] + }, + "documentation": { + "id": 2788, + "nodeType": "StructuredDocumentation", + "src": "3188:29:10", + "text": " @dev slice" + }, + "id": 2807, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "slice", + "nameLocation": "3231:5:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2790, + "mutability": "mutable", + "name": "bys", + "nameLocation": "3259:3:10", + "nodeType": "VariableDeclaration", + "scope": 2807, + "src": "3246:16:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2789, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3246:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2792, + "mutability": "mutable", + "name": "start", + "nameLocation": "3280:5:10", + "nodeType": "VariableDeclaration", + "scope": 2807, + "src": "3272:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2791, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3272:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2794, + "mutability": "mutable", + "name": "length", + "nameLocation": "3303:6:10", + "nodeType": "VariableDeclaration", + "scope": 2807, + "src": "3295:14:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2793, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3295:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3236:79:10" + }, + "returnParameters": { + "id": 2798, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2797, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2807, + "src": "3339:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2796, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3339:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3338:14:10" + }, + "scope": 2915, + "src": "3222:189:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2823, + "nodeType": "Block", + "src": "3909:47:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2819, + "name": "_addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2810, + "src": "3942:5:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2818, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3934:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2817, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "3934:7:10", + "typeDescriptions": {} + } + }, + "id": 2820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3934:14:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3926:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2815, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3926:7:10", + "typeDescriptions": {} + } + }, + "id": 2821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3926:23:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2814, + "id": 2822, + "nodeType": "Return", + "src": "3919:30:10" + } + ] + }, + "documentation": { + "id": 2808, + "nodeType": "StructuredDocumentation", + "src": "3417:414:10", + "text": " @dev addressToUint256 converts address to uint256 which lower 20 bytes\n is an address in Big Endian\n @param _addr is ethereum address: eg.0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n which as 0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266 converted to uint160\n @return uint256 representation of address 1390849295786071768276380950238675083608645509734" + }, + "id": 2824, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addressToUint256", + "nameLocation": "3845:16:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2810, + "mutability": "mutable", + "name": "_addr", + "nameLocation": "3870:5:10", + "nodeType": "VariableDeclaration", + "scope": 2824, + "src": "3862:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2809, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3862:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3861:15:10" + }, + "returnParameters": { + "id": 2814, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2813, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2824, + "src": "3900:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2812, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3900:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3899:9:10" + }, + "scope": 2915, + "src": "3836:120:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2853, + "nodeType": "Block", + "src": "4443:224:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2833, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2827, + "src": "4474:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 2838, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2827, + "src": "4499:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4491:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2836, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "4491:7:10", + "typeDescriptions": {} + } + }, + "id": 2839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4491:14:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4483:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4483:7:10", + "typeDescriptions": {} + } + }, + "id": 2840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4483:23:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4474:32:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "676976656e20696e707574206973206e6f74206120726570726573656e746174696f6e206f6620616464726573732c203132206d6f7374207369676e69666963616e742062797465732073686f756c64206265207a65726f", + "id": 2842, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4520:90:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d03629228ca99c43bce6f4df5ca5431360b842b6598cacaeaf93ab86f383aabb", + "typeString": "literal_string \"given input is not a representation of address, 12 most significant bytes should be zero\"" + }, + "value": "given input is not a representation of address, 12 most significant bytes should be zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d03629228ca99c43bce6f4df5ca5431360b842b6598cacaeaf93ab86f383aabb", + "typeString": "literal_string \"given input is not a representation of address, 12 most significant bytes should be zero\"" + } + ], + "id": 2832, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4453:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4453:167:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2844, + "nodeType": "ExpressionStatement", + "src": "4453:167:10" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2849, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2827, + "src": "4653:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4645:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2847, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "4645:7:10", + "typeDescriptions": {} + } + }, + "id": 2850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4645:14:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4637:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4637:7:10", + "typeDescriptions": {} + } + }, + "id": 2851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4637:23:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2831, + "id": 2852, + "nodeType": "Return", + "src": "4630:30:10" + } + ] + }, + "documentation": { + "id": 2825, + "nodeType": "StructuredDocumentation", + "src": "3962:403:10", + "text": " @dev uint256ToAddress converts uint256 which lower 20 bytes\n is an address in Big Endian to address\n @param input uint256 e.g. 1390849295786071768276380950238675083608645509734\n which as 0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266 converted to address\n @return address representation of uint256 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + }, + "id": 2854, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uint256ToAddress", + "nameLocation": "4379:16:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2827, + "mutability": "mutable", + "name": "input", + "nameLocation": "4404:5:10", + "nodeType": "VariableDeclaration", + "scope": 2854, + "src": "4396:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2826, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4396:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4395:15:10" + }, + "returnParameters": { + "id": 2831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2830, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2854, + "src": "4434:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2829, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4434:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4433:9:10" + }, + "scope": 2915, + "src": "4370:297:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2870, + "nodeType": "Block", + "src": "5338:80:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2865, + "name": "_addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2857, + "src": "5403:5:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2864, + "name": "addressToBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "5388:14:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address) pure returns (bytes memory)" + } + }, + "id": 2866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5388:21:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2863, + "name": "padRightToUint256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2760, + "src": "5370:17:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (bytes memory) pure returns (uint256)" + } + }, + "id": 2867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5370:40:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2862, + "name": "reverseUint256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "5355:14:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5355:56:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2861, + "id": 2869, + "nodeType": "Return", + "src": "5348:63:10" + } + ] + }, + "documentation": { + "id": 2855, + "nodeType": "StructuredDocumentation", + "src": "4673:585:10", + "text": " @dev addressToChallenge converts address to uint256 which lower 20 bytes\n are representation of address in LittleEndian\n @param _addr is ethereum address: eg.0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266\n addressToBytes: 0x000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266\n padRightToUint256: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000,\n reverseUint256 result: 0x0000000000000000000000006622b9ffcf797282b86acef4f688ad1ae5d69ff3\n @return uint256: 583091486781463398742321306787801699791102451699" + }, + "id": 2871, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addressToUint256LE", + "nameLocation": "5272:18:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2857, + "mutability": "mutable", + "name": "_addr", + "nameLocation": "5299:5:10", + "nodeType": "VariableDeclaration", + "scope": 2871, + "src": "5291:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2856, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5291:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5290:15:10" + }, + "returnParameters": { + "id": 2861, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2860, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2871, + "src": "5329:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2859, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5329:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5328:9:10" + }, + "scope": 2915, + "src": "5263:155:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2900, + "nodeType": "Block", + "src": "6133:259:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2880, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "6164:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 2885, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "6189:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6181:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2883, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "6181:7:10", + "typeDescriptions": {} + } + }, + "id": 2886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6181:14:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6173:7:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2881, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6173:7:10", + "typeDescriptions": {} + } + }, + "id": 2887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6173:23:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6164:32:10", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "676976656e2075696e74323536206973206e6f74206120726570726573656e746174696f6e206f6620616e20616464726573732c203132206d6f7374207369676e69666963616e742062797465732073686f756c64206265207a65726f", + "id": 2889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6210:95:10", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e55973107c18f630420c531f26b0f5b957db6f9b27159007f994ce8996629a5", + "typeString": "literal_string \"given uint256 is not a representation of an address, 12 most significant bytes should be zero\"" + }, + "value": "given uint256 is not a representation of an address, 12 most significant bytes should be zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6e55973107c18f630420c531f26b0f5b957db6f9b27159007f994ce8996629a5", + "typeString": "literal_string \"given uint256 is not a representation of an address, 12 most significant bytes should be zero\"" + } + ], + "id": 2879, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "6143:7:10", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6143:172:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2891, + "nodeType": "ExpressionStatement", + "src": "6143:172:10" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2895, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2874, + "src": "6377:5:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2894, + "name": "reverseUint256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "6362:14:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 2896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6362:21:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2893, + "name": "uint256ToBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2535, + "src": "6347:14:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + } + }, + "id": 2897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6347:37:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2892, + "name": "bytesToAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2770, + "src": "6332:14:10", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes memory) pure returns (address)" + } + }, + "id": 2898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6332:53:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2878, + "id": 2899, + "nodeType": "Return", + "src": "6325:60:10" + } + ] + }, + "documentation": { + "id": 2872, + "nodeType": "StructuredDocumentation", + "src": "5424:629:10", + "text": " @dev uint256LEtoAddress - converts uint256 which 20 lower bytes\n are representation of address in LE to address\n @param input is uint256 which is created from bytes in LittleEndian:\n eg. 583091486781463398742321306787801699791102451699\n or 0x0000000000000000000000006622b9ffcf797282b86acef4f688ad1ae5d69ff3\n reverseUint256 result: 110194434039389003190498847789203126033799499726478230611233094447786700570624\n uint256ToBytes result: 0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000\n @return address - 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266" + }, + "id": 2901, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "uint256LEToAddress", + "nameLocation": "6067:18:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2874, + "mutability": "mutable", + "name": "input", + "nameLocation": "6094:5:10", + "nodeType": "VariableDeclaration", + "scope": 2901, + "src": "6086:13:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6086:7:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6085:15:10" + }, + "returnParameters": { + "id": 2878, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2877, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2901, + "src": "6124:7:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2876, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6124:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6123:9:10" + }, + "scope": 2915, + "src": "6058:334:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2913, + "nodeType": "Block", + "src": "6470:43:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2910, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2903, + "src": "6504:1:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 2908, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "6487:3:10", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6491:12:10", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "6487:16:10", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6487:19:10", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 2907, + "id": 2912, + "nodeType": "Return", + "src": "6480:26:10" + } + ] + }, + "id": 2914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addressToBytes", + "nameLocation": "6407:14:10", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2904, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2903, + "mutability": "mutable", + "name": "a", + "nameLocation": "6430:1:10", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "6422:9:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2902, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6422:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6421:11:10" + }, + "returnParameters": { + "id": 2907, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2906, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "6456:12:10", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2905, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6456:5:10", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6455:14:10" + }, + "scope": 2915, + "src": "6398:115:10", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 2916, + "src": "132:6383:10", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "36:6480:10" + }, + "id": 10 + }, + "@iden3/contracts/lib/SmtLib.sol": { + "ast": { + "absolutePath": "@iden3/contracts/lib/SmtLib.sol", + "exportedSymbols": { + "ArrayUtils": [ + 611 + ], + "BinarySearchSmtRoots": [ + 4636 + ], + "PoseidonUnit2L": [ + 2241 + ], + "PoseidonUnit3L": [ + 2252 + ], + "SmtLib": [ + 4449 + ] + }, + "id": 4637, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2917, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "36:23:11" + }, + { + "absolutePath": "@iden3/contracts/lib/Poseidon.sol", + "file": "./Poseidon.sol", + "id": 2920, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4637, + "sourceUnit": 2515, + "src": "61:62:11", + "symbolAliases": [ + { + "foreign": { + "id": 2918, + "name": "PoseidonUnit2L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2241, + "src": "69:14:11", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + }, + { + "foreign": { + "id": 2919, + "name": "PoseidonUnit3L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2252, + "src": "85:14:11", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@iden3/contracts/lib/ArrayUtils.sol", + "file": "./ArrayUtils.sol", + "id": 2922, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4637, + "sourceUnit": 612, + "src": "124:44:11", + "symbolAliases": [ + { + "foreign": { + "id": 2921, + "name": "ArrayUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 611, + "src": "132:10:11", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SmtLib", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2923, + "nodeType": "StructuredDocumentation", + "src": "170:74:11", + "text": "@title A sparse merkle tree implementation, which keeps tree history." + }, + "fullyImplemented": true, + "id": 4449, + "linearizedBaseContracts": [ + 4449 + ], + "name": "SmtLib", + "nameLocation": "696:6:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 2924, + "nodeType": "StructuredDocumentation", + "src": "709:77:11", + "text": " @dev Max return array length for SMT root history requests" + }, + "functionSelector": "40a73d98", + "id": 2927, + "mutability": "constant", + "name": "ROOT_INFO_LIST_RETURN_LIMIT", + "nameLocation": "815:27:11", + "nodeType": "VariableDeclaration", + "scope": 4449, + "src": "791:58:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2925, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "791:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31303030", + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "845:4:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000_by_1", + "typeString": "int_const 1000" + }, + "value": "1000" + }, + "visibility": "public" + }, + { + "constant": true, + "documentation": { + "id": 2928, + "nodeType": "StructuredDocumentation", + "src": "856:142:11", + "text": " @dev Max depth hard cap for SMT\n We can't use depth > 256 because of bits number limitation in the uint256 data type." + }, + "functionSelector": "a751be24", + "id": 2931, + "mutability": "constant", + "name": "MAX_DEPTH_HARD_CAP", + "nameLocation": "1027:18:11", + "nodeType": "VariableDeclaration", + "scope": 4449, + "src": "1003:48:11", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2929, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1003:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "323536", + "id": 2930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1048:3:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "value": "256" + }, + "visibility": "public" + }, + { + "canonicalName": "SmtLib.NodeType", + "documentation": { + "id": 2932, + "nodeType": "StructuredDocumentation", + "src": "1058:46:11", + "text": " @dev Enum of SMT node types" + }, + "id": 2936, + "members": [ + { + "id": 2933, + "name": "EMPTY", + "nameLocation": "1133:5:11", + "nodeType": "EnumValue", + "src": "1133:5:11" + }, + { + "id": 2934, + "name": "LEAF", + "nameLocation": "1148:4:11", + "nodeType": "EnumValue", + "src": "1148:4:11" + }, + { + "id": 2935, + "name": "MIDDLE", + "nameLocation": "1162:6:11", + "nodeType": "EnumValue", + "src": "1162:6:11" + } + ], + "name": "NodeType", + "nameLocation": "1114:8:11", + "nodeType": "EnumDefinition", + "src": "1109:65:11" + }, + { + "canonicalName": "SmtLib.Data", + "documentation": { + "id": 2937, + "nodeType": "StructuredDocumentation", + "src": "1180:338:11", + "text": " @dev Sparse Merkle Tree data\n Note that we count the SMT depth starting from 0, which is the root level.\n For example, the following tree has a maxDepth = 2:\n O <- root level (depth = 0)\n / \\\n O O <- depth = 1\n / \\ / \\\n O O O O <- depth = 2" + }, + "id": 2960, + "members": [ + { + "constant": false, + "id": 2942, + "mutability": "mutable", + "name": "nodes", + "nameLocation": "1570:5:11", + "nodeType": "VariableDeclaration", + "scope": 2960, + "src": "1545:30:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$", + "typeString": "mapping(uint256 => struct SmtLib.Node)" + }, + "typeName": { + "id": 2941, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 2938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1553:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1545:24:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$", + "typeString": "mapping(uint256 => struct SmtLib.Node)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 2940, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2939, + "name": "Node", + "nameLocations": [ + "1564:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3014, + "src": "1564:4:11" + }, + "referencedDeclaration": 3014, + "src": "1564:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage_ptr", + "typeString": "struct SmtLib.Node" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2946, + "mutability": "mutable", + "name": "rootEntries", + "nameLocation": "1597:11:11", + "nodeType": "VariableDeclaration", + "scope": 2960, + "src": "1585:23:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage_ptr", + "typeString": "struct SmtLib.RootEntry[]" + }, + "typeName": { + "baseType": { + "id": 2944, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2943, + "name": "RootEntry", + "nameLocations": [ + "1585:9:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2987, + "src": "1585:9:11" + }, + "referencedDeclaration": 2987, + "src": "1585:9:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage_ptr", + "typeString": "struct SmtLib.RootEntry" + } + }, + "id": 2945, + "nodeType": "ArrayTypeName", + "src": "1585:11:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage_ptr", + "typeString": "struct SmtLib.RootEntry[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "rootIndexes", + "nameLocation": "1648:11:11", + "nodeType": "VariableDeclaration", + "scope": 2960, + "src": "1618:41:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(uint256 => uint256[])" + }, + "typeName": { + "id": 2950, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 2947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1626:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "1618:29:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(uint256 => uint256[])" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "baseType": { + "id": 2948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1637:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2949, + "nodeType": "ArrayTypeName", + "src": "1637:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2953, + "mutability": "mutable", + "name": "maxDepth", + "nameLocation": "1705:8:11", + "nodeType": "VariableDeclaration", + "scope": 2960, + "src": "1697:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2952, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1697:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2955, + "mutability": "mutable", + "name": "initialized", + "nameLocation": "1728:11:11", + "nodeType": "VariableDeclaration", + "scope": 2960, + "src": "1723:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2954, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1723:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2959, + "mutability": "mutable", + "name": "__gap", + "nameLocation": "2106:5:11", + "nodeType": "VariableDeclaration", + "scope": 2960, + "src": "2094:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$45_storage_ptr", + "typeString": "uint256[45]" + }, + "typeName": { + "baseType": { + "id": 2956, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2094:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2958, + "length": { + "hexValue": "3435", + "id": 2957, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2102:2:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_45_by_1", + "typeString": "int_const 45" + }, + "value": "45" + }, + "nodeType": "ArrayTypeName", + "src": "2094:11:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$45_storage_ptr", + "typeString": "uint256[45]" + } + }, + "visibility": "internal" + } + ], + "name": "Data", + "nameLocation": "1530:4:11", + "nodeType": "StructDefinition", + "scope": 4449, + "src": "1523:595:11", + "visibility": "public" + }, + { + "canonicalName": "SmtLib.Proof", + "documentation": { + "id": 2961, + "nodeType": "StructuredDocumentation", + "src": "2124:560:11", + "text": " @dev Struct of the node proof in the SMT.\n @param root This SMT root.\n @param existence A flag, which shows if the leaf index exists in the SMT.\n @param siblings An array of SMT sibling node hashes.\n @param index An index of the leaf in the SMT.\n @param value A value of the leaf in the SMT.\n @param auxExistence A flag, which shows if the auxiliary leaf exists in the SMT.\n @param auxIndex An index of the auxiliary leaf in the SMT.\n @param auxValue An value of the auxiliary leaf in the SMT." + }, + "id": 2979, + "members": [ + { + "constant": false, + "id": 2963, + "mutability": "mutable", + "name": "root", + "nameLocation": "2720:4:11", + "nodeType": "VariableDeclaration", + "scope": 2979, + "src": "2712:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2962, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2712:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2965, + "mutability": "mutable", + "name": "existence", + "nameLocation": "2739:9:11", + "nodeType": "VariableDeclaration", + "scope": 2979, + "src": "2734:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2964, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2734:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2968, + "mutability": "mutable", + "name": "siblings", + "nameLocation": "2768:8:11", + "nodeType": "VariableDeclaration", + "scope": 2979, + "src": "2758:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 2966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2758:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2967, + "nodeType": "ArrayTypeName", + "src": "2758:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2970, + "mutability": "mutable", + "name": "index", + "nameLocation": "2794:5:11", + "nodeType": "VariableDeclaration", + "scope": 2979, + "src": "2786:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2786:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2972, + "mutability": "mutable", + "name": "value", + "nameLocation": "2817:5:11", + "nodeType": "VariableDeclaration", + "scope": 2979, + "src": "2809:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2971, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2809:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2974, + "mutability": "mutable", + "name": "auxExistence", + "nameLocation": "2837:12:11", + "nodeType": "VariableDeclaration", + "scope": 2979, + "src": "2832:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2973, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2832:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2976, + "mutability": "mutable", + "name": "auxIndex", + "nameLocation": "2867:8:11", + "nodeType": "VariableDeclaration", + "scope": 2979, + "src": "2859:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2975, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2859:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2978, + "mutability": "mutable", + "name": "auxValue", + "nameLocation": "2893:8:11", + "nodeType": "VariableDeclaration", + "scope": 2979, + "src": "2885:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2977, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2885:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Proof", + "nameLocation": "2696:5:11", + "nodeType": "StructDefinition", + "scope": 4449, + "src": "2689:219:11", + "visibility": "public" + }, + { + "canonicalName": "SmtLib.RootEntry", + "documentation": { + "id": 2980, + "nodeType": "StructuredDocumentation", + "src": "2914:272:11", + "text": " @dev Struct for SMT root internal storage representation.\n @param root SMT root.\n @param createdAtTimestamp A time, when the root was saved to blockchain.\n @param createdAtBlock A number of block, when the root was saved to blockchain." + }, + "id": 2987, + "members": [ + { + "constant": false, + "id": 2982, + "mutability": "mutable", + "name": "root", + "nameLocation": "3226:4:11", + "nodeType": "VariableDeclaration", + "scope": 2987, + "src": "3218:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3218:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2984, + "mutability": "mutable", + "name": "createdAtTimestamp", + "nameLocation": "3248:18:11", + "nodeType": "VariableDeclaration", + "scope": 2987, + "src": "3240:26:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2983, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3240:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2986, + "mutability": "mutable", + "name": "createdAtBlock", + "nameLocation": "3284:14:11", + "nodeType": "VariableDeclaration", + "scope": 2987, + "src": "3276:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2985, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3276:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "RootEntry", + "nameLocation": "3198:9:11", + "nodeType": "StructDefinition", + "scope": 4449, + "src": "3191:114:11", + "visibility": "public" + }, + { + "canonicalName": "SmtLib.RootEntryInfo", + "documentation": { + "id": 2988, + "nodeType": "StructuredDocumentation", + "src": "3311:553:11", + "text": " @dev Struct for public interfaces to represent SMT root info.\n @param root This SMT root.\n @param replacedByRoot A root, which replaced this root.\n @param createdAtTimestamp A time, when the root was saved to blockchain.\n @param replacedAtTimestamp A time, when the root was replaced by the next root in blockchain.\n @param createdAtBlock A number of block, when the root was saved to blockchain.\n @param replacedAtBlock A number of block, when the root was replaced by the next root in blockchain." + }, + "id": 3001, + "members": [ + { + "constant": false, + "id": 2990, + "mutability": "mutable", + "name": "root", + "nameLocation": "3908:4:11", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "3900:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3900:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2992, + "mutability": "mutable", + "name": "replacedByRoot", + "nameLocation": "3930:14:11", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "3922:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3922:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2994, + "mutability": "mutable", + "name": "createdAtTimestamp", + "nameLocation": "3962:18:11", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "3954:26:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2993, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3954:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "replacedAtTimestamp", + "nameLocation": "3998:19:11", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "3990:27:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2995, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3990:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2998, + "mutability": "mutable", + "name": "createdAtBlock", + "nameLocation": "4035:14:11", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "4027:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2997, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4027:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "replacedAtBlock", + "nameLocation": "4067:15:11", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "4059:23:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4059:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "RootEntryInfo", + "nameLocation": "3876:13:11", + "nodeType": "StructDefinition", + "scope": 4449, + "src": "3869:220:11", + "visibility": "public" + }, + { + "canonicalName": "SmtLib.Node", + "documentation": { + "id": 3002, + "nodeType": "StructuredDocumentation", + "src": "4095:240:11", + "text": " @dev Struct of SMT node.\n @param NodeType type of node.\n @param childLeft left child of node.\n @param childRight right child of node.\n @param Index index of node.\n @param Value value of node." + }, + "id": 3014, + "members": [ + { + "constant": false, + "id": 3005, + "mutability": "mutable", + "name": "nodeType", + "nameLocation": "4371:8:11", + "nodeType": "VariableDeclaration", + "scope": 3014, + "src": "4362:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + "typeName": { + "id": 3004, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3003, + "name": "NodeType", + "nameLocations": [ + "4362:8:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2936, + "src": "4362:8:11" + }, + "referencedDeclaration": 2936, + "src": "4362:8:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3007, + "mutability": "mutable", + "name": "childLeft", + "nameLocation": "4397:9:11", + "nodeType": "VariableDeclaration", + "scope": 3014, + "src": "4389:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3006, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4389:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3009, + "mutability": "mutable", + "name": "childRight", + "nameLocation": "4424:10:11", + "nodeType": "VariableDeclaration", + "scope": 3014, + "src": "4416:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4416:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3011, + "mutability": "mutable", + "name": "index", + "nameLocation": "4452:5:11", + "nodeType": "VariableDeclaration", + "scope": 3014, + "src": "4444:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3010, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4444:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3013, + "mutability": "mutable", + "name": "value", + "nameLocation": "4475:5:11", + "nodeType": "VariableDeclaration", + "scope": 3014, + "src": "4467:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3012, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4467:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Node", + "nameLocation": "4347:4:11", + "nodeType": "StructDefinition", + "scope": 4449, + "src": "4340:147:11", + "visibility": "public" + }, + { + "global": false, + "id": 3018, + "libraryName": { + "id": 3015, + "name": "BinarySearchSmtRoots", + "nameLocations": [ + "4499:20:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4636, + "src": "4499:20:11" + }, + "nodeType": "UsingForDirective", + "src": "4493:36:11", + "typeName": { + "id": 3017, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3016, + "name": "Data", + "nameLocations": [ + "4524:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "4524:4:11" + }, + "referencedDeclaration": 2960, + "src": "4524:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + } + }, + { + "global": false, + "id": 3022, + "libraryName": { + "id": 3019, + "name": "ArrayUtils", + "nameLocations": [ + "4540:10:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 611, + "src": "4540:10:11" + }, + "nodeType": "UsingForDirective", + "src": "4534:31:11", + "typeName": { + "baseType": { + "id": 3020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4555:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3021, + "nodeType": "ArrayTypeName", + "src": "4555:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + { + "body": { + "id": 3039, + "nodeType": "Block", + "src": "4740:82:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3032, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3026, + "src": "4769:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3033, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3028, + "src": "4775:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3031, + "name": "rootExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3729, + "src": "4758:10:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (bool)" + } + }, + "id": 3034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4758:22:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "526f6f7420646f6573206e6f74206578697374", + "id": 3035, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4782:21:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ad7ecf2adb23a091a9c01bdae7fb1b18a3a12c15e41cfafded464e944aa5faec", + "typeString": "literal_string \"Root does not exist\"" + }, + "value": "Root does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ad7ecf2adb23a091a9c01bdae7fb1b18a3a12c15e41cfafded464e944aa5faec", + "typeString": "literal_string \"Root does not exist\"" + } + ], + "id": 3030, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "4750:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4750:54:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3037, + "nodeType": "ExpressionStatement", + "src": "4750:54:11" + }, + { + "id": 3038, + "nodeType": "PlaceholderStatement", + "src": "4814:1:11" + } + ] + }, + "documentation": { + "id": 3023, + "nodeType": "StructuredDocumentation", + "src": "4571:105:11", + "text": " @dev Reverts if root does not exist in SMT roots history.\n @param root SMT root." + }, + "id": 3040, + "name": "onlyExistingRoot", + "nameLocation": "4690:16:11", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3029, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3026, + "mutability": "mutable", + "name": "self", + "nameLocation": "4720:4:11", + "nodeType": "VariableDeclaration", + "scope": 3040, + "src": "4707:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3025, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3024, + "name": "Data", + "nameLocations": [ + "4707:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "4707:4:11" + }, + "referencedDeclaration": 2960, + "src": "4707:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3028, + "mutability": "mutable", + "name": "root", + "nameLocation": "4734:4:11", + "nodeType": "VariableDeclaration", + "scope": 3040, + "src": "4726:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3027, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4726:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4706:33:11" + }, + "src": "4681:141:11", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3090, + "nodeType": "Block", + "src": "5031:356:11", + "statements": [ + { + "assignments": [ + 3056 + ], + "declarations": [ + { + "constant": false, + "id": 3056, + "mutability": "mutable", + "name": "node", + "nameLocation": "5053:4:11", + "nodeType": "VariableDeclaration", + "scope": 3090, + "src": "5041:16:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node" + }, + "typeName": { + "id": 3055, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3054, + "name": "Node", + "nameLocations": [ + "5041:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3014, + "src": "5041:4:11" + }, + "referencedDeclaration": 3014, + "src": "5041:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage_ptr", + "typeString": "struct SmtLib.Node" + } + }, + "visibility": "internal" + } + ], + "id": 3065, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 3058, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "5089:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 3059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5098:4:11", + "memberName": "LEAF", + "nodeType": "MemberAccess", + "referencedDeclaration": 2934, + "src": "5089:13:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + { + "hexValue": "30", + "id": 3060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5127:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 3061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5154:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 3062, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3046, + "src": "5176:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3063, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3048, + "src": "5198:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3057, + "name": "Node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3014, + "src": "5060:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Node_$3014_storage_ptr_$", + "typeString": "type(struct SmtLib.Node storage pointer)" + } + }, + "id": 3064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "5079:8:11", + "5116:9:11", + "5142:10:11", + "5169:5:11", + "5191:5:11" + ], + "names": [ + "nodeType", + "childLeft", + "childRight", + "index", + "value" + ], + "nodeType": "FunctionCall", + "src": "5060:150:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5041:169:11" + }, + { + "assignments": [ + 3067 + ], + "declarations": [ + { + "constant": false, + "id": 3067, + "mutability": "mutable", + "name": "prevRoot", + "nameLocation": "5229:8:11", + "nodeType": "VariableDeclaration", + "scope": 3090, + "src": "5221:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5221:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3071, + "initialValue": { + "arguments": [ + { + "id": 3069, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3044, + "src": "5248:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + ], + "id": 3068, + "name": "getRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3506, + "src": "5240:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 3070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5240:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5221:32:11" + }, + { + "assignments": [ + 3073 + ], + "declarations": [ + { + "constant": false, + "id": 3073, + "mutability": "mutable", + "name": "newRoot", + "nameLocation": "5271:7:11", + "nodeType": "VariableDeclaration", + "scope": 3090, + "src": "5263:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3072, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5263:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3080, + "initialValue": { + "arguments": [ + { + "id": 3075, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3044, + "src": "5290:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3076, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3056, + "src": "5296:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + { + "id": 3077, + "name": "prevRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3067, + "src": "5302:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 3078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5312:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3074, + "name": "_addLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4003, + "src": "5281:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory,uint256,uint256) returns (uint256)" + } + }, + "id": 3079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5281:33:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5263:51:11" + }, + { + "expression": { + "arguments": [ + { + "id": 3082, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3044, + "src": "5335:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3083, + "name": "newRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3073, + "src": "5341:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 3084, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "5350:5:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5356:9:11", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "5350:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 3086, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "5367:5:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5373:6:11", + "memberName": "number", + "nodeType": "MemberAccess", + "src": "5367:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3081, + "name": "_addEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4448, + "src": "5325:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256,uint256)" + } + }, + "id": 3088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5325:55:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3089, + "nodeType": "ExpressionStatement", + "src": "5325:55:11" + } + ] + }, + "documentation": { + "id": 3041, + "nodeType": "StructuredDocumentation", + "src": "4828:109:11", + "text": " @dev Add a leaf to the SMT\n @param i Index of a leaf\n @param v Value of a leaf" + }, + "functionSelector": "c1d29f01", + "id": 3091, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3051, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3044, + "src": "5025:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + } + ], + "id": 3052, + "kind": "modifierInvocation", + "modifierName": { + "id": 3050, + "name": "onlyInitialized", + "nameLocations": [ + "5009:15:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3830, + "src": "5009:15:11" + }, + "nodeType": "ModifierInvocation", + "src": "5009:21:11" + } + ], + "name": "addLeaf", + "nameLocation": "4951:7:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3044, + "mutability": "mutable", + "name": "self", + "nameLocation": "4972:4:11", + "nodeType": "VariableDeclaration", + "scope": 3091, + "src": "4959:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3043, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3042, + "name": "Data", + "nameLocations": [ + "4959:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "4959:4:11" + }, + "referencedDeclaration": 2960, + "src": "4959:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3046, + "mutability": "mutable", + "name": "i", + "nameLocation": "4986:1:11", + "nodeType": "VariableDeclaration", + "scope": 3091, + "src": "4978:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3045, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4978:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3048, + "mutability": "mutable", + "name": "v", + "nameLocation": "4997:1:11", + "nodeType": "VariableDeclaration", + "scope": 3091, + "src": "4989:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4989:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4958:41:11" + }, + "returnParameters": { + "id": 3053, + "nodeType": "ParameterList", + "parameters": [], + "src": "5031:0:11" + }, + "scope": 4449, + "src": "4942:445:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3104, + "nodeType": "Block", + "src": "5564:47:11", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 3100, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3095, + "src": "5581:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3101, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5586:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "5581:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 3102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5598:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5581:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3099, + "id": 3103, + "nodeType": "Return", + "src": "5574:30:11" + } + ] + }, + "documentation": { + "id": 3092, + "nodeType": "StructuredDocumentation", + "src": "5393:85:11", + "text": " @dev Get SMT root history length\n @return SMT history length" + }, + "functionSelector": "62e8f215", + "id": 3105, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRootHistoryLength", + "nameLocation": "5492:20:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3096, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3095, + "mutability": "mutable", + "name": "self", + "nameLocation": "5526:4:11", + "nodeType": "VariableDeclaration", + "scope": 3105, + "src": "5513:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3094, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3093, + "name": "Data", + "nameLocations": [ + "5513:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "5513:4:11" + }, + "referencedDeclaration": 2960, + "src": "5513:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + } + ], + "src": "5512:19:11" + }, + "returnParameters": { + "id": 3099, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3098, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3105, + "src": "5555:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3097, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5555:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5554:9:11" + }, + "scope": 4449, + "src": "5483:128:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3173, + "nodeType": "Block", + "src": "5952:425:11", + "statements": [ + { + "assignments": [ + 3121, + 3123 + ], + "declarations": [ + { + "constant": false, + "id": 3121, + "mutability": "mutable", + "name": "start", + "nameLocation": "5971:5:11", + "nodeType": "VariableDeclaration", + "scope": 3173, + "src": "5963:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5963:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3123, + "mutability": "mutable", + "name": "end", + "nameLocation": "5986:3:11", + "nodeType": "VariableDeclaration", + "scope": 3173, + "src": "5978:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3122, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5978:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3133, + "initialValue": { + "arguments": [ + { + "expression": { + "expression": { + "id": 3126, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3109, + "src": "6033:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3127, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6038:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "6033:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 3128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6050:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6033:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3129, + "name": "startIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3111, + "src": "6070:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3130, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3113, + "src": "6094:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3131, + "name": "ROOT_INFO_LIST_RETURN_LIMIT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2927, + "src": "6114:27:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3124, + "name": "ArrayUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 611, + "src": "5993:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ArrayUtils_$611_$", + "typeString": "type(library ArrayUtils)" + } + }, + "id": 3125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6004:15:11", + "memberName": "calculateBounds", + "nodeType": "MemberAccess", + "referencedDeclaration": 610, + "src": "5993:26:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256,uint256)" + } + }, + "id": 3132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5993:158:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5962:189:11" + }, + { + "assignments": [ + 3138 + ], + "declarations": [ + { + "constant": false, + "id": 3138, + "mutability": "mutable", + "name": "result", + "nameLocation": "6185:6:11", + "nodeType": "VariableDeclaration", + "scope": 3173, + "src": "6162:29:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo[]" + }, + "typeName": { + "baseType": { + "id": 3136, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3135, + "name": "RootEntryInfo", + "nameLocations": [ + "6162:13:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3001, + "src": "6162:13:11" + }, + "referencedDeclaration": 3001, + "src": "6162:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + } + }, + "id": 3137, + "nodeType": "ArrayTypeName", + "src": "6162:15:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_storage_$dyn_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo[]" + } + }, + "visibility": "internal" + } + ], + "id": 3147, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3143, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3123, + "src": "6214:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 3144, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3121, + "src": "6220:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6214:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6194:19:11", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct SmtLib.RootEntryInfo memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 3140, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3139, + "name": "RootEntryInfo", + "nameLocations": [ + "6198:13:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3001, + "src": "6198:13:11" + }, + "referencedDeclaration": 3001, + "src": "6198:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + } + }, + "id": 3141, + "nodeType": "ArrayTypeName", + "src": "6198:15:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_storage_$dyn_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo[]" + } + } + }, + "id": 3146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6194:32:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6162:64:11" + }, + { + "body": { + "id": 3169, + "nodeType": "Block", + "src": "6275:73:11", + "statements": [ + { + "expression": { + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3158, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3138, + "src": "6289:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory[] memory" + } + }, + "id": 3162, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3159, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "6296:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 3160, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3121, + "src": "6300:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6296:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6289:17:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 3164, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3109, + "src": "6329:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3165, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "6335:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3163, + "name": "_getRootInfoByIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4376, + "src": "6309:19:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (struct SmtLib.RootEntryInfo memory)" + } + }, + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6309:28:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory" + } + }, + "src": "6289:48:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory" + } + }, + "id": 3168, + "nodeType": "ExpressionStatement", + "src": "6289:48:11" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3152, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "6261:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3153, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3123, + "src": "6265:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6261:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3170, + "initializationExpression": { + "assignments": [ + 3149 + ], + "declarations": [ + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "i", + "nameLocation": "6250:1:11", + "nodeType": "VariableDeclaration", + "scope": 3170, + "src": "6242:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6242:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3151, + "initialValue": { + "id": 3150, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3121, + "src": "6254:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6242:17:11" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 3156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6270:3:11", + "subExpression": { + "id": 3155, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "6270:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3157, + "nodeType": "ExpressionStatement", + "src": "6270:3:11" + }, + "nodeType": "ForStatement", + "src": "6237:111:11" + }, + { + "expression": { + "id": 3171, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3138, + "src": "6364:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory[] memory" + } + }, + "functionReturnParameters": 3119, + "id": 3172, + "nodeType": "Return", + "src": "6357:13:11" + } + ] + }, + "documentation": { + "id": 3106, + "nodeType": "StructuredDocumentation", + "src": "5617:174:11", + "text": " @dev Get SMT root history\n @param startIndex start index of history\n @param length history length\n @return array of RootEntryInfo structs" + }, + "functionSelector": "21d60953", + "id": 3174, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRootHistory", + "nameLocation": "5805:14:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3109, + "mutability": "mutable", + "name": "self", + "nameLocation": "5842:4:11", + "nodeType": "VariableDeclaration", + "scope": 3174, + "src": "5829:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3108, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3107, + "name": "Data", + "nameLocations": [ + "5829:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "5829:4:11" + }, + "referencedDeclaration": 2960, + "src": "5829:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3111, + "mutability": "mutable", + "name": "startIndex", + "nameLocation": "5864:10:11", + "nodeType": "VariableDeclaration", + "scope": 3174, + "src": "5856:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5856:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3113, + "mutability": "mutable", + "name": "length", + "nameLocation": "5892:6:11", + "nodeType": "VariableDeclaration", + "scope": 3174, + "src": "5884:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5884:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5819:85:11" + }, + "returnParameters": { + "id": 3119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3118, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3174, + "src": "5928:22:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo[]" + }, + "typeName": { + "baseType": { + "id": 3116, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3115, + "name": "RootEntryInfo", + "nameLocations": [ + "5928:13:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3001, + "src": "5928:13:11" + }, + "referencedDeclaration": 3001, + "src": "5928:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + } + }, + "id": 3117, + "nodeType": "ArrayTypeName", + "src": "5928:15:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_storage_$dyn_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo[]" + } + }, + "visibility": "internal" + } + ], + "src": "5927:24:11" + }, + "scope": 4449, + "src": "5796:581:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3191, + "nodeType": "Block", + "src": "6591:44:11", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "id": 3186, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3178, + "src": "6608:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6613:5:11", + "memberName": "nodes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2942, + "src": "6608:10:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$", + "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)" + } + }, + "id": 3189, + "indexExpression": { + "id": 3188, + "name": "nodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3180, + "src": "6619:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6608:20:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage", + "typeString": "struct SmtLib.Node storage ref" + } + }, + "functionReturnParameters": 3185, + "id": 3190, + "nodeType": "Return", + "src": "6601:27:11" + } + ] + }, + "documentation": { + "id": 3175, + "nodeType": "StructuredDocumentation", + "src": "6383:115:11", + "text": " @dev Get the SMT node by hash\n @param nodeHash Hash of a node\n @return A node struct" + }, + "functionSelector": "e170cf6e", + "id": 3192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getNode", + "nameLocation": "6512:7:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3178, + "mutability": "mutable", + "name": "self", + "nameLocation": "6533:4:11", + "nodeType": "VariableDeclaration", + "scope": 3192, + "src": "6520:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3177, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3176, + "name": "Data", + "nameLocations": [ + "6520:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "6520:4:11" + }, + "referencedDeclaration": 2960, + "src": "6520:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3180, + "mutability": "mutable", + "name": "nodeHash", + "nameLocation": "6547:8:11", + "nodeType": "VariableDeclaration", + "scope": 3192, + "src": "6539:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3179, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6539:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6519:37:11" + }, + "returnParameters": { + "id": 3185, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3184, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3192, + "src": "6578:11:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node" + }, + "typeName": { + "id": 3183, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3182, + "name": "Node", + "nameLocations": [ + "6578:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3014, + "src": "6578:4:11" + }, + "referencedDeclaration": 3014, + "src": "6578:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage_ptr", + "typeString": "struct SmtLib.Node" + } + }, + "visibility": "internal" + } + ], + "src": "6577:13:11" + }, + "scope": 4449, + "src": "6503:132:11", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3212, + "nodeType": "Block", + "src": "6902:66:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3205, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3196, + "src": "6934:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3206, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3198, + "src": "6940:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 3208, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3196, + "src": "6955:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + ], + "id": 3207, + "name": "getRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3506, + "src": "6947:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Data storage pointer) view returns (uint256)" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6947:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3204, + "name": "getProofByRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "6919:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 3210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6919:42:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 3203, + "id": 3211, + "nodeType": "Return", + "src": "6912:49:11" + } + ] + }, + "documentation": { + "id": 3193, + "nodeType": "StructuredDocumentation", + "src": "6641:167:11", + "text": " @dev Get the proof if a node with specific index exists or not exists in the SMT.\n @param index A node index.\n @return SMT proof struct." + }, + "functionSelector": "5db40cda", + "id": 3213, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProof", + "nameLocation": "6822:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3196, + "mutability": "mutable", + "name": "self", + "nameLocation": "6844:4:11", + "nodeType": "VariableDeclaration", + "scope": 3213, + "src": "6831:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3195, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3194, + "name": "Data", + "nameLocations": [ + "6831:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "6831:4:11" + }, + "referencedDeclaration": 2960, + "src": "6831:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3198, + "mutability": "mutable", + "name": "index", + "nameLocation": "6858:5:11", + "nodeType": "VariableDeclaration", + "scope": 3213, + "src": "6850:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3197, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6850:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6830:34:11" + }, + "returnParameters": { + "id": 3203, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3202, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3213, + "src": "6888:12:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 3201, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3200, + "name": "Proof", + "nameLocations": [ + "6888:5:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "6888:5:11" + }, + "referencedDeclaration": 2979, + "src": "6888:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "6887:14:11" + }, + "scope": 4449, + "src": "6813:155:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3423, + "nodeType": "Block", + "src": "7425:1730:11", + "statements": [ + { + "assignments": [ + 3235 + ], + "declarations": [ + { + "constant": false, + "id": 3235, + "mutability": "mutable", + "name": "siblings", + "nameLocation": "7452:8:11", + "nodeType": "VariableDeclaration", + "scope": 3423, + "src": "7435:25:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3233, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7435:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3234, + "nodeType": "ArrayTypeName", + "src": "7435:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 3242, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 3239, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3217, + "src": "7477:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3240, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7482:8:11", + "memberName": "maxDepth", + "nodeType": "MemberAccess", + "referencedDeclaration": 2953, + "src": "7477:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "7463:13:11", + "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": 3236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7467:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3237, + "nodeType": "ArrayTypeName", + "src": "7467:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7463:28:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7435:56:11" + }, + { + "body": { + "id": 3260, + "nodeType": "Block", + "src": "7616:40:11", + "statements": [ + { + "expression": { + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3254, + "name": "siblings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3235, + "src": "7630:8:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3256, + "indexExpression": { + "id": 3255, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3244, + "src": "7639:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7630:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 3257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7644:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7630:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "7630:15:11" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3247, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3244, + "src": "7592:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 3248, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3217, + "src": "7596:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3249, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7601:8:11", + "memberName": "maxDepth", + "nodeType": "MemberAccess", + "referencedDeclaration": 2953, + "src": "7596:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7592:17:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3261, + "initializationExpression": { + "assignments": [ + 3244 + ], + "declarations": [ + { + "constant": false, + "id": 3244, + "mutability": "mutable", + "name": "i", + "nameLocation": "7585:1:11", + "nodeType": "VariableDeclaration", + "scope": 3261, + "src": "7577:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3243, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7577:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3246, + "initialValue": { + "hexValue": "30", + "id": 3245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7589:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "7577:13:11" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 3252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7611:3:11", + "subExpression": { + "id": 3251, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3244, + "src": "7611:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3253, + "nodeType": "ExpressionStatement", + "src": "7611:3:11" + }, + "nodeType": "ForStatement", + "src": "7572:84:11" + }, + { + "assignments": [ + 3264 + ], + "declarations": [ + { + "constant": false, + "id": 3264, + "mutability": "mutable", + "name": "proof", + "nameLocation": "7679:5:11", + "nodeType": "VariableDeclaration", + "scope": 3423, + "src": "7666:18:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 3263, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3262, + "name": "Proof", + "nameLocations": [ + "7666:5:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "7666:5:11" + }, + "referencedDeclaration": 2979, + "src": "7666:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "id": 3275, + "initialValue": { + "arguments": [ + { + "id": 3266, + "name": "historicalRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3221, + "src": "7713:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "66616c7365", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7752:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "id": 3268, + "name": "siblings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3235, + "src": "7781:8:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 3269, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3219, + "src": "7810:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 3270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7836:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "66616c7365", + "id": 3271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7865:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7894:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 3273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7919:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3265, + "name": "Proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2979, + "src": "7687:5:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Proof_$2979_storage_ptr_$", + "typeString": "type(struct SmtLib.Proof storage pointer)" + } + }, + "id": 3274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "7707:4:11", + "7741:9:11", + "7771:8:11", + "7803:5:11", + "7829:5:11", + "7851:12:11", + "7884:8:11", + "7909:8:11" + ], + "names": [ + "root", + "existence", + "siblings", + "index", + "value", + "auxExistence", + "auxIndex", + "auxValue" + ], + "nodeType": "FunctionCall", + "src": "7687:244:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7666:265:11" + }, + { + "assignments": [ + 3277 + ], + "declarations": [ + { + "constant": false, + "id": 3277, + "mutability": "mutable", + "name": "nextNodeHash", + "nameLocation": "7950:12:11", + "nodeType": "VariableDeclaration", + "scope": 3423, + "src": "7942:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3276, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7942:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3279, + "initialValue": { + "id": 3278, + "name": "historicalRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3221, + "src": "7965:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7942:37:11" + }, + { + "assignments": [ + 3282 + ], + "declarations": [ + { + "constant": false, + "id": 3282, + "mutability": "mutable", + "name": "node", + "nameLocation": "8001:4:11", + "nodeType": "VariableDeclaration", + "scope": 3423, + "src": "7989:16:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node" + }, + "typeName": { + "id": 3281, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3280, + "name": "Node", + "nameLocations": [ + "7989:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3014, + "src": "7989:4:11" + }, + "referencedDeclaration": 3014, + "src": "7989:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage_ptr", + "typeString": "struct SmtLib.Node" + } + }, + "visibility": "internal" + } + ], + "id": 3283, + "nodeType": "VariableDeclarationStatement", + "src": "7989:16:11" + }, + { + "body": { + "id": 3419, + "nodeType": "Block", + "src": "8061:1066:11", + "statements": [ + { + "expression": { + "id": 3300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3295, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3282, + "src": "8075:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 3297, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3217, + "src": "8090:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3298, + "name": "nextNodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3277, + "src": "8096:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3296, + "name": "getNode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3192, + "src": "8082:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_struct$_Node_$3014_memory_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (struct SmtLib.Node memory)" + } + }, + "id": 3299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8082:27:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "src": "8075:34:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3301, + "nodeType": "ExpressionStatement", + "src": "8075:34:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + "id": 3306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3302, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3282, + "src": "8127:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3303, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8132:8:11", + "memberName": "nodeType", + "nodeType": "MemberAccess", + "referencedDeclaration": 3005, + "src": "8127:13:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3304, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "8144:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 3305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8153:5:11", + "memberName": "EMPTY", + "nodeType": "MemberAccess", + "referencedDeclaration": 2933, + "src": "8144:14:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "src": "8127:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3309, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3282, + "src": "8208:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3310, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8213:8:11", + "memberName": "nodeType", + "nodeType": "MemberAccess", + "referencedDeclaration": 3005, + "src": "8208:13:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3311, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "8225:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 3312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8234:4:11", + "memberName": "LEAF", + "nodeType": "MemberAccess", + "referencedDeclaration": 2934, + "src": "8225:13:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "src": "8208:30:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + "id": 3369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3365, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3282, + "src": "8692:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3366, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8697:8:11", + "memberName": "nodeType", + "nodeType": "MemberAccess", + "referencedDeclaration": 3005, + "src": "8692:13:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3367, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "8709:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8718:6:11", + "memberName": "MIDDLE", + "nodeType": "MemberAccess", + "referencedDeclaration": 2935, + "src": "8709:15:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "src": "8692:32:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3415, + "nodeType": "Block", + "src": "9057:60:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "496e76616c6964206e6f64652074797065", + "id": 3412, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9082:19:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_43b57e13a6e36a7597dc186152e9451a8e2e96966b0b137fb7362d47da52fb0e", + "typeString": "literal_string \"Invalid node type\"" + }, + "value": "Invalid node type" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_43b57e13a6e36a7597dc186152e9451a8e2e96966b0b137fb7362d47da52fb0e", + "typeString": "literal_string \"Invalid node type\"" + } + ], + "id": 3411, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "9075:6:11", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 3413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9075:27:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3414, + "nodeType": "ExpressionStatement", + "src": "9075:27:11" + } + ] + }, + "id": 3416, + "nodeType": "IfStatement", + "src": "8688:429:11", + "trueBody": { + "id": 3410, + "nodeType": "Block", + "src": "8726:325:11", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3370, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3264, + "src": "8749:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 3371, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8755:5:11", + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 2970, + "src": "8749:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 3372, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3285, + "src": "8764:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8749:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3374, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8748:18:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "31", + "id": 3375, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8769:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8748:22:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 3377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8774:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "8748:27:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3408, + "nodeType": "Block", + "src": "8910:127:11", + "statements": [ + { + "expression": { + "id": 3397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3394, + "name": "nextNodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3277, + "src": "8932:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 3395, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3282, + "src": "8947:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3396, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8952:9:11", + "memberName": "childLeft", + "nodeType": "MemberAccess", + "referencedDeclaration": 3007, + "src": "8947:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8932:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3398, + "nodeType": "ExpressionStatement", + "src": "8932:29:11" + }, + { + "expression": { + "id": 3406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 3399, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3264, + "src": "8983:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 3402, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8989:8:11", + "memberName": "siblings", + "nodeType": "MemberAccess", + "referencedDeclaration": 2968, + "src": "8983:14:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3403, + "indexExpression": { + "id": 3401, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3285, + "src": "8998:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8983:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 3404, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3282, + "src": "9003:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3405, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9008:10:11", + "memberName": "childRight", + "nodeType": "MemberAccess", + "referencedDeclaration": 3009, + "src": "9003:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8983:35:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3407, + "nodeType": "ExpressionStatement", + "src": "8983:35:11" + } + ] + }, + "id": 3409, + "nodeType": "IfStatement", + "src": "8744:293:11", + "trueBody": { + "id": 3393, + "nodeType": "Block", + "src": "8777:127:11", + "statements": [ + { + "expression": { + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3379, + "name": "nextNodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3277, + "src": "8799:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 3380, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3282, + "src": "8814:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3381, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8819:10:11", + "memberName": "childRight", + "nodeType": "MemberAccess", + "referencedDeclaration": 3009, + "src": "8814:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8799:30:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3383, + "nodeType": "ExpressionStatement", + "src": "8799:30:11" + }, + { + "expression": { + "id": 3391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 3384, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3264, + "src": "8851:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 3387, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8857:8:11", + "memberName": "siblings", + "nodeType": "MemberAccess", + "referencedDeclaration": 2968, + "src": "8851:14:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3388, + "indexExpression": { + "id": 3386, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3285, + "src": "8866:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8851:17:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 3389, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3282, + "src": "8871:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3390, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8876:9:11", + "memberName": "childLeft", + "nodeType": "MemberAccess", + "referencedDeclaration": 3007, + "src": "8871:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8851:34:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3392, + "nodeType": "ExpressionStatement", + "src": "8851:34:11" + } + ] + } + } + ] + } + }, + "id": 3417, + "nodeType": "IfStatement", + "src": "8204:913:11", + "trueBody": { + "id": 3364, + "nodeType": "Block", + "src": "8240:442:11", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3314, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3282, + "src": "8262:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3315, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8267:5:11", + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 3011, + "src": "8262:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3316, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3264, + "src": "8276:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 3317, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8282:5:11", + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 2970, + "src": "8276:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8262:25:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3362, + "nodeType": "Block", + "src": "8431:237:11", + "statements": [ + { + "expression": { + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 3334, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3264, + "src": "8453:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 3336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "8459:12:11", + "memberName": "auxExistence", + "nodeType": "MemberAccess", + "referencedDeclaration": 2974, + "src": "8453:18:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8474:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "8453:25:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3339, + "nodeType": "ExpressionStatement", + "src": "8453:25:11" + }, + { + "expression": { + "id": 3345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 3340, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3264, + "src": "8500:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 3342, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "8506:8:11", + "memberName": "auxIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 2976, + "src": "8500:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 3343, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3282, + "src": "8517:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3344, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8522:5:11", + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 3011, + "src": "8517:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8500:27:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3346, + "nodeType": "ExpressionStatement", + "src": "8500:27:11" + }, + { + "expression": { + "id": 3352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 3347, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3264, + "src": "8549:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 3349, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "8555:8:11", + "memberName": "auxValue", + "nodeType": "MemberAccess", + "referencedDeclaration": 2978, + "src": "8549:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 3350, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3282, + "src": "8566:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3351, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8571:5:11", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 3013, + "src": "8566:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8549:27:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3353, + "nodeType": "ExpressionStatement", + "src": "8549:27:11" + }, + { + "expression": { + "id": 3359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 3354, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3264, + "src": "8598:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 3356, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "8604:5:11", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2972, + "src": "8598:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 3357, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3282, + "src": "8612:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8617:5:11", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 3013, + "src": "8612:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8598:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3360, + "nodeType": "ExpressionStatement", + "src": "8598:24:11" + }, + { + "id": 3361, + "nodeType": "Break", + "src": "8644:5:11" + } + ] + }, + "id": 3363, + "nodeType": "IfStatement", + "src": "8258:410:11", + "trueBody": { + "id": 3333, + "nodeType": "Block", + "src": "8289:136:11", + "statements": [ + { + "expression": { + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 3319, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3264, + "src": "8311:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 3321, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "8317:9:11", + "memberName": "existence", + "nodeType": "MemberAccess", + "referencedDeclaration": 2965, + "src": "8311:15:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8329:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "8311:22:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3324, + "nodeType": "ExpressionStatement", + "src": "8311:22:11" + }, + { + "expression": { + "id": 3330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 3325, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3264, + "src": "8355:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "8361:5:11", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 2972, + "src": "8355:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 3328, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3282, + "src": "8369:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3329, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8374:5:11", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 3013, + "src": "8369:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8355:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3331, + "nodeType": "ExpressionStatement", + "src": "8355:24:11" + }, + { + "id": 3332, + "nodeType": "Break", + "src": "8401:5:11" + } + ] + } + } + ] + } + }, + "id": 3418, + "nodeType": "IfStatement", + "src": "8123:994:11", + "trueBody": { + "id": 3308, + "nodeType": "Block", + "src": "8160:38:11", + "statements": [ + { + "id": 3307, + "nodeType": "Break", + "src": "8178:5:11" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3288, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3285, + "src": "8036:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 3289, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3217, + "src": "8041:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3290, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8046:8:11", + "memberName": "maxDepth", + "nodeType": "MemberAccess", + "referencedDeclaration": 2953, + "src": "8041:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8036:18:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3420, + "initializationExpression": { + "assignments": [ + 3285 + ], + "declarations": [ + { + "constant": false, + "id": 3285, + "mutability": "mutable", + "name": "i", + "nameLocation": "8029:1:11", + "nodeType": "VariableDeclaration", + "scope": 3420, + "src": "8021:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8021:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3287, + "initialValue": { + "hexValue": "30", + "id": 3286, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8033:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8021:13:11" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "8056:3:11", + "subExpression": { + "id": 3292, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3285, + "src": "8056:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3294, + "nodeType": "ExpressionStatement", + "src": "8056:3:11" + }, + "nodeType": "ForStatement", + "src": "8016:1111:11" + }, + { + "expression": { + "id": 3421, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3264, + "src": "9143:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 3230, + "id": 3422, + "nodeType": "Return", + "src": "9136:12:11" + } + ] + }, + "documentation": { + "id": 3214, + "nodeType": "StructuredDocumentation", + "src": "6974:260:11", + "text": " @dev Get the proof if a node with specific index exists or not exists in the SMT for some historical tree state.\n @param index A node index\n @param historicalRoot Historical SMT roof to get proof for.\n @return Proof struct." + }, + "functionSelector": "79c17a96", + "id": 3424, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3224, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3217, + "src": "7380:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3225, + "name": "historicalRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3221, + "src": "7386:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3226, + "kind": "modifierInvocation", + "modifierName": { + "id": 3223, + "name": "onlyExistingRoot", + "nameLocations": [ + "7363:16:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3040, + "src": "7363:16:11" + }, + "nodeType": "ModifierInvocation", + "src": "7363:38:11" + } + ], + "name": "getProofByRoot", + "nameLocation": "7248:14:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3222, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3217, + "mutability": "mutable", + "name": "self", + "nameLocation": "7285:4:11", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "7272:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3216, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3215, + "name": "Data", + "nameLocations": [ + "7272:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "7272:4:11" + }, + "referencedDeclaration": 2960, + "src": "7272:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3219, + "mutability": "mutable", + "name": "index", + "nameLocation": "7307:5:11", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "7299:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3218, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7299:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3221, + "mutability": "mutable", + "name": "historicalRoot", + "nameLocation": "7330:14:11", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "7322:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3220, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7322:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7262:88:11" + }, + "returnParameters": { + "id": 3230, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3229, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3424, + "src": "7411:12:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 3228, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3227, + "name": "Proof", + "nameLocations": [ + "7411:5:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "7411:5:11" + }, + "referencedDeclaration": 2979, + "src": "7411:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "7410:14:11" + }, + "scope": 4449, + "src": "7239:1916:11", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3453, + "nodeType": "Block", + "src": "9561:142:11", + "statements": [ + { + "assignments": [ + 3440 + ], + "declarations": [ + { + "constant": false, + "id": 3440, + "mutability": "mutable", + "name": "rootInfo", + "nameLocation": "9592:8:11", + "nodeType": "VariableDeclaration", + "scope": 3453, + "src": "9571:29:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + }, + "typeName": { + "id": 3439, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3438, + "name": "RootEntryInfo", + "nameLocations": [ + "9571:13:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3001, + "src": "9571:13:11" + }, + "referencedDeclaration": 3001, + "src": "9571:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + } + }, + "visibility": "internal" + } + ], + "id": 3445, + "initialValue": { + "arguments": [ + { + "id": 3442, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3428, + "src": "9621:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3443, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3432, + "src": "9627:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3441, + "name": "getRootInfoByTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3535, + "src": "9603:17:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (struct SmtLib.RootEntryInfo memory)" + } + }, + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9603:34:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9571:66:11" + }, + { + "expression": { + "arguments": [ + { + "id": 3447, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3428, + "src": "9669:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3448, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3430, + "src": "9675:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 3449, + "name": "rootInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3440, + "src": "9682:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory" + } + }, + "id": 3450, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9691:4:11", + "memberName": "root", + "nodeType": "MemberAccess", + "referencedDeclaration": 2990, + "src": "9682:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3446, + "name": "getProofByRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "9654:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 3451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9654:42:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 3437, + "id": 3452, + "nodeType": "Return", + "src": "9647:49:11" + } + ] + }, + "documentation": { + "id": 3425, + "nodeType": "StructuredDocumentation", + "src": "9161:253:11", + "text": " @dev Get the proof if a node with specific index exists or not exists in the SMT by some historical timestamp.\n @param index Node index.\n @param timestamp The latest timestamp to get proof for.\n @return Proof struct." + }, + "functionSelector": "13827136", + "id": 3454, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProofByTime", + "nameLocation": "9428:14:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3433, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3428, + "mutability": "mutable", + "name": "self", + "nameLocation": "9465:4:11", + "nodeType": "VariableDeclaration", + "scope": 3454, + "src": "9452:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3427, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3426, + "name": "Data", + "nameLocations": [ + "9452:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "9452:4:11" + }, + "referencedDeclaration": 2960, + "src": "9452:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3430, + "mutability": "mutable", + "name": "index", + "nameLocation": "9487:5:11", + "nodeType": "VariableDeclaration", + "scope": 3454, + "src": "9479:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3429, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9479:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3432, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "9510:9:11", + "nodeType": "VariableDeclaration", + "scope": 3454, + "src": "9502:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3431, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9502:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9442:83:11" + }, + "returnParameters": { + "id": 3437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3436, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3454, + "src": "9547:12:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 3435, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3434, + "name": "Proof", + "nameLocations": [ + "9547:5:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "9547:5:11" + }, + "referencedDeclaration": 2979, + "src": "9547:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "9546:14:11" + }, + "scope": 4449, + "src": "9419:284:11", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3483, + "nodeType": "Block", + "src": "10122:145:11", + "statements": [ + { + "assignments": [ + 3470 + ], + "declarations": [ + { + "constant": false, + "id": 3470, + "mutability": "mutable", + "name": "rootInfo", + "nameLocation": "10153:8:11", + "nodeType": "VariableDeclaration", + "scope": 3483, + "src": "10132:29:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + }, + "typeName": { + "id": 3469, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3468, + "name": "RootEntryInfo", + "nameLocations": [ + "10132:13:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3001, + "src": "10132:13:11" + }, + "referencedDeclaration": 3001, + "src": "10132:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + } + }, + "visibility": "internal" + } + ], + "id": 3475, + "initialValue": { + "arguments": [ + { + "id": 3472, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3458, + "src": "10183:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3473, + "name": "blockNumber", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "10189:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3471, + "name": "getRootInfoByBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3564, + "src": "10164:18:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (struct SmtLib.RootEntryInfo memory)" + } + }, + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10164:37:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10132:69:11" + }, + { + "expression": { + "arguments": [ + { + "id": 3477, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3458, + "src": "10233:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3478, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3460, + "src": "10239:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 3479, + "name": "rootInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3470, + "src": "10246:8:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10255:4:11", + "memberName": "root", + "nodeType": "MemberAccess", + "referencedDeclaration": 2990, + "src": "10246:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3476, + "name": "getProofByRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3424, + "src": "10218:14:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$returns$_t_struct$_Proof_$2979_memory_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256) view returns (struct SmtLib.Proof memory)" + } + }, + "id": 3481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10218:42:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof memory" + } + }, + "functionReturnParameters": 3467, + "id": 3482, + "nodeType": "Return", + "src": "10211:49:11" + } + ] + }, + "documentation": { + "id": 3455, + "nodeType": "StructuredDocumentation", + "src": "9709:261:11", + "text": " @dev Get the proof if a node with specific index exists or not exists in the SMT by some historical block number.\n @param index Node index.\n @param blockNumber The latest block number to get proof for.\n @return Proof struct." + }, + "functionSelector": "792a470f", + "id": 3484, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProofByBlock", + "nameLocation": "9984:15:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3458, + "mutability": "mutable", + "name": "self", + "nameLocation": "10022:4:11", + "nodeType": "VariableDeclaration", + "scope": 3484, + "src": "10009:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3457, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3456, + "name": "Data", + "nameLocations": [ + "10009:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "10009:4:11" + }, + "referencedDeclaration": 2960, + "src": "10009:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3460, + "mutability": "mutable", + "name": "index", + "nameLocation": "10044:5:11", + "nodeType": "VariableDeclaration", + "scope": 3484, + "src": "10036:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3459, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10036:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3462, + "mutability": "mutable", + "name": "blockNumber", + "nameLocation": "10067:11:11", + "nodeType": "VariableDeclaration", + "scope": 3484, + "src": "10059:19:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3461, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10059:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9999:85:11" + }, + "returnParameters": { + "id": 3467, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3466, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3484, + "src": "10108:12:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_memory_ptr", + "typeString": "struct SmtLib.Proof" + }, + "typeName": { + "id": 3465, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3464, + "name": "Proof", + "nameLocations": [ + "10108:5:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2979, + "src": "10108:5:11" + }, + "referencedDeclaration": 2979, + "src": "10108:5:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proof_$2979_storage_ptr", + "typeString": "struct SmtLib.Proof" + } + }, + "visibility": "internal" + } + ], + "src": "10107:14:11" + }, + "scope": 4449, + "src": "9975:292:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3505, + "nodeType": "Block", + "src": "10361:74:11", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 3495, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3487, + "src": "10378:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3496, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10383:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "10378:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 3502, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 3497, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3487, + "src": "10395:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3498, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10400:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "10395:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 3499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10412:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "10395:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 3500, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10421:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10395:27:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10378:45:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage", + "typeString": "struct SmtLib.RootEntry storage ref" + } + }, + "id": 3503, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10424:4:11", + "memberName": "root", + "nodeType": "MemberAccess", + "referencedDeclaration": 2982, + "src": "10378:50:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3494, + "id": 3504, + "nodeType": "Return", + "src": "10371:57:11" + } + ] + }, + "functionSelector": "79f97125", + "id": 3506, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3490, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3487, + "src": "10337:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + } + ], + "id": 3491, + "kind": "modifierInvocation", + "modifierName": { + "id": 3489, + "name": "onlyInitialized", + "nameLocations": [ + "10321:15:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3830, + "src": "10321:15:11" + }, + "nodeType": "ModifierInvocation", + "src": "10321:21:11" + } + ], + "name": "getRoot", + "nameLocation": "10282:7:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3488, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3487, + "mutability": "mutable", + "name": "self", + "nameLocation": "10303:4:11", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "10290:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3486, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3485, + "name": "Data", + "nameLocations": [ + "10290:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "10290:4:11" + }, + "referencedDeclaration": 2960, + "src": "10290:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + } + ], + "src": "10289:19:11" + }, + "returnParameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3493, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3506, + "src": "10352:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10352:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10351:9:11" + }, + "scope": 4449, + "src": "10273:162:11", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3534, + "nodeType": "Block", + "src": "10746:268:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3519, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3512, + "src": "10764:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 3520, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "10777:5:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10783:9:11", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "10777:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10764:28:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f206675747572652074696d657374616d707320616c6c6f776564", + "id": 3523, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10794:30:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1bf3850e5a3c6a77d2f1f122095086090857032f278d39145c3b095e1a8b6db1", + "typeString": "literal_string \"No future timestamps allowed\"" + }, + "value": "No future timestamps allowed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1bf3850e5a3c6a77d2f1f122095086090857032f278d39145c3b095e1a8b6db1", + "typeString": "literal_string \"No future timestamps allowed\"" + } + ], + "id": 3518, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10756:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10756:69:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3525, + "nodeType": "ExpressionStatement", + "src": "10756:69:11" + }, + { + "expression": { + "arguments": [ + { + "id": 3527, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3510, + "src": "10903:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3528, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3512, + "src": "10925:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 3529, + "name": "BinarySearchSmtRoots", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4636, + "src": "10952:20:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_BinarySearchSmtRoots_$4636_$", + "typeString": "type(library BinarySearchSmtRoots)" + } + }, + "id": 3530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10973:10:11", + "memberName": "SearchType", + "nodeType": "MemberAccess", + "referencedDeclaration": 4454, + "src": "10952:31:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_SearchType_$4454_$", + "typeString": "type(enum BinarySearchSmtRoots.SearchType)" + } + }, + "id": 3531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10984:9:11", + "memberName": "TIMESTAMP", + "nodeType": "MemberAccess", + "referencedDeclaration": 4452, + "src": "10952:41:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + ], + "id": 3526, + "name": "_getRootInfoByTimestampOrBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4410, + "src": "10855:30:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_enum$_SearchType_$4454_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,enum BinarySearchSmtRoots.SearchType) view returns (struct SmtLib.RootEntryInfo memory)" + } + }, + "id": 3532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10855:152:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory" + } + }, + "functionReturnParameters": 3517, + "id": 3533, + "nodeType": "Return", + "src": "10836:171:11" + } + ] + }, + "documentation": { + "id": 3507, + "nodeType": "StructuredDocumentation", + "src": "10441:170:11", + "text": " @dev Get root info by some historical timestamp.\n @param timestamp The latest timestamp to get the root info for.\n @return Root info struct" + }, + "functionSelector": "17c850f0", + "id": 3535, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRootInfoByTime", + "nameLocation": "10625:17:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3510, + "mutability": "mutable", + "name": "self", + "nameLocation": "10665:4:11", + "nodeType": "VariableDeclaration", + "scope": 3535, + "src": "10652:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3509, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3508, + "name": "Data", + "nameLocations": [ + "10652:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "10652:4:11" + }, + "referencedDeclaration": 2960, + "src": "10652:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3512, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "10687:9:11", + "nodeType": "VariableDeclaration", + "scope": 3535, + "src": "10679:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3511, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10679:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10642:60:11" + }, + "returnParameters": { + "id": 3517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3516, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3535, + "src": "10724:20:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + }, + "typeName": { + "id": 3515, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3514, + "name": "RootEntryInfo", + "nameLocations": [ + "10724:13:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3001, + "src": "10724:13:11" + }, + "referencedDeclaration": 3001, + "src": "10724:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + } + }, + "visibility": "internal" + } + ], + "src": "10723:22:11" + }, + "scope": 4449, + "src": "10616:398:11", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3563, + "nodeType": "Block", + "src": "11326:177:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3548, + "name": "blockN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3541, + "src": "11344:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 3549, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "11354:5:11", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 3550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11360:6:11", + "memberName": "number", + "nodeType": "MemberAccess", + "src": "11354:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11344:22:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f2066757475726520626c6f636b7320616c6c6f776564", + "id": 3552, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11368:26:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c366ba1cae47b1c1a5d6ce887a8bd1a8d2f3658dc55cd03d6e6687e140586e6f", + "typeString": "literal_string \"No future blocks allowed\"" + }, + "value": "No future blocks allowed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c366ba1cae47b1c1a5d6ce887a8bd1a8d2f3658dc55cd03d6e6687e140586e6f", + "typeString": "literal_string \"No future blocks allowed\"" + } + ], + "id": 3547, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11336:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11336:59:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3554, + "nodeType": "ExpressionStatement", + "src": "11336:59:11" + }, + { + "expression": { + "arguments": [ + { + "id": 3556, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3539, + "src": "11444:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3557, + "name": "blockN", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3541, + "src": "11450:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 3558, + "name": "BinarySearchSmtRoots", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4636, + "src": "11458:20:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_BinarySearchSmtRoots_$4636_$", + "typeString": "type(library BinarySearchSmtRoots)" + } + }, + "id": 3559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11479:10:11", + "memberName": "SearchType", + "nodeType": "MemberAccess", + "referencedDeclaration": 4454, + "src": "11458:31:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_SearchType_$4454_$", + "typeString": "type(enum BinarySearchSmtRoots.SearchType)" + } + }, + "id": 3560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11490:5:11", + "memberName": "BLOCK", + "nodeType": "MemberAccess", + "referencedDeclaration": 4453, + "src": "11458:37:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + ], + "id": 3555, + "name": "_getRootInfoByTimestampOrBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4410, + "src": "11413:30:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_enum$_SearchType_$4454_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,enum BinarySearchSmtRoots.SearchType) view returns (struct SmtLib.RootEntryInfo memory)" + } + }, + "id": 3561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11413:83:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory" + } + }, + "functionReturnParameters": 3546, + "id": 3562, + "nodeType": "Return", + "src": "11406:90:11" + } + ] + }, + "documentation": { + "id": 3536, + "nodeType": "StructuredDocumentation", + "src": "11020:173:11", + "text": " @dev Get root info by some historical block number.\n @param blockN The latest block number to get the root info for.\n @return Root info struct" + }, + "functionSelector": "dc9a7c8c", + "id": 3564, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRootInfoByBlock", + "nameLocation": "11207:18:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3539, + "mutability": "mutable", + "name": "self", + "nameLocation": "11248:4:11", + "nodeType": "VariableDeclaration", + "scope": 3564, + "src": "11235:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3538, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3537, + "name": "Data", + "nameLocations": [ + "11235:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "11235:4:11" + }, + "referencedDeclaration": 2960, + "src": "11235:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3541, + "mutability": "mutable", + "name": "blockN", + "nameLocation": "11270:6:11", + "nodeType": "VariableDeclaration", + "scope": 3564, + "src": "11262:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11262:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11225:57:11" + }, + "returnParameters": { + "id": 3546, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3545, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3564, + "src": "11304:20:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + }, + "typeName": { + "id": 3544, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3543, + "name": "RootEntryInfo", + "nameLocations": [ + "11304:13:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3001, + "src": "11304:13:11" + }, + "referencedDeclaration": 3001, + "src": "11304:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + } + }, + "visibility": "internal" + } + ], + "src": "11303:22:11" + }, + "scope": 4449, + "src": "11198:305:11", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3604, + "nodeType": "Block", + "src": "11767:177:11", + "statements": [ + { + "assignments": [ + 3584 + ], + "declarations": [ + { + "constant": false, + "id": 3584, + "mutability": "mutable", + "name": "indexes", + "nameLocation": "11795:7:11", + "nodeType": "VariableDeclaration", + "scope": 3604, + "src": "11777:25:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11777:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3583, + "nodeType": "ArrayTypeName", + "src": "11777:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 3589, + "initialValue": { + "baseExpression": { + "expression": { + "id": 3585, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3568, + "src": "11805:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3586, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11810:11:11", + "memberName": "rootIndexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2951, + "src": "11805:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(uint256 => uint256[] storage ref)" + } + }, + "id": 3588, + "indexExpression": { + "id": 3587, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3570, + "src": "11822:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11805:22:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11777:50:11" + }, + { + "assignments": [ + 3591 + ], + "declarations": [ + { + "constant": false, + "id": 3591, + "mutability": "mutable", + "name": "lastIndex", + "nameLocation": "11845:9:11", + "nodeType": "VariableDeclaration", + "scope": 3604, + "src": "11837:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3590, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11837:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3598, + "initialValue": { + "baseExpression": { + "id": 3592, + "name": "indexes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3584, + "src": "11857:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + "id": 3597, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3593, + "name": "indexes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3584, + "src": "11865:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + "id": 3594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11873:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "11865:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 3595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11882:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11865:18:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11857:27:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11837:47:11" + }, + { + "expression": { + "arguments": [ + { + "id": 3600, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3568, + "src": "11921:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3601, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3591, + "src": "11927:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3599, + "name": "_getRootInfoByIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4376, + "src": "11901:19:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (struct SmtLib.RootEntryInfo memory)" + } + }, + "id": 3602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11901:36:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory" + } + }, + "functionReturnParameters": 3579, + "id": 3603, + "nodeType": "Return", + "src": "11894:43:11" + } + ] + }, + "documentation": { + "id": 3565, + "nodeType": "StructuredDocumentation", + "src": "11509:105:11", + "text": " @dev Returns root info by root\n @param root root\n @return Root info struct" + }, + "functionSelector": "dea7633a", + "id": 3605, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3573, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3568, + "src": "11724:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3574, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3570, + "src": "11730:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3575, + "kind": "modifierInvocation", + "modifierName": { + "id": 3572, + "name": "onlyExistingRoot", + "nameLocations": [ + "11707:16:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3040, + "src": "11707:16:11" + }, + "nodeType": "ModifierInvocation", + "src": "11707:28:11" + } + ], + "name": "getRootInfo", + "nameLocation": "11628:11:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3568, + "mutability": "mutable", + "name": "self", + "nameLocation": "11662:4:11", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "11649:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3567, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3566, + "name": "Data", + "nameLocations": [ + "11649:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "11649:4:11" + }, + "referencedDeclaration": 2960, + "src": "11649:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3570, + "mutability": "mutable", + "name": "root", + "nameLocation": "11684:4:11", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "11676:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3569, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11676:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11639:55:11" + }, + "returnParameters": { + "id": 3579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3578, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3605, + "src": "11745:20:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + }, + "typeName": { + "id": 3577, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3576, + "name": "RootEntryInfo", + "nameLocations": [ + "11745:13:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3001, + "src": "11745:13:11" + }, + "referencedDeclaration": 3001, + "src": "11745:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + } + }, + "visibility": "internal" + } + ], + "src": "11744:22:11" + }, + "scope": 4449, + "src": "11619:325:11", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3622, + "nodeType": "Block", + "src": "12297:53:11", + "statements": [ + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 3616, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3609, + "src": "12314:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3617, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12319:11:11", + "memberName": "rootIndexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2951, + "src": "12314:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(uint256 => uint256[] storage ref)" + } + }, + "id": 3619, + "indexExpression": { + "id": 3618, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3611, + "src": "12331:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12314:22:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 3620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12337:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "12314:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3615, + "id": 3621, + "nodeType": "Return", + "src": "12307:36:11" + } + ] + }, + "documentation": { + "id": 3606, + "nodeType": "StructuredDocumentation", + "src": "11950:220:11", + "text": " @dev Retrieve duplicate root quantity by id and state.\n If the root repeats more that once, the length may be greater than 1.\n @param root A root.\n @return Root root entries quantity." + }, + "functionSelector": "0078f030", + "id": 3623, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getRootInfoListLengthByRoot", + "nameLocation": "12184:27:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3612, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3609, + "mutability": "mutable", + "name": "self", + "nameLocation": "12234:4:11", + "nodeType": "VariableDeclaration", + "scope": 3623, + "src": "12221:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3608, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3607, + "name": "Data", + "nameLocations": [ + "12221:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "12221:4:11" + }, + "referencedDeclaration": 2960, + "src": "12221:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3611, + "mutability": "mutable", + "name": "root", + "nameLocation": "12256:4:11", + "nodeType": "VariableDeclaration", + "scope": 3623, + "src": "12248:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3610, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12248:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12211:55:11" + }, + "returnParameters": { + "id": 3615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3614, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3623, + "src": "12288:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3613, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12288:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12287:9:11" + }, + "scope": 4449, + "src": "12175:175:11", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3708, + "nodeType": "Block", + "src": "12908:485:11", + "statements": [ + { + "assignments": [ + 3648 + ], + "declarations": [ + { + "constant": false, + "id": 3648, + "mutability": "mutable", + "name": "indexes", + "nameLocation": "12936:7:11", + "nodeType": "VariableDeclaration", + "scope": 3708, + "src": "12918:25:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3646, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12918:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3647, + "nodeType": "ArrayTypeName", + "src": "12918:9:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 3653, + "initialValue": { + "baseExpression": { + "expression": { + "id": 3649, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3627, + "src": "12946:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3650, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12951:11:11", + "memberName": "rootIndexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2951, + "src": "12946:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(uint256 => uint256[] storage ref)" + } + }, + "id": 3652, + "indexExpression": { + "id": 3651, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3629, + "src": "12963:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12946:22:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12918:50:11" + }, + { + "assignments": [ + 3655, + 3657 + ], + "declarations": [ + { + "constant": false, + "id": 3655, + "mutability": "mutable", + "name": "start", + "nameLocation": "12987:5:11", + "nodeType": "VariableDeclaration", + "scope": 3708, + "src": "12979:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3654, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12979:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3657, + "mutability": "mutable", + "name": "end", + "nameLocation": "13002:3:11", + "nodeType": "VariableDeclaration", + "scope": 3708, + "src": "12994:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3656, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12994:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3666, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 3660, + "name": "indexes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3648, + "src": "13049:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + "id": 3661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13057:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13049:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3662, + "name": "startIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3631, + "src": "13077:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3663, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3633, + "src": "13101:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3664, + "name": "ROOT_INFO_LIST_RETURN_LIMIT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2927, + "src": "13121:27:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3658, + "name": "ArrayUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 611, + "src": "13009:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ArrayUtils_$611_$", + "typeString": "type(library ArrayUtils)" + } + }, + "id": 3659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13020:15:11", + "memberName": "calculateBounds", + "nodeType": "MemberAccess", + "referencedDeclaration": 610, + "src": "13009:26:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256,uint256) pure returns (uint256,uint256)" + } + }, + "id": 3665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13009:149:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12978:180:11" + }, + { + "assignments": [ + 3671 + ], + "declarations": [ + { + "constant": false, + "id": 3671, + "mutability": "mutable", + "name": "result", + "nameLocation": "13192:6:11", + "nodeType": "VariableDeclaration", + "scope": 3708, + "src": "13169:29:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo[]" + }, + "typeName": { + "baseType": { + "id": 3669, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3668, + "name": "RootEntryInfo", + "nameLocations": [ + "13169:13:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3001, + "src": "13169:13:11" + }, + "referencedDeclaration": 3001, + "src": "13169:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + } + }, + "id": 3670, + "nodeType": "ArrayTypeName", + "src": "13169:15:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_storage_$dyn_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo[]" + } + }, + "visibility": "internal" + } + ], + "id": 3680, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3676, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3657, + "src": "13221:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 3677, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3655, + "src": "13227:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13221:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "13201:19:11", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct SmtLib.RootEntryInfo memory[] memory)" + }, + "typeName": { + "baseType": { + "id": 3673, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3672, + "name": "RootEntryInfo", + "nameLocations": [ + "13205:13:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3001, + "src": "13205:13:11" + }, + "referencedDeclaration": 3001, + "src": "13205:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + } + }, + "id": 3674, + "nodeType": "ArrayTypeName", + "src": "13205:15:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_storage_$dyn_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo[]" + } + } + }, + "id": 3679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13201:32:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13169:64:11" + }, + { + "body": { + "id": 3704, + "nodeType": "Block", + "src": "13281:82:11", + "statements": [ + { + "expression": { + "id": 3702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3691, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "13295:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory[] memory" + } + }, + "id": 3695, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3692, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3682, + "src": "13302:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 3693, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3655, + "src": "13306:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13302:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13295:17:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 3697, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3627, + "src": "13335:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "baseExpression": { + "id": 3698, + "name": "indexes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3648, + "src": "13341:7:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + "id": 3700, + "indexExpression": { + "id": 3699, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3682, + "src": "13349:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13341:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3696, + "name": "_getRootInfoByIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4376, + "src": "13315:19:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (struct SmtLib.RootEntryInfo memory)" + } + }, + "id": 3701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13315:37:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory" + } + }, + "src": "13295:57:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory" + } + }, + "id": 3703, + "nodeType": "ExpressionStatement", + "src": "13295:57:11" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3685, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3682, + "src": "13267:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 3686, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3657, + "src": "13271:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13267:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3705, + "initializationExpression": { + "assignments": [ + 3682 + ], + "declarations": [ + { + "constant": false, + "id": 3682, + "mutability": "mutable", + "name": "i", + "nameLocation": "13256:1:11", + "nodeType": "VariableDeclaration", + "scope": 3705, + "src": "13248:9:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3681, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13248:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3684, + "initialValue": { + "id": 3683, + "name": "start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3655, + "src": "13260:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13248:17:11" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 3689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "13276:3:11", + "subExpression": { + "id": 3688, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3682, + "src": "13276:1:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3690, + "nodeType": "ExpressionStatement", + "src": "13276:3:11" + }, + "nodeType": "ForStatement", + "src": "13243:120:11" + }, + { + "expression": { + "id": 3706, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3671, + "src": "13380:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory[] memory" + } + }, + "functionReturnParameters": 3643, + "id": 3707, + "nodeType": "Return", + "src": "13373:13:11" + } + ] + }, + "documentation": { + "id": 3624, + "nodeType": "StructuredDocumentation", + "src": "12356:335:11", + "text": " @dev Retrieve root infos list of duplicated root by id and state.\n If the root repeats more that once, the length list may be greater than 1.\n @param root A root.\n @param startIndex The index to start the list.\n @param length The length of the list.\n @return Root Root entries quantity." + }, + "functionSelector": "91761b75", + "id": 3709, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "id": 3636, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3627, + "src": "12863:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3637, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3629, + "src": "12869:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3638, + "kind": "modifierInvocation", + "modifierName": { + "id": 3635, + "name": "onlyExistingRoot", + "nameLocations": [ + "12846:16:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3040, + "src": "12846:16:11" + }, + "nodeType": "ModifierInvocation", + "src": "12846:28:11" + } + ], + "name": "getRootInfoListByRoot", + "nameLocation": "12705:21:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3627, + "mutability": "mutable", + "name": "self", + "nameLocation": "12749:4:11", + "nodeType": "VariableDeclaration", + "scope": 3709, + "src": "12736:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3626, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3625, + "name": "Data", + "nameLocations": [ + "12736:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "12736:4:11" + }, + "referencedDeclaration": 2960, + "src": "12736:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3629, + "mutability": "mutable", + "name": "root", + "nameLocation": "12771:4:11", + "nodeType": "VariableDeclaration", + "scope": 3709, + "src": "12763:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3628, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12763:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3631, + "mutability": "mutable", + "name": "startIndex", + "nameLocation": "12793:10:11", + "nodeType": "VariableDeclaration", + "scope": 3709, + "src": "12785:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3630, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12785:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3633, + "mutability": "mutable", + "name": "length", + "nameLocation": "12821:6:11", + "nodeType": "VariableDeclaration", + "scope": 3709, + "src": "12813:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3632, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12813:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12726:107:11" + }, + "returnParameters": { + "id": 3643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3642, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3709, + "src": "12884:22:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo[]" + }, + "typeName": { + "baseType": { + "id": 3640, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3639, + "name": "RootEntryInfo", + "nameLocations": [ + "12884:13:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3001, + "src": "12884:13:11" + }, + "referencedDeclaration": 3001, + "src": "12884:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + } + }, + "id": 3641, + "nodeType": "ArrayTypeName", + "src": "12884:15:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntryInfo_$3001_storage_$dyn_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo[]" + } + }, + "visibility": "internal" + } + ], + "src": "12883:24:11" + }, + "scope": 4449, + "src": "12696:697:11", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3728, + "nodeType": "Block", + "src": "13587:57:11", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 3720, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3713, + "src": "13604:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3721, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13609:11:11", + "memberName": "rootIndexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2951, + "src": "13604:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(uint256 => uint256[] storage ref)" + } + }, + "id": 3723, + "indexExpression": { + "id": 3722, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3715, + "src": "13621:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13604:22:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 3724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13627:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13604:29:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13636:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13604:33:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3719, + "id": 3727, + "nodeType": "Return", + "src": "13597:40:11" + } + ] + }, + "documentation": { + "id": 3710, + "nodeType": "StructuredDocumentation", + "src": "13399:103:11", + "text": " @dev Checks if root exists\n @param root root\n return true if root exists" + }, + "functionSelector": "92f5b06c", + "id": 3729, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "rootExists", + "nameLocation": "13516:10:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3713, + "mutability": "mutable", + "name": "self", + "nameLocation": "13540:4:11", + "nodeType": "VariableDeclaration", + "scope": 3729, + "src": "13527:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3712, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3711, + "name": "Data", + "nameLocations": [ + "13527:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "13527:4:11" + }, + "referencedDeclaration": 2960, + "src": "13527:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3715, + "mutability": "mutable", + "name": "root", + "nameLocation": "13554:4:11", + "nodeType": "VariableDeclaration", + "scope": 3729, + "src": "13546:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3714, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13546:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13526:33:11" + }, + "returnParameters": { + "id": 3719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3718, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3729, + "src": "13581:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3717, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13581:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "13580:6:11" + }, + "scope": 4449, + "src": "13507:137:11", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3766, + "nodeType": "Block", + "src": "13802:276:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3739, + "name": "maxDepth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "13820:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 3740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13831:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13820:12:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4d6178206465707468206d7573742062652067726561746572207468616e207a65726f", + "id": 3742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13834:37:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f927d9ad01d6e6b5172536d51bb739dcbf594dbe3b2e483a8bff6b42ca949e30", + "typeString": "literal_string \"Max depth must be greater than zero\"" + }, + "value": "Max depth must be greater than zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f927d9ad01d6e6b5172536d51bb739dcbf594dbe3b2e483a8bff6b42ca949e30", + "typeString": "literal_string \"Max depth must be greater than zero\"" + } + ], + "id": 3738, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13812:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13812:60:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3744, + "nodeType": "ExpressionStatement", + "src": "13812:60:11" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3746, + "name": "maxDepth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "13890:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 3747, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "13901:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3748, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13906:8:11", + "memberName": "maxDepth", + "nodeType": "MemberAccess", + "referencedDeclaration": 2953, + "src": "13901:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13890:24:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4d61782064657074682063616e206f6e6c7920626520696e63726561736564", + "id": 3750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13916:33:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_36f00609f1952b6d8e215a941a30218dcc45c2a338282e0aa639a69b27436235", + "typeString": "literal_string \"Max depth can only be increased\"" + }, + "value": "Max depth can only be increased" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_36f00609f1952b6d8e215a941a30218dcc45c2a338282e0aa639a69b27436235", + "typeString": "literal_string \"Max depth can only be increased\"" + } + ], + "id": 3745, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13882:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13882:68:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3752, + "nodeType": "ExpressionStatement", + "src": "13882:68:11" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3754, + "name": "maxDepth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "13968:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 3755, + "name": "MAX_DEPTH_HARD_CAP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2931, + "src": "13980:18:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13968:30:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4d61782064657074682069732067726561746572207468616e206861726420636170", + "id": 3757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14000:36:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_87c54ee2d38ee359efdefcd1894af2fd7fad037b45e2358dc82a62d9b12d91e3", + "typeString": "literal_string \"Max depth is greater than hard cap\"" + }, + "value": "Max depth is greater than hard cap" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_87c54ee2d38ee359efdefcd1894af2fd7fad037b45e2358dc82a62d9b12d91e3", + "typeString": "literal_string \"Max depth is greater than hard cap\"" + } + ], + "id": 3753, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13960:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13960:77:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3759, + "nodeType": "ExpressionStatement", + "src": "13960:77:11" + }, + { + "expression": { + "id": 3764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 3760, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3733, + "src": "14047:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3762, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "14052:8:11", + "memberName": "maxDepth", + "nodeType": "MemberAccess", + "referencedDeclaration": 2953, + "src": "14047:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3763, + "name": "maxDepth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3735, + "src": "14063:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14047:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3765, + "nodeType": "ExpressionStatement", + "src": "14047:24:11" + } + ] + }, + "documentation": { + "id": 3730, + "nodeType": "StructuredDocumentation", + "src": "13650:82:11", + "text": " @dev Sets max depth of the SMT\n @param maxDepth max depth" + }, + "functionSelector": "0912610a", + "id": 3767, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setMaxDepth", + "nameLocation": "13746:11:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3733, + "mutability": "mutable", + "name": "self", + "nameLocation": "13771:4:11", + "nodeType": "VariableDeclaration", + "scope": 3767, + "src": "13758:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3732, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3731, + "name": "Data", + "nameLocations": [ + "13758:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "13758:4:11" + }, + "referencedDeclaration": 2960, + "src": "13758:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3735, + "mutability": "mutable", + "name": "maxDepth", + "nameLocation": "13785:8:11", + "nodeType": "VariableDeclaration", + "scope": 3767, + "src": "13777:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3734, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13777:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13757:37:11" + }, + "returnParameters": { + "id": 3737, + "nodeType": "ParameterList", + "parameters": [], + "src": "13802:0:11" + }, + "scope": 4449, + "src": "13737:341:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3779, + "nodeType": "Block", + "src": "14234:37:11", + "statements": [ + { + "expression": { + "expression": { + "id": 3776, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3771, + "src": "14251:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3777, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14256:8:11", + "memberName": "maxDepth", + "nodeType": "MemberAccess", + "referencedDeclaration": 2953, + "src": "14251:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3775, + "id": 3778, + "nodeType": "Return", + "src": "14244:20:11" + } + ] + }, + "documentation": { + "id": 3768, + "nodeType": "StructuredDocumentation", + "src": "14084:73:11", + "text": " @dev Gets max depth of the SMT\n return max depth" + }, + "functionSelector": "893f99f3", + "id": 3780, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMaxDepth", + "nameLocation": "14171:11:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3771, + "mutability": "mutable", + "name": "self", + "nameLocation": "14196:4:11", + "nodeType": "VariableDeclaration", + "scope": 3780, + "src": "14183:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3770, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3769, + "name": "Data", + "nameLocations": [ + "14183:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "14183:4:11" + }, + "referencedDeclaration": 2960, + "src": "14183:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + } + ], + "src": "14182:19:11" + }, + "returnParameters": { + "id": 3775, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3774, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3780, + "src": "14225:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3773, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14225:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14224:9:11" + }, + "scope": 4449, + "src": "14162:109:11", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3815, + "nodeType": "Block", + "src": "14479:180:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14497:20:11", + "subExpression": { + "arguments": [ + { + "id": 3791, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3784, + "src": "14512:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + ], + "id": 3790, + "name": "isInitialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3842, + "src": "14498:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_bool_$", + "typeString": "function (struct SmtLib.Data storage pointer) view returns (bool)" + } + }, + "id": 3792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14498:19:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536d7420697320616c726561647920696e697469616c697a6564", + "id": 3794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14519:28:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_34bc8bca45d4a31a6e4233f39a7def873d05862a78f6ec35ac6d77da37f9aea8", + "typeString": "literal_string \"Smt is already initialized\"" + }, + "value": "Smt is already initialized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_34bc8bca45d4a31a6e4233f39a7def873d05862a78f6ec35ac6d77da37f9aea8", + "typeString": "literal_string \"Smt is already initialized\"" + } + ], + "id": 3789, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14489:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14489:59:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3796, + "nodeType": "ExpressionStatement", + "src": "14489:59:11" + }, + { + "expression": { + "arguments": [ + { + "id": 3798, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3784, + "src": "14570:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3799, + "name": "maxDepth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3786, + "src": "14576:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3797, + "name": "setMaxDepth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3767, + "src": "14558:11:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$__$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256)" + } + }, + "id": 3800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14558:27:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3801, + "nodeType": "ExpressionStatement", + "src": "14558:27:11" + }, + { + "expression": { + "arguments": [ + { + "id": 3803, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3784, + "src": "14605:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "hexValue": "30", + "id": 3804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14611:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 3805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14614:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 3806, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14617:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3802, + "name": "_addEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4448, + "src": "14595:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,uint256,uint256)" + } + }, + "id": 3807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14595:24:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3808, + "nodeType": "ExpressionStatement", + "src": "14595:24:11" + }, + { + "expression": { + "id": 3813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 3809, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3784, + "src": "14629:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3811, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "14634:11:11", + "memberName": "initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 2955, + "src": "14629:16:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 3812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14648:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "14629:23:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3814, + "nodeType": "ExpressionStatement", + "src": "14629:23:11" + } + ] + }, + "documentation": { + "id": 3781, + "nodeType": "StructuredDocumentation", + "src": "14277:131:11", + "text": " @dev Initialize SMT with max depth and root entry of an empty tree.\n @param maxDepth Max depth of the SMT." + }, + "functionSelector": "9e43b813", + "id": 3816, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "initialize", + "nameLocation": "14422:10:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3784, + "mutability": "mutable", + "name": "self", + "nameLocation": "14446:4:11", + "nodeType": "VariableDeclaration", + "scope": 3816, + "src": "14433:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3783, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3782, + "name": "Data", + "nameLocations": [ + "14433:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "14433:4:11" + }, + "referencedDeclaration": 2960, + "src": "14433:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3786, + "mutability": "mutable", + "name": "maxDepth", + "nameLocation": "14460:8:11", + "nodeType": "VariableDeclaration", + "scope": 3816, + "src": "14452:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14452:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14432:37:11" + }, + "returnParameters": { + "id": 3788, + "nodeType": "ParameterList", + "parameters": [], + "src": "14479:0:11" + }, + "scope": 4449, + "src": "14413:246:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 3829, + "nodeType": "Block", + "src": "14709:82:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3823, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3819, + "src": "14741:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + ], + "id": 3822, + "name": "isInitialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3842, + "src": "14727:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$returns$_t_bool_$", + "typeString": "function (struct SmtLib.Data storage pointer) view returns (bool)" + } + }, + "id": 3824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14727:19:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536d74206973206e6f7420696e697469616c697a6564", + "id": 3825, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14748:24:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ac1ebaa0462e13da16f18cbe900dae12201bb024c2854db23aa2ec21507908be", + "typeString": "literal_string \"Smt is not initialized\"" + }, + "value": "Smt is not initialized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ac1ebaa0462e13da16f18cbe900dae12201bb024c2854db23aa2ec21507908be", + "typeString": "literal_string \"Smt is not initialized\"" + } + ], + "id": 3821, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14719:7:11", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14719:54:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3827, + "nodeType": "ExpressionStatement", + "src": "14719:54:11" + }, + { + "id": 3828, + "nodeType": "PlaceholderStatement", + "src": "14783:1:11" + } + ] + }, + "id": 3830, + "name": "onlyInitialized", + "nameLocation": "14674:15:11", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3819, + "mutability": "mutable", + "name": "self", + "nameLocation": "14703:4:11", + "nodeType": "VariableDeclaration", + "scope": 3830, + "src": "14690:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3818, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3817, + "name": "Data", + "nameLocations": [ + "14690:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "14690:4:11" + }, + "referencedDeclaration": 2960, + "src": "14690:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + } + ], + "src": "14689:19:11" + }, + "src": "14665:126:11", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3841, + "nodeType": "Block", + "src": "14866:40:11", + "statements": [ + { + "expression": { + "expression": { + "id": 3838, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3833, + "src": "14883:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3839, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14888:11:11", + "memberName": "initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 2955, + "src": "14883:16:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3837, + "id": 3840, + "nodeType": "Return", + "src": "14876:23:11" + } + ] + }, + "functionSelector": "ec145108", + "id": 3842, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isInitialized", + "nameLocation": "14806:13:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3833, + "mutability": "mutable", + "name": "self", + "nameLocation": "14833:4:11", + "nodeType": "VariableDeclaration", + "scope": 3842, + "src": "14820:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3832, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3831, + "name": "Data", + "nameLocations": [ + "14820:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "14820:4:11" + }, + "referencedDeclaration": 2960, + "src": "14820:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + } + ], + "src": "14819:19:11" + }, + "returnParameters": { + "id": 3837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3836, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 3842, + "src": "14860:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3835, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14860:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "14859:6:11" + }, + "scope": 4449, + "src": "14797:109:11", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 4002, + "nodeType": "Block", + "src": "15068:1464:11", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3857, + "name": "depth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3852, + "src": "15082:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "id": 3858, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3845, + "src": "15090:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3859, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15095:8:11", + "memberName": "maxDepth", + "nodeType": "MemberAccess", + "referencedDeclaration": 2953, + "src": "15090:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15082:21:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3866, + "nodeType": "IfStatement", + "src": "15078:79:11", + "trueBody": { + "id": 3865, + "nodeType": "Block", + "src": "15105:52:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "4d61782064657074682072656163686564", + "id": 3862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15126:19:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfd13f65fb38f208d39dd4db262f4a6b7e7be3bcdc9bf6b007847ef6e9e4f479", + "typeString": "literal_string \"Max depth reached\"" + }, + "value": "Max depth reached" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_bfd13f65fb38f208d39dd4db262f4a6b7e7be3bcdc9bf6b007847ef6e9e4f479", + "typeString": "literal_string \"Max depth reached\"" + } + ], + "id": 3861, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "15119:6:11", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 3863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15119:27:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3864, + "nodeType": "ExpressionStatement", + "src": "15119:27:11" + } + ] + } + }, + { + "assignments": [ + 3869 + ], + "declarations": [ + { + "constant": false, + "id": 3869, + "mutability": "mutable", + "name": "node", + "nameLocation": "15179:4:11", + "nodeType": "VariableDeclaration", + "scope": 4002, + "src": "15167:16:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node" + }, + "typeName": { + "id": 3868, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3867, + "name": "Node", + "nameLocations": [ + "15167:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3014, + "src": "15167:4:11" + }, + "referencedDeclaration": 3014, + "src": "15167:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage_ptr", + "typeString": "struct SmtLib.Node" + } + }, + "visibility": "internal" + } + ], + "id": 3874, + "initialValue": { + "baseExpression": { + "expression": { + "id": 3870, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3845, + "src": "15186:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 3871, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15191:5:11", + "memberName": "nodes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2942, + "src": "15186:10:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$", + "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)" + } + }, + "id": 3873, + "indexExpression": { + "id": 3872, + "name": "nodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3850, + "src": "15197:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15186:20:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage", + "typeString": "struct SmtLib.Node storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15167:39:11" + }, + { + "assignments": [ + 3876 + ], + "declarations": [ + { + "constant": false, + "id": 3876, + "mutability": "mutable", + "name": "nextNodeHash", + "nameLocation": "15224:12:11", + "nodeType": "VariableDeclaration", + "scope": 4002, + "src": "15216:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3875, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15216:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3877, + "nodeType": "VariableDeclarationStatement", + "src": "15216:20:11" + }, + { + "assignments": [ + 3879 + ], + "declarations": [ + { + "constant": false, + "id": 3879, + "mutability": "mutable", + "name": "leafHash", + "nameLocation": "15254:8:11", + "nodeType": "VariableDeclaration", + "scope": 4002, + "src": "15246:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3878, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15246:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 3881, + "initialValue": { + "hexValue": "30", + "id": 3880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15265:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "15246:20:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + "id": 3886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3882, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3869, + "src": "15281:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3883, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15286:8:11", + "memberName": "nodeType", + "nodeType": "MemberAccess", + "referencedDeclaration": 3005, + "src": "15281:13:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3884, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "15298:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 3885, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15307:5:11", + "memberName": "EMPTY", + "nodeType": "MemberAccess", + "referencedDeclaration": 2933, + "src": "15298:14:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "src": "15281:31:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + "id": 3899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3895, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3869, + "src": "15383:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15388:8:11", + "memberName": "nodeType", + "nodeType": "MemberAccess", + "referencedDeclaration": 3005, + "src": "15383:13:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3897, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "15400:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 3898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15409:4:11", + "memberName": "LEAF", + "nodeType": "MemberAccess", + "referencedDeclaration": 2934, + "src": "15400:13:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "src": "15383:30:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + "id": 3924, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3920, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3869, + "src": "15586:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3921, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15591:8:11", + "memberName": "nodeType", + "nodeType": "MemberAccess", + "referencedDeclaration": 3005, + "src": "15586:13:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3922, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "15603:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 3923, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15612:6:11", + "memberName": "MIDDLE", + "nodeType": "MemberAccess", + "referencedDeclaration": 2935, + "src": "15603:15:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "src": "15586:32:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3997, + "nodeType": "IfStatement", + "src": "15582:918:11", + "trueBody": { + "id": 3996, + "nodeType": "Block", + "src": "15620:880:11", + "statements": [ + { + "assignments": [ + 3927 + ], + "declarations": [ + { + "constant": false, + "id": 3927, + "mutability": "mutable", + "name": "newNodeMiddle", + "nameLocation": "15646:13:11", + "nodeType": "VariableDeclaration", + "scope": 3996, + "src": "15634:25:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node" + }, + "typeName": { + "id": 3926, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3925, + "name": "Node", + "nameLocations": [ + "15634:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3014, + "src": "15634:4:11" + }, + "referencedDeclaration": 3014, + "src": "15634:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage_ptr", + "typeString": "struct SmtLib.Node" + } + }, + "visibility": "internal" + } + ], + "id": 3928, + "nodeType": "VariableDeclarationStatement", + "src": "15634:25:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3929, + "name": "newLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3848, + "src": "15679:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3930, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15687:5:11", + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 3011, + "src": "15679:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 3931, + "name": "depth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3852, + "src": "15696:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15679:22:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15678:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "31", + "id": 3934, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15705:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15678:28:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 3936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15710:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15678:33:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3987, + "nodeType": "Block", + "src": "16077:358:11", + "statements": [ + { + "expression": { + "id": 3973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3963, + "name": "nextNodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3876, + "src": "16095:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 3965, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3845, + "src": "16119:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3966, + "name": "newLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3848, + "src": "16125:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + { + "expression": { + "id": 3967, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3869, + "src": "16134:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3968, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16139:9:11", + "memberName": "childLeft", + "nodeType": "MemberAccess", + "referencedDeclaration": 3007, + "src": "16134:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3969, + "name": "depth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3852, + "src": "16150:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 3970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16158:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "16150:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3964, + "name": "_addLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4003, + "src": "16110:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory,uint256,uint256) returns (uint256)" + } + }, + "id": 3972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16110:50:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16095:65:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3974, + "nodeType": "ExpressionStatement", + "src": "16095:65:11" + }, + { + "expression": { + "id": 3985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3975, + "name": "newNodeMiddle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3927, + "src": "16179:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 3977, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "16232:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 3978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16241:6:11", + "memberName": "MIDDLE", + "nodeType": "MemberAccess", + "referencedDeclaration": 2935, + "src": "16232:15:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + { + "id": 3979, + "name": "nextNodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3876, + "src": "16280:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 3980, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3869, + "src": "16326:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3981, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16331:10:11", + "memberName": "childRight", + "nodeType": "MemberAccess", + "referencedDeclaration": 3009, + "src": "16326:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 3982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16370:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 3983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16400:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3976, + "name": "Node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3014, + "src": "16195:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Node_$3014_storage_ptr_$", + "typeString": "type(struct SmtLib.Node storage pointer)" + } + }, + "id": 3984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "16222:8:11", + "16269:9:11", + "16314:10:11", + "16363:5:11", + "16393:5:11" + ], + "names": [ + "nodeType", + "childLeft", + "childRight", + "index", + "value" + ], + "nodeType": "FunctionCall", + "src": "16195:225:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "src": "16179:241:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3986, + "nodeType": "ExpressionStatement", + "src": "16179:241:11" + } + ] + }, + "id": 3988, + "nodeType": "IfStatement", + "src": "15674:761:11", + "trueBody": { + "id": 3962, + "nodeType": "Block", + "src": "15713:358:11", + "statements": [ + { + "expression": { + "id": 3948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3938, + "name": "nextNodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3876, + "src": "15731:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 3940, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3845, + "src": "15755:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3941, + "name": "newLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3848, + "src": "15761:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + { + "expression": { + "id": 3942, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3869, + "src": "15770:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3943, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15775:10:11", + "memberName": "childRight", + "nodeType": "MemberAccess", + "referencedDeclaration": 3009, + "src": "15770:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3944, + "name": "depth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3852, + "src": "15787:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 3945, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15795:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15787:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3939, + "name": "_addLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4003, + "src": "15746:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory,uint256,uint256) returns (uint256)" + } + }, + "id": 3947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15746:51:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15731:66:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3949, + "nodeType": "ExpressionStatement", + "src": "15731:66:11" + }, + { + "expression": { + "id": 3960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3950, + "name": "newNodeMiddle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3927, + "src": "15816:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 3952, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "15869:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 3953, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15878:6:11", + "memberName": "MIDDLE", + "nodeType": "MemberAccess", + "referencedDeclaration": 2935, + "src": "15869:15:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + { + "expression": { + "id": 3954, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3869, + "src": "15917:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3955, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15922:9:11", + "memberName": "childLeft", + "nodeType": "MemberAccess", + "referencedDeclaration": 3007, + "src": "15917:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3956, + "name": "nextNodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3876, + "src": "15965:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 3957, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16006:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 3958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16036:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3951, + "name": "Node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3014, + "src": "15832:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Node_$3014_storage_ptr_$", + "typeString": "type(struct SmtLib.Node storage pointer)" + } + }, + "id": 3959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "15859:8:11", + "15906:9:11", + "15953:10:11", + "15999:5:11", + "16029:5:11" + ], + "names": [ + "nodeType", + "childLeft", + "childRight", + "index", + "value" + ], + "nodeType": "FunctionCall", + "src": "15832:224:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "src": "15816:240:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3961, + "nodeType": "ExpressionStatement", + "src": "15816:240:11" + } + ] + } + }, + { + "expression": { + "id": 3994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3989, + "name": "leafHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3879, + "src": "16449:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 3991, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3845, + "src": "16469:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3992, + "name": "newNodeMiddle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3927, + "src": "16475:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + ], + "id": 3990, + "name": "_addNode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4244, + "src": "16460:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory) returns (uint256)" + } + }, + "id": 3993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16460:29:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16449:40:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3995, + "nodeType": "ExpressionStatement", + "src": "16449:40:11" + } + ] + } + }, + "id": 3998, + "nodeType": "IfStatement", + "src": "15379:1121:11", + "trueBody": { + "id": 3919, + "nodeType": "Block", + "src": "15415:161:11", + "statements": [ + { + "expression": { + "id": 3917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3900, + "name": "leafHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3879, + "src": "15429:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3901, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3869, + "src": "15440:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3902, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15445:5:11", + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 3011, + "src": "15440:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 3903, + "name": "newLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3848, + "src": "15454:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 3904, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15462:5:11", + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 3011, + "src": "15454:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15440:27:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "arguments": [ + { + "id": 3911, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3845, + "src": "15538:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3912, + "name": "newLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3848, + "src": "15544:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + { + "id": 3913, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3869, + "src": "15553:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + { + "id": 3914, + "name": "depth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3852, + "src": "15559:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + }, + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3910, + "name": "_pushLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4149, + "src": "15528:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$_t_struct$_Node_$3014_memory_ptr_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory,struct SmtLib.Node memory,uint256) returns (uint256)" + } + }, + "id": 3915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15528:37:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "15440:125:11", + "trueExpression": { + "arguments": [ + { + "id": 3907, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3845, + "src": "15495:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3908, + "name": "newLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3848, + "src": "15501:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + ], + "id": 3906, + "name": "_addNode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4244, + "src": "15486:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory) returns (uint256)" + } + }, + "id": 3909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15486:23:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15429:136:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3918, + "nodeType": "ExpressionStatement", + "src": "15429:136:11" + } + ] + } + }, + "id": 3999, + "nodeType": "IfStatement", + "src": "15277:1223:11", + "trueBody": { + "id": 3894, + "nodeType": "Block", + "src": "15314:59:11", + "statements": [ + { + "expression": { + "id": 3892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3887, + "name": "leafHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3879, + "src": "15328:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 3889, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3845, + "src": "15348:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 3890, + "name": "newLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3848, + "src": "15354:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + ], + "id": 3888, + "name": "_addNode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4244, + "src": "15339:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory) returns (uint256)" + } + }, + "id": 3891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15339:23:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15328:34:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3893, + "nodeType": "ExpressionStatement", + "src": "15328:34:11" + } + ] + } + }, + { + "expression": { + "id": 4000, + "name": "leafHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3879, + "src": "16517:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 3856, + "id": 4001, + "nodeType": "Return", + "src": "16510:15:11" + } + ] + }, + "id": 4003, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addLeaf", + "nameLocation": "14921:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3853, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3845, + "mutability": "mutable", + "name": "self", + "nameLocation": "14952:4:11", + "nodeType": "VariableDeclaration", + "scope": 4003, + "src": "14939:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 3844, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3843, + "name": "Data", + "nameLocations": [ + "14939:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "14939:4:11" + }, + "referencedDeclaration": 2960, + "src": "14939:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3848, + "mutability": "mutable", + "name": "newLeaf", + "nameLocation": "14978:7:11", + "nodeType": "VariableDeclaration", + "scope": 4003, + "src": "14966:19:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node" + }, + "typeName": { + "id": 3847, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 3846, + "name": "Node", + "nameLocations": [ + "14966:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3014, + "src": "14966:4:11" + }, + "referencedDeclaration": 3014, + "src": "14966:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage_ptr", + "typeString": "struct SmtLib.Node" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3850, + "mutability": "mutable", + "name": "nodeHash", + "nameLocation": "15003:8:11", + "nodeType": "VariableDeclaration", + "scope": 4003, + "src": "14995:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3849, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14995:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3852, + "mutability": "mutable", + "name": "depth", + "nameLocation": "15029:5:11", + "nodeType": "VariableDeclaration", + "scope": 4003, + "src": "15021:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3851, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15021:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14929:111:11" + }, + "returnParameters": { + "id": 3856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3855, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4003, + "src": "15059:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15059:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15058:9:11" + }, + "scope": 4449, + "src": "14912:1620:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4148, + "nodeType": "Block", + "src": "16698:1580:11", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4019, + "name": "depth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4014, + "src": "16840:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 4020, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "16849:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4021, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16854:8:11", + "memberName": "maxDepth", + "nodeType": "MemberAccess", + "referencedDeclaration": 2953, + "src": "16849:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16840:22:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4028, + "nodeType": "IfStatement", + "src": "16836:80:11", + "trueBody": { + "id": 4027, + "nodeType": "Block", + "src": "16864:52:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "4d61782064657074682072656163686564", + "id": 4024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16885:19:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfd13f65fb38f208d39dd4db262f4a6b7e7be3bcdc9bf6b007847ef6e9e4f479", + "typeString": "literal_string \"Max depth reached\"" + }, + "value": "Max depth reached" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_bfd13f65fb38f208d39dd4db262f4a6b7e7be3bcdc9bf6b007847ef6e9e4f479", + "typeString": "literal_string \"Max depth reached\"" + } + ], + "id": 4023, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "16878:6:11", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 4025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16878:27:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4026, + "nodeType": "ExpressionStatement", + "src": "16878:27:11" + } + ] + } + }, + { + "assignments": [ + 4031 + ], + "declarations": [ + { + "constant": false, + "id": 4031, + "mutability": "mutable", + "name": "newNodeMiddle", + "nameLocation": "16938:13:11", + "nodeType": "VariableDeclaration", + "scope": 4148, + "src": "16926:25:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node" + }, + "typeName": { + "id": 4030, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4029, + "name": "Node", + "nameLocations": [ + "16926:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3014, + "src": "16926:4:11" + }, + "referencedDeclaration": 3014, + "src": "16926:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage_ptr", + "typeString": "struct SmtLib.Node" + } + }, + "visibility": "internal" + } + ], + "id": 4032, + "nodeType": "VariableDeclarationStatement", + "src": "16926:25:11" + }, + { + "assignments": [ + 4034 + ], + "declarations": [ + { + "constant": false, + "id": 4034, + "mutability": "mutable", + "name": "newLeafBitAtDepth", + "nameLocation": "16966:17:11", + "nodeType": "VariableDeclaration", + "scope": 4148, + "src": "16961:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4033, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16961:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 4044, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 4035, + "name": "newLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4009, + "src": "16987:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4036, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16995:5:11", + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 3011, + "src": "16987:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 4037, + "name": "depth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4014, + "src": "17004:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16987:22:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4039, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "16986:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "31", + "id": 4040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17013:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "16986:28:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 4042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17018:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "16986:33:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16961:58:11" + }, + { + "assignments": [ + 4046 + ], + "declarations": [ + { + "constant": false, + "id": 4046, + "mutability": "mutable", + "name": "oldLeafBitAtDepth", + "nameLocation": "17034:17:11", + "nodeType": "VariableDeclaration", + "scope": 4148, + "src": "17029:22:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4045, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17029:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 4056, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 4047, + "name": "oldLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4012, + "src": "17055:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4048, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17063:5:11", + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 3011, + "src": "17055:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 4049, + "name": "depth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4014, + "src": "17072:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17055:22:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4051, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17054:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "31", + "id": 4052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17081:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "17054:28:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 4054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17086:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "17054:33:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17029:58:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4057, + "name": "newLeafBitAtDepth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4034, + "src": "17173:17:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 4058, + "name": "oldLeafBitAtDepth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4046, + "src": "17194:17:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "17173:38:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4103, + "nodeType": "IfStatement", + "src": "17169:470:11", + "trueBody": { + "id": 4102, + "nodeType": "Block", + "src": "17213:426:11", + "statements": [ + { + "assignments": [ + 4061 + ], + "declarations": [ + { + "constant": false, + "id": 4061, + "mutability": "mutable", + "name": "nextNodeHash", + "nameLocation": "17235:12:11", + "nodeType": "VariableDeclaration", + "scope": 4102, + "src": "17227:20:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4060, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17227:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4070, + "initialValue": { + "arguments": [ + { + "id": 4063, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "17260:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 4064, + "name": "newLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4009, + "src": "17266:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + { + "id": 4065, + "name": "oldLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4012, + "src": "17275:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4066, + "name": "depth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4014, + "src": "17284:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 4067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17292:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "17284:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + }, + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4062, + "name": "_pushLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4149, + "src": "17250:9:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$_t_struct$_Node_$3014_memory_ptr_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory,struct SmtLib.Node memory,uint256) returns (uint256)" + } + }, + "id": 4069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17250:44:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17227:67:11" + }, + { + "condition": { + "id": 4071, + "name": "newLeafBitAtDepth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4034, + "src": "17313:17:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4095, + "nodeType": "Block", + "src": "17459:120:11", + "statements": [ + { + "expression": { + "id": 4093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4084, + "name": "newNodeMiddle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4031, + "src": "17504:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 4086, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "17525:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 4087, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "17534:6:11", + "memberName": "MIDDLE", + "nodeType": "MemberAccess", + "referencedDeclaration": 2935, + "src": "17525:15:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + { + "id": 4088, + "name": "nextNodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4061, + "src": "17542:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 4089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17556:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 4090, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17559:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 4091, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17562:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4085, + "name": "Node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3014, + "src": "17520:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Node_$3014_storage_ptr_$", + "typeString": "type(struct SmtLib.Node storage pointer)" + } + }, + "id": 4092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17520:44:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "src": "17504:60:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4094, + "nodeType": "ExpressionStatement", + "src": "17504:60:11" + } + ] + }, + "id": 4096, + "nodeType": "IfStatement", + "src": "17309:270:11", + "trueBody": { + "id": 4083, + "nodeType": "Block", + "src": "17332:121:11", + "statements": [ + { + "expression": { + "id": 4081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4072, + "name": "newNodeMiddle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4031, + "src": "17378:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 4074, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "17399:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 4075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "17408:6:11", + "memberName": "MIDDLE", + "nodeType": "MemberAccess", + "referencedDeclaration": 2935, + "src": "17399:15:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + { + "hexValue": "30", + "id": 4076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17416:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 4077, + "name": "nextNodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4061, + "src": "17419:12:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 4078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17433:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 4079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17436:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4073, + "name": "Node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3014, + "src": "17394:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Node_$3014_storage_ptr_$", + "typeString": "type(struct SmtLib.Node storage pointer)" + } + }, + "id": 4080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17394:44:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "src": "17378:60:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4082, + "nodeType": "ExpressionStatement", + "src": "17378:60:11" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 4098, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "17608:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 4099, + "name": "newNodeMiddle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4031, + "src": "17614:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + ], + "id": 4097, + "name": "_addNode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4244, + "src": "17599:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory) returns (uint256)" + } + }, + "id": 4100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17599:29:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4018, + "id": 4101, + "nodeType": "Return", + "src": "17592:36:11" + } + ] + } + }, + { + "condition": { + "id": 4104, + "name": "newLeafBitAtDepth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4034, + "src": "17653:17:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4136, + "nodeType": "Block", + "src": "17935:257:11", + "statements": [ + { + "expression": { + "id": 4134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4121, + "name": "newNodeMiddle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4031, + "src": "17949:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 4123, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "17998:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 4124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "18007:6:11", + "memberName": "MIDDLE", + "nodeType": "MemberAccess", + "referencedDeclaration": 2935, + "src": "17998:15:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + { + "arguments": [ + { + "id": 4126, + "name": "newLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4009, + "src": "18055:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + ], + "id": 4125, + "name": "_getNodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4307, + "src": "18042:12:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Node memory) pure returns (uint256)" + } + }, + "id": 4127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18042:21:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 4129, + "name": "oldLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4012, + "src": "18106:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + ], + "id": 4128, + "name": "_getNodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4307, + "src": "18093:12:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Node memory) pure returns (uint256)" + } + }, + "id": 4130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18093:21:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 4131, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18139:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 4132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18165:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4122, + "name": "Node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3014, + "src": "17965:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Node_$3014_storage_ptr_$", + "typeString": "type(struct SmtLib.Node storage pointer)" + } + }, + "id": 4133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "17988:8:11", + "18031:9:11", + "18081:10:11", + "18132:5:11", + "18158:5:11" + ], + "names": [ + "nodeType", + "childLeft", + "childRight", + "index", + "value" + ], + "nodeType": "FunctionCall", + "src": "17965:216:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "src": "17949:232:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4135, + "nodeType": "ExpressionStatement", + "src": "17949:232:11" + } + ] + }, + "id": 4137, + "nodeType": "IfStatement", + "src": "17649:543:11", + "trueBody": { + "id": 4120, + "nodeType": "Block", + "src": "17672:257:11", + "statements": [ + { + "expression": { + "id": 4118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4105, + "name": "newNodeMiddle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4031, + "src": "17686:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 4107, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "17735:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 4108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "17744:6:11", + "memberName": "MIDDLE", + "nodeType": "MemberAccess", + "referencedDeclaration": 2935, + "src": "17735:15:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + { + "arguments": [ + { + "id": 4110, + "name": "oldLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4012, + "src": "17792:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + ], + "id": 4109, + "name": "_getNodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4307, + "src": "17779:12:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Node memory) pure returns (uint256)" + } + }, + "id": 4111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17779:21:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 4113, + "name": "newLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4009, + "src": "17843:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + ], + "id": 4112, + "name": "_getNodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4307, + "src": "17830:12:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Node memory) pure returns (uint256)" + } + }, + "id": 4114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17830:21:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 4115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17876:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 4116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17902:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 4106, + "name": "Node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3014, + "src": "17702:4:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Node_$3014_storage_ptr_$", + "typeString": "type(struct SmtLib.Node storage pointer)" + } + }, + "id": 4117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "17725:8:11", + "17768:9:11", + "17818:10:11", + "17869:5:11", + "17895:5:11" + ], + "names": [ + "nodeType", + "childLeft", + "childRight", + "index", + "value" + ], + "nodeType": "FunctionCall", + "src": "17702:216:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "src": "17686:232:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4119, + "nodeType": "ExpressionStatement", + "src": "17686:232:11" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 4139, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "18211:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 4140, + "name": "newLeaf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4009, + "src": "18217:7:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + ], + "id": 4138, + "name": "_addNode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4244, + "src": "18202:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory) returns (uint256)" + } + }, + "id": 4141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18202:23:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4142, + "nodeType": "ExpressionStatement", + "src": "18202:23:11" + }, + { + "expression": { + "arguments": [ + { + "id": 4144, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4006, + "src": "18251:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 4145, + "name": "newNodeMiddle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4031, + "src": "18257:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + ], + "id": 4143, + "name": "_addNode", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4244, + "src": "18242:8:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Data_$2960_storage_ptr_$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Data storage pointer,struct SmtLib.Node memory) returns (uint256)" + } + }, + "id": 4146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18242:29:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4018, + "id": 4147, + "nodeType": "Return", + "src": "18235:36:11" + } + ] + }, + "id": 4149, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_pushLeaf", + "nameLocation": "16547:9:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4006, + "mutability": "mutable", + "name": "self", + "nameLocation": "16579:4:11", + "nodeType": "VariableDeclaration", + "scope": 4149, + "src": "16566:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 4005, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4004, + "name": "Data", + "nameLocations": [ + "16566:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "16566:4:11" + }, + "referencedDeclaration": 2960, + "src": "16566:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4009, + "mutability": "mutable", + "name": "newLeaf", + "nameLocation": "16605:7:11", + "nodeType": "VariableDeclaration", + "scope": 4149, + "src": "16593:19:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node" + }, + "typeName": { + "id": 4008, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4007, + "name": "Node", + "nameLocations": [ + "16593:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3014, + "src": "16593:4:11" + }, + "referencedDeclaration": 3014, + "src": "16593:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage_ptr", + "typeString": "struct SmtLib.Node" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4012, + "mutability": "mutable", + "name": "oldLeaf", + "nameLocation": "16634:7:11", + "nodeType": "VariableDeclaration", + "scope": 4149, + "src": "16622:19:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node" + }, + "typeName": { + "id": 4011, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4010, + "name": "Node", + "nameLocations": [ + "16622:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3014, + "src": "16622:4:11" + }, + "referencedDeclaration": 3014, + "src": "16622:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage_ptr", + "typeString": "struct SmtLib.Node" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4014, + "mutability": "mutable", + "name": "depth", + "nameLocation": "16659:5:11", + "nodeType": "VariableDeclaration", + "scope": 4149, + "src": "16651:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16651:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16556:114:11" + }, + "returnParameters": { + "id": 4018, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4017, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4149, + "src": "16689:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4016, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16689:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16688:9:11" + }, + "scope": 4449, + "src": "16538:1740:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4243, + "nodeType": "Block", + "src": "18366:785:11", + "statements": [ + { + "assignments": [ + 4161 + ], + "declarations": [ + { + "constant": false, + "id": 4161, + "mutability": "mutable", + "name": "nodeHash", + "nameLocation": "18384:8:11", + "nodeType": "VariableDeclaration", + "scope": 4243, + "src": "18376:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4160, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18376:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4165, + "initialValue": { + "arguments": [ + { + "id": 4163, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4155, + "src": "18408:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + ], + "id": 4162, + "name": "_getNodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4307, + "src": "18395:12:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_Node_$3014_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.Node memory) pure returns (uint256)" + } + }, + "id": 4164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18395:18:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18376:37:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + "id": 4173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 4166, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4152, + "src": "18659:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4167, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18664:5:11", + "memberName": "nodes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2942, + "src": "18659:10:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$", + "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)" + } + }, + "id": 4169, + "indexExpression": { + "id": 4168, + "name": "nodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "18670:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18659:20:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage", + "typeString": "struct SmtLib.Node storage ref" + } + }, + "id": 4170, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18680:8:11", + "memberName": "nodeType", + "nodeType": "MemberAccess", + "referencedDeclaration": 3005, + "src": "18659:29:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 4171, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "18692:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 4172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "18701:5:11", + "memberName": "EMPTY", + "nodeType": "MemberAccess", + "referencedDeclaration": 2933, + "src": "18692:14:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "src": "18659:47:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4232, + "nodeType": "IfStatement", + "src": "18655:427:11", + "trueBody": { + "id": 4231, + "nodeType": "Block", + "src": "18708:374:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + "id": 4182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 4175, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4152, + "src": "18729:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4176, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18734:5:11", + "memberName": "nodes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2942, + "src": "18729:10:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$", + "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)" + } + }, + "id": 4178, + "indexExpression": { + "id": 4177, + "name": "nodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "18740:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18729:20:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage", + "typeString": "struct SmtLib.Node storage ref" + } + }, + "id": 4179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18750:8:11", + "memberName": "nodeType", + "nodeType": "MemberAccess", + "referencedDeclaration": 3005, + "src": "18729:29:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 4180, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4155, + "src": "18762:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4181, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18767:8:11", + "memberName": "nodeType", + "nodeType": "MemberAccess", + "referencedDeclaration": 3005, + "src": "18762:13:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "src": "18729:46:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4174, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "18722:6:11", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18722:54:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4184, + "nodeType": "ExpressionStatement", + "src": "18722:54:11" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 4186, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4152, + "src": "18797:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4187, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18802:5:11", + "memberName": "nodes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2942, + "src": "18797:10:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$", + "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)" + } + }, + "id": 4189, + "indexExpression": { + "id": 4188, + "name": "nodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "18808:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18797:20:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage", + "typeString": "struct SmtLib.Node storage ref" + } + }, + "id": 4190, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18818:9:11", + "memberName": "childLeft", + "nodeType": "MemberAccess", + "referencedDeclaration": 3007, + "src": "18797:30:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 4191, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4155, + "src": "18831:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4192, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18836:9:11", + "memberName": "childLeft", + "nodeType": "MemberAccess", + "referencedDeclaration": 3007, + "src": "18831:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18797:48:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4185, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "18790:6:11", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18790:56:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4195, + "nodeType": "ExpressionStatement", + "src": "18790:56:11" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 4197, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4152, + "src": "18867:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4198, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18872:5:11", + "memberName": "nodes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2942, + "src": "18867:10:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$", + "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)" + } + }, + "id": 4200, + "indexExpression": { + "id": 4199, + "name": "nodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "18878:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18867:20:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage", + "typeString": "struct SmtLib.Node storage ref" + } + }, + "id": 4201, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18888:10:11", + "memberName": "childRight", + "nodeType": "MemberAccess", + "referencedDeclaration": 3009, + "src": "18867:31:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 4202, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4155, + "src": "18902:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4203, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18907:10:11", + "memberName": "childRight", + "nodeType": "MemberAccess", + "referencedDeclaration": 3009, + "src": "18902:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18867:50:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4196, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "18860:6:11", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18860:58:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4206, + "nodeType": "ExpressionStatement", + "src": "18860:58:11" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 4208, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4152, + "src": "18939:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4209, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18944:5:11", + "memberName": "nodes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2942, + "src": "18939:10:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$", + "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)" + } + }, + "id": 4211, + "indexExpression": { + "id": 4210, + "name": "nodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "18950:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18939:20:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage", + "typeString": "struct SmtLib.Node storage ref" + } + }, + "id": 4212, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18960:5:11", + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 3011, + "src": "18939:26:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 4213, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4155, + "src": "18969:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4214, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18974:5:11", + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 3011, + "src": "18969:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18939:40:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4207, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "18932:6:11", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18932:48:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4217, + "nodeType": "ExpressionStatement", + "src": "18932:48:11" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 4219, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4152, + "src": "19001:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4220, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19006:5:11", + "memberName": "nodes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2942, + "src": "19001:10:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$", + "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)" + } + }, + "id": 4222, + "indexExpression": { + "id": 4221, + "name": "nodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "19012:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19001:20:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage", + "typeString": "struct SmtLib.Node storage ref" + } + }, + "id": 4223, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19022:5:11", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 3013, + "src": "19001:26:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 4224, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4155, + "src": "19031:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4225, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19036:5:11", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 3013, + "src": "19031:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19001:40:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4218, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "18994:6:11", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18994:48:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4228, + "nodeType": "ExpressionStatement", + "src": "18994:48:11" + }, + { + "expression": { + "id": 4229, + "name": "nodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "19063:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4159, + "id": 4230, + "nodeType": "Return", + "src": "19056:15:11" + } + ] + } + }, + { + "expression": { + "id": 4239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 4233, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4152, + "src": "19092:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4236, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19097:5:11", + "memberName": "nodes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2942, + "src": "19092:10:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Node_$3014_storage_$", + "typeString": "mapping(uint256 => struct SmtLib.Node storage ref)" + } + }, + "id": 4237, + "indexExpression": { + "id": 4235, + "name": "nodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "19103:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19092:20:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage", + "typeString": "struct SmtLib.Node storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4238, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4155, + "src": "19115:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "src": "19092:27:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage", + "typeString": "struct SmtLib.Node storage ref" + } + }, + "id": 4240, + "nodeType": "ExpressionStatement", + "src": "19092:27:11" + }, + { + "expression": { + "id": 4241, + "name": "nodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4161, + "src": "19136:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4159, + "id": 4242, + "nodeType": "Return", + "src": "19129:15:11" + } + ] + }, + "id": 4244, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addNode", + "nameLocation": "18293:8:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4152, + "mutability": "mutable", + "name": "self", + "nameLocation": "18315:4:11", + "nodeType": "VariableDeclaration", + "scope": 4244, + "src": "18302:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 4151, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4150, + "name": "Data", + "nameLocations": [ + "18302:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "18302:4:11" + }, + "referencedDeclaration": 2960, + "src": "18302:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4155, + "mutability": "mutable", + "name": "node", + "nameLocation": "18333:4:11", + "nodeType": "VariableDeclaration", + "scope": 4244, + "src": "18321:16:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node" + }, + "typeName": { + "id": 4154, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4153, + "name": "Node", + "nameLocations": [ + "18321:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3014, + "src": "18321:4:11" + }, + "referencedDeclaration": 3014, + "src": "18321:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage_ptr", + "typeString": "struct SmtLib.Node" + } + }, + "visibility": "internal" + } + ], + "src": "18301:37:11" + }, + "returnParameters": { + "id": 4159, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4158, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4244, + "src": "18357:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18357:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "18356:9:11" + }, + "scope": 4449, + "src": "18284:867:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4306, + "nodeType": "Block", + "src": "19229:468:11", + "statements": [ + { + "assignments": [ + 4253 + ], + "declarations": [ + { + "constant": false, + "id": 4253, + "mutability": "mutable", + "name": "nodeHash", + "nameLocation": "19247:8:11", + "nodeType": "VariableDeclaration", + "scope": 4306, + "src": "19239:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4252, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19239:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4255, + "initialValue": { + "hexValue": "30", + "id": 4254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19258:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "19239:20:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + "id": 4260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 4256, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4247, + "src": "19273:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4257, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19278:8:11", + "memberName": "nodeType", + "nodeType": "MemberAccess", + "referencedDeclaration": 3005, + "src": "19273:13:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 4258, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "19290:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 4259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "19299:4:11", + "memberName": "LEAF", + "nodeType": "MemberAccess", + "referencedDeclaration": 2934, + "src": "19290:13:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "src": "19273:30:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + }, + "id": 4289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 4285, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4247, + "src": "19459:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4286, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19464:8:11", + "memberName": "nodeType", + "nodeType": "MemberAccess", + "referencedDeclaration": 3005, + "src": "19459:13:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 4287, + "name": "NodeType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2936, + "src": "19476:8:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_NodeType_$2936_$", + "typeString": "type(enum SmtLib.NodeType)" + } + }, + "id": 4288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "19485:6:11", + "memberName": "MIDDLE", + "nodeType": "MemberAccess", + "referencedDeclaration": 2935, + "src": "19476:15:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_NodeType_$2936", + "typeString": "enum SmtLib.NodeType" + } + }, + "src": "19459:32:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4302, + "nodeType": "IfStatement", + "src": "19455:132:11", + "trueBody": { + "id": 4301, + "nodeType": "Block", + "src": "19493:94:11", + "statements": [ + { + "expression": { + "id": 4299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4290, + "name": "nodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4253, + "src": "19507:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "components": [ + { + "expression": { + "id": 4293, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4247, + "src": "19543:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4294, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19548:9:11", + "memberName": "childLeft", + "nodeType": "MemberAccess", + "referencedDeclaration": 3007, + "src": "19543:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 4295, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4247, + "src": "19559:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4296, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19564:10:11", + "memberName": "childRight", + "nodeType": "MemberAccess", + "referencedDeclaration": 3009, + "src": "19559:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4297, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19542:33:11", + "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" + } + ], + "expression": { + "id": 4291, + "name": "PoseidonUnit2L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2241, + "src": "19518:14:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PoseidonUnit2L_$2241_$", + "typeString": "type(library PoseidonUnit2L)" + } + }, + "id": 4292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19533:8:11", + "memberName": "poseidon", + "nodeType": "MemberAccess", + "referencedDeclaration": 2240, + "src": "19518:23:11", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$2_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[2] memory) pure returns (uint256)" + } + }, + "id": 4298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19518:58:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19507:69:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4300, + "nodeType": "ExpressionStatement", + "src": "19507:69:11" + } + ] + } + }, + "id": 4303, + "nodeType": "IfStatement", + "src": "19269:318:11", + "trueBody": { + "id": 4284, + "nodeType": "Block", + "src": "19305:144:11", + "statements": [ + { + "assignments": [ + 4266 + ], + "declarations": [ + { + "constant": false, + "id": 4266, + "mutability": "mutable", + "name": "params", + "nameLocation": "19337:6:11", + "nodeType": "VariableDeclaration", + "scope": 4284, + "src": "19319:24:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3]" + }, + "typeName": { + "baseType": { + "id": 4264, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19319:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4265, + "length": { + "hexValue": "33", + "id": 4263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19327:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "ArrayTypeName", + "src": "19319:10:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_storage_ptr", + "typeString": "uint256[3]" + } + }, + "visibility": "internal" + } + ], + "id": 4276, + "initialValue": { + "components": [ + { + "expression": { + "id": 4267, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4247, + "src": "19347:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19352:5:11", + "memberName": "index", + "nodeType": "MemberAccess", + "referencedDeclaration": 3011, + "src": "19347:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 4269, + "name": "node", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4247, + "src": "19359:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node memory" + } + }, + "id": 4270, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19364:5:11", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 3013, + "src": "19359:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "hexValue": "31", + "id": 4273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19379:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 4272, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19371:7:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 4271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19371:7:11", + "typeDescriptions": {} + } + }, + "id": 4274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19371:10:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4275, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19346:36:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19319:63:11" + }, + { + "expression": { + "id": 4282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4277, + "name": "nodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4253, + "src": "19396:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 4280, + "name": "params", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4266, + "src": "19431:6:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$3_memory_ptr", + "typeString": "uint256[3] memory" + } + ], + "expression": { + "id": 4278, + "name": "PoseidonUnit3L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2252, + "src": "19407:14:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_PoseidonUnit3L_$2252_$", + "typeString": "type(library PoseidonUnit3L)" + } + }, + "id": 4279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19422:8:11", + "memberName": "poseidon", + "nodeType": "MemberAccess", + "referencedDeclaration": 2251, + "src": "19407:23:11", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_pure$_t_array$_t_uint256_$3_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[3] memory) pure returns (uint256)" + } + }, + "id": 4281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19407:31:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19396:42:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4283, + "nodeType": "ExpressionStatement", + "src": "19396:42:11" + } + ] + } + }, + { + "expression": { + "id": 4304, + "name": "nodeHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4253, + "src": "19603:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4251, + "id": 4305, + "nodeType": "Return", + "src": "19596:15:11" + } + ] + }, + "id": 4307, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getNodeHash", + "nameLocation": "19166:12:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4247, + "mutability": "mutable", + "name": "node", + "nameLocation": "19191:4:11", + "nodeType": "VariableDeclaration", + "scope": 4307, + "src": "19179:16:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_memory_ptr", + "typeString": "struct SmtLib.Node" + }, + "typeName": { + "id": 4246, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4245, + "name": "Node", + "nameLocations": [ + "19179:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3014, + "src": "19179:4:11" + }, + "referencedDeclaration": 3014, + "src": "19179:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Node_$3014_storage_ptr", + "typeString": "struct SmtLib.Node" + } + }, + "visibility": "internal" + } + ], + "src": "19178:18:11" + }, + "returnParameters": { + "id": 4251, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4250, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4307, + "src": "19220:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4249, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19220:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19219:9:11" + }, + "scope": 4449, + "src": "19157:540:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4375, + "nodeType": "Block", + "src": "19833:674:11", + "statements": [ + { + "assignments": [ + 4319 + ], + "declarations": [ + { + "constant": false, + "id": 4319, + "mutability": "mutable", + "name": "isLastRoot", + "nameLocation": "19848:10:11", + "nodeType": "VariableDeclaration", + "scope": 4375, + "src": "19843:15:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4318, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "19843:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 4327, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4320, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4312, + "src": "19861:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 4321, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4310, + "src": "19870:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4322, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19875:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "19870:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 4323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19887:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "19870:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 4324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19896:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "19870:27:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19861:36:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19843:54:11" + }, + { + "assignments": [ + 4330 + ], + "declarations": [ + { + "constant": false, + "id": 4330, + "mutability": "mutable", + "name": "rootEntry", + "nameLocation": "19925:9:11", + "nodeType": "VariableDeclaration", + "scope": 4375, + "src": "19907:27:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage_ptr", + "typeString": "struct SmtLib.RootEntry" + }, + "typeName": { + "id": 4329, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4328, + "name": "RootEntry", + "nameLocations": [ + "19907:9:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2987, + "src": "19907:9:11" + }, + "referencedDeclaration": 2987, + "src": "19907:9:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage_ptr", + "typeString": "struct SmtLib.RootEntry" + } + }, + "visibility": "internal" + } + ], + "id": 4335, + "initialValue": { + "baseExpression": { + "expression": { + "id": 4331, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4310, + "src": "19937:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4332, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19942:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "19937:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 4334, + "indexExpression": { + "id": 4333, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4312, + "src": "19954:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19937:23:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage", + "typeString": "struct SmtLib.RootEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19907:53:11" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 4337, + "name": "rootEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4330, + "src": "20028:9:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage_ptr", + "typeString": "struct SmtLib.RootEntry storage pointer" + } + }, + "id": 4338, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20038:4:11", + "memberName": "root", + "nodeType": "MemberAccess", + "referencedDeclaration": 2982, + "src": "20028:14:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "condition": { + "id": 4339, + "name": "isLastRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4319, + "src": "20076:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 4341, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4310, + "src": "20093:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4342, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20098:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "20093:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 4346, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4343, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4312, + "src": "20110:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 4344, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20118:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "20110:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20093:27:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage", + "typeString": "struct SmtLib.RootEntry storage ref" + } + }, + "id": 4347, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20121:4:11", + "memberName": "root", + "nodeType": "MemberAccess", + "referencedDeclaration": 2982, + "src": "20093:32:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20076:49:11", + "trueExpression": { + "hexValue": "30", + "id": 4340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20089:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 4349, + "name": "rootEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4330, + "src": "20163:9:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage_ptr", + "typeString": "struct SmtLib.RootEntry storage pointer" + } + }, + "id": 4350, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20173:18:11", + "memberName": "createdAtTimestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": 2984, + "src": "20163:28:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "condition": { + "id": 4351, + "name": "isLastRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4319, + "src": "20230:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 4353, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4310, + "src": "20287:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4354, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20292:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "20287:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 4358, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4355, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4312, + "src": "20304:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 4356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20312:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "20304:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20287:27:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage", + "typeString": "struct SmtLib.RootEntry storage ref" + } + }, + "id": 4359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20315:18:11", + "memberName": "createdAtTimestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": 2984, + "src": "20287:46:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20230:103:11", + "trueExpression": { + "hexValue": "30", + "id": 4352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20263:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 4361, + "name": "rootEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4330, + "src": "20367:9:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage_ptr", + "typeString": "struct SmtLib.RootEntry storage pointer" + } + }, + "id": 4362, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20377:14:11", + "memberName": "createdAtBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 2986, + "src": "20367:24:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "condition": { + "id": 4363, + "name": "isLastRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4319, + "src": "20426:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "expression": { + "baseExpression": { + "expression": { + "id": 4365, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4310, + "src": "20443:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4366, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20448:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "20443:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 4370, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4367, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4312, + "src": "20460:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 4368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20468:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "20460:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20443:27:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage", + "typeString": "struct SmtLib.RootEntry storage ref" + } + }, + "id": 4371, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20471:14:11", + "memberName": "createdAtBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 2986, + "src": "20443:42:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "20426:59:11", + "trueExpression": { + "hexValue": "30", + "id": 4364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20439:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4336, + "name": "RootEntryInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3001, + "src": "19990:13:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_RootEntryInfo_$3001_storage_ptr_$", + "typeString": "type(struct SmtLib.RootEntryInfo storage pointer)" + } + }, + "id": 4373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "20022:4:11", + "20060:14:11", + "20143:18:11", + "20209:19:11", + "20351:14:11", + "20409:15:11" + ], + "names": [ + "root", + "replacedByRoot", + "createdAtTimestamp", + "replacedAtTimestamp", + "createdAtBlock", + "replacedAtBlock" + ], + "nodeType": "FunctionCall", + "src": "19990:510:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory" + } + }, + "functionReturnParameters": 4317, + "id": 4374, + "nodeType": "Return", + "src": "19971:529:11" + } + ] + }, + "id": 4376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getRootInfoByIndex", + "nameLocation": "19712:19:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4310, + "mutability": "mutable", + "name": "self", + "nameLocation": "19754:4:11", + "nodeType": "VariableDeclaration", + "scope": 4376, + "src": "19741:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 4309, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4308, + "name": "Data", + "nameLocations": [ + "19741:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "19741:4:11" + }, + "referencedDeclaration": 2960, + "src": "19741:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4312, + "mutability": "mutable", + "name": "index", + "nameLocation": "19776:5:11", + "nodeType": "VariableDeclaration", + "scope": 4376, + "src": "19768:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4311, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19768:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19731:56:11" + }, + "returnParameters": { + "id": 4317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4316, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4376, + "src": "19811:20:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + }, + "typeName": { + "id": 4315, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4314, + "name": "RootEntryInfo", + "nameLocations": [ + "19811:13:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3001, + "src": "19811:13:11" + }, + "referencedDeclaration": 3001, + "src": "19811:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + } + }, + "visibility": "internal" + } + ], + "src": "19810:22:11" + }, + "scope": 4449, + "src": "19703:804:11", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4409, + "nodeType": "Block", + "src": "20717:261:11", + "statements": [ + { + "assignments": [ + 4391, + 4393 + ], + "declarations": [ + { + "constant": false, + "id": 4391, + "mutability": "mutable", + "name": "index", + "nameLocation": "20736:5:11", + "nodeType": "VariableDeclaration", + "scope": 4409, + "src": "20728:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4390, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20728:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4393, + "mutability": "mutable", + "name": "found", + "nameLocation": "20748:5:11", + "nodeType": "VariableDeclaration", + "scope": 4409, + "src": "20743:10:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4392, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20743:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 4399, + "initialValue": { + "arguments": [ + { + "id": 4396, + "name": "timestampOrBlock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4381, + "src": "20782:16:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4397, + "name": "searchType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4384, + "src": "20800:10:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + ], + "expression": { + "id": 4394, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4379, + "src": "20757:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4395, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20762:19:11", + "memberName": "binarySearchUint256", + "nodeType": "MemberAccess", + "referencedDeclaration": 4599, + "src": "20757:24:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$_t_enum$_SearchType_$4454_$returns$_t_uint256_$_t_bool_$attached_to$_t_struct$_Data_$2960_storage_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256,enum BinarySearchSmtRoots.SearchType) view returns (uint256,bool)" + } + }, + "id": 4398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20757:54:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20727:84:11" + }, + { + "expression": { + "arguments": [ + { + "id": 4401, + "name": "found", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4393, + "src": "20915:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4400, + "name": "assert", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -3, + "src": "20908:6:11", + "typeDescriptions": { + "typeIdentifier": "t_function_assert_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20908:13:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4403, + "nodeType": "ExpressionStatement", + "src": "20908:13:11" + }, + { + "expression": { + "arguments": [ + { + "id": 4405, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4379, + "src": "20959:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + { + "id": 4406, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4391, + "src": "20965:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4404, + "name": "_getRootInfoByIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4376, + "src": "20939:19:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Data_$2960_storage_ptr_$_t_uint256_$returns$_t_struct$_RootEntryInfo_$3001_memory_ptr_$", + "typeString": "function (struct SmtLib.Data storage pointer,uint256) view returns (struct SmtLib.RootEntryInfo memory)" + } + }, + "id": 4407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20939:32:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo memory" + } + }, + "functionReturnParameters": 4389, + "id": 4408, + "nodeType": "Return", + "src": "20932:39:11" + } + ] + }, + "id": 4410, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getRootInfoByTimestampOrBlock", + "nameLocation": "20522:30:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4379, + "mutability": "mutable", + "name": "self", + "nameLocation": "20575:4:11", + "nodeType": "VariableDeclaration", + "scope": 4410, + "src": "20562:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 4378, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4377, + "name": "Data", + "nameLocations": [ + "20562:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "20562:4:11" + }, + "referencedDeclaration": 2960, + "src": "20562:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4381, + "mutability": "mutable", + "name": "timestampOrBlock", + "nameLocation": "20597:16:11", + "nodeType": "VariableDeclaration", + "scope": 4410, + "src": "20589:24:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4380, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20589:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4384, + "mutability": "mutable", + "name": "searchType", + "nameLocation": "20655:10:11", + "nodeType": "VariableDeclaration", + "scope": 4410, + "src": "20623:42:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + }, + "typeName": { + "id": 4383, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4382, + "name": "BinarySearchSmtRoots.SearchType", + "nameLocations": [ + "20623:20:11", + "20644:10:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4454, + "src": "20623:31:11" + }, + "referencedDeclaration": 4454, + "src": "20623:31:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + }, + "visibility": "internal" + } + ], + "src": "20552:119:11" + }, + "returnParameters": { + "id": 4389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4388, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4410, + "src": "20695:20:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_memory_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + }, + "typeName": { + "id": 4387, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4386, + "name": "RootEntryInfo", + "nameLocations": [ + "20695:13:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 3001, + "src": "20695:13:11" + }, + "referencedDeclaration": 3001, + "src": "20695:13:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntryInfo_$3001_storage_ptr", + "typeString": "struct SmtLib.RootEntryInfo" + } + }, + "visibility": "internal" + } + ], + "src": "20694:22:11" + }, + "scope": 4449, + "src": "20513:465:11", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4447, + "nodeType": "Block", + "src": "21119:208:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 4428, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4415, + "src": "21181:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4429, + "name": "_timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4417, + "src": "21207:10:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 4430, + "name": "_block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4419, + "src": "21235:6:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4427, + "name": "RootEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2987, + "src": "21164:9:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_RootEntry_$2987_storage_ptr_$", + "typeString": "type(struct SmtLib.RootEntry storage pointer)" + } + }, + "id": 4431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "21175:4:11", + "21187:18:11", + "21219:14:11" + ], + "names": [ + "root", + "createdAtTimestamp", + "createdAtBlock" + ], + "nodeType": "FunctionCall", + "src": "21164:79:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_memory_ptr", + "typeString": "struct SmtLib.RootEntry memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_RootEntry_$2987_memory_ptr", + "typeString": "struct SmtLib.RootEntry memory" + } + ], + "expression": { + "expression": { + "id": 4422, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4413, + "src": "21129:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4425, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21134:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "21129:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 4426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21146:4:11", + "memberName": "push", + "nodeType": "MemberAccess", + "src": "21129:21:11", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage_ptr_$_t_struct$_RootEntry_$2987_storage_$returns$__$attached_to$_t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage_ptr_$", + "typeString": "function (struct SmtLib.RootEntry storage ref[] storage pointer,struct SmtLib.RootEntry storage ref)" + } + }, + "id": 4432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21129:124:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4433, + "nodeType": "ExpressionStatement", + "src": "21129:124:11" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 4440, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4413, + "src": "21292:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4441, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21297:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "21292:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 4442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21309:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "21292:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 4443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21318:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "21292:27:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "expression": { + "id": 4434, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4413, + "src": "21264:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4437, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21269:11:11", + "memberName": "rootIndexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 2951, + "src": "21264:16:11", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_array$_t_uint256_$dyn_storage_$", + "typeString": "mapping(uint256 => uint256[] storage ref)" + } + }, + "id": 4438, + "indexExpression": { + "id": 4436, + "name": "root", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4415, + "src": "21281:4:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21264:22:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 4439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21287:4:11", + "memberName": "push", + "nodeType": "MemberAccess", + "src": "21264:27:11", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$", + "typeString": "function (uint256[] storage pointer,uint256)" + } + }, + "id": 4445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21264:56:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4446, + "nodeType": "ExpressionStatement", + "src": "21264:56:11" + } + ] + }, + "id": 4448, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addEntry", + "nameLocation": "20993:9:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4420, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4413, + "mutability": "mutable", + "name": "self", + "nameLocation": "21025:4:11", + "nodeType": "VariableDeclaration", + "scope": 4448, + "src": "21012:17:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 4412, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4411, + "name": "Data", + "nameLocations": [ + "21012:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "21012:4:11" + }, + "referencedDeclaration": 2960, + "src": "21012:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4415, + "mutability": "mutable", + "name": "root", + "nameLocation": "21047:4:11", + "nodeType": "VariableDeclaration", + "scope": 4448, + "src": "21039:12:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4414, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21039:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4417, + "mutability": "mutable", + "name": "_timestamp", + "nameLocation": "21069:10:11", + "nodeType": "VariableDeclaration", + "scope": 4448, + "src": "21061:18:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4416, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21061:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4419, + "mutability": "mutable", + "name": "_block", + "nameLocation": "21097:6:11", + "nodeType": "VariableDeclaration", + "scope": 4448, + "src": "21089:14:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4418, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21089:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "21002:107:11" + }, + "returnParameters": { + "id": 4421, + "nodeType": "ParameterList", + "parameters": [], + "src": "21119:0:11" + }, + "scope": 4449, + "src": "20984:343:11", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 4637, + "src": "688:20641:11", + "usedErrors": [], + "usedEvents": [] + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "BinarySearchSmtRoots", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 4450, + "nodeType": "StructuredDocumentation", + "src": "21331:67:11", + "text": "@title A binary search for the sparse merkle tree root history" + }, + "fullyImplemented": true, + "id": 4636, + "linearizedBaseContracts": [ + 4636 + ], + "name": "BinarySearchSmtRoots", + "nameLocation": "21464:20:11", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "BinarySearchSmtRoots.SearchType", + "documentation": { + "id": 4451, + "nodeType": "StructuredDocumentation", + "src": "21491:64:11", + "text": " @dev Enum for the SMT history field selection" + }, + "id": 4454, + "members": [ + { + "id": 4452, + "name": "TIMESTAMP", + "nameLocation": "21586:9:11", + "nodeType": "EnumValue", + "src": "21586:9:11" + }, + { + "id": 4453, + "name": "BLOCK", + "nameLocation": "21605:5:11", + "nodeType": "EnumValue", + "src": "21605:5:11" + } + ], + "name": "SearchType", + "nameLocation": "21565:10:11", + "nodeType": "EnumDefinition", + "src": "21560:56:11" + }, + { + "body": { + "id": 4598, + "nodeType": "Block", + "src": "22073:1367:11", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 4470, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4458, + "src": "22087:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4471, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22092:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "22087:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 4472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22104:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "22087:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 4473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22114:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "22087:28:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4480, + "nodeType": "IfStatement", + "src": "22083:76:11", + "trueBody": { + "id": 4479, + "nodeType": "Block", + "src": "22117:42:11", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "30", + "id": 4475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22139:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "66616c7365", + "id": 4476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22142:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "id": 4477, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22138:10:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", + "typeString": "tuple(int_const 0,bool)" + } + }, + "functionReturnParameters": 4469, + "id": 4478, + "nodeType": "Return", + "src": "22131:17:11" + } + ] + } + }, + { + "assignments": [ + 4482 + ], + "declarations": [ + { + "constant": false, + "id": 4482, + "mutability": "mutable", + "name": "min", + "nameLocation": "22177:3:11", + "nodeType": "VariableDeclaration", + "scope": 4598, + "src": "22169:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4481, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22169:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4484, + "initialValue": { + "hexValue": "30", + "id": 4483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22183:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "22169:15:11" + }, + { + "assignments": [ + 4486 + ], + "declarations": [ + { + "constant": false, + "id": 4486, + "mutability": "mutable", + "name": "max", + "nameLocation": "22202:3:11", + "nodeType": "VariableDeclaration", + "scope": 4598, + "src": "22194:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4485, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22194:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4492, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 4487, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4458, + "src": "22208:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4488, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22213:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "22208:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 4489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22225:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "22208:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 4490, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22234:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "22208:27:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22194:41:11" + }, + { + "assignments": [ + 4494 + ], + "declarations": [ + { + "constant": false, + "id": 4494, + "mutability": "mutable", + "name": "mid", + "nameLocation": "22253:3:11", + "nodeType": "VariableDeclaration", + "scope": 4598, + "src": "22245:11:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4493, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22245:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4495, + "nodeType": "VariableDeclarationStatement", + "src": "22245:11:11" + }, + { + "body": { + "id": 4592, + "nodeType": "Block", + "src": "22286:909:11", + "statements": [ + { + "expression": { + "id": 4506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4499, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4494, + "src": "22300:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4500, + "name": "max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4486, + "src": "22307:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 4501, + "name": "min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4482, + "src": "22313:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22307:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4503, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22306:11:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 4504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22320:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "22306:15:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22300:21:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4507, + "nodeType": "ExpressionStatement", + "src": "22300:21:11" + }, + { + "assignments": [ + 4509 + ], + "declarations": [ + { + "constant": false, + "id": 4509, + "mutability": "mutable", + "name": "midValue", + "nameLocation": "22344:8:11", + "nodeType": "VariableDeclaration", + "scope": 4592, + "src": "22336:16:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22336:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4517, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "expression": { + "id": 4511, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4458, + "src": "22369:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4512, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22374:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "22369:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 4514, + "indexExpression": { + "id": 4513, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4494, + "src": "22386:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "22369:21:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage", + "typeString": "struct SmtLib.RootEntry storage ref" + } + }, + { + "id": 4515, + "name": "searchType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4463, + "src": "22392:10:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage", + "typeString": "struct SmtLib.RootEntry storage ref" + }, + { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + ], + "id": 4510, + "name": "fieldSelector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4635, + "src": "22355:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_RootEntry_$2987_memory_ptr_$_t_enum$_SearchType_$4454_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.RootEntry memory,enum BinarySearchSmtRoots.SearchType) pure returns (uint256)" + } + }, + "id": 4516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22355:48:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22336:67:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4518, + "name": "midValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4509, + "src": "22421:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 4519, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4460, + "src": "22433:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22421:17:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4560, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4460, + "src": "22845:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 4561, + "name": "midValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4509, + "src": "22853:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22845:16:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4570, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4460, + "src": "22919:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 4571, + "name": "midValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4509, + "src": "22927:8:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22919:16:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4573, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4494, + "src": "22939:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 4574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22945:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "22939:7:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "22919:27:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4588, + "nodeType": "Block", + "src": "23049:136:11", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "30", + "id": 4584, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23161:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "66616c7365", + "id": 4585, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23164:5:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "id": 4586, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "23160:10:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_rational_0_by_1_$_t_bool_$", + "typeString": "tuple(int_const 0,bool)" + } + }, + "functionReturnParameters": 4469, + "id": 4587, + "nodeType": "Return", + "src": "23153:17:11" + } + ] + }, + "id": 4589, + "nodeType": "IfStatement", + "src": "22915:270:11", + "trueBody": { + "id": 4583, + "nodeType": "Block", + "src": "22948:95:11", + "statements": [ + { + "expression": { + "id": 4581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4577, + "name": "max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4486, + "src": "23015:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4578, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4494, + "src": "23021:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 4579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23027:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "23021:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "23015:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4582, + "nodeType": "ExpressionStatement", + "src": "23015:13:11" + } + ] + } + }, + "id": 4590, + "nodeType": "IfStatement", + "src": "22841:344:11", + "trueBody": { + "id": 4569, + "nodeType": "Block", + "src": "22863:46:11", + "statements": [ + { + "expression": { + "id": 4567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 4563, + "name": "min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4482, + "src": "22881:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4566, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4564, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4494, + "src": "22887:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 4565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22893:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "22887:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22881:13:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4568, + "nodeType": "ExpressionStatement", + "src": "22881:13:11" + } + ] + } + }, + "id": 4591, + "nodeType": "IfStatement", + "src": "22417:768:11", + "trueBody": { + "id": 4559, + "nodeType": "Block", + "src": "22440:395:11", + "statements": [ + { + "body": { + "id": 4553, + "nodeType": "Block", + "src": "22500:285:11", + "statements": [ + { + "assignments": [ + 4529 + ], + "declarations": [ + { + "constant": false, + "id": 4529, + "mutability": "mutable", + "name": "nextValue", + "nameLocation": "22530:9:11", + "nodeType": "VariableDeclaration", + "scope": 4553, + "src": "22522:17:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4528, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22522:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 4539, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "expression": { + "id": 4531, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4458, + "src": "22556:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4532, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22561:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "22556:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 4536, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4533, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4494, + "src": "22573:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 4534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22579:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "22573:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "22556:25:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage", + "typeString": "struct SmtLib.RootEntry storage ref" + } + }, + { + "id": 4537, + "name": "searchType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4463, + "src": "22583:10:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage", + "typeString": "struct SmtLib.RootEntry storage ref" + }, + { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + ], + "id": 4530, + "name": "fieldSelector", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4635, + "src": "22542:13:11", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_RootEntry_$2987_memory_ptr_$_t_enum$_SearchType_$4454_$returns$_t_uint256_$", + "typeString": "function (struct SmtLib.RootEntry memory,enum BinarySearchSmtRoots.SearchType) pure returns (uint256)" + } + }, + "id": 4538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22542:52:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22522:72:11" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4540, + "name": "nextValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4529, + "src": "22620:9:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 4541, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4460, + "src": "22633:5:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22620:18:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4551, + "nodeType": "Block", + "src": "22700:67:11", + "statements": [ + { + "expression": { + "components": [ + { + "id": 4547, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4494, + "src": "22734:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "74727565", + "id": 4548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22739:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "id": 4549, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22733:11:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "functionReturnParameters": 4469, + "id": 4550, + "nodeType": "Return", + "src": "22726:18:11" + } + ] + }, + "id": 4552, + "nodeType": "IfStatement", + "src": "22616:151:11", + "trueBody": { + "id": 4546, + "nodeType": "Block", + "src": "22640:54:11", + "statements": [ + { + "expression": { + "id": 4544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "22666:5:11", + "subExpression": { + "id": 4543, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4494, + "src": "22666:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4545, + "nodeType": "ExpressionStatement", + "src": "22666:5:11" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4521, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4494, + "src": "22465:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 4522, + "name": "self", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4458, + "src": "22471:4:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data storage pointer" + } + }, + "id": 4523, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22476:11:11", + "memberName": "rootEntries", + "nodeType": "MemberAccess", + "referencedDeclaration": 2946, + "src": "22471:16:11", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_RootEntry_$2987_storage_$dyn_storage", + "typeString": "struct SmtLib.RootEntry storage ref[] storage ref" + } + }, + "id": 4524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22488:6:11", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "22471:23:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 4525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22497:1:11", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "22471:27:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22465:33:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4554, + "nodeType": "WhileStatement", + "src": "22458:327:11" + }, + { + "expression": { + "components": [ + { + "id": 4555, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4494, + "src": "22810:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "74727565", + "id": 4556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22815:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "id": 4557, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22809:11:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "functionReturnParameters": 4469, + "id": 4558, + "nodeType": "Return", + "src": "22802:18:11" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4496, + "name": "min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4482, + "src": "22274:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 4497, + "name": "max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4486, + "src": "22281:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22274:10:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4593, + "nodeType": "WhileStatement", + "src": "22267:928:11" + }, + { + "expression": { + "components": [ + { + "id": 4594, + "name": "max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4486, + "src": "23423:3:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "74727565", + "id": 4595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23428:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "id": 4596, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "23422:11:11", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_bool_$", + "typeString": "tuple(uint256,bool)" + } + }, + "functionReturnParameters": 4469, + "id": 4597, + "nodeType": "Return", + "src": "23415:18:11" + } + ] + }, + "documentation": { + "id": 4455, + "nodeType": "StructuredDocumentation", + "src": "21622:285:11", + "text": " @dev Binary search method for the SMT history,\n which searches for the index of the root entry saved by the given timestamp or block\n @param value The timestamp or block to search for.\n @param searchType The type of the search (timestamp or block)." + }, + "id": 4599, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "binarySearchUint256", + "nameLocation": "21921:19:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4458, + "mutability": "mutable", + "name": "self", + "nameLocation": "21970:4:11", + "nodeType": "VariableDeclaration", + "scope": 4599, + "src": "21950:24:11", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + }, + "typeName": { + "id": 4457, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4456, + "name": "SmtLib.Data", + "nameLocations": [ + "21950:6:11", + "21957:4:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2960, + "src": "21950:11:11" + }, + "referencedDeclaration": 2960, + "src": "21950:11:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$2960_storage_ptr", + "typeString": "struct SmtLib.Data" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4460, + "mutability": "mutable", + "name": "value", + "nameLocation": "21992:5:11", + "nodeType": "VariableDeclaration", + "scope": 4599, + "src": "21984:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4459, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21984:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4463, + "mutability": "mutable", + "name": "searchType", + "nameLocation": "22018:10:11", + "nodeType": "VariableDeclaration", + "scope": 4599, + "src": "22007:21:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + }, + "typeName": { + "id": 4462, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4461, + "name": "SearchType", + "nameLocations": [ + "22007:10:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4454, + "src": "22007:10:11" + }, + "referencedDeclaration": 4454, + "src": "22007:10:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + }, + "visibility": "internal" + } + ], + "src": "21940:94:11" + }, + "returnParameters": { + "id": 4469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4466, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4599, + "src": "22058:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4465, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22058:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4468, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4599, + "src": "22067:4:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4467, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22067:4:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "22057:15:11" + }, + "scope": 4636, + "src": "21912:1528:11", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4634, + "nodeType": "Block", + "src": "23791:246:11", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + }, + "id": 4614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4611, + "name": "st", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4606, + "src": "23805:2:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 4612, + "name": "SearchType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4454, + "src": "23811:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_SearchType_$4454_$", + "typeString": "type(enum BinarySearchSmtRoots.SearchType)" + } + }, + "id": 4613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "23822:5:11", + "memberName": "BLOCK", + "nodeType": "MemberAccess", + "referencedDeclaration": 4453, + "src": "23811:16:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + }, + "src": "23805:22:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + }, + "id": 4622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4619, + "name": "st", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4606, + "src": "23889:2:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 4620, + "name": "SearchType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4454, + "src": "23895:10:11", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_SearchType_$4454_$", + "typeString": "type(enum BinarySearchSmtRoots.SearchType)" + } + }, + "id": 4621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "23906:9:11", + "memberName": "TIMESTAMP", + "nodeType": "MemberAccess", + "referencedDeclaration": 4452, + "src": "23895:20:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + }, + "src": "23889:26:11", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4631, + "nodeType": "Block", + "src": "23977:54:11", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "496e76616c6964207365617263682074797065", + "id": 4628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23998:21:11", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6fabd1de3d4166fb77523c227388d19569e575c85e2f9f3fcf56540735e40935", + "typeString": "literal_string \"Invalid search type\"" + }, + "value": "Invalid search type" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_6fabd1de3d4166fb77523c227388d19569e575c85e2f9f3fcf56540735e40935", + "typeString": "literal_string \"Invalid search type\"" + } + ], + "id": 4627, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -19, + -19 + ], + "referencedDeclaration": -19, + "src": "23991:6:11", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 4629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23991:29:11", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4630, + "nodeType": "ExpressionStatement", + "src": "23991:29:11" + } + ] + }, + "id": 4632, + "nodeType": "IfStatement", + "src": "23885:146:11", + "trueBody": { + "id": 4626, + "nodeType": "Block", + "src": "23917:54:11", + "statements": [ + { + "expression": { + "expression": { + "id": 4623, + "name": "rti", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4603, + "src": "23938:3:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_memory_ptr", + "typeString": "struct SmtLib.RootEntry memory" + } + }, + "id": 4624, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23942:18:11", + "memberName": "createdAtTimestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": 2984, + "src": "23938:22:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4610, + "id": 4625, + "nodeType": "Return", + "src": "23931:29:11" + } + ] + } + }, + "id": 4633, + "nodeType": "IfStatement", + "src": "23801:230:11", + "trueBody": { + "id": 4618, + "nodeType": "Block", + "src": "23829:50:11", + "statements": [ + { + "expression": { + "expression": { + "id": 4615, + "name": "rti", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4603, + "src": "23850:3:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_memory_ptr", + "typeString": "struct SmtLib.RootEntry memory" + } + }, + "id": 4616, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23854:14:11", + "memberName": "createdAtBlock", + "nodeType": "MemberAccess", + "referencedDeclaration": 2986, + "src": "23850:18:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4610, + "id": 4617, + "nodeType": "Return", + "src": "23843:25:11" + } + ] + } + } + ] + }, + "documentation": { + "id": 4600, + "nodeType": "StructuredDocumentation", + "src": "23446:219:11", + "text": " @dev Selects either timestamp or block field from the root entry struct\n depending on the search type\n @param rti The root entry to select the field from.\n @param st The search type." + }, + "id": 4635, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "fieldSelector", + "nameLocation": "23679:13:11", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4607, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4603, + "mutability": "mutable", + "name": "rti", + "nameLocation": "23726:3:11", + "nodeType": "VariableDeclaration", + "scope": 4635, + "src": "23702:27:11", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_memory_ptr", + "typeString": "struct SmtLib.RootEntry" + }, + "typeName": { + "id": 4602, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4601, + "name": "SmtLib.RootEntry", + "nameLocations": [ + "23702:6:11", + "23709:9:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2987, + "src": "23702:16:11" + }, + "referencedDeclaration": 2987, + "src": "23702:16:11", + "typeDescriptions": { + "typeIdentifier": "t_struct$_RootEntry_$2987_storage_ptr", + "typeString": "struct SmtLib.RootEntry" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4606, + "mutability": "mutable", + "name": "st", + "nameLocation": "23750:2:11", + "nodeType": "VariableDeclaration", + "scope": 4635, + "src": "23739:13:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + }, + "typeName": { + "id": 4605, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4604, + "name": "SearchType", + "nameLocations": [ + "23739:10:11" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4454, + "src": "23739:10:11" + }, + "referencedDeclaration": 4454, + "src": "23739:10:11", + "typeDescriptions": { + "typeIdentifier": "t_enum$_SearchType_$4454", + "typeString": "enum BinarySearchSmtRoots.SearchType" + } + }, + "visibility": "internal" + } + ], + "src": "23692:66:11" + }, + "returnParameters": { + "id": 4610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4609, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4635, + "src": "23782:7:11", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23782:7:11", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "23781:9:11" + }, + "scope": 4636, + "src": "23670:367:11", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 4637, + "src": "21456:2583:11", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "36:24004:11" + }, + "id": 11 + }, + "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", + "exportedSymbols": { + "Initializable": [ + 5236 + ], + "Ownable2StepUpgradeable": [ + 4773 + ], + "OwnableUpgradeable": [ + 4968 + ] + }, + "id": 4774, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4638, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "107:24:12" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", + "file": "./OwnableUpgradeable.sol", + "id": 4640, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4774, + "sourceUnit": 4969, + "src": "133:60:12", + "symbolAliases": [ + { + "foreign": { + "id": 4639, + "name": "OwnableUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4968, + "src": "141:18:12", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 4642, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4774, + "sourceUnit": 5237, + "src": "194:63:12", + "symbolAliases": [ + { + "foreign": { + "id": 4641, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5236, + "src": "202:13:12", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 4644, + "name": "Initializable", + "nameLocations": [ + "1115:13:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5236, + "src": "1115:13:12" + }, + "id": 4645, + "nodeType": "InheritanceSpecifier", + "src": "1115:13:12" + }, + { + "baseName": { + "id": 4646, + "name": "OwnableUpgradeable", + "nameLocations": [ + "1130:18:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4968, + "src": "1130:18:12" + }, + "id": 4647, + "nodeType": "InheritanceSpecifier", + "src": "1130:18:12" + } + ], + "canonicalName": "Ownable2StepUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 4643, + "nodeType": "StructuredDocumentation", + "src": "259:810:12", + "text": " @dev Contract module which provides access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n This extension of the {Ownable} contract includes a two-step mechanism to transfer\n ownership, where the new owner must call {acceptOwnership} in order to replace the\n old one. This can help prevent common mistakes, such as transfers of ownership to\n incorrect accounts, or to contracts that are unable to interact with the\n permission system.\n The initial owner is specified at deployment time in the constructor for `Ownable`. This\n can later be changed with {transferOwnership} and {acceptOwnership}.\n This module is used through inheritance. It will make available all functions\n from parent (Ownable)." + }, + "fullyImplemented": true, + "id": 4773, + "linearizedBaseContracts": [ + 4773, + 4968, + 5282, + 5236 + ], + "name": "Ownable2StepUpgradeable", + "nameLocation": "1088:23:12", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Ownable2StepUpgradeable.Ownable2StepStorage", + "documentation": { + "id": 4648, + "nodeType": "StructuredDocumentation", + "src": "1155:70:12", + "text": "@custom:storage-location erc7201:openzeppelin.storage.Ownable2Step" + }, + "id": 4651, + "members": [ + { + "constant": false, + "id": 4650, + "mutability": "mutable", + "name": "_pendingOwner", + "nameLocation": "1275:13:12", + "nodeType": "VariableDeclaration", + "scope": 4651, + "src": "1267:21:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4649, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1267:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "name": "Ownable2StepStorage", + "nameLocation": "1237:19:12", + "nodeType": "StructDefinition", + "scope": 4773, + "src": "1230:65:12", + "visibility": "public" + }, + { + "constant": true, + "id": 4654, + "mutability": "constant", + "name": "Ownable2StepStorageLocation", + "nameLocation": "1442:27:12", + "nodeType": "VariableDeclaration", + "scope": 4773, + "src": "1417:121:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4652, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1417:7:12", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307832333765313538323232653365363936386237326239646230643830343361616366303734616439663635306630643136303662346438326565343332633030", + "id": 4653, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1472:66:12", + "typeDescriptions": { + "typeIdentifier": "t_rational_16053720875717120191110171845200109550086765943194951757191984851604933389312_by_1", + "typeString": "int_const 1605...(69 digits omitted)...9312" + }, + "value": "0x237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00" + }, + "visibility": "private" + }, + { + "body": { + "id": 4661, + "nodeType": "Block", + "src": "1633:86:12", + "statements": [ + { + "AST": { + "nativeSrc": "1652:61:12", + "nodeType": "YulBlock", + "src": "1652:61:12", + "statements": [ + { + "nativeSrc": "1666:37:12", + "nodeType": "YulAssignment", + "src": "1666:37:12", + "value": { + "name": "Ownable2StepStorageLocation", + "nativeSrc": "1676:27:12", + "nodeType": "YulIdentifier", + "src": "1676:27:12" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "1666:6:12", + "nodeType": "YulIdentifier", + "src": "1666:6:12" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4658, + "isOffset": false, + "isSlot": true, + "src": "1666:6:12", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 4654, + "isOffset": false, + "isSlot": false, + "src": "1676:27:12", + "valueSize": 1 + } + ], + "id": 4660, + "nodeType": "InlineAssembly", + "src": "1643:70:12" + } + ] + }, + "id": 4662, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getOwnable2StepStorage", + "nameLocation": "1554:23:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4655, + "nodeType": "ParameterList", + "parameters": [], + "src": "1577:2:12" + }, + "returnParameters": { + "id": 4659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4658, + "mutability": "mutable", + "name": "$", + "nameLocation": "1630:1:12", + "nodeType": "VariableDeclaration", + "scope": 4662, + "src": "1602:29:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + }, + "typeName": { + "id": 4657, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4656, + "name": "Ownable2StepStorage", + "nameLocations": [ + "1602:19:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4651, + "src": "1602:19:12" + }, + "referencedDeclaration": 4651, + "src": "1602:19:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + } + }, + "visibility": "internal" + } + ], + "src": "1601:31:12" + }, + "scope": 4773, + "src": "1545:174:12", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "eventSelector": "38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700", + "id": 4668, + "name": "OwnershipTransferStarted", + "nameLocation": "1731:24:12", + "nodeType": "EventDefinition", + "parameters": { + "id": 4667, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4664, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "1772:13:12", + "nodeType": "VariableDeclaration", + "scope": 4668, + "src": "1756:29:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4663, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1756:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4666, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "1803:8:12", + "nodeType": "VariableDeclaration", + "scope": 4668, + "src": "1787:24:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1787:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1755:57:12" + }, + "src": "1725:88:12" + }, + { + "body": { + "id": 4673, + "nodeType": "Block", + "src": "1876:7:12", + "statements": [] + }, + "id": 4674, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 4671, + "kind": "modifierInvocation", + "modifierName": { + "id": 4670, + "name": "onlyInitializing", + "nameLocations": [ + "1859:16:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5131, + "src": "1859:16:12" + }, + "nodeType": "ModifierInvocation", + "src": "1859:16:12" + } + ], + "name": "__Ownable2Step_init", + "nameLocation": "1828:19:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4669, + "nodeType": "ParameterList", + "parameters": [], + "src": "1847:2:12" + }, + "returnParameters": { + "id": 4672, + "nodeType": "ParameterList", + "parameters": [], + "src": "1876:0:12" + }, + "scope": 4773, + "src": "1819:64:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4679, + "nodeType": "Block", + "src": "1956:7:12", + "statements": [] + }, + "id": 4680, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 4677, + "kind": "modifierInvocation", + "modifierName": { + "id": 4676, + "name": "onlyInitializing", + "nameLocations": [ + "1939:16:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5131, + "src": "1939:16:12" + }, + "nodeType": "ModifierInvocation", + "src": "1939:16:12" + } + ], + "name": "__Ownable2Step_init_unchained", + "nameLocation": "1898:29:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4675, + "nodeType": "ParameterList", + "parameters": [], + "src": "1927:2:12" + }, + "returnParameters": { + "id": 4678, + "nodeType": "ParameterList", + "parameters": [], + "src": "1956:0:12" + }, + "scope": 4773, + "src": "1889:74:12", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4695, + "nodeType": "Block", + "src": "2100:106:12", + "statements": [ + { + "assignments": [ + 4688 + ], + "declarations": [ + { + "constant": false, + "id": 4688, + "mutability": "mutable", + "name": "$", + "nameLocation": "2138:1:12", + "nodeType": "VariableDeclaration", + "scope": 4695, + "src": "2110:29:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + }, + "typeName": { + "id": 4687, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4686, + "name": "Ownable2StepStorage", + "nameLocations": [ + "2110:19:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4651, + "src": "2110:19:12" + }, + "referencedDeclaration": 4651, + "src": "2110:19:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + } + }, + "visibility": "internal" + } + ], + "id": 4691, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4689, + "name": "_getOwnable2StepStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4662, + "src": "2142:23:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Ownable2StepStorage_$4651_storage_ptr_$", + "typeString": "function () pure returns (struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer)" + } + }, + "id": 4690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2142:25:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2110:57:12" + }, + { + "expression": { + "expression": { + "id": 4692, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4688, + "src": "2184:1:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" + } + }, + "id": 4693, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2186:13:12", + "memberName": "_pendingOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 4650, + "src": "2184:15:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 4685, + "id": 4694, + "nodeType": "Return", + "src": "2177:22:12" + } + ] + }, + "documentation": { + "id": 4681, + "nodeType": "StructuredDocumentation", + "src": "1968:65:12", + "text": " @dev Returns the address of the pending owner." + }, + "functionSelector": "e30c3978", + "id": 4696, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "pendingOwner", + "nameLocation": "2047:12:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4682, + "nodeType": "ParameterList", + "parameters": [], + "src": "2059:2:12" + }, + "returnParameters": { + "id": 4685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4684, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4696, + "src": "2091:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4683, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2091:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2090:9:12" + }, + "scope": 4773, + "src": "2038:168:12", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 4938 + ], + "body": { + "id": 4723, + "nodeType": "Block", + "src": "2603:168:12", + "statements": [ + { + "assignments": [ + 4707 + ], + "declarations": [ + { + "constant": false, + "id": 4707, + "mutability": "mutable", + "name": "$", + "nameLocation": "2641:1:12", + "nodeType": "VariableDeclaration", + "scope": 4723, + "src": "2613:29:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + }, + "typeName": { + "id": 4706, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4705, + "name": "Ownable2StepStorage", + "nameLocations": [ + "2613:19:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4651, + "src": "2613:19:12" + }, + "referencedDeclaration": 4651, + "src": "2613:19:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + } + }, + "visibility": "internal" + } + ], + "id": 4710, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4708, + "name": "_getOwnable2StepStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4662, + "src": "2645:23:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Ownable2StepStorage_$4651_storage_ptr_$", + "typeString": "function () pure returns (struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer)" + } + }, + "id": 4709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2645:25:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2613:57:12" + }, + { + "expression": { + "id": 4715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4711, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4707, + "src": "2680:1:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" + } + }, + "id": 4713, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "2682:13:12", + "memberName": "_pendingOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 4650, + "src": "2680:15:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4714, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4699, + "src": "2698:8:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2680:26:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4716, + "nodeType": "ExpressionStatement", + "src": "2680:26:12" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4718, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4879, + "src": "2746:5:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 4719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2746:7:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4720, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4699, + "src": "2755:8:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4717, + "name": "OwnershipTransferStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4668, + "src": "2721:24:12", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 4721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2721:43:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4722, + "nodeType": "EmitStatement", + "src": "2716:48:12" + } + ] + }, + "documentation": { + "id": 4697, + "nodeType": "StructuredDocumentation", + "src": "2212:307:12", + "text": " @dev Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one.\n Can only be called by the current owner.\n Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer." + }, + "functionSelector": "f2fde38b", + "id": 4724, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 4703, + "kind": "modifierInvocation", + "modifierName": { + "id": 4702, + "name": "onlyOwner", + "nameLocations": [ + "2593:9:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "2593:9:12" + }, + "nodeType": "ModifierInvocation", + "src": "2593:9:12" + } + ], + "name": "transferOwnership", + "nameLocation": "2533:17:12", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4701, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "2584:8:12" + }, + "parameters": { + "id": 4700, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4699, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2559:8:12", + "nodeType": "VariableDeclaration", + "scope": 4724, + "src": "2551:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4698, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2551:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2550:18:12" + }, + "returnParameters": { + "id": 4704, + "nodeType": "ParameterList", + "parameters": [], + "src": "2603:0:12" + }, + "scope": 4773, + "src": "2524:247:12", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 4967 + ], + "body": { + "id": 4747, + "nodeType": "Block", + "src": "3027:150:12", + "statements": [ + { + "assignments": [ + 4733 + ], + "declarations": [ + { + "constant": false, + "id": 4733, + "mutability": "mutable", + "name": "$", + "nameLocation": "3065:1:12", + "nodeType": "VariableDeclaration", + "scope": 4747, + "src": "3037:29:12", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + }, + "typeName": { + "id": 4732, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4731, + "name": "Ownable2StepStorage", + "nameLocations": [ + "3037:19:12" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4651, + "src": "3037:19:12" + }, + "referencedDeclaration": 4651, + "src": "3037:19:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage" + } + }, + "visibility": "internal" + } + ], + "id": 4736, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4734, + "name": "_getOwnable2StepStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4662, + "src": "3069:23:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Ownable2StepStorage_$4651_storage_ptr_$", + "typeString": "function () pure returns (struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer)" + } + }, + "id": 4735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3069:25:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3037:57:12" + }, + { + "expression": { + "id": 4739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "3104:22:12", + "subExpression": { + "expression": { + "id": 4737, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4733, + "src": "3111:1:12", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Ownable2StepStorage_$4651_storage_ptr", + "typeString": "struct Ownable2StepUpgradeable.Ownable2StepStorage storage pointer" + } + }, + "id": 4738, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3113:13:12", + "memberName": "_pendingOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 4650, + "src": "3111:15:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4740, + "nodeType": "ExpressionStatement", + "src": "3104:22:12" + }, + { + "expression": { + "arguments": [ + { + "id": 4744, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4727, + "src": "3161:8:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 4741, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "3136:5:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_Ownable2StepUpgradeable_$4773_$", + "typeString": "type(contract super Ownable2StepUpgradeable)" + } + }, + "id": 4743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3142:18:12", + "memberName": "_transferOwnership", + "nodeType": "MemberAccess", + "referencedDeclaration": 4967, + "src": "3136:24:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3136:34:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4746, + "nodeType": "ExpressionStatement", + "src": "3136:34:12" + } + ] + }, + "documentation": { + "id": 4725, + "nodeType": "StructuredDocumentation", + "src": "2777:173:12", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`) and deletes any pending owner.\n Internal function without access restriction." + }, + "id": 4748, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "2964:18:12", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 4729, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "3018:8:12" + }, + "parameters": { + "id": 4728, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4727, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "2991:8:12", + "nodeType": "VariableDeclaration", + "scope": 4748, + "src": "2983:16:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2983:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2982:18:12" + }, + "returnParameters": { + "id": 4730, + "nodeType": "ParameterList", + "parameters": [], + "src": "3027:0:12" + }, + "scope": 4773, + "src": "2955:222:12", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 4771, + "nodeType": "Block", + "src": "3299:187:12", + "statements": [ + { + "assignments": [ + 4753 + ], + "declarations": [ + { + "constant": false, + "id": 4753, + "mutability": "mutable", + "name": "sender", + "nameLocation": "3317:6:12", + "nodeType": "VariableDeclaration", + "scope": 4771, + "src": "3309:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4752, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3309:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 4756, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4754, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "3326:10:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 4755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3326:12:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3309:29:12" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4757, + "name": "pendingOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4696, + "src": "3352:12:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 4758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3352:14:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 4759, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4753, + "src": "3370:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3352:24:12", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4766, + "nodeType": "IfStatement", + "src": "3348:96:12", + "trueBody": { + "id": 4765, + "nodeType": "Block", + "src": "3378:66:12", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 4762, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4753, + "src": "3426:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4761, + "name": "OwnableUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4804, + "src": "3399:26:12", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 4763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3399:34:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 4764, + "nodeType": "RevertStatement", + "src": "3392:41:12" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 4768, + "name": "sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4753, + "src": "3472:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4767, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4748 + ], + "referencedDeclaration": 4748, + "src": "3453:18:12", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3453:26:12", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4770, + "nodeType": "ExpressionStatement", + "src": "3453:26:12" + } + ] + }, + "documentation": { + "id": 4749, + "nodeType": "StructuredDocumentation", + "src": "3183:69:12", + "text": " @dev The new owner accepts the ownership transfer." + }, + "functionSelector": "79ba5097", + "id": 4772, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "acceptOwnership", + "nameLocation": "3266:15:12", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4750, + "nodeType": "ParameterList", + "parameters": [], + "src": "3281:2:12" + }, + "returnParameters": { + "id": 4751, + "nodeType": "ParameterList", + "parameters": [], + "src": "3299:0:12" + }, + "scope": 4773, + "src": "3257:229:12", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + } + ], + "scope": 4774, + "src": "1070:2418:12", + "usedErrors": [ + 4804, + 4809, + 4985, + 4988 + ], + "usedEvents": [ + 4668, + 4815, + 4993 + ] + } + ], + "src": "107:3382:12" + }, + "id": 12 + }, + "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol", + "exportedSymbols": { + "ContextUpgradeable": [ + 5282 + ], + "Initializable": [ + 5236 + ], + "OwnableUpgradeable": [ + 4968 + ] + }, + "id": 4969, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4775, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "102:24:13" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "file": "../utils/ContextUpgradeable.sol", + "id": 4777, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4969, + "sourceUnit": 5283, + "src": "128:67:13", + "symbolAliases": [ + { + "foreign": { + "id": 4776, + "name": "ContextUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5282, + "src": "136:18:13", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 4779, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 4969, + "sourceUnit": 5237, + "src": "196:63:13", + "symbolAliases": [ + { + "foreign": { + "id": 4778, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5236, + "src": "204:13:13", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 4781, + "name": "Initializable", + "nameLocations": [ + "789:13:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5236, + "src": "789:13:13" + }, + "id": 4782, + "nodeType": "InheritanceSpecifier", + "src": "789:13:13" + }, + { + "baseName": { + "id": 4783, + "name": "ContextUpgradeable", + "nameLocations": [ + "804:18:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5282, + "src": "804:18:13" + }, + "id": 4784, + "nodeType": "InheritanceSpecifier", + "src": "804:18:13" + } + ], + "canonicalName": "OwnableUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 4780, + "nodeType": "StructuredDocumentation", + "src": "261:487:13", + "text": " @dev Contract module which provides a basic access control mechanism, where\n there is an account (an owner) that can be granted exclusive access to\n specific functions.\n The initial owner is set to the address provided by the deployer. This can\n later be changed with {transferOwnership}.\n This module is used through inheritance. It will make available the modifier\n `onlyOwner`, which can be applied to your functions to restrict their use to\n the owner." + }, + "fullyImplemented": true, + "id": 4968, + "linearizedBaseContracts": [ + 4968, + 5282, + 5236 + ], + "name": "OwnableUpgradeable", + "nameLocation": "767:18:13", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "OwnableUpgradeable.OwnableStorage", + "documentation": { + "id": 4785, + "nodeType": "StructuredDocumentation", + "src": "829:65:13", + "text": "@custom:storage-location erc7201:openzeppelin.storage.Ownable" + }, + "id": 4788, + "members": [ + { + "constant": false, + "id": 4787, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "939:6:13", + "nodeType": "VariableDeclaration", + "scope": 4788, + "src": "931:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4786, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "931:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "name": "OwnableStorage", + "nameLocation": "906:14:13", + "nodeType": "StructDefinition", + "scope": 4968, + "src": "899:53:13", + "visibility": "public" + }, + { + "constant": true, + "id": 4791, + "mutability": "constant", + "name": "OwnableStorageLocation", + "nameLocation": "1094:22:13", + "nodeType": "VariableDeclaration", + "scope": 4968, + "src": "1069:116:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4789, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1069:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307839303136643039643732643430666461653266643863656163366236323334633737303632313466643339633163643165363039613035323863313939333030", + "id": 4790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1119:66:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_65173360639460082030725920392146925864023520599682862633725751242436743107328_by_1", + "typeString": "int_const 6517...(69 digits omitted)...7328" + }, + "value": "0x9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300" + }, + "visibility": "private" + }, + { + "body": { + "id": 4798, + "nodeType": "Block", + "src": "1270:81:13", + "statements": [ + { + "AST": { + "nativeSrc": "1289:56:13", + "nodeType": "YulBlock", + "src": "1289:56:13", + "statements": [ + { + "nativeSrc": "1303:32:13", + "nodeType": "YulAssignment", + "src": "1303:32:13", + "value": { + "name": "OwnableStorageLocation", + "nativeSrc": "1313:22:13", + "nodeType": "YulIdentifier", + "src": "1313:22:13" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "1303:6:13", + "nodeType": "YulIdentifier", + "src": "1303:6:13" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 4795, + "isOffset": false, + "isSlot": true, + "src": "1303:6:13", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 4791, + "isOffset": false, + "isSlot": false, + "src": "1313:22:13", + "valueSize": 1 + } + ], + "id": 4797, + "nodeType": "InlineAssembly", + "src": "1280:65:13" + } + ] + }, + "id": 4799, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getOwnableStorage", + "nameLocation": "1201:18:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4792, + "nodeType": "ParameterList", + "parameters": [], + "src": "1219:2:13" + }, + "returnParameters": { + "id": 4796, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4795, + "mutability": "mutable", + "name": "$", + "nameLocation": "1267:1:13", + "nodeType": "VariableDeclaration", + "scope": 4799, + "src": "1244:24:13", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + }, + "typeName": { + "id": 4794, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4793, + "name": "OwnableStorage", + "nameLocations": [ + "1244:14:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4788, + "src": "1244:14:13" + }, + "referencedDeclaration": 4788, + "src": "1244:14:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + } + }, + "visibility": "internal" + } + ], + "src": "1243:26:13" + }, + "scope": 4968, + "src": "1192:159:13", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "documentation": { + "id": 4800, + "nodeType": "StructuredDocumentation", + "src": "1357:85:13", + "text": " @dev The caller account is not authorized to perform an operation." + }, + "errorSelector": "118cdaa7", + "id": 4804, + "name": "OwnableUnauthorizedAccount", + "nameLocation": "1453:26:13", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4802, + "mutability": "mutable", + "name": "account", + "nameLocation": "1488:7:13", + "nodeType": "VariableDeclaration", + "scope": 4804, + "src": "1480:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1480:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1479:17:13" + }, + "src": "1447:50:13" + }, + { + "documentation": { + "id": 4805, + "nodeType": "StructuredDocumentation", + "src": "1503:82:13", + "text": " @dev The owner is not a valid owner account. (eg. `address(0)`)" + }, + "errorSelector": "1e4fbdf7", + "id": 4809, + "name": "OwnableInvalidOwner", + "nameLocation": "1596:19:13", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4807, + "mutability": "mutable", + "name": "owner", + "nameLocation": "1624:5:13", + "nodeType": "VariableDeclaration", + "scope": 4809, + "src": "1616:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1616:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1615:15:13" + }, + "src": "1590:41:13" + }, + { + "anonymous": false, + "eventSelector": "8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", + "id": 4815, + "name": "OwnershipTransferred", + "nameLocation": "1643:20:13", + "nodeType": "EventDefinition", + "parameters": { + "id": 4814, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4811, + "indexed": true, + "mutability": "mutable", + "name": "previousOwner", + "nameLocation": "1680:13:13", + "nodeType": "VariableDeclaration", + "scope": 4815, + "src": "1664:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1664:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4813, + "indexed": true, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "1711:8:13", + "nodeType": "VariableDeclaration", + "scope": 4815, + "src": "1695:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1695:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1663:57:13" + }, + "src": "1637:84:13" + }, + { + "body": { + "id": 4827, + "nodeType": "Block", + "src": "1919:55:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 4824, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4818, + "src": "1954:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4823, + "name": "__Ownable_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4855, + "src": "1929:24:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1929:38:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4826, + "nodeType": "ExpressionStatement", + "src": "1929:38:13" + } + ] + }, + "documentation": { + "id": 4816, + "nodeType": "StructuredDocumentation", + "src": "1727:115:13", + "text": " @dev Initializes the contract setting the address provided by the deployer as the initial owner." + }, + "id": 4828, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 4821, + "kind": "modifierInvocation", + "modifierName": { + "id": 4820, + "name": "onlyInitializing", + "nameLocations": [ + "1902:16:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5131, + "src": "1902:16:13" + }, + "nodeType": "ModifierInvocation", + "src": "1902:16:13" + } + ], + "name": "__Ownable_init", + "nameLocation": "1856:14:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4818, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "1879:12:13", + "nodeType": "VariableDeclaration", + "scope": 4828, + "src": "1871:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4817, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1871:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1870:22:13" + }, + "returnParameters": { + "id": 4822, + "nodeType": "ParameterList", + "parameters": [], + "src": "1919:0:13" + }, + "scope": 4968, + "src": "1847:127:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4854, + "nodeType": "Block", + "src": "2062:153:13", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4835, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4830, + "src": "2076:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 4838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2100:1:13", + "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" + } + ], + "id": 4837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2092:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4836, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2092:7:13", + "typeDescriptions": {} + } + }, + "id": 4839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2092:10:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2076:26:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4849, + "nodeType": "IfStatement", + "src": "2072:95:13", + "trueBody": { + "id": 4848, + "nodeType": "Block", + "src": "2104:63:13", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 4844, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2153:1:13", + "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" + } + ], + "id": 4843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2145:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4842, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2145:7:13", + "typeDescriptions": {} + } + }, + "id": 4845, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2145:10:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4841, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4809, + "src": "2125:19:13", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 4846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2125:31:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 4847, + "nodeType": "RevertStatement", + "src": "2118:38:13" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 4851, + "name": "initialOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4830, + "src": "2195:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4850, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4967, + "src": "2176:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2176:32:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4853, + "nodeType": "ExpressionStatement", + "src": "2176:32:13" + } + ] + }, + "id": 4855, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 4833, + "kind": "modifierInvocation", + "modifierName": { + "id": 4832, + "name": "onlyInitializing", + "nameLocations": [ + "2045:16:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5131, + "src": "2045:16:13" + }, + "nodeType": "ModifierInvocation", + "src": "2045:16:13" + } + ], + "name": "__Ownable_init_unchained", + "nameLocation": "1989:24:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4830, + "mutability": "mutable", + "name": "initialOwner", + "nameLocation": "2022:12:13", + "nodeType": "VariableDeclaration", + "scope": 4855, + "src": "2014:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4829, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2014:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2013:22:13" + }, + "returnParameters": { + "id": 4834, + "nodeType": "ParameterList", + "parameters": [], + "src": "2062:0:13" + }, + "scope": 4968, + "src": "1980:235:13", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4862, + "nodeType": "Block", + "src": "2324:41:13", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4858, + "name": "_checkOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4896, + "src": "2334:11:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 4859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2334:13:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4860, + "nodeType": "ExpressionStatement", + "src": "2334:13:13" + }, + { + "id": 4861, + "nodeType": "PlaceholderStatement", + "src": "2357:1:13" + } + ] + }, + "documentation": { + "id": 4856, + "nodeType": "StructuredDocumentation", + "src": "2221:77:13", + "text": " @dev Throws if called by any account other than the owner." + }, + "id": 4863, + "name": "onlyOwner", + "nameLocation": "2312:9:13", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 4857, + "nodeType": "ParameterList", + "parameters": [], + "src": "2321:2:13" + }, + "src": "2303:62:13", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 4878, + "nodeType": "Block", + "src": "2496:89:13", + "statements": [ + { + "assignments": [ + 4871 + ], + "declarations": [ + { + "constant": false, + "id": 4871, + "mutability": "mutable", + "name": "$", + "nameLocation": "2529:1:13", + "nodeType": "VariableDeclaration", + "scope": 4878, + "src": "2506:24:13", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + }, + "typeName": { + "id": 4870, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4869, + "name": "OwnableStorage", + "nameLocations": [ + "2506:14:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4788, + "src": "2506:14:13" + }, + "referencedDeclaration": 4788, + "src": "2506:14:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 4874, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4872, + "name": "_getOwnableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4799, + "src": "2533:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_OwnableStorage_$4788_storage_ptr_$", + "typeString": "function () pure returns (struct OwnableUpgradeable.OwnableStorage storage pointer)" + } + }, + "id": 4873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2533:20:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2506:47:13" + }, + { + "expression": { + "expression": { + "id": 4875, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4871, + "src": "2570:1:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" + } + }, + "id": 4876, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2572:6:13", + "memberName": "_owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 4787, + "src": "2570:8:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 4868, + "id": 4877, + "nodeType": "Return", + "src": "2563:15:13" + } + ] + }, + "documentation": { + "id": 4864, + "nodeType": "StructuredDocumentation", + "src": "2371:65:13", + "text": " @dev Returns the address of the current owner." + }, + "functionSelector": "8da5cb5b", + "id": 4879, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "owner", + "nameLocation": "2450:5:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4865, + "nodeType": "ParameterList", + "parameters": [], + "src": "2455:2:13" + }, + "returnParameters": { + "id": 4868, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4867, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 4879, + "src": "2487:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4866, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2487:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2486:9:13" + }, + "scope": 4968, + "src": "2441:144:13", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 4895, + "nodeType": "Block", + "src": "2703:117:13", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4883, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4879, + "src": "2717:5:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 4884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2717:7:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4885, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "2728:10:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 4886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2728:12:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2717:23:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4894, + "nodeType": "IfStatement", + "src": "2713:101:13", + "trueBody": { + "id": 4893, + "nodeType": "Block", + "src": "2742:72:13", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4889, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "2790:10:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 4890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2790:12:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4888, + "name": "OwnableUnauthorizedAccount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4804, + "src": "2763:26:13", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 4891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2763:40:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 4892, + "nodeType": "RevertStatement", + "src": "2756:47:13" + } + ] + } + } + ] + }, + "documentation": { + "id": 4880, + "nodeType": "StructuredDocumentation", + "src": "2591:62:13", + "text": " @dev Throws if the sender is not the owner." + }, + "id": 4896, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOwner", + "nameLocation": "2667:11:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4881, + "nodeType": "ParameterList", + "parameters": [], + "src": "2678:2:13" + }, + "returnParameters": { + "id": 4882, + "nodeType": "ParameterList", + "parameters": [], + "src": "2703:0:13" + }, + "scope": 4968, + "src": "2658:162:13", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 4909, + "nodeType": "Block", + "src": "3209:47:13", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 4905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3246:1:13", + "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" + } + ], + "id": 4904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3238:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4903, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3238:7:13", + "typeDescriptions": {} + } + }, + "id": 4906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3238:10:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4902, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4967, + "src": "3219:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3219:30:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4908, + "nodeType": "ExpressionStatement", + "src": "3219:30:13" + } + ] + }, + "documentation": { + "id": 4897, + "nodeType": "StructuredDocumentation", + "src": "2826:324:13", + "text": " @dev Leaves the contract without owner. It will not be possible to call\n `onlyOwner` functions. Can only be called by the current owner.\n NOTE: Renouncing ownership will leave the contract without an owner,\n thereby disabling any functionality that is only available to the owner." + }, + "functionSelector": "715018a6", + "id": 4910, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 4900, + "kind": "modifierInvocation", + "modifierName": { + "id": 4899, + "name": "onlyOwner", + "nameLocations": [ + "3199:9:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "3199:9:13" + }, + "nodeType": "ModifierInvocation", + "src": "3199:9:13" + } + ], + "name": "renounceOwnership", + "nameLocation": "3164:17:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4898, + "nodeType": "ParameterList", + "parameters": [], + "src": "3181:2:13" + }, + "returnParameters": { + "id": 4901, + "nodeType": "ParameterList", + "parameters": [], + "src": "3209:0:13" + }, + "scope": 4968, + "src": "3155:101:13", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 4937, + "nodeType": "Block", + "src": "3475:145:13", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 4923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 4918, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4913, + "src": "3489:8:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 4921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3509:1:13", + "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" + } + ], + "id": 4920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3501:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4919, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3501:7:13", + "typeDescriptions": {} + } + }, + "id": 4922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3501:10:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3489:22:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4932, + "nodeType": "IfStatement", + "src": "3485:91:13", + "trueBody": { + "id": 4931, + "nodeType": "Block", + "src": "3513:63:13", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 4927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3562:1:13", + "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" + } + ], + "id": 4926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3554:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 4925, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3554:7:13", + "typeDescriptions": {} + } + }, + "id": 4928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3554:10:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4924, + "name": "OwnableInvalidOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4809, + "src": "3534:19:13", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 4929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3534:31:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 4930, + "nodeType": "RevertStatement", + "src": "3527:38:13" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 4934, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4913, + "src": "3604:8:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4933, + "name": "_transferOwnership", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4967, + "src": "3585:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 4935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3585:28:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4936, + "nodeType": "ExpressionStatement", + "src": "3585:28:13" + } + ] + }, + "documentation": { + "id": 4911, + "nodeType": "StructuredDocumentation", + "src": "3262:138:13", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Can only be called by the current owner." + }, + "functionSelector": "f2fde38b", + "id": 4938, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 4916, + "kind": "modifierInvocation", + "modifierName": { + "id": 4915, + "name": "onlyOwner", + "nameLocations": [ + "3465:9:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "3465:9:13" + }, + "nodeType": "ModifierInvocation", + "src": "3465:9:13" + } + ], + "name": "transferOwnership", + "nameLocation": "3414:17:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4913, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "3440:8:13", + "nodeType": "VariableDeclaration", + "scope": 4938, + "src": "3432:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4912, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3432:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3431:18:13" + }, + "returnParameters": { + "id": 4917, + "nodeType": "ParameterList", + "parameters": [], + "src": "3475:0:13" + }, + "scope": 4968, + "src": "3405:215:13", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 4966, + "nodeType": "Block", + "src": "3837:185:13", + "statements": [ + { + "assignments": [ + 4946 + ], + "declarations": [ + { + "constant": false, + "id": 4946, + "mutability": "mutable", + "name": "$", + "nameLocation": "3870:1:13", + "nodeType": "VariableDeclaration", + "scope": 4966, + "src": "3847:24:13", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + }, + "typeName": { + "id": 4945, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4944, + "name": "OwnableStorage", + "nameLocations": [ + "3847:14:13" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4788, + "src": "3847:14:13" + }, + "referencedDeclaration": 4788, + "src": "3847:14:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 4949, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4947, + "name": "_getOwnableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4799, + "src": "3874:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_OwnableStorage_$4788_storage_ptr_$", + "typeString": "function () pure returns (struct OwnableUpgradeable.OwnableStorage storage pointer)" + } + }, + "id": 4948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3874:20:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3847:47:13" + }, + { + "assignments": [ + 4951 + ], + "declarations": [ + { + "constant": false, + "id": 4951, + "mutability": "mutable", + "name": "oldOwner", + "nameLocation": "3912:8:13", + "nodeType": "VariableDeclaration", + "scope": 4966, + "src": "3904:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3904:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 4954, + "initialValue": { + "expression": { + "id": 4952, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4946, + "src": "3923:1:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" + } + }, + "id": 4953, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3925:6:13", + "memberName": "_owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 4787, + "src": "3923:8:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3904:27:13" + }, + { + "expression": { + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 4955, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4946, + "src": "3941:1:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_OwnableStorage_$4788_storage_ptr", + "typeString": "struct OwnableUpgradeable.OwnableStorage storage pointer" + } + }, + "id": 4957, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3943:6:13", + "memberName": "_owner", + "nodeType": "MemberAccess", + "referencedDeclaration": 4787, + "src": "3941:8:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 4958, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4941, + "src": "3952:8:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3941:19:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4960, + "nodeType": "ExpressionStatement", + "src": "3941:19:13" + }, + { + "eventCall": { + "arguments": [ + { + "id": 4962, + "name": "oldOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4951, + "src": "3996:8:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 4963, + "name": "newOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4941, + "src": "4006:8:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4961, + "name": "OwnershipTransferred", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "3975:20:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 4964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3975:40:13", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4965, + "nodeType": "EmitStatement", + "src": "3970:45:13" + } + ] + }, + "documentation": { + "id": 4939, + "nodeType": "StructuredDocumentation", + "src": "3626:143:13", + "text": " @dev Transfers ownership of the contract to a new account (`newOwner`).\n Internal function without access restriction." + }, + "id": 4967, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transferOwnership", + "nameLocation": "3783:18:13", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4941, + "mutability": "mutable", + "name": "newOwner", + "nameLocation": "3810:8:13", + "nodeType": "VariableDeclaration", + "scope": 4967, + "src": "3802:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4940, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3802:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3801:18:13" + }, + "returnParameters": { + "id": 4943, + "nodeType": "ParameterList", + "parameters": [], + "src": "3837:0:13" + }, + "scope": 4968, + "src": "3774:248:13", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 4969, + "src": "749:3275:13", + "usedErrors": [ + 4804, + 4809, + 4985, + 4988 + ], + "usedEvents": [ + 4815, + 4993 + ] + } + ], + "src": "102:3923:13" + }, + "id": 13 + }, + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "exportedSymbols": { + "Initializable": [ + 5236 + ] + }, + "id": 5237, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4970, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "113:24:14" + }, + { + "abstract": true, + "baseContracts": [], + "canonicalName": "Initializable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 4971, + "nodeType": "StructuredDocumentation", + "src": "139:2209:14", + "text": " @dev This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed\n behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an\n external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer\n function so it can only be called once. The {initializer} modifier provided by this contract will have this effect.\n The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\n ```\n TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as\n possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}.\n CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure\n that all initializers are idempotent. This is not verified automatically as constructors are by Solidity.\n [CAUTION]\n ====\n Avoid leaving a contract uninitialized.\n An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation\n contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ====" + }, + "fullyImplemented": true, + "id": 5236, + "linearizedBaseContracts": [ + 5236 + ], + "name": "Initializable", + "nameLocation": "2367:13:14", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Initializable.InitializableStorage", + "documentation": { + "id": 4972, + "nodeType": "StructuredDocumentation", + "src": "2387:293:14", + "text": " @dev Storage of the initializable contract.\n It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n when using with upgradeable contracts.\n @custom:storage-location erc7201:openzeppelin.storage.Initializable" + }, + "id": 4979, + "members": [ + { + "constant": false, + "id": 4975, + "mutability": "mutable", + "name": "_initialized", + "nameLocation": "2820:12:14", + "nodeType": "VariableDeclaration", + "scope": 4979, + "src": "2813:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 4974, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2813:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 4978, + "mutability": "mutable", + "name": "_initializing", + "nameLocation": "2955:13:14", + "nodeType": "VariableDeclaration", + "scope": 4979, + "src": "2950:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4977, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2950:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "InitializableStorage", + "nameLocation": "2692:20:14", + "nodeType": "StructDefinition", + "scope": 5236, + "src": "2685:290:14", + "visibility": "public" + }, + { + "constant": true, + "id": 4982, + "mutability": "constant", + "name": "INITIALIZABLE_STORAGE", + "nameLocation": "3123:21:14", + "nodeType": "VariableDeclaration", + "scope": 5236, + "src": "3098:115:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 4980, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3098:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307866306335376531363834306466303430663135303838646332663831666533393163333932336265633733653233613936363265666339633232396336613030", + "id": 4981, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3147:66:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_108904022758810753673719992590105913556127789646572562039383141376366747609600_by_1", + "typeString": "int_const 1089...(70 digits omitted)...9600" + }, + "value": "0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00" + }, + "visibility": "private" + }, + { + "documentation": { + "id": 4983, + "nodeType": "StructuredDocumentation", + "src": "3220:60:14", + "text": " @dev The contract is already initialized." + }, + "errorSelector": "f92ee8a9", + "id": 4985, + "name": "InvalidInitialization", + "nameLocation": "3291:21:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4984, + "nodeType": "ParameterList", + "parameters": [], + "src": "3312:2:14" + }, + "src": "3285:30:14" + }, + { + "documentation": { + "id": 4986, + "nodeType": "StructuredDocumentation", + "src": "3321:57:14", + "text": " @dev The contract is not initializing." + }, + "errorSelector": "d7e6bcf8", + "id": 4988, + "name": "NotInitializing", + "nameLocation": "3389:15:14", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 4987, + "nodeType": "ParameterList", + "parameters": [], + "src": "3404:2:14" + }, + "src": "3383:24:14" + }, + { + "anonymous": false, + "documentation": { + "id": 4989, + "nodeType": "StructuredDocumentation", + "src": "3413:90:14", + "text": " @dev Triggered when the contract has been initialized or reinitialized." + }, + "eventSelector": "c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2", + "id": 4993, + "name": "Initialized", + "nameLocation": "3514:11:14", + "nodeType": "EventDefinition", + "parameters": { + "id": 4992, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4991, + "indexed": false, + "mutability": "mutable", + "name": "version", + "nameLocation": "3533:7:14", + "nodeType": "VariableDeclaration", + "scope": 4993, + "src": "3526:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 4990, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3526:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "3525:16:14" + }, + "src": "3508:34:14" + }, + { + "body": { + "id": 5075, + "nodeType": "Block", + "src": "4092:1079:14", + "statements": [ + { + "assignments": [ + 4998 + ], + "declarations": [ + { + "constant": false, + "id": 4998, + "mutability": "mutable", + "name": "$", + "nameLocation": "4187:1:14", + "nodeType": "VariableDeclaration", + "scope": 5075, + "src": "4158:30:14", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 4997, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 4996, + "name": "InitializableStorage", + "nameLocations": [ + "4158:20:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4979, + "src": "4158:20:14" + }, + "referencedDeclaration": 4979, + "src": "4158:20:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 5001, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4999, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5235, + "src": "4191:24:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$4979_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 5000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4191:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4158:59:14" + }, + { + "assignments": [ + 5003 + ], + "declarations": [ + { + "constant": false, + "id": 5003, + "mutability": "mutable", + "name": "isTopLevelCall", + "nameLocation": "4284:14:14", + "nodeType": "VariableDeclaration", + "scope": 5075, + "src": "4279:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5002, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4279:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 5007, + "initialValue": { + "id": 5006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4301:16:14", + "subExpression": { + "expression": { + "id": 5004, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4998, + "src": "4302:1:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5005, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4304:13:14", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 4978, + "src": "4302:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4279:38:14" + }, + { + "assignments": [ + 5009 + ], + "declarations": [ + { + "constant": false, + "id": 5009, + "mutability": "mutable", + "name": "initialized", + "nameLocation": "4334:11:14", + "nodeType": "VariableDeclaration", + "scope": 5075, + "src": "4327:18:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 5008, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "4327:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 5012, + "initialValue": { + "expression": { + "id": 5010, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4998, + "src": "4348:1:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5011, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4350:12:14", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 4975, + "src": "4348:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4327:35:14" + }, + { + "assignments": [ + 5014 + ], + "declarations": [ + { + "constant": false, + "id": 5014, + "mutability": "mutable", + "name": "initialSetup", + "nameLocation": "4709:12:14", + "nodeType": "VariableDeclaration", + "scope": 5075, + "src": "4704:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4704:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 5020, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 5017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5015, + "name": "initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5009, + "src": "4724:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 5016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4739:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4724:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 5018, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5003, + "src": "4744:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4724:34:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4704:54:14" + }, + { + "assignments": [ + 5022 + ], + "declarations": [ + { + "constant": false, + "id": 5022, + "mutability": "mutable", + "name": "construction", + "nameLocation": "4773:12:14", + "nodeType": "VariableDeclaration", + "scope": 5075, + "src": "4768:17:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5021, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4768:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 5035, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 5025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5023, + "name": "initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5009, + "src": "4788:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 5024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4803:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4788:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "arguments": [ + { + "id": 5028, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4816:4:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Initializable_$5236", + "typeString": "contract Initializable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Initializable_$5236", + "typeString": "contract Initializable" + } + ], + "id": 5027, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4808:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5026, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4808:7:14", + "typeDescriptions": {} + } + }, + "id": 5029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4808:13:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4822:4:14", + "memberName": "code", + "nodeType": "MemberAccess", + "src": "4808:18:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4827:6:14", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4808:25:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 5032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4837:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4808:30:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4788:50:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4768:70:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4853:13:14", + "subExpression": { + "id": 5036, + "name": "initialSetup", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5014, + "src": "4854:12:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 5039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4870:13:14", + "subExpression": { + "id": 5038, + "name": "construction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5022, + "src": "4871:12:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4853:30:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5045, + "nodeType": "IfStatement", + "src": "4849:91:14", + "trueBody": { + "id": 5044, + "nodeType": "Block", + "src": "4885:55:14", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5041, + "name": "InvalidInitialization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4985, + "src": "4906:21:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 5042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4906:23:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5043, + "nodeType": "RevertStatement", + "src": "4899:30:14" + } + ] + } + }, + { + "expression": { + "id": 5050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5046, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4998, + "src": "4949:1:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5048, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4951:12:14", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 4975, + "src": "4949:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 5049, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4966:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4949:18:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 5051, + "nodeType": "ExpressionStatement", + "src": "4949:18:14" + }, + { + "condition": { + "id": 5052, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5003, + "src": "4981:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5060, + "nodeType": "IfStatement", + "src": "4977:67:14", + "trueBody": { + "id": 5059, + "nodeType": "Block", + "src": "4997:47:14", + "statements": [ + { + "expression": { + "id": 5057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5053, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4998, + "src": "5011:1:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5013:13:14", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 4978, + "src": "5011:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 5056, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5029:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "5011:22:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5058, + "nodeType": "ExpressionStatement", + "src": "5011:22:14" + } + ] + } + }, + { + "id": 5061, + "nodeType": "PlaceholderStatement", + "src": "5053:1:14" + }, + { + "condition": { + "id": 5062, + "name": "isTopLevelCall", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5003, + "src": "5068:14:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5074, + "nodeType": "IfStatement", + "src": "5064:101:14", + "trueBody": { + "id": 5073, + "nodeType": "Block", + "src": "5084:81:14", + "statements": [ + { + "expression": { + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5063, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4998, + "src": "5098:1:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5065, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5100:13:14", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 4978, + "src": "5098:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 5066, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5116:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "5098:23:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5068, + "nodeType": "ExpressionStatement", + "src": "5098:23:14" + }, + { + "eventCall": { + "arguments": [ + { + "hexValue": "31", + "id": 5070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5152:1:14", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 5069, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4993, + "src": "5140:11:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 5071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5140:14:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5072, + "nodeType": "EmitStatement", + "src": "5135:19:14" + } + ] + } + } + ] + }, + "documentation": { + "id": 4994, + "nodeType": "StructuredDocumentation", + "src": "3548:516:14", + "text": " @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n production.\n Emits an {Initialized} event." + }, + "id": 5076, + "name": "initializer", + "nameLocation": "4078:11:14", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 4995, + "nodeType": "ParameterList", + "parameters": [], + "src": "4089:2:14" + }, + "src": "4069:1102:14", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5122, + "nodeType": "Block", + "src": "6289:392:14", + "statements": [ + { + "assignments": [ + 5083 + ], + "declarations": [ + { + "constant": false, + "id": 5083, + "mutability": "mutable", + "name": "$", + "nameLocation": "6384:1:14", + "nodeType": "VariableDeclaration", + "scope": 5122, + "src": "6355:30:14", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 5082, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5081, + "name": "InitializableStorage", + "nameLocations": [ + "6355:20:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4979, + "src": "6355:20:14" + }, + "referencedDeclaration": 4979, + "src": "6355:20:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 5086, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5084, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5235, + "src": "6388:24:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$4979_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 5085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6388:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6355:59:14" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5087, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5083, + "src": "6429:1:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5088, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6431:13:14", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 4978, + "src": "6429:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 5092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5089, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5083, + "src": "6448:1:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5090, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6450:12:14", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 4975, + "src": "6448:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 5091, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5079, + "src": "6466:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6448:25:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6429:44:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5098, + "nodeType": "IfStatement", + "src": "6425:105:14", + "trueBody": { + "id": 5097, + "nodeType": "Block", + "src": "6475:55:14", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5094, + "name": "InvalidInitialization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4985, + "src": "6496:21:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 5095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6496:23:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5096, + "nodeType": "RevertStatement", + "src": "6489:30:14" + } + ] + } + }, + { + "expression": { + "id": 5103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5099, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5083, + "src": "6539:1:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5101, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6541:12:14", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 4975, + "src": "6539:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5102, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5079, + "src": "6556:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "6539:24:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 5104, + "nodeType": "ExpressionStatement", + "src": "6539:24:14" + }, + { + "expression": { + "id": 5109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5105, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5083, + "src": "6573:1:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5107, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6575:13:14", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 4978, + "src": "6573:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 5108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6591:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6573:22:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5110, + "nodeType": "ExpressionStatement", + "src": "6573:22:14" + }, + { + "id": 5111, + "nodeType": "PlaceholderStatement", + "src": "6605:1:14" + }, + { + "expression": { + "id": 5116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5112, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5083, + "src": "6616:1:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5114, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "6618:13:14", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 4978, + "src": "6616:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 5115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6634:5:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "6616:23:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5117, + "nodeType": "ExpressionStatement", + "src": "6616:23:14" + }, + { + "eventCall": { + "arguments": [ + { + "id": 5119, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5079, + "src": "6666:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 5118, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4993, + "src": "6654:11:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 5120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6654:20:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5121, + "nodeType": "EmitStatement", + "src": "6649:25:14" + } + ] + }, + "documentation": { + "id": 5077, + "nodeType": "StructuredDocumentation", + "src": "5177:1068:14", + "text": " @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n Emits an {Initialized} event." + }, + "id": 5123, + "name": "reinitializer", + "nameLocation": "6259:13:14", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5080, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5079, + "mutability": "mutable", + "name": "version", + "nameLocation": "6280:7:14", + "nodeType": "VariableDeclaration", + "scope": 5123, + "src": "6273:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 5078, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "6273:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "6272:16:14" + }, + "src": "6250:431:14", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5130, + "nodeType": "Block", + "src": "6919:48:14", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5126, + "name": "_checkInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5144, + "src": "6929:18:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 5127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6929:20:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5128, + "nodeType": "ExpressionStatement", + "src": "6929:20:14" + }, + { + "id": 5129, + "nodeType": "PlaceholderStatement", + "src": "6959:1:14" + } + ] + }, + "documentation": { + "id": 5124, + "nodeType": "StructuredDocumentation", + "src": "6687:199:14", + "text": " @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly." + }, + "id": 5131, + "name": "onlyInitializing", + "nameLocation": "6900:16:14", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5125, + "nodeType": "ParameterList", + "parameters": [], + "src": "6916:2:14" + }, + "src": "6891:76:14", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5143, + "nodeType": "Block", + "src": "7134:89:14", + "statements": [ + { + "condition": { + "id": 5137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7148:18:14", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5135, + "name": "_isInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5212, + "src": "7149:15:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$", + "typeString": "function () view returns (bool)" + } + }, + "id": 5136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7149:17:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5142, + "nodeType": "IfStatement", + "src": "7144:73:14", + "trueBody": { + "id": 5141, + "nodeType": "Block", + "src": "7168:49:14", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5138, + "name": "NotInitializing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "7189:15:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 5139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7189:17:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5140, + "nodeType": "RevertStatement", + "src": "7182:24:14" + } + ] + } + } + ] + }, + "documentation": { + "id": 5132, + "nodeType": "StructuredDocumentation", + "src": "6973:104:14", + "text": " @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}." + }, + "id": 5144, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkInitializing", + "nameLocation": "7091:18:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5133, + "nodeType": "ParameterList", + "parameters": [], + "src": "7109:2:14" + }, + "returnParameters": { + "id": 5134, + "nodeType": "ParameterList", + "parameters": [], + "src": "7134:0:14" + }, + "scope": 5236, + "src": "7082:141:14", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5189, + "nodeType": "Block", + "src": "7758:373:14", + "statements": [ + { + "assignments": [ + 5150 + ], + "declarations": [ + { + "constant": false, + "id": 5150, + "mutability": "mutable", + "name": "$", + "nameLocation": "7853:1:14", + "nodeType": "VariableDeclaration", + "scope": 5189, + "src": "7824:30:14", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 5149, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5148, + "name": "InitializableStorage", + "nameLocations": [ + "7824:20:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4979, + "src": "7824:20:14" + }, + "referencedDeclaration": 4979, + "src": "7824:20:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "id": 5153, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5151, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5235, + "src": "7857:24:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$4979_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 5152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7857:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7824:59:14" + }, + { + "condition": { + "expression": { + "id": 5154, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5150, + "src": "7898:1:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5155, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7900:13:14", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 4978, + "src": "7898:15:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5160, + "nodeType": "IfStatement", + "src": "7894:76:14", + "trueBody": { + "id": 5159, + "nodeType": "Block", + "src": "7915:55:14", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5156, + "name": "InvalidInitialization", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4985, + "src": "7936:21:14", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 5157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7936:23:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 5158, + "nodeType": "RevertStatement", + "src": "7929:30:14" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 5168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5161, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5150, + "src": "7983:1:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5162, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7985:12:14", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 4975, + "src": "7983:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 5165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8006:6:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 5164, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8006:6:14", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 5163, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8001:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5166, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8001:12:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 5167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8014:3:14", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8001:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "7983:34:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5188, + "nodeType": "IfStatement", + "src": "7979:146:14", + "trueBody": { + "id": 5187, + "nodeType": "Block", + "src": "8019:106:14", + "statements": [ + { + "expression": { + "id": 5177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5169, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5150, + "src": "8033:1:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5171, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "8035:12:14", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 4975, + "src": "8033:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "arguments": [ + { + "id": 5174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8055:6:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 5173, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8055:6:14", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 5172, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8050:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5175, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8050:12:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 5176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8063:3:14", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8050:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "8033:33:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 5178, + "nodeType": "ExpressionStatement", + "src": "8033:33:14" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 5182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8102:6:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 5181, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8102:6:14", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 5180, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8097:4:14", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 5183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8097:12:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 5184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8110:3:14", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8097:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 5179, + "name": "Initialized", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4993, + "src": "8085:11:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 5185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8085:29:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5186, + "nodeType": "EmitStatement", + "src": "8080:34:14" + } + ] + } + } + ] + }, + "documentation": { + "id": 5145, + "nodeType": "StructuredDocumentation", + "src": "7229:475:14", + "text": " @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed." + }, + "id": 5190, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_disableInitializers", + "nameLocation": "7718:20:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5146, + "nodeType": "ParameterList", + "parameters": [], + "src": "7738:2:14" + }, + "returnParameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [], + "src": "7758:0:14" + }, + "scope": 5236, + "src": "7709:422:14", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5200, + "nodeType": "Block", + "src": "8306:63:14", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5196, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5235, + "src": "8323:24:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$4979_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 5197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8323:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5198, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8350:12:14", + "memberName": "_initialized", + "nodeType": "MemberAccess", + "referencedDeclaration": 4975, + "src": "8323:39:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 5195, + "id": 5199, + "nodeType": "Return", + "src": "8316:46:14" + } + ] + }, + "documentation": { + "id": 5191, + "nodeType": "StructuredDocumentation", + "src": "8137:99:14", + "text": " @dev Returns the highest version that has been initialized. See {reinitializer}." + }, + "id": 5201, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getInitializedVersion", + "nameLocation": "8250:22:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5192, + "nodeType": "ParameterList", + "parameters": [], + "src": "8272:2:14" + }, + "returnParameters": { + "id": 5195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5194, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5201, + "src": "8298:6:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 5193, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "8298:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "8297:8:14" + }, + "scope": 5236, + "src": "8241:128:14", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5211, + "nodeType": "Block", + "src": "8541:64:14", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5207, + "name": "_getInitializableStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5235, + "src": "8558:24:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$4979_storage_ptr_$", + "typeString": "function () pure returns (struct Initializable.InitializableStorage storage pointer)" + } + }, + "id": 5208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8558:26:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage storage pointer" + } + }, + "id": 5209, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8585:13:14", + "memberName": "_initializing", + "nodeType": "MemberAccess", + "referencedDeclaration": 4978, + "src": "8558:40:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5206, + "id": 5210, + "nodeType": "Return", + "src": "8551:47:14" + } + ] + }, + "documentation": { + "id": 5202, + "nodeType": "StructuredDocumentation", + "src": "8375:105:14", + "text": " @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}." + }, + "id": 5212, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isInitializing", + "nameLocation": "8494:15:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5203, + "nodeType": "ParameterList", + "parameters": [], + "src": "8509:2:14" + }, + "returnParameters": { + "id": 5206, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5205, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5212, + "src": "8535:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5204, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8535:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8534:6:14" + }, + "scope": 5236, + "src": "8485:120:14", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5220, + "nodeType": "Block", + "src": "8896:45:14", + "statements": [ + { + "expression": { + "id": 5218, + "name": "INITIALIZABLE_STORAGE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "8913:21:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5217, + "id": 5219, + "nodeType": "Return", + "src": "8906:28:14" + } + ] + }, + "documentation": { + "id": 5213, + "nodeType": "StructuredDocumentation", + "src": "8611:203:14", + "text": " @dev Pointer to storage slot. Allows integrators to override it with a custom storage location.\n NOTE: Consider following the ERC-7201 formula to derive storage locations." + }, + "id": 5221, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_initializableStorageSlot", + "nameLocation": "8828:25:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5214, + "nodeType": "ParameterList", + "parameters": [], + "src": "8853:2:14" + }, + "returnParameters": { + "id": 5217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5216, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5221, + "src": "8887:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5215, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8887:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "8886:9:14" + }, + "scope": 5236, + "src": "8819:122:14", + "stateMutability": "pure", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5234, + "nodeType": "Block", + "src": "9161:115:14", + "statements": [ + { + "assignments": [ + 5229 + ], + "declarations": [ + { + "constant": false, + "id": 5229, + "mutability": "mutable", + "name": "slot", + "nameLocation": "9179:4:14", + "nodeType": "VariableDeclaration", + "scope": 5234, + "src": "9171:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5228, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9171:7:14", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 5232, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5230, + "name": "_initializableStorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5221, + "src": "9186:25:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_bytes32_$", + "typeString": "function () pure returns (bytes32)" + } + }, + "id": 5231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9186:27:14", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9171:42:14" + }, + { + "AST": { + "nativeSrc": "9232:38:14", + "nodeType": "YulBlock", + "src": "9232:38:14", + "statements": [ + { + "nativeSrc": "9246:14:14", + "nodeType": "YulAssignment", + "src": "9246:14:14", + "value": { + "name": "slot", + "nativeSrc": "9256:4:14", + "nodeType": "YulIdentifier", + "src": "9256:4:14" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "9246:6:14", + "nodeType": "YulIdentifier", + "src": "9246:6:14" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5226, + "isOffset": false, + "isSlot": true, + "src": "9246:6:14", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 5229, + "isOffset": false, + "isSlot": false, + "src": "9256:4:14", + "valueSize": 1 + } + ], + "id": 5233, + "nodeType": "InlineAssembly", + "src": "9223:47:14" + } + ] + }, + "documentation": { + "id": 5222, + "nodeType": "StructuredDocumentation", + "src": "8947:67:14", + "text": " @dev Returns a pointer to the storage namespace." + }, + "id": 5235, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getInitializableStorage", + "nameLocation": "9080:24:14", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5223, + "nodeType": "ParameterList", + "parameters": [], + "src": "9104:2:14" + }, + "returnParameters": { + "id": 5227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5226, + "mutability": "mutable", + "name": "$", + "nameLocation": "9158:1:14", + "nodeType": "VariableDeclaration", + "scope": 5235, + "src": "9129:30:14", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + }, + "typeName": { + "id": 5225, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5224, + "name": "InitializableStorage", + "nameLocations": [ + "9129:20:14" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4979, + "src": "9129:20:14" + }, + "referencedDeclaration": 4979, + "src": "9129:20:14", + "typeDescriptions": { + "typeIdentifier": "t_struct$_InitializableStorage_$4979_storage_ptr", + "typeString": "struct Initializable.InitializableStorage" + } + }, + "visibility": "internal" + } + ], + "src": "9128:32:14" + }, + "scope": 5236, + "src": "9071:205:14", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 5237, + "src": "2349:6929:14", + "usedErrors": [ + 4985, + 4988 + ], + "usedEvents": [ + 4993 + ] + } + ], + "src": "113:9166:14" + }, + "id": 14 + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol", + "exportedSymbols": { + "ContextUpgradeable": [ + 5282 + ], + "Initializable": [ + 5236 + ] + }, + "id": 5283, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5238, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:15" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../proxy/utils/Initializable.sol", + "id": 5240, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 5283, + "sourceUnit": 5237, + "src": "126:63:15", + "symbolAliases": [ + { + "foreign": { + "id": 5239, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5236, + "src": "134:13:15", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 5242, + "name": "Initializable", + "nameLocations": [ + "728:13:15" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5236, + "src": "728:13:15" + }, + "id": 5243, + "nodeType": "InheritanceSpecifier", + "src": "728:13:15" + } + ], + "canonicalName": "ContextUpgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 5241, + "nodeType": "StructuredDocumentation", + "src": "191:496:15", + "text": " @dev Provides information about the current execution context, including the\n sender of the transaction and its data. While these are generally available\n via msg.sender and msg.data, they should not be accessed in such a direct\n manner, since when dealing with meta-transactions the account sending and\n paying for execution may not be the actual sender (as far as an application\n is concerned).\n This contract is only required for intermediate, library-like contracts." + }, + "fullyImplemented": true, + "id": 5282, + "linearizedBaseContracts": [ + 5282, + 5236 + ], + "name": "ContextUpgradeable", + "nameLocation": "706:18:15", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5248, + "nodeType": "Block", + "src": "800:7:15", + "statements": [] + }, + "id": 5249, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5246, + "kind": "modifierInvocation", + "modifierName": { + "id": 5245, + "name": "onlyInitializing", + "nameLocations": [ + "783:16:15" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5131, + "src": "783:16:15" + }, + "nodeType": "ModifierInvocation", + "src": "783:16:15" + } + ], + "name": "__Context_init", + "nameLocation": "757:14:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5244, + "nodeType": "ParameterList", + "parameters": [], + "src": "771:2:15" + }, + "returnParameters": { + "id": 5247, + "nodeType": "ParameterList", + "parameters": [], + "src": "800:0:15" + }, + "scope": 5282, + "src": "748:59:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5254, + "nodeType": "Block", + "src": "875:7:15", + "statements": [] + }, + "id": 5255, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5252, + "kind": "modifierInvocation", + "modifierName": { + "id": 5251, + "name": "onlyInitializing", + "nameLocations": [ + "858:16:15" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5131, + "src": "858:16:15" + }, + "nodeType": "ModifierInvocation", + "src": "858:16:15" + } + ], + "name": "__Context_init_unchained", + "nameLocation": "822:24:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5250, + "nodeType": "ParameterList", + "parameters": [], + "src": "846:2:15" + }, + "returnParameters": { + "id": 5253, + "nodeType": "ParameterList", + "parameters": [], + "src": "875:0:15" + }, + "scope": 5282, + "src": "813:69:15", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5263, + "nodeType": "Block", + "src": "949:34:15", + "statements": [ + { + "expression": { + "expression": { + "id": 5260, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "966:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "970:6:15", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "966:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5259, + "id": 5262, + "nodeType": "Return", + "src": "959:17:15" + } + ] + }, + "id": 5264, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nameLocation": "896:10:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5256, + "nodeType": "ParameterList", + "parameters": [], + "src": "906:2:15" + }, + "returnParameters": { + "id": 5259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5258, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5264, + "src": "940:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5257, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "940:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "939:9:15" + }, + "scope": 5282, + "src": "887:96:15", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5272, + "nodeType": "Block", + "src": "1056:32:15", + "statements": [ + { + "expression": { + "expression": { + "id": 5269, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -15, + "src": "1073:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1077:4:15", + "memberName": "data", + "nodeType": "MemberAccess", + "src": "1073:8:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 5268, + "id": 5271, + "nodeType": "Return", + "src": "1066:15:15" + } + ] + }, + "id": 5273, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nameLocation": "998:8:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5265, + "nodeType": "ParameterList", + "parameters": [], + "src": "1006:2:15" + }, + "returnParameters": { + "id": 5268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5267, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5273, + "src": "1040:14:15", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5266, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1040:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1039:16:15" + }, + "scope": 5282, + "src": "989:99:15", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5280, + "nodeType": "Block", + "src": "1166:25:15", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1183:1:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 5277, + "id": 5279, + "nodeType": "Return", + "src": "1176:8:15" + } + ] + }, + "id": 5281, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contextSuffixLength", + "nameLocation": "1103:20:15", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5274, + "nodeType": "ParameterList", + "parameters": [], + "src": "1123:2:15" + }, + "returnParameters": { + "id": 5277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5276, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5281, + "src": "1157:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1157:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1156:9:15" + }, + "scope": 5282, + "src": "1094:97:15", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 5283, + "src": "688:505:15", + "usedErrors": [ + 4985, + 4988 + ], + "usedEvents": [ + 4993 + ] + } + ], + "src": "101:1093:15" + }, + "id": 15 + }, + "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol", + "exportedSymbols": { + "EIP712Upgradeable": [ + 5626 + ], + "IERC5267": [ + 5651 + ], + "Initializable": [ + 5236 + ], + "MessageHashUtils": [ + 8703 + ] + }, + "id": 5627, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5284, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "113:24:16" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", + "file": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", + "id": 5286, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 5627, + "sourceUnit": 8704, + "src": "139:97:16", + "symbolAliases": [ + { + "foreign": { + "id": 5285, + "name": "MessageHashUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8703, + "src": "147:16:16", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC5267.sol", + "file": "@openzeppelin/contracts/interfaces/IERC5267.sol", + "id": 5288, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 5627, + "sourceUnit": 5652, + "src": "237:73:16", + "symbolAliases": [ + { + "foreign": { + "id": 5287, + "name": "IERC5267", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5651, + "src": "245:8:16", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol", + "file": "../../proxy/utils/Initializable.sol", + "id": 5290, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 5627, + "sourceUnit": 5237, + "src": "311:66:16", + "symbolAliases": [ + { + "foreign": { + "id": 5289, + "name": "Initializable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5236, + "src": "319:13:16", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 5292, + "name": "Initializable", + "nameLocations": [ + "1998:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5236, + "src": "1998:13:16" + }, + "id": 5293, + "nodeType": "InheritanceSpecifier", + "src": "1998:13:16" + }, + { + "baseName": { + "id": 5294, + "name": "IERC5267", + "nameLocations": [ + "2013:8:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5651, + "src": "2013:8:16" + }, + "id": 5295, + "nodeType": "InheritanceSpecifier", + "src": "2013:8:16" + } + ], + "canonicalName": "EIP712Upgradeable", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 5291, + "nodeType": "StructuredDocumentation", + "src": "379:1579:16", + "text": " @dev https://eips.ethereum.org/EIPS/eip-712[EIP-712] is a standard for hashing and signing of typed structured data.\n The encoding scheme specified in the EIP requires a domain separator and a hash of the typed structured data, whose\n encoding is very generic and therefore its implementation in Solidity is not feasible, thus this contract\n does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in order to\n produce the hash of their typed data using a combination of `abi.encode` and `keccak256`.\n This contract implements the EIP-712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding\n scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA\n ({_hashTypedDataV4}).\n The implementation of the domain separator was designed to be as efficient as possible while still properly updating\n the chain id to protect against replay attacks on an eventual fork of the chain.\n NOTE: This contract implements the version of the encoding known as \"v4\", as implemented by the JSON RPC method\n https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask].\n NOTE: In the upgradeable version of this contract, the cached values will correspond to the address, and the domain\n separator of the implementation contract. This will cause the {_domainSeparatorV4} function to always rebuild the\n separator from the immutable values, which is cheaper than accessing a cached version in cold storage." + }, + "fullyImplemented": true, + "id": 5626, + "linearizedBaseContracts": [ + 5626, + 5651, + 5236 + ], + "name": "EIP712Upgradeable", + "nameLocation": "1977:17:16", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5300, + "mutability": "constant", + "name": "TYPE_HASH", + "nameLocation": "2053:9:16", + "nodeType": "VariableDeclaration", + "scope": 5626, + "src": "2028:140:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5296, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2028:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429", + "id": 5298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2083:84:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", + "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" + }, + "value": "EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f", + "typeString": "literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\"" + } + ], + "id": 5297, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "2073:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5299, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2073:95:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "private" + }, + { + "canonicalName": "EIP712Upgradeable.EIP712Storage", + "documentation": { + "id": 5301, + "nodeType": "StructuredDocumentation", + "src": "2175:64:16", + "text": "@custom:storage-location erc7201:openzeppelin.storage.EIP712" + }, + "id": 5312, + "members": [ + { + "constant": false, + "id": 5304, + "mutability": "mutable", + "name": "_hashedName", + "nameLocation": "2332:11:16", + "nodeType": "VariableDeclaration", + "scope": 5312, + "src": "2324:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5303, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2324:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5307, + "mutability": "mutable", + "name": "_hashedVersion", + "nameLocation": "2413:14:16", + "nodeType": "VariableDeclaration", + "scope": 5312, + "src": "2405:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5306, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2405:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5309, + "mutability": "mutable", + "name": "_name", + "nameLocation": "2445:5:16", + "nodeType": "VariableDeclaration", + "scope": 5312, + "src": "2438:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5308, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2438:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5311, + "mutability": "mutable", + "name": "_version", + "nameLocation": "2467:8:16", + "nodeType": "VariableDeclaration", + "scope": 5312, + "src": "2460:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5310, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2460:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "EIP712Storage", + "nameLocation": "2251:13:16", + "nodeType": "StructDefinition", + "scope": 5626, + "src": "2244:238:16", + "visibility": "public" + }, + { + "constant": true, + "id": 5315, + "mutability": "constant", + "name": "EIP712StorageLocation", + "nameLocation": "2623:21:16", + "nodeType": "VariableDeclaration", + "scope": 5626, + "src": "2598:115:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5313, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2598:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307861313661343664393432363163373531376363386666383966363163306365393335393865336338343938303130313164656536343961366135353764313030", + "id": 5314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2647:66:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_73010143390315934406010559831118728393600729754696197287367516085911467577600_by_1", + "typeString": "int_const 7301...(69 digits omitted)...7600" + }, + "value": "0xa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100" + }, + "visibility": "private" + }, + { + "body": { + "id": 5322, + "nodeType": "Block", + "src": "2796:80:16", + "statements": [ + { + "AST": { + "nativeSrc": "2815:55:16", + "nodeType": "YulBlock", + "src": "2815:55:16", + "statements": [ + { + "nativeSrc": "2829:31:16", + "nodeType": "YulAssignment", + "src": "2829:31:16", + "value": { + "name": "EIP712StorageLocation", + "nativeSrc": "2839:21:16", + "nodeType": "YulIdentifier", + "src": "2839:21:16" + }, + "variableNames": [ + { + "name": "$.slot", + "nativeSrc": "2829:6:16", + "nodeType": "YulIdentifier", + "src": "2829:6:16" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5319, + "isOffset": false, + "isSlot": true, + "src": "2829:6:16", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 5315, + "isOffset": false, + "isSlot": false, + "src": "2839:21:16", + "valueSize": 1 + } + ], + "id": 5321, + "nodeType": "InlineAssembly", + "src": "2806:64:16" + } + ] + }, + "id": 5323, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getEIP712Storage", + "nameLocation": "2729:17:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5316, + "nodeType": "ParameterList", + "parameters": [], + "src": "2746:2:16" + }, + "returnParameters": { + "id": 5320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5319, + "mutability": "mutable", + "name": "$", + "nameLocation": "2793:1:16", + "nodeType": "VariableDeclaration", + "scope": 5323, + "src": "2771:23:16", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + }, + "typeName": { + "id": 5318, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5317, + "name": "EIP712Storage", + "nameLocations": [ + "2771:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5312, + "src": "2771:13:16" + }, + "referencedDeclaration": 5312, + "src": "2771:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + } + }, + "visibility": "internal" + } + ], + "src": "2770:25:16" + }, + "scope": 5626, + "src": "2720:156:16", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5338, + "nodeType": "Block", + "src": "3538:55:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 5334, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5326, + "src": "3572:4:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 5335, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5328, + "src": "3578:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5333, + "name": "__EIP712_init_unchained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5379, + "src": "3548:23:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory,string memory)" + } + }, + "id": 5336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3548:38:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5337, + "nodeType": "ExpressionStatement", + "src": "3548:38:16" + } + ] + }, + "documentation": { + "id": 5324, + "nodeType": "StructuredDocumentation", + "src": "2882:559:16", + "text": " @dev Initializes the domain separator and parameter caches.\n The meaning of `name` and `version` is specified in\n https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator[EIP-712]:\n - `name`: the user readable name of the signing domain, i.e. the name of the DApp or the protocol.\n - `version`: the current major version of the signing domain.\n NOTE: These parameters cannot be changed except through a xref:learn::upgrading-smart-contracts.adoc[smart\n contract upgrade]." + }, + "id": 5339, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5331, + "kind": "modifierInvocation", + "modifierName": { + "id": 5330, + "name": "onlyInitializing", + "nameLocations": [ + "3521:16:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5131, + "src": "3521:16:16" + }, + "nodeType": "ModifierInvocation", + "src": "3521:16:16" + } + ], + "name": "__EIP712_init", + "nameLocation": "3455:13:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5329, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5326, + "mutability": "mutable", + "name": "name", + "nameLocation": "3483:4:16", + "nodeType": "VariableDeclaration", + "scope": 5339, + "src": "3469:18:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5325, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3469:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5328, + "mutability": "mutable", + "name": "version", + "nameLocation": "3503:7:16", + "nodeType": "VariableDeclaration", + "scope": 5339, + "src": "3489:21:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5327, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3489:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3468:43:16" + }, + "returnParameters": { + "id": 5332, + "nodeType": "ParameterList", + "parameters": [], + "src": "3538:0:16" + }, + "scope": 5626, + "src": "3446:147:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5378, + "nodeType": "Block", + "src": "3701:228:16", + "statements": [ + { + "assignments": [ + 5350 + ], + "declarations": [ + { + "constant": false, + "id": 5350, + "mutability": "mutable", + "name": "$", + "nameLocation": "3733:1:16", + "nodeType": "VariableDeclaration", + "scope": 5378, + "src": "3711:23:16", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + }, + "typeName": { + "id": 5349, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5348, + "name": "EIP712Storage", + "nameLocations": [ + "3711:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5312, + "src": "3711:13:16" + }, + "referencedDeclaration": 5312, + "src": "3711:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + } + }, + "visibility": "internal" + } + ], + "id": 5353, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5351, + "name": "_getEIP712Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5323, + "src": "3737:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5312_storage_ptr_$", + "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3737:19:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3711:45:16" + }, + { + "expression": { + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5354, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "3766:1:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5356, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3768:5:16", + "memberName": "_name", + "nodeType": "MemberAccess", + "referencedDeclaration": 5309, + "src": "3766:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5357, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5341, + "src": "3776:4:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "3766:14:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 5359, + "nodeType": "ExpressionStatement", + "src": "3766:14:16" + }, + { + "expression": { + "id": 5364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5360, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "3790:1:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5362, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3792:8:16", + "memberName": "_version", + "nodeType": "MemberAccess", + "referencedDeclaration": 5311, + "src": "3790:10:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 5363, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5343, + "src": "3803:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "3790:20:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 5365, + "nodeType": "ExpressionStatement", + "src": "3790:20:16" + }, + { + "expression": { + "id": 5370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5366, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "3875:1:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5368, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3877:11:16", + "memberName": "_hashedName", + "nodeType": "MemberAccess", + "referencedDeclaration": 5304, + "src": "3875:13:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 5369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3891:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3875:17:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 5371, + "nodeType": "ExpressionStatement", + "src": "3875:17:16" + }, + { + "expression": { + "id": 5376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 5372, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5350, + "src": "3902:1:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5374, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3904:14:16", + "memberName": "_hashedVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 5307, + "src": "3902:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 5375, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3921:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3902:20:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 5377, + "nodeType": "ExpressionStatement", + "src": "3902:20:16" + } + ] + }, + "id": 5379, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 5346, + "kind": "modifierInvocation", + "modifierName": { + "id": 5345, + "name": "onlyInitializing", + "nameLocations": [ + "3684:16:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5131, + "src": "3684:16:16" + }, + "nodeType": "ModifierInvocation", + "src": "3684:16:16" + } + ], + "name": "__EIP712_init_unchained", + "nameLocation": "3608:23:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5344, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5341, + "mutability": "mutable", + "name": "name", + "nameLocation": "3646:4:16", + "nodeType": "VariableDeclaration", + "scope": 5379, + "src": "3632:18:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5340, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3632:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5343, + "mutability": "mutable", + "name": "version", + "nameLocation": "3666:7:16", + "nodeType": "VariableDeclaration", + "scope": 5379, + "src": "3652:21:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5342, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3652:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3631:43:16" + }, + "returnParameters": { + "id": 5347, + "nodeType": "ParameterList", + "parameters": [], + "src": "3701:0:16" + }, + "scope": 5626, + "src": "3599:330:16", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5388, + "nodeType": "Block", + "src": "4077:47:16", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5385, + "name": "_buildDomainSeparator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5412, + "src": "4094:21:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$", + "typeString": "function () view returns (bytes32)" + } + }, + "id": 5386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4094:23:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5384, + "id": 5387, + "nodeType": "Return", + "src": "4087:30:16" + } + ] + }, + "documentation": { + "id": 5380, + "nodeType": "StructuredDocumentation", + "src": "3935:75:16", + "text": " @dev Returns the domain separator for the current chain." + }, + "id": 5389, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_domainSeparatorV4", + "nameLocation": "4024:18:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5381, + "nodeType": "ParameterList", + "parameters": [], + "src": "4042:2:16" + }, + "returnParameters": { + "id": 5384, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5383, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5389, + "src": "4068:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5382, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4068:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4067:9:16" + }, + "scope": 5626, + "src": "4015:109:16", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5411, + "nodeType": "Block", + "src": "4194:127:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 5397, + "name": "TYPE_HASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5300, + "src": "4232:9:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5398, + "name": "_EIP712NameHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5573, + "src": "4243:15:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$", + "typeString": "function () view returns (bytes32)" + } + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4243:17:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5400, + "name": "_EIP712VersionHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5625, + "src": "4262:18:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$", + "typeString": "function () view returns (bytes32)" + } + }, + "id": 5401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4262:20:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 5402, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "4284:5:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4290:7:16", + "memberName": "chainid", + "nodeType": "MemberAccess", + "src": "4284:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 5406, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "4307:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP712Upgradeable_$5626", + "typeString": "contract EIP712Upgradeable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_EIP712Upgradeable_$5626", + "typeString": "contract EIP712Upgradeable" + } + ], + "id": 5405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4299:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5404, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4299:7:16", + "typeDescriptions": {} + } + }, + "id": 5407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4299:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 5395, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "4221:3:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 5396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4225:6:16", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "4221:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 5408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4221:92:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5394, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4211:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4211:103:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5393, + "id": 5410, + "nodeType": "Return", + "src": "4204:110:16" + } + ] + }, + "id": 5412, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_buildDomainSeparator", + "nameLocation": "4139:21:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5390, + "nodeType": "ParameterList", + "parameters": [], + "src": "4160:2:16" + }, + "returnParameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5392, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5412, + "src": "4185:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5391, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4185:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4184:9:16" + }, + "scope": 5626, + "src": "4130:191:16", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5427, + "nodeType": "Block", + "src": "5032:90:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5422, + "name": "_domainSeparatorV4", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5389, + "src": "5082:18:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_bytes32_$", + "typeString": "function () view returns (bytes32)" + } + }, + "id": 5423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5082:20:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 5424, + "name": "structHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5415, + "src": "5104:10:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "id": 5420, + "name": "MessageHashUtils", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8703, + "src": "5049:16:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_MessageHashUtils_$8703_$", + "typeString": "type(library MessageHashUtils)" + } + }, + "id": 5421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5066:15:16", + "memberName": "toTypedDataHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 8702, + "src": "5049:32:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32,bytes32) pure returns (bytes32)" + } + }, + "id": 5425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5049:66:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5419, + "id": 5426, + "nodeType": "Return", + "src": "5042:73:16" + } + ] + }, + "documentation": { + "id": 5413, + "nodeType": "StructuredDocumentation", + "src": "4327:614:16", + "text": " @dev Given an already https://eips.ethereum.org/EIPS/eip-712#definition-of-hashstruct[hashed struct], this\n function returns the hash of the fully encoded EIP712 message for this domain.\n This hash can be used together with {ECDSA-recover} to obtain the signer of a message. For example:\n ```solidity\n bytes32 digest = _hashTypedDataV4(keccak256(abi.encode(\n keccak256(\"Mail(address to,string contents)\"),\n mailTo,\n keccak256(bytes(mailContents))\n )));\n address signer = ECDSA.recover(digest, signature);\n ```" + }, + "id": 5428, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_hashTypedDataV4", + "nameLocation": "4955:16:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5416, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5415, + "mutability": "mutable", + "name": "structHash", + "nameLocation": "4980:10:16", + "nodeType": "VariableDeclaration", + "scope": 5428, + "src": "4972:18:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5414, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4972:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4971:20:16" + }, + "returnParameters": { + "id": 5419, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5418, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5428, + "src": "5023:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5417, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5023:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5022:9:16" + }, + "scope": 5626, + "src": "4946:176:16", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "baseFunctions": [ + 5650 + ], + "body": { + "id": 5488, + "nodeType": "Block", + "src": "5500:575:16", + "statements": [ + { + "assignments": [ + 5449 + ], + "declarations": [ + { + "constant": false, + "id": 5449, + "mutability": "mutable", + "name": "$", + "nameLocation": "5532:1:16", + "nodeType": "VariableDeclaration", + "scope": 5488, + "src": "5510:23:16", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + }, + "typeName": { + "id": 5448, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5447, + "name": "EIP712Storage", + "nameLocations": [ + "5510:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5312, + "src": "5510:13:16" + }, + "referencedDeclaration": 5312, + "src": "5510:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + } + }, + "visibility": "internal" + } + ], + "id": 5452, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5450, + "name": "_getEIP712Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5323, + "src": "5536:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5312_storage_ptr_$", + "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" + } + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5536:19:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5510:45:16" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5454, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5449, + "src": "5776:1:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5455, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5778:11:16", + "memberName": "_hashedName", + "nodeType": "MemberAccess", + "referencedDeclaration": 5304, + "src": "5776:13:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 5456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5793:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5776:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5458, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5449, + "src": "5798:1:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5459, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5800:14:16", + "memberName": "_hashedVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 5307, + "src": "5798:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5818:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5798:21:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5776:43:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4549503731323a20556e696e697469616c697a6564", + "id": 5463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5821:23:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2e5045ff73280aa8e8acd8c82710f23812497f87f7f576e2220a2ddd0d45eade", + "typeString": "literal_string \"EIP712: Uninitialized\"" + }, + "value": "EIP712: Uninitialized" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2e5045ff73280aa8e8acd8c82710f23812497f87f7f576e2220a2ddd0d45eade", + "typeString": "literal_string \"EIP712: Uninitialized\"" + } + ], + "id": 5453, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "5768:7:16", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 5464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5768:77:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5465, + "nodeType": "ExpressionStatement", + "src": "5768:77:16" + }, + { + "expression": { + "components": [ + { + "hexValue": "0f", + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "hexString", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5877:7:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3d725c5ee53025f027da36bea8d3af3b6a3e9d2d1542d47c162631de48e66c1c", + "typeString": "literal_string hex\"0f\"" + }, + "value": "\u000f" + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5467, + "name": "_EIP712Name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5505, + "src": "5907:11:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 5468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5907:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5469, + "name": "_EIP712Version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5521, + "src": "5934:14:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 5470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5934:16:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "id": 5471, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "5964:5:16", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 5472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5970:7:16", + "memberName": "chainid", + "nodeType": "MemberAccess", + "src": "5964:13:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 5475, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -28, + "src": "5999:4:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EIP712Upgradeable_$5626", + "typeString": "contract EIP712Upgradeable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_EIP712Upgradeable_$5626", + "typeString": "contract EIP712Upgradeable" + } + ], + "id": 5474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5991:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 5473, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5991:7:16", + "typeDescriptions": {} + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5991:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 5479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6026:1:16", + "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" + } + ], + "id": 5478, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6018:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 5477, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6018:7:16", + "typeDescriptions": {} + } + }, + "id": 5480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6018:10:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 5484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6056:1:16", + "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" + } + ], + "id": 5483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "6042:13:16", + "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": 5481, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6046:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5482, + "nodeType": "ArrayTypeName", + "src": "6046:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + } + }, + "id": 5485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6042:16:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "id": 5486, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5863:205:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_stringliteral_3d725c5ee53025f027da36bea8d3af3b6a3e9d2d1542d47c162631de48e66c1c_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_bytes32_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "tuple(literal_string hex\"0f\",string memory,string memory,uint256,address,bytes32,uint256[] memory)" + } + }, + "functionReturnParameters": 5446, + "id": 5487, + "nodeType": "Return", + "src": "5856:212:16" + } + ] + }, + "documentation": { + "id": 5429, + "nodeType": "StructuredDocumentation", + "src": "5128:39:16", + "text": " @inheritdoc IERC5267" + }, + "functionSelector": "84b0196e", + "id": 5489, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "eip712Domain", + "nameLocation": "5181:12:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5430, + "nodeType": "ParameterList", + "parameters": [], + "src": "5193:2:16" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5432, + "mutability": "mutable", + "name": "fields", + "nameLocation": "5277:6:16", + "nodeType": "VariableDeclaration", + "scope": 5489, + "src": "5270:13:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "typeName": { + "id": 5431, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "5270:6:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5434, + "mutability": "mutable", + "name": "name", + "nameLocation": "5311:4:16", + "nodeType": "VariableDeclaration", + "scope": 5489, + "src": "5297:18:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5433, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5297:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5436, + "mutability": "mutable", + "name": "version", + "nameLocation": "5343:7:16", + "nodeType": "VariableDeclaration", + "scope": 5489, + "src": "5329:21:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5435, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5329:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5438, + "mutability": "mutable", + "name": "chainId", + "nameLocation": "5372:7:16", + "nodeType": "VariableDeclaration", + "scope": 5489, + "src": "5364:15:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5364:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5440, + "mutability": "mutable", + "name": "verifyingContract", + "nameLocation": "5401:17:16", + "nodeType": "VariableDeclaration", + "scope": 5489, + "src": "5393:25:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5439, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5393:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5442, + "mutability": "mutable", + "name": "salt", + "nameLocation": "5440:4:16", + "nodeType": "VariableDeclaration", + "scope": 5489, + "src": "5432:12:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5441, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5432:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5445, + "mutability": "mutable", + "name": "extensions", + "nameLocation": "5475:10:16", + "nodeType": "VariableDeclaration", + "scope": 5489, + "src": "5458:27:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5443, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5458:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5444, + "nodeType": "ArrayTypeName", + "src": "5458:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "5256:239:16" + }, + "scope": 5626, + "src": "5172:903:16", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 5504, + "nodeType": "Block", + "src": "6368:86:16", + "statements": [ + { + "assignments": [ + 5497 + ], + "declarations": [ + { + "constant": false, + "id": 5497, + "mutability": "mutable", + "name": "$", + "nameLocation": "6400:1:16", + "nodeType": "VariableDeclaration", + "scope": 5504, + "src": "6378:23:16", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + }, + "typeName": { + "id": 5496, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5495, + "name": "EIP712Storage", + "nameLocations": [ + "6378:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5312, + "src": "6378:13:16" + }, + "referencedDeclaration": 5312, + "src": "6378:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + } + }, + "visibility": "internal" + } + ], + "id": 5500, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5498, + "name": "_getEIP712Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5323, + "src": "6404:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5312_storage_ptr_$", + "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" + } + }, + "id": 5499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6404:19:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6378:45:16" + }, + { + "expression": { + "expression": { + "id": 5501, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5497, + "src": "6440:1:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5502, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6442:5:16", + "memberName": "_name", + "nodeType": "MemberAccess", + "referencedDeclaration": 5309, + "src": "6440:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 5494, + "id": 5503, + "nodeType": "Return", + "src": "6433:14:16" + } + ] + }, + "documentation": { + "id": 5490, + "nodeType": "StructuredDocumentation", + "src": "6081:213:16", + "text": " @dev The name parameter for the EIP712 domain.\n NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n are a concern." + }, + "id": 5505, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_EIP712Name", + "nameLocation": "6308:11:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5491, + "nodeType": "ParameterList", + "parameters": [], + "src": "6319:2:16" + }, + "returnParameters": { + "id": 5494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5493, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "6353:13:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5492, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6353:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6352:15:16" + }, + "scope": 5626, + "src": "6299:155:16", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5520, + "nodeType": "Block", + "src": "6753:89:16", + "statements": [ + { + "assignments": [ + 5513 + ], + "declarations": [ + { + "constant": false, + "id": 5513, + "mutability": "mutable", + "name": "$", + "nameLocation": "6785:1:16", + "nodeType": "VariableDeclaration", + "scope": 5520, + "src": "6763:23:16", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + }, + "typeName": { + "id": 5512, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5511, + "name": "EIP712Storage", + "nameLocations": [ + "6763:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5312, + "src": "6763:13:16" + }, + "referencedDeclaration": 5312, + "src": "6763:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + } + }, + "visibility": "internal" + } + ], + "id": 5516, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5514, + "name": "_getEIP712Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5323, + "src": "6789:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5312_storage_ptr_$", + "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" + } + }, + "id": 5515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6789:19:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6763:45:16" + }, + { + "expression": { + "expression": { + "id": 5517, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5513, + "src": "6825:1:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6827:8:16", + "memberName": "_version", + "nodeType": "MemberAccess", + "referencedDeclaration": 5311, + "src": "6825:10:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 5510, + "id": 5519, + "nodeType": "Return", + "src": "6818:17:16" + } + ] + }, + "documentation": { + "id": 5506, + "nodeType": "StructuredDocumentation", + "src": "6460:216:16", + "text": " @dev The version parameter for the EIP712 domain.\n NOTE: This function reads from storage by default, but can be redefined to return a constant value if gas costs\n are a concern." + }, + "id": 5521, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_EIP712Version", + "nameLocation": "6690:14:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5507, + "nodeType": "ParameterList", + "parameters": [], + "src": "6704:2:16" + }, + "returnParameters": { + "id": 5510, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5509, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5521, + "src": "6738:13:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5508, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6738:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6737:15:16" + }, + "scope": 5626, + "src": "6681:161:16", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 5572, + "nodeType": "Block", + "src": "7116:628:16", + "statements": [ + { + "assignments": [ + 5529 + ], + "declarations": [ + { + "constant": false, + "id": 5529, + "mutability": "mutable", + "name": "$", + "nameLocation": "7148:1:16", + "nodeType": "VariableDeclaration", + "scope": 5572, + "src": "7126:23:16", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + }, + "typeName": { + "id": 5528, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5527, + "name": "EIP712Storage", + "nameLocations": [ + "7126:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5312, + "src": "7126:13:16" + }, + "referencedDeclaration": 5312, + "src": "7126:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + } + }, + "visibility": "internal" + } + ], + "id": 5532, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5530, + "name": "_getEIP712Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5323, + "src": "7152:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5312_storage_ptr_$", + "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7152:19:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7126:45:16" + }, + { + "assignments": [ + 5534 + ], + "declarations": [ + { + "constant": false, + "id": 5534, + "mutability": "mutable", + "name": "name", + "nameLocation": "7195:4:16", + "nodeType": "VariableDeclaration", + "scope": 5572, + "src": "7181:18:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5533, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7181:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 5537, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5535, + "name": "_EIP712Name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5505, + "src": "7202:11:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 5536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7202:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7181:34:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 5540, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5534, + "src": "7235:4:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7229:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5538, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7229:5:16", + "typeDescriptions": {} + } + }, + "id": 5541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7229:11:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7241:6:16", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7229:18:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 5543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7250:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7229:22:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5570, + "nodeType": "Block", + "src": "7313:425:16", + "statements": [ + { + "assignments": [ + 5554 + ], + "declarations": [ + { + "constant": false, + "id": 5554, + "mutability": "mutable", + "name": "hashedName", + "nameLocation": "7558:10:16", + "nodeType": "VariableDeclaration", + "scope": 5570, + "src": "7550:18:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5553, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7550:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 5557, + "initialValue": { + "expression": { + "id": 5555, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5529, + "src": "7571:1:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5556, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7573:11:16", + "memberName": "_hashedName", + "nodeType": "MemberAccess", + "referencedDeclaration": 5304, + "src": "7571:13:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7550:34:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5558, + "name": "hashedName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5554, + "src": "7602:10:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 5559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7616:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7602:15:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5568, + "nodeType": "Block", + "src": "7675:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "", + "id": 5565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7710:2:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5564, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7700:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7700:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5526, + "id": 5567, + "nodeType": "Return", + "src": "7693:20:16" + } + ] + }, + "id": 5569, + "nodeType": "IfStatement", + "src": "7598:130:16", + "trueBody": { + "id": 5563, + "nodeType": "Block", + "src": "7619:50:16", + "statements": [ + { + "expression": { + "id": 5561, + "name": "hashedName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5554, + "src": "7644:10:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5526, + "id": 5562, + "nodeType": "Return", + "src": "7637:17:16" + } + ] + } + } + ] + }, + "id": 5571, + "nodeType": "IfStatement", + "src": "7225:513:16", + "trueBody": { + "id": 5552, + "nodeType": "Block", + "src": "7253:54:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 5548, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5534, + "src": "7290:4:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7284:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5546, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7284:5:16", + "typeDescriptions": {} + } + }, + "id": 5549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7284:11:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5545, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "7274:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7274:22:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5526, + "id": 5551, + "nodeType": "Return", + "src": "7267:29:16" + } + ] + } + } + ] + }, + "documentation": { + "id": 5522, + "nodeType": "StructuredDocumentation", + "src": "6848:204:16", + "text": " @dev The hash of the name parameter for the EIP712 domain.\n NOTE: In previous versions this function was virtual. In this version you should override `_EIP712Name` instead." + }, + "id": 5573, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_EIP712NameHash", + "nameLocation": "7066:15:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5523, + "nodeType": "ParameterList", + "parameters": [], + "src": "7081:2:16" + }, + "returnParameters": { + "id": 5526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5525, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5573, + "src": "7107:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5524, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7107:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "7106:9:16" + }, + "scope": 5626, + "src": "7057:687:16", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5624, + "nodeType": "Block", + "src": "8027:661:16", + "statements": [ + { + "assignments": [ + 5581 + ], + "declarations": [ + { + "constant": false, + "id": 5581, + "mutability": "mutable", + "name": "$", + "nameLocation": "8059:1:16", + "nodeType": "VariableDeclaration", + "scope": 5624, + "src": "8037:23:16", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + }, + "typeName": { + "id": 5580, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 5579, + "name": "EIP712Storage", + "nameLocations": [ + "8037:13:16" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5312, + "src": "8037:13:16" + }, + "referencedDeclaration": 5312, + "src": "8037:13:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage" + } + }, + "visibility": "internal" + } + ], + "id": 5584, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5582, + "name": "_getEIP712Storage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5323, + "src": "8063:17:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_EIP712Storage_$5312_storage_ptr_$", + "typeString": "function () pure returns (struct EIP712Upgradeable.EIP712Storage storage pointer)" + } + }, + "id": 5583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8063:19:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8037:45:16" + }, + { + "assignments": [ + 5586 + ], + "declarations": [ + { + "constant": false, + "id": 5586, + "mutability": "mutable", + "name": "version", + "nameLocation": "8106:7:16", + "nodeType": "VariableDeclaration", + "scope": 5624, + "src": "8092:21:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5585, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8092:6:16", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 5589, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 5587, + "name": "_EIP712Version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5521, + "src": "8116:14:16", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8116:16:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8092:40:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 5592, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5586, + "src": "8152:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5591, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8146:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5590, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8146:5:16", + "typeDescriptions": {} + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8146:14:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 5594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8161:6:16", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "8146:21:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 5595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8170:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8146:25:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5622, + "nodeType": "Block", + "src": "8236:446:16", + "statements": [ + { + "assignments": [ + 5606 + ], + "declarations": [ + { + "constant": false, + "id": 5606, + "mutability": "mutable", + "name": "hashedVersion", + "nameLocation": "8490:13:16", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "8482:21:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5605, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8482:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 5609, + "initialValue": { + "expression": { + "id": 5607, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5581, + "src": "8506:1:16", + "typeDescriptions": { + "typeIdentifier": "t_struct$_EIP712Storage_$5312_storage_ptr", + "typeString": "struct EIP712Upgradeable.EIP712Storage storage pointer" + } + }, + "id": 5608, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8508:14:16", + "memberName": "_hashedVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 5307, + "src": "8506:16:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8482:40:16" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 5612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5610, + "name": "hashedVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5606, + "src": "8540:13:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8557:1:16", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8540:18:16", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5620, + "nodeType": "Block", + "src": "8619:53:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "hexValue": "", + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8654:2:16", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5616, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "8644:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5618, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8644:13:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5578, + "id": 5619, + "nodeType": "Return", + "src": "8637:20:16" + } + ] + }, + "id": 5621, + "nodeType": "IfStatement", + "src": "8536:136:16", + "trueBody": { + "id": 5615, + "nodeType": "Block", + "src": "8560:53:16", + "statements": [ + { + "expression": { + "id": 5613, + "name": "hashedVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5606, + "src": "8585:13:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5578, + "id": 5614, + "nodeType": "Return", + "src": "8578:20:16" + } + ] + } + } + ] + }, + "id": 5623, + "nodeType": "IfStatement", + "src": "8142:540:16", + "trueBody": { + "id": 5604, + "nodeType": "Block", + "src": "8173:57:16", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 5600, + "name": "version", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5586, + "src": "8210:7:16", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 5599, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8204:5:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 5598, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8204:5:16", + "typeDescriptions": {} + } + }, + "id": 5601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8204:14:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5597, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "8194:9:16", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 5602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8194:25:16", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 5578, + "id": 5603, + "nodeType": "Return", + "src": "8187:32:16" + } + ] + } + } + ] + }, + "documentation": { + "id": 5574, + "nodeType": "StructuredDocumentation", + "src": "7750:210:16", + "text": " @dev The hash of the version parameter for the EIP712 domain.\n NOTE: In previous versions this function was virtual. In this version you should override `_EIP712Version` instead." + }, + "id": 5625, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_EIP712VersionHash", + "nameLocation": "7974:18:16", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5575, + "nodeType": "ParameterList", + "parameters": [], + "src": "7992:2:16" + }, + "returnParameters": { + "id": 5578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5577, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5625, + "src": "8018:7:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5576, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8018:7:16", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "8017:9:16" + }, + "scope": 5626, + "src": "7965:723:16", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 5627, + "src": "1959:6731:16", + "usedErrors": [ + 4985, + 4988 + ], + "usedEvents": [ + 4993, + 5631 + ] + } + ], + "src": "113:8578:16" + }, + "id": 16 + }, + "@openzeppelin/contracts/interfaces/IERC5267.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/interfaces/IERC5267.sol", + "exportedSymbols": { + "IERC5267": [ + 5651 + ] + }, + "id": 5652, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5628, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "107:24:17" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC5267", + "contractDependencies": [], + "contractKind": "interface", + "fullyImplemented": false, + "id": 5651, + "linearizedBaseContracts": [ + 5651 + ], + "name": "IERC5267", + "nameLocation": "143:8:17", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 5629, + "nodeType": "StructuredDocumentation", + "src": "158:84:17", + "text": " @dev MAY be emitted to signal that the domain could have changed." + }, + "eventSelector": "0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d31", + "id": 5631, + "name": "EIP712DomainChanged", + "nameLocation": "253:19:17", + "nodeType": "EventDefinition", + "parameters": { + "id": 5630, + "nodeType": "ParameterList", + "parameters": [], + "src": "272:2:17" + }, + "src": "247:28:17" + }, + { + "documentation": { + "id": 5632, + "nodeType": "StructuredDocumentation", + "src": "281:140:17", + "text": " @dev returns the fields and values that describe the domain separator used by this contract for EIP-712\n signature." + }, + "functionSelector": "84b0196e", + "id": 5650, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "eip712Domain", + "nameLocation": "435:12:17", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5633, + "nodeType": "ParameterList", + "parameters": [], + "src": "447:2:17" + }, + "returnParameters": { + "id": 5649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5635, + "mutability": "mutable", + "name": "fields", + "nameLocation": "517:6:17", + "nodeType": "VariableDeclaration", + "scope": 5650, + "src": "510:13:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "typeName": { + "id": 5634, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "510:6:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5637, + "mutability": "mutable", + "name": "name", + "nameLocation": "551:4:17", + "nodeType": "VariableDeclaration", + "scope": 5650, + "src": "537:18:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5636, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "537:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5639, + "mutability": "mutable", + "name": "version", + "nameLocation": "583:7:17", + "nodeType": "VariableDeclaration", + "scope": 5650, + "src": "569:21:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5638, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "569:6:17", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5641, + "mutability": "mutable", + "name": "chainId", + "nameLocation": "612:7:17", + "nodeType": "VariableDeclaration", + "scope": 5650, + "src": "604:15:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5640, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "604:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5643, + "mutability": "mutable", + "name": "verifyingContract", + "nameLocation": "641:17:17", + "nodeType": "VariableDeclaration", + "scope": 5650, + "src": "633:25:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "633:7:17", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5645, + "mutability": "mutable", + "name": "salt", + "nameLocation": "680:4:17", + "nodeType": "VariableDeclaration", + "scope": 5650, + "src": "672:12:17", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5644, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "672:7:17", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5648, + "mutability": "mutable", + "name": "extensions", + "nameLocation": "715:10:17", + "nodeType": "VariableDeclaration", + "scope": 5650, + "src": "698:27:17", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5646, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "698:7:17", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5647, + "nodeType": "ArrayTypeName", + "src": "698:9:17", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "496:239:17" + }, + "scope": 5651, + "src": "426:310:17", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 5652, + "src": "133:605:17", + "usedErrors": [], + "usedEvents": [ + 5631 + ] + } + ], + "src": "107:632:17" + }, + "id": 17 + }, + "@openzeppelin/contracts/utils/Arrays.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Arrays.sol", + "exportedSymbols": { + "Arrays": [ + 6529 + ], + "Comparators": [ + 6561 + ], + "Math": [ + 10360 + ], + "SlotDerivation": [ + 6743 + ], + "StorageSlot": [ + 6867 + ] + }, + "id": 6530, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 5653, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "183:24:18" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Comparators.sol", + "file": "./Comparators.sol", + "id": 5655, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6530, + "sourceUnit": 6562, + "src": "209:46:18", + "symbolAliases": [ + { + "foreign": { + "id": 5654, + "name": "Comparators", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6561, + "src": "217:11:18", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/SlotDerivation.sol", + "file": "./SlotDerivation.sol", + "id": 5657, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6530, + "sourceUnit": 6744, + "src": "256:52:18", + "symbolAliases": [ + { + "foreign": { + "id": 5656, + "name": "SlotDerivation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6743, + "src": "264:14:18", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol", + "file": "./StorageSlot.sol", + "id": 5659, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6530, + "sourceUnit": 6868, + "src": "309:46:18", + "symbolAliases": [ + { + "foreign": { + "id": 5658, + "name": "StorageSlot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6867, + "src": "317:11:18", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "./math/Math.sol", + "id": 5661, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 6530, + "sourceUnit": 10361, + "src": "356:37:18", + "symbolAliases": [ + { + "foreign": { + "id": 5660, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10360, + "src": "364:4:18", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Arrays", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 5662, + "nodeType": "StructuredDocumentation", + "src": "395:63:18", + "text": " @dev Collection of functions related to array types." + }, + "fullyImplemented": true, + "id": 6529, + "linearizedBaseContracts": [ + 6529 + ], + "name": "Arrays", + "nameLocation": "467:6:18", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 5665, + "libraryName": { + "id": 5663, + "name": "SlotDerivation", + "nameLocations": [ + "486:14:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6743, + "src": "486:14:18" + }, + "nodeType": "UsingForDirective", + "src": "480:33:18", + "typeName": { + "id": 5664, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "505:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + }, + { + "global": false, + "id": 5668, + "libraryName": { + "id": 5666, + "name": "StorageSlot", + "nameLocations": [ + "524:11:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6867, + "src": "524:11:18" + }, + "nodeType": "UsingForDirective", + "src": "518:30:18", + "typeName": { + "id": 5667, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "540:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + }, + { + "body": { + "id": 5700, + "nodeType": "Block", + "src": "1628:83:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 5690, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5672, + "src": "1656:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 5689, + "name": "_begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5925, + "src": "1649:6:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[] memory) pure returns (uint256)" + } + }, + "id": 5691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1649:13:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 5693, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5672, + "src": "1669:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 5692, + "name": "_end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5945, + "src": "1664:4:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[] memory) pure returns (uint256)" + } + }, + "id": 5694, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1664:11:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5695, + "name": "comp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5682, + "src": "1677:4:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + ], + "id": 5688, + "name": "_quickSort", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5914, + "src": "1638:10:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$__$", + "typeString": "function (uint256,uint256,function (uint256,uint256) pure returns (bool)) pure" + } + }, + "id": 5696, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1638:44:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5697, + "nodeType": "ExpressionStatement", + "src": "1638:44:18" + }, + { + "expression": { + "id": 5698, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5672, + "src": "1699:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 5687, + "id": 5699, + "nodeType": "Return", + "src": "1692:12:18" + } + ] + }, + "documentation": { + "id": 5669, + "nodeType": "StructuredDocumentation", + "src": "554:915:18", + "text": " @dev Sort an array of uint256 (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS.\n IMPORTANT: Consider memory side-effects when using custom comparator functions that access memory in an unsafe way." + }, + "id": 5701, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sort", + "nameLocation": "1483:4:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5683, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5672, + "mutability": "mutable", + "name": "array", + "nameLocation": "1514:5:18", + "nodeType": "VariableDeclaration", + "scope": 5701, + "src": "1497:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5670, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1497:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5671, + "nodeType": "ArrayTypeName", + "src": "1497:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5682, + "mutability": "mutable", + "name": "comp", + "nameLocation": "1576:4:18", + "nodeType": "VariableDeclaration", + "scope": 5701, + "src": "1529:51:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + }, + "typeName": { + "id": 5681, + "nodeType": "FunctionTypeName", + "parameterTypes": { + "id": 5677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5674, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5681, + "src": "1538:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1538:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5676, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5681, + "src": "1547:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5675, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1547:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1537:18:18" + }, + "returnParameterTypes": { + "id": 5680, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5679, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5681, + "src": "1570:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5678, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1570:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1569:6:18" + }, + "src": "1529:51:18", + "stateMutability": "pure", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + }, + "visibility": "internal" + }, + "visibility": "internal" + } + ], + "src": "1487:99:18" + }, + "returnParameters": { + "id": 5687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5686, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5701, + "src": "1610:16:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5684, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1610:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5685, + "nodeType": "ArrayTypeName", + "src": "1610:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "1609:18:18" + }, + "scope": 6529, + "src": "1474:237:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5719, + "nodeType": "Block", + "src": "1894:66:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 5712, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "1909:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "expression": { + "id": 5713, + "name": "Comparators", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6561, + "src": "1916:11:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Comparators_$6561_$", + "typeString": "type(library Comparators)" + } + }, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1928:2:18", + "memberName": "lt", + "nodeType": "MemberAccess", + "referencedDeclaration": 6546, + "src": "1916:14:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + ], + "id": 5711, + "name": "sort", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5701, + 5720, + 5752, + 5773, + 5805, + 5826 + ], + "referencedDeclaration": 5701, + "src": "1904:4:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,function (uint256,uint256) pure returns (bool)) pure returns (uint256[] memory)" + } + }, + "id": 5715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1904:27:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 5716, + "nodeType": "ExpressionStatement", + "src": "1904:27:18" + }, + { + "expression": { + "id": 5717, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5705, + "src": "1948:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 5710, + "id": 5718, + "nodeType": "Return", + "src": "1941:12:18" + } + ] + }, + "documentation": { + "id": 5702, + "nodeType": "StructuredDocumentation", + "src": "1717:93:18", + "text": " @dev Variant of {sort} that sorts an array of uint256 in increasing order." + }, + "id": 5720, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sort", + "nameLocation": "1824:4:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5706, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5705, + "mutability": "mutable", + "name": "array", + "nameLocation": "1846:5:18", + "nodeType": "VariableDeclaration", + "scope": 5720, + "src": "1829:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1829:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5704, + "nodeType": "ArrayTypeName", + "src": "1829:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "1828:24:18" + }, + "returnParameters": { + "id": 5710, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5709, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5720, + "src": "1876:16:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5707, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1876:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5708, + "nodeType": "ArrayTypeName", + "src": "1876:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "1875:18:18" + }, + "scope": 6529, + "src": "1815:145:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5751, + "nodeType": "Block", + "src": "3040:97:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 5742, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5724, + "src": "3075:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + ], + "id": 5741, + "name": "_castToUint256Array", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5977, + 5989 + ], + "referencedDeclaration": 5977, + "src": "3055:19:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (address[] memory) pure returns (uint256[] memory)" + } + }, + "id": 5743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3055:26:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "arguments": [ + { + "id": 5745, + "name": "comp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5734, + "src": "3102:4:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) pure returns (bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) pure returns (bool)" + } + ], + "id": 5744, + "name": "_castToUint256Comp", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6015, + 6041 + ], + "referencedDeclaration": 6015, + "src": "3083:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$_$returns$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$", + "typeString": "function (function (address,address) pure returns (bool)) pure returns (function (uint256,uint256) pure returns (bool))" + } + }, + "id": 5746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3083:24:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + ], + "id": 5740, + "name": "sort", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5701, + 5720, + 5752, + 5773, + 5805, + 5826 + ], + "referencedDeclaration": 5701, + "src": "3050:4:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,function (uint256,uint256) pure returns (bool)) pure returns (uint256[] memory)" + } + }, + "id": 5747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3050:58:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 5748, + "nodeType": "ExpressionStatement", + "src": "3050:58:18" + }, + { + "expression": { + "id": 5749, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5724, + "src": "3125:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 5739, + "id": 5750, + "nodeType": "Return", + "src": "3118:12:18" + } + ] + }, + "documentation": { + "id": 5721, + "nodeType": "StructuredDocumentation", + "src": "1966:915:18", + "text": " @dev Sort an array of address (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS.\n IMPORTANT: Consider memory side-effects when using custom comparator functions that access memory in an unsafe way." + }, + "id": 5752, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sort", + "nameLocation": "2895:4:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5735, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5724, + "mutability": "mutable", + "name": "array", + "nameLocation": "2926:5:18", + "nodeType": "VariableDeclaration", + "scope": 5752, + "src": "2909:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 5722, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2909:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5723, + "nodeType": "ArrayTypeName", + "src": "2909:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5734, + "mutability": "mutable", + "name": "comp", + "nameLocation": "2988:4:18", + "nodeType": "VariableDeclaration", + "scope": 5752, + "src": "2941:51:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) pure returns (bool)" + }, + "typeName": { + "id": 5733, + "nodeType": "FunctionTypeName", + "parameterTypes": { + "id": 5729, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5726, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5733, + "src": "2950:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2950:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5728, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5733, + "src": "2959:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5727, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2959:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2949:18:18" + }, + "returnParameterTypes": { + "id": 5732, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5731, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5733, + "src": "2982:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5730, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2982:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2981:6:18" + }, + "src": "2941:51:18", + "stateMutability": "pure", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) pure returns (bool)" + }, + "visibility": "internal" + }, + "visibility": "internal" + } + ], + "src": "2899:99:18" + }, + "returnParameters": { + "id": 5739, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5738, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5752, + "src": "3022:16:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 5736, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3022:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5737, + "nodeType": "ArrayTypeName", + "src": "3022:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "3021:18:18" + }, + "scope": 6529, + "src": "2886:251:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5772, + "nodeType": "Block", + "src": "3320:87:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 5764, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "3355:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + ], + "id": 5763, + "name": "_castToUint256Array", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5977, + 5989 + ], + "referencedDeclaration": 5977, + "src": "3335:19:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (address[] memory) pure returns (uint256[] memory)" + } + }, + "id": 5765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3335:26:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "expression": { + "id": 5766, + "name": "Comparators", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6561, + "src": "3363:11:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Comparators_$6561_$", + "typeString": "type(library Comparators)" + } + }, + "id": 5767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3375:2:18", + "memberName": "lt", + "nodeType": "MemberAccess", + "referencedDeclaration": 6546, + "src": "3363:14:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + ], + "id": 5762, + "name": "sort", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5701, + 5720, + 5752, + 5773, + 5805, + 5826 + ], + "referencedDeclaration": 5701, + "src": "3330:4:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,function (uint256,uint256) pure returns (bool)) pure returns (uint256[] memory)" + } + }, + "id": 5768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3330:48:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 5769, + "nodeType": "ExpressionStatement", + "src": "3330:48:18" + }, + { + "expression": { + "id": 5770, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5756, + "src": "3395:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 5761, + "id": 5771, + "nodeType": "Return", + "src": "3388:12:18" + } + ] + }, + "documentation": { + "id": 5753, + "nodeType": "StructuredDocumentation", + "src": "3143:93:18", + "text": " @dev Variant of {sort} that sorts an array of address in increasing order." + }, + "id": 5773, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sort", + "nameLocation": "3250:4:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5757, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5756, + "mutability": "mutable", + "name": "array", + "nameLocation": "3272:5:18", + "nodeType": "VariableDeclaration", + "scope": 5773, + "src": "3255:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 5754, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3255:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5755, + "nodeType": "ArrayTypeName", + "src": "3255:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "3254:24:18" + }, + "returnParameters": { + "id": 5761, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5760, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5773, + "src": "3302:16:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 5758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3302:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5759, + "nodeType": "ArrayTypeName", + "src": "3302:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "3301:18:18" + }, + "scope": 6529, + "src": "3241:166:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5804, + "nodeType": "Block", + "src": "4487:97:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 5795, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5777, + "src": "4522:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + ], + "id": 5794, + "name": "_castToUint256Array", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5977, + 5989 + ], + "referencedDeclaration": 5989, + "src": "4502:19:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (bytes32[] memory) pure returns (uint256[] memory)" + } + }, + "id": 5796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4502:26:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "arguments": [ + { + "id": 5798, + "name": "comp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5787, + "src": "4549:4:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32,bytes32) pure returns (bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32,bytes32) pure returns (bool)" + } + ], + "id": 5797, + "name": "_castToUint256Comp", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6015, + 6041 + ], + "referencedDeclaration": 6041, + "src": "4530:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$_$returns$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$", + "typeString": "function (function (bytes32,bytes32) pure returns (bool)) pure returns (function (uint256,uint256) pure returns (bool))" + } + }, + "id": 5799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4530:24:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + ], + "id": 5793, + "name": "sort", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5701, + 5720, + 5752, + 5773, + 5805, + 5826 + ], + "referencedDeclaration": 5701, + "src": "4497:4:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,function (uint256,uint256) pure returns (bool)) pure returns (uint256[] memory)" + } + }, + "id": 5800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4497:58:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 5801, + "nodeType": "ExpressionStatement", + "src": "4497:58:18" + }, + { + "expression": { + "id": 5802, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5777, + "src": "4572:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "functionReturnParameters": 5792, + "id": 5803, + "nodeType": "Return", + "src": "4565:12:18" + } + ] + }, + "documentation": { + "id": 5774, + "nodeType": "StructuredDocumentation", + "src": "3413:915:18", + "text": " @dev Sort an array of bytes32 (in memory) following the provided comparator function.\n This function does the sorting \"in place\", meaning that it overrides the input. The object is returned for\n convenience, but that returned value can be discarded safely if the caller has a memory pointer to the array.\n NOTE: this function's cost is `O(n · log(n))` in average and `O(n²)` in the worst case, with n the length of the\n array. Using it in view functions that are executed through `eth_call` is safe, but one should be very careful\n when executing this as part of a transaction. If the array being sorted is too large, the sort operation may\n consume more gas than is available in a block, leading to potential DoS.\n IMPORTANT: Consider memory side-effects when using custom comparator functions that access memory in an unsafe way." + }, + "id": 5805, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sort", + "nameLocation": "4342:4:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5788, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5777, + "mutability": "mutable", + "name": "array", + "nameLocation": "4373:5:18", + "nodeType": "VariableDeclaration", + "scope": 5805, + "src": "4356:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 5775, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4356:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 5776, + "nodeType": "ArrayTypeName", + "src": "4356:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5787, + "mutability": "mutable", + "name": "comp", + "nameLocation": "4435:4:18", + "nodeType": "VariableDeclaration", + "scope": 5805, + "src": "4388:51:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32,bytes32) pure returns (bool)" + }, + "typeName": { + "id": 5786, + "nodeType": "FunctionTypeName", + "parameterTypes": { + "id": 5782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5779, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5786, + "src": "4397:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5778, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4397:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5781, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5786, + "src": "4406:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 5780, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4406:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4396:18:18" + }, + "returnParameterTypes": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5784, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5786, + "src": "4429:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5783, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4429:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4428:6:18" + }, + "src": "4388:51:18", + "stateMutability": "pure", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32,bytes32) pure returns (bool)" + }, + "visibility": "internal" + }, + "visibility": "internal" + } + ], + "src": "4346:99:18" + }, + "returnParameters": { + "id": 5792, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5791, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5805, + "src": "4469:16:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 5789, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4469:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 5790, + "nodeType": "ArrayTypeName", + "src": "4469:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + } + ], + "src": "4468:18:18" + }, + "scope": 6529, + "src": "4333:251:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5825, + "nodeType": "Block", + "src": "4767:87:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 5817, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5809, + "src": "4802:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + ], + "id": 5816, + "name": "_castToUint256Array", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5977, + 5989 + ], + "referencedDeclaration": 5989, + "src": "4782:19:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_bytes32_$dyn_memory_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (bytes32[] memory) pure returns (uint256[] memory)" + } + }, + "id": 5818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4782:26:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "expression": { + "id": 5819, + "name": "Comparators", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6561, + "src": "4810:11:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Comparators_$6561_$", + "typeString": "type(library Comparators)" + } + }, + "id": 5820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4822:2:18", + "memberName": "lt", + "nodeType": "MemberAccess", + "referencedDeclaration": 6546, + "src": "4810:14:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + ], + "id": 5815, + "name": "sort", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5701, + 5720, + 5752, + 5773, + 5805, + 5826 + ], + "referencedDeclaration": 5701, + "src": "4777:4:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "function (uint256[] memory,function (uint256,uint256) pure returns (bool)) pure returns (uint256[] memory)" + } + }, + "id": 5821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4777:48:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 5822, + "nodeType": "ExpressionStatement", + "src": "4777:48:18" + }, + { + "expression": { + "id": 5823, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5809, + "src": "4842:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "functionReturnParameters": 5814, + "id": 5824, + "nodeType": "Return", + "src": "4835:12:18" + } + ] + }, + "documentation": { + "id": 5806, + "nodeType": "StructuredDocumentation", + "src": "4590:93:18", + "text": " @dev Variant of {sort} that sorts an array of bytes32 in increasing order." + }, + "id": 5826, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sort", + "nameLocation": "4697:4:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5809, + "mutability": "mutable", + "name": "array", + "nameLocation": "4719:5:18", + "nodeType": "VariableDeclaration", + "scope": 5826, + "src": "4702:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 5807, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4702:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 5808, + "nodeType": "ArrayTypeName", + "src": "4702:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + } + ], + "src": "4701:24:18" + }, + "returnParameters": { + "id": 5814, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5813, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5826, + "src": "4749:16:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 5811, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4749:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 5812, + "nodeType": "ArrayTypeName", + "src": "4749:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + } + ], + "src": "4748:18:18" + }, + "scope": 6529, + "src": "4688:166:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 5913, + "nodeType": "Block", + "src": "5470:889:18", + "statements": [ + { + "id": 5912, + "nodeType": "UncheckedBlock", + "src": "5480:873:18", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5844, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5831, + "src": "5508:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 5845, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5829, + "src": "5514:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5508:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30783430", + "id": 5847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5522:4:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "0x40" + }, + "src": "5508:18:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5850, + "nodeType": "IfStatement", + "src": "5504:31:18", + "trueBody": { + "functionReturnParameters": 5843, + "id": 5849, + "nodeType": "Return", + "src": "5528:7:18" + } + }, + { + "assignments": [ + 5852 + ], + "declarations": [ + { + "constant": false, + "id": 5852, + "mutability": "mutable", + "name": "pivot", + "nameLocation": "5599:5:18", + "nodeType": "VariableDeclaration", + "scope": 5912, + "src": "5591:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5851, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5591:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5856, + "initialValue": { + "arguments": [ + { + "id": 5854, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5829, + "src": "5614:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5853, + "name": "_mload", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5955, + "src": "5607:6:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5607:13:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5591:29:18" + }, + { + "assignments": [ + 5858 + ], + "declarations": [ + { + "constant": false, + "id": 5858, + "mutability": "mutable", + "name": "pos", + "nameLocation": "5715:3:18", + "nodeType": "VariableDeclaration", + "scope": 5912, + "src": "5707:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5857, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5707:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5860, + "initialValue": { + "id": 5859, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5829, + "src": "5721:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5707:19:18" + }, + { + "body": { + "id": 5891, + "nodeType": "Block", + "src": "5795:331:18", + "statements": [ + { + "condition": { + "arguments": [ + { + "arguments": [ + { + "id": 5876, + "name": "it", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "5829:2:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5875, + "name": "_mload", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5955, + "src": "5822:6:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 5877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5822:10:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5878, + "name": "pivot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5852, + "src": "5834:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5874, + "name": "comp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5841, + "src": "5817:4:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + }, + "id": 5879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5817:23:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5890, + "nodeType": "IfStatement", + "src": "5813:299:18", + "trueBody": { + "id": 5889, + "nodeType": "Block", + "src": "5842:270:18", + "statements": [ + { + "expression": { + "id": 5882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5880, + "name": "pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5858, + "src": "6046:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "30783230", + "id": 5881, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6053:4:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "0x20" + }, + "src": "6046:11:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5883, + "nodeType": "ExpressionStatement", + "src": "6046:11:18" + }, + { + "expression": { + "arguments": [ + { + "id": 5885, + "name": "pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5858, + "src": "6085:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5886, + "name": "it", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "6090:2:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5884, + "name": "_swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5965, + "src": "6079:5:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256) pure" + } + }, + "id": 5887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6079:14:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5888, + "nodeType": "ExpressionStatement", + "src": "6079:14:18" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5867, + "name": "it", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "5773:2:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 5868, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5831, + "src": "5778:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5773:8:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5892, + "initializationExpression": { + "assignments": [ + 5862 + ], + "declarations": [ + { + "constant": false, + "id": 5862, + "mutability": "mutable", + "name": "it", + "nameLocation": "5754:2:18", + "nodeType": "VariableDeclaration", + "scope": 5892, + "src": "5746:10:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5746:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 5866, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5863, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5829, + "src": "5759:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "30783230", + "id": 5864, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5767:4:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "0x20" + }, + "src": "5759:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5746:25:18" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 5872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 5870, + "name": "it", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5862, + "src": "5783:2:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "30783230", + "id": 5871, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5789:4:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "0x20" + }, + "src": "5783:10:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5873, + "nodeType": "ExpressionStatement", + "src": "5783:10:18" + }, + "nodeType": "ForStatement", + "src": "5741:385:18" + }, + { + "expression": { + "arguments": [ + { + "id": 5894, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5829, + "src": "6146:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5895, + "name": "pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5858, + "src": "6153:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5893, + "name": "_swap", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5965, + "src": "6140:5:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256) pure" + } + }, + "id": 5896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6140:17:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5897, + "nodeType": "ExpressionStatement", + "src": "6140:17:18" + }, + { + "expression": { + "arguments": [ + { + "id": 5899, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5829, + "src": "6207:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5900, + "name": "pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5858, + "src": "6214:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5901, + "name": "comp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5841, + "src": "6219:4:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + ], + "id": 5898, + "name": "_quickSort", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5914, + "src": "6196:10:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$__$", + "typeString": "function (uint256,uint256,function (uint256,uint256) pure returns (bool)) pure" + } + }, + "id": 5902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6196:28:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5903, + "nodeType": "ExpressionStatement", + "src": "6196:28:18" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 5905, + "name": "pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5858, + "src": "6284:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "30783230", + "id": 5906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6290:4:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "0x20" + }, + "src": "6284:10:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5908, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5831, + "src": "6296:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 5909, + "name": "comp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5841, + "src": "6301:4:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + } + ], + "id": 5904, + "name": "_quickSort", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5914, + "src": "6273:10:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_$returns$__$", + "typeString": "function (uint256,uint256,function (uint256,uint256) pure returns (bool)) pure" + } + }, + "id": 5910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6273:33:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5911, + "nodeType": "ExpressionStatement", + "src": "6273:33:18" + } + ] + } + ] + }, + "documentation": { + "id": 5827, + "nodeType": "StructuredDocumentation", + "src": "4860:491:18", + "text": " @dev Performs a quick sort of a segment of memory. The segment sorted starts at `begin` (inclusive), and stops\n at end (exclusive). Sorting follows the `comp` comparator.\n Invariant: `begin <= end`. This is the case when initially called by {sort} and is preserved in subcalls.\n IMPORTANT: Memory locations between `begin` and `end` are not validated/zeroed. This function should\n be used only if the limits are within a memory array." + }, + "id": 5914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_quickSort", + "nameLocation": "5365:10:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5842, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5829, + "mutability": "mutable", + "name": "begin", + "nameLocation": "5384:5:18", + "nodeType": "VariableDeclaration", + "scope": 5914, + "src": "5376:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5376:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5831, + "mutability": "mutable", + "name": "end", + "nameLocation": "5399:3:18", + "nodeType": "VariableDeclaration", + "scope": 5914, + "src": "5391:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5391:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5841, + "mutability": "mutable", + "name": "comp", + "nameLocation": "5451:4:18", + "nodeType": "VariableDeclaration", + "scope": 5914, + "src": "5404:51:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + }, + "typeName": { + "id": 5840, + "nodeType": "FunctionTypeName", + "parameterTypes": { + "id": 5836, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5833, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5840, + "src": "5413:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5413:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5835, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5840, + "src": "5422:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5834, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5422:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5412:18:18" + }, + "returnParameterTypes": { + "id": 5839, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5838, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5840, + "src": "5445:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5837, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5445:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5444:6:18" + }, + "src": "5404:51:18", + "stateMutability": "pure", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + }, + "visibility": "internal" + }, + "visibility": "internal" + } + ], + "src": "5375:81:18" + }, + "returnParameters": { + "id": 5843, + "nodeType": "ParameterList", + "parameters": [], + "src": "5470:0:18" + }, + "scope": 6529, + "src": "5356:1003:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5924, + "nodeType": "Block", + "src": "6532:88:18", + "statements": [ + { + "AST": { + "nativeSrc": "6567:47:18", + "nodeType": "YulBlock", + "src": "6567:47:18", + "statements": [ + { + "nativeSrc": "6581:23:18", + "nodeType": "YulAssignment", + "src": "6581:23:18", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "6592:5:18", + "nodeType": "YulIdentifier", + "src": "6592:5:18" + }, + { + "kind": "number", + "nativeSrc": "6599:4:18", + "nodeType": "YulLiteral", + "src": "6599:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6588:3:18", + "nodeType": "YulIdentifier", + "src": "6588:3:18" + }, + "nativeSrc": "6588:16:18", + "nodeType": "YulFunctionCall", + "src": "6588:16:18" + }, + "variableNames": [ + { + "name": "ptr", + "nativeSrc": "6581:3:18", + "nodeType": "YulIdentifier", + "src": "6581:3:18" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5918, + "isOffset": false, + "isSlot": false, + "src": "6592:5:18", + "valueSize": 1 + }, + { + "declaration": 5921, + "isOffset": false, + "isSlot": false, + "src": "6581:3:18", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 5923, + "nodeType": "InlineAssembly", + "src": "6542:72:18" + } + ] + }, + "documentation": { + "id": 5915, + "nodeType": "StructuredDocumentation", + "src": "6365:87:18", + "text": " @dev Pointer to the memory location of the first element of `array`." + }, + "id": 5925, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_begin", + "nameLocation": "6466:6:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5919, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5918, + "mutability": "mutable", + "name": "array", + "nameLocation": "6490:5:18", + "nodeType": "VariableDeclaration", + "scope": 5925, + "src": "6473:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5916, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6473:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5917, + "nodeType": "ArrayTypeName", + "src": "6473:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "6472:24:18" + }, + "returnParameters": { + "id": 5922, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5921, + "mutability": "mutable", + "name": "ptr", + "nameLocation": "6527:3:18", + "nodeType": "VariableDeclaration", + "scope": 5925, + "src": "6519:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5920, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6519:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6518:13:18" + }, + "scope": 6529, + "src": "6457:163:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5944, + "nodeType": "Block", + "src": "6892:93:18", + "statements": [ + { + "id": 5943, + "nodeType": "UncheckedBlock", + "src": "6902:77:18", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 5935, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5929, + "src": "6940:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 5934, + "name": "_begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5925, + "src": "6933:6:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (uint256[] memory) pure returns (uint256)" + } + }, + "id": 5936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6933:13:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 5937, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5929, + "src": "6949:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 5938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6955:6:18", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6949:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "30783230", + "id": 5939, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6964:4:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "0x20" + }, + "src": "6949:19:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6933:35:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5933, + "id": 5942, + "nodeType": "Return", + "src": "6926:42:18" + } + ] + } + ] + }, + "documentation": { + "id": 5926, + "nodeType": "StructuredDocumentation", + "src": "6626:188:18", + "text": " @dev Pointer to the memory location of the first memory word (32bytes) after `array`. This is the memory word\n that comes just after the last element of the array." + }, + "id": 5945, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_end", + "nameLocation": "6828:4:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5930, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5929, + "mutability": "mutable", + "name": "array", + "nameLocation": "6850:5:18", + "nodeType": "VariableDeclaration", + "scope": 5945, + "src": "6833:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5927, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6833:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5928, + "nodeType": "ArrayTypeName", + "src": "6833:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "6832:24:18" + }, + "returnParameters": { + "id": 5933, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5932, + "mutability": "mutable", + "name": "ptr", + "nameLocation": "6887:3:18", + "nodeType": "VariableDeclaration", + "scope": 5945, + "src": "6879:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5931, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6879:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6878:13:18" + }, + "scope": 6529, + "src": "6819:166:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5954, + "nodeType": "Block", + "src": "7136:68:18", + "statements": [ + { + "AST": { + "nativeSrc": "7155:43:18", + "nodeType": "YulBlock", + "src": "7155:43:18", + "statements": [ + { + "nativeSrc": "7169:19:18", + "nodeType": "YulAssignment", + "src": "7169:19:18", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "7184:3:18", + "nodeType": "YulIdentifier", + "src": "7184:3:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7178:5:18", + "nodeType": "YulIdentifier", + "src": "7178:5:18" + }, + "nativeSrc": "7178:10:18", + "nodeType": "YulFunctionCall", + "src": "7178:10:18" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "7169:5:18", + "nodeType": "YulIdentifier", + "src": "7169:5:18" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5948, + "isOffset": false, + "isSlot": false, + "src": "7184:3:18", + "valueSize": 1 + }, + { + "declaration": 5951, + "isOffset": false, + "isSlot": false, + "src": "7169:5:18", + "valueSize": 1 + } + ], + "id": 5953, + "nodeType": "InlineAssembly", + "src": "7146:52:18" + } + ] + }, + "documentation": { + "id": 5946, + "nodeType": "StructuredDocumentation", + "src": "6991:74:18", + "text": " @dev Load memory word (as a uint256) at location `ptr`." + }, + "id": 5955, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mload", + "nameLocation": "7079:6:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5949, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5948, + "mutability": "mutable", + "name": "ptr", + "nameLocation": "7094:3:18", + "nodeType": "VariableDeclaration", + "scope": 5955, + "src": "7086:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7086:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7085:13:18" + }, + "returnParameters": { + "id": 5952, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5951, + "mutability": "mutable", + "name": "value", + "nameLocation": "7129:5:18", + "nodeType": "VariableDeclaration", + "scope": 5955, + "src": "7121:13:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7121:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7120:15:18" + }, + "scope": 6529, + "src": "7070:134:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5964, + "nodeType": "Block", + "src": "7348:178:18", + "statements": [ + { + "AST": { + "nativeSrc": "7367:153:18", + "nodeType": "YulBlock", + "src": "7367:153:18", + "statements": [ + { + "nativeSrc": "7381:25:18", + "nodeType": "YulVariableDeclaration", + "src": "7381:25:18", + "value": { + "arguments": [ + { + "name": "ptr1", + "nativeSrc": "7401:4:18", + "nodeType": "YulIdentifier", + "src": "7401:4:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7395:5:18", + "nodeType": "YulIdentifier", + "src": "7395:5:18" + }, + "nativeSrc": "7395:11:18", + "nodeType": "YulFunctionCall", + "src": "7395:11:18" + }, + "variables": [ + { + "name": "value1", + "nativeSrc": "7385:6:18", + "nodeType": "YulTypedName", + "src": "7385:6:18", + "type": "" + } + ] + }, + { + "nativeSrc": "7419:25:18", + "nodeType": "YulVariableDeclaration", + "src": "7419:25:18", + "value": { + "arguments": [ + { + "name": "ptr2", + "nativeSrc": "7439:4:18", + "nodeType": "YulIdentifier", + "src": "7439:4:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7433:5:18", + "nodeType": "YulIdentifier", + "src": "7433:5:18" + }, + "nativeSrc": "7433:11:18", + "nodeType": "YulFunctionCall", + "src": "7433:11:18" + }, + "variables": [ + { + "name": "value2", + "nativeSrc": "7423:6:18", + "nodeType": "YulTypedName", + "src": "7423:6:18", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "ptr1", + "nativeSrc": "7464:4:18", + "nodeType": "YulIdentifier", + "src": "7464:4:18" + }, + { + "name": "value2", + "nativeSrc": "7470:6:18", + "nodeType": "YulIdentifier", + "src": "7470:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7457:6:18", + "nodeType": "YulIdentifier", + "src": "7457:6:18" + }, + "nativeSrc": "7457:20:18", + "nodeType": "YulFunctionCall", + "src": "7457:20:18" + }, + "nativeSrc": "7457:20:18", + "nodeType": "YulExpressionStatement", + "src": "7457:20:18" + }, + { + "expression": { + "arguments": [ + { + "name": "ptr2", + "nativeSrc": "7497:4:18", + "nodeType": "YulIdentifier", + "src": "7497:4:18" + }, + { + "name": "value1", + "nativeSrc": "7503:6:18", + "nodeType": "YulIdentifier", + "src": "7503:6:18" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7490:6:18", + "nodeType": "YulIdentifier", + "src": "7490:6:18" + }, + "nativeSrc": "7490:20:18", + "nodeType": "YulFunctionCall", + "src": "7490:20:18" + }, + "nativeSrc": "7490:20:18", + "nodeType": "YulExpressionStatement", + "src": "7490:20:18" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5958, + "isOffset": false, + "isSlot": false, + "src": "7401:4:18", + "valueSize": 1 + }, + { + "declaration": 5958, + "isOffset": false, + "isSlot": false, + "src": "7464:4:18", + "valueSize": 1 + }, + { + "declaration": 5960, + "isOffset": false, + "isSlot": false, + "src": "7439:4:18", + "valueSize": 1 + }, + { + "declaration": 5960, + "isOffset": false, + "isSlot": false, + "src": "7497:4:18", + "valueSize": 1 + } + ], + "id": 5963, + "nodeType": "InlineAssembly", + "src": "7358:162:18" + } + ] + }, + "documentation": { + "id": 5956, + "nodeType": "StructuredDocumentation", + "src": "7210:77:18", + "text": " @dev Swaps the elements memory location `ptr1` and `ptr2`." + }, + "id": 5965, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_swap", + "nameLocation": "7301:5:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5961, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5958, + "mutability": "mutable", + "name": "ptr1", + "nameLocation": "7315:4:18", + "nodeType": "VariableDeclaration", + "scope": 5965, + "src": "7307:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5957, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7307:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5960, + "mutability": "mutable", + "name": "ptr2", + "nameLocation": "7329:4:18", + "nodeType": "VariableDeclaration", + "scope": 5965, + "src": "7321:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5959, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7321:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7306:28:18" + }, + "returnParameters": { + "id": 5962, + "nodeType": "ParameterList", + "parameters": [], + "src": "7348:0:18" + }, + "scope": 6529, + "src": "7292:234:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5976, + "nodeType": "Block", + "src": "7713:64:18", + "statements": [ + { + "AST": { + "nativeSrc": "7732:39:18", + "nodeType": "YulBlock", + "src": "7732:39:18", + "statements": [ + { + "nativeSrc": "7746:15:18", + "nodeType": "YulAssignment", + "src": "7746:15:18", + "value": { + "name": "input", + "nativeSrc": "7756:5:18", + "nodeType": "YulIdentifier", + "src": "7756:5:18" + }, + "variableNames": [ + { + "name": "output", + "nativeSrc": "7746:6:18", + "nodeType": "YulIdentifier", + "src": "7746:6:18" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5969, + "isOffset": false, + "isSlot": false, + "src": "7756:5:18", + "valueSize": 1 + }, + { + "declaration": 5973, + "isOffset": false, + "isSlot": false, + "src": "7746:6:18", + "valueSize": 1 + } + ], + "id": 5975, + "nodeType": "InlineAssembly", + "src": "7723:48:18" + } + ] + }, + "documentation": { + "id": 5966, + "nodeType": "StructuredDocumentation", + "src": "7532:76:18", + "text": "@dev Helper: low level cast address memory array to uint256 memory array" + }, + "id": 5977, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_castToUint256Array", + "nameLocation": "7622:19:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5969, + "mutability": "mutable", + "name": "input", + "nameLocation": "7659:5:18", + "nodeType": "VariableDeclaration", + "scope": 5977, + "src": "7642:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 5967, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7642:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5968, + "nodeType": "ArrayTypeName", + "src": "7642:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "7641:24:18" + }, + "returnParameters": { + "id": 5974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5973, + "mutability": "mutable", + "name": "output", + "nameLocation": "7705:6:18", + "nodeType": "VariableDeclaration", + "scope": 5977, + "src": "7688:23:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5971, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7688:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5972, + "nodeType": "ArrayTypeName", + "src": "7688:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "7687:25:18" + }, + "scope": 6529, + "src": "7613:164:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 5988, + "nodeType": "Block", + "src": "7964:64:18", + "statements": [ + { + "AST": { + "nativeSrc": "7983:39:18", + "nodeType": "YulBlock", + "src": "7983:39:18", + "statements": [ + { + "nativeSrc": "7997:15:18", + "nodeType": "YulAssignment", + "src": "7997:15:18", + "value": { + "name": "input", + "nativeSrc": "8007:5:18", + "nodeType": "YulIdentifier", + "src": "8007:5:18" + }, + "variableNames": [ + { + "name": "output", + "nativeSrc": "7997:6:18", + "nodeType": "YulIdentifier", + "src": "7997:6:18" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 5981, + "isOffset": false, + "isSlot": false, + "src": "8007:5:18", + "valueSize": 1 + }, + { + "declaration": 5985, + "isOffset": false, + "isSlot": false, + "src": "7997:6:18", + "valueSize": 1 + } + ], + "id": 5987, + "nodeType": "InlineAssembly", + "src": "7974:48:18" + } + ] + }, + "documentation": { + "id": 5978, + "nodeType": "StructuredDocumentation", + "src": "7783:76:18", + "text": "@dev Helper: low level cast bytes32 memory array to uint256 memory array" + }, + "id": 5989, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_castToUint256Array", + "nameLocation": "7873:19:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5981, + "mutability": "mutable", + "name": "input", + "nameLocation": "7910:5:18", + "nodeType": "VariableDeclaration", + "scope": 5989, + "src": "7893:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 5979, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7893:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 5980, + "nodeType": "ArrayTypeName", + "src": "7893:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + } + ], + "src": "7892:24:18" + }, + "returnParameters": { + "id": 5986, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5985, + "mutability": "mutable", + "name": "output", + "nameLocation": "7956:6:18", + "nodeType": "VariableDeclaration", + "scope": 5989, + "src": "7939:23:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 5983, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7939:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5984, + "nodeType": "ArrayTypeName", + "src": "7939:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "7938:25:18" + }, + "scope": 6529, + "src": "7864:164:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6014, + "nodeType": "Block", + "src": "8290:64:18", + "statements": [ + { + "AST": { + "nativeSrc": "8309:39:18", + "nodeType": "YulBlock", + "src": "8309:39:18", + "statements": [ + { + "nativeSrc": "8323:15:18", + "nodeType": "YulAssignment", + "src": "8323:15:18", + "value": { + "name": "input", + "nativeSrc": "8333:5:18", + "nodeType": "YulIdentifier", + "src": "8333:5:18" + }, + "variableNames": [ + { + "name": "output", + "nativeSrc": "8323:6:18", + "nodeType": "YulIdentifier", + "src": "8323:6:18" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6000, + "isOffset": false, + "isSlot": false, + "src": "8333:5:18", + "valueSize": 1 + }, + { + "declaration": 6011, + "isOffset": false, + "isSlot": false, + "src": "8323:6:18", + "valueSize": 1 + } + ], + "id": 6013, + "nodeType": "InlineAssembly", + "src": "8300:48:18" + } + ] + }, + "documentation": { + "id": 5990, + "nodeType": "StructuredDocumentation", + "src": "8034:78:18", + "text": "@dev Helper: low level cast address comp function to uint256 comp function" + }, + "id": 6015, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_castToUint256Comp", + "nameLocation": "8126:18:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6000, + "mutability": "mutable", + "name": "input", + "nameLocation": "8201:5:18", + "nodeType": "VariableDeclaration", + "scope": 6015, + "src": "8154:52:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) pure returns (bool)" + }, + "typeName": { + "id": 5999, + "nodeType": "FunctionTypeName", + "parameterTypes": { + "id": 5995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5992, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5999, + "src": "8163:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5991, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8163:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5994, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5999, + "src": "8172:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8172:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8162:18:18" + }, + "returnParameterTypes": { + "id": 5998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5997, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 5999, + "src": "8195:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5996, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8195:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8194:6:18" + }, + "src": "8154:52:18", + "stateMutability": "pure", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) pure returns (bool)" + }, + "visibility": "internal" + }, + "visibility": "internal" + } + ], + "src": "8144:68:18" + }, + "returnParameters": { + "id": 6012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6011, + "mutability": "mutable", + "name": "output", + "nameLocation": "8282:6:18", + "nodeType": "VariableDeclaration", + "scope": 6015, + "src": "8235:53:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + }, + "typeName": { + "id": 6010, + "nodeType": "FunctionTypeName", + "parameterTypes": { + "id": 6006, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6003, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6010, + "src": "8244:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6002, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8244:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6005, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6010, + "src": "8253:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6004, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8253:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8243:18:18" + }, + "returnParameterTypes": { + "id": 6009, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6008, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6010, + "src": "8276:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6007, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8276:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8275:6:18" + }, + "src": "8235:53:18", + "stateMutability": "pure", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + }, + "visibility": "internal" + }, + "visibility": "internal" + } + ], + "src": "8234:55:18" + }, + "scope": 6529, + "src": "8117:237:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6040, + "nodeType": "Block", + "src": "8616:64:18", + "statements": [ + { + "AST": { + "nativeSrc": "8635:39:18", + "nodeType": "YulBlock", + "src": "8635:39:18", + "statements": [ + { + "nativeSrc": "8649:15:18", + "nodeType": "YulAssignment", + "src": "8649:15:18", + "value": { + "name": "input", + "nativeSrc": "8659:5:18", + "nodeType": "YulIdentifier", + "src": "8659:5:18" + }, + "variableNames": [ + { + "name": "output", + "nativeSrc": "8649:6:18", + "nodeType": "YulIdentifier", + "src": "8649:6:18" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6026, + "isOffset": false, + "isSlot": false, + "src": "8659:5:18", + "valueSize": 1 + }, + { + "declaration": 6037, + "isOffset": false, + "isSlot": false, + "src": "8649:6:18", + "valueSize": 1 + } + ], + "id": 6039, + "nodeType": "InlineAssembly", + "src": "8626:48:18" + } + ] + }, + "documentation": { + "id": 6016, + "nodeType": "StructuredDocumentation", + "src": "8360:78:18", + "text": "@dev Helper: low level cast bytes32 comp function to uint256 comp function" + }, + "id": 6041, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_castToUint256Comp", + "nameLocation": "8452:18:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6026, + "mutability": "mutable", + "name": "input", + "nameLocation": "8527:5:18", + "nodeType": "VariableDeclaration", + "scope": 6041, + "src": "8480:52:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32,bytes32) pure returns (bool)" + }, + "typeName": { + "id": 6025, + "nodeType": "FunctionTypeName", + "parameterTypes": { + "id": 6021, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6018, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6025, + "src": "8489:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6017, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8489:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6020, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6025, + "src": "8498:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6019, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8498:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "8488:18:18" + }, + "returnParameterTypes": { + "id": 6024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6023, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6025, + "src": "8521:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6022, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8521:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8520:6:18" + }, + "src": "8480:52:18", + "stateMutability": "pure", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32,bytes32) pure returns (bool)" + }, + "visibility": "internal" + }, + "visibility": "internal" + } + ], + "src": "8470:68:18" + }, + "returnParameters": { + "id": 6038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6037, + "mutability": "mutable", + "name": "output", + "nameLocation": "8608:6:18", + "nodeType": "VariableDeclaration", + "scope": 6041, + "src": "8561:53:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + }, + "typeName": { + "id": 6036, + "nodeType": "FunctionTypeName", + "parameterTypes": { + "id": 6032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6029, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6036, + "src": "8570:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6028, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8570:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6031, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6036, + "src": "8579:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8579:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8569:18:18" + }, + "returnParameterTypes": { + "id": 6035, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6034, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6036, + "src": "8602:4:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6033, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8602:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8601:6:18" + }, + "src": "8561:53:18", + "stateMutability": "pure", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256) pure returns (bool)" + }, + "visibility": "internal" + }, + "visibility": "internal" + } + ], + "src": "8560:55:18" + }, + "scope": 6529, + "src": "8443:237:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 6123, + "nodeType": "Block", + "src": "9405:834:18", + "statements": [ + { + "assignments": [ + 6053 + ], + "declarations": [ + { + "constant": false, + "id": 6053, + "mutability": "mutable", + "name": "low", + "nameLocation": "9423:3:18", + "nodeType": "VariableDeclaration", + "scope": 6123, + "src": "9415:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6052, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9415:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6055, + "initialValue": { + "hexValue": "30", + "id": 6054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9429:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "9415:15:18" + }, + { + "assignments": [ + 6057 + ], + "declarations": [ + { + "constant": false, + "id": 6057, + "mutability": "mutable", + "name": "high", + "nameLocation": "9448:4:18", + "nodeType": "VariableDeclaration", + "scope": 6123, + "src": "9440:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6056, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9440:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6060, + "initialValue": { + "expression": { + "id": 6058, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6045, + "src": "9455:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + "id": 6059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9461:6:18", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9455:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9440:27:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6061, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6057, + "src": "9482:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 6062, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9490:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9482:9:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6067, + "nodeType": "IfStatement", + "src": "9478:48:18", + "trueBody": { + "id": 6066, + "nodeType": "Block", + "src": "9493:33:18", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 6064, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9514:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 6051, + "id": 6065, + "nodeType": "Return", + "src": "9507:8:18" + } + ] + } + }, + { + "body": { + "id": 6099, + "nodeType": "Block", + "src": "9555:423:18", + "statements": [ + { + "assignments": [ + 6072 + ], + "declarations": [ + { + "constant": false, + "id": 6072, + "mutability": "mutable", + "name": "mid", + "nameLocation": "9577:3:18", + "nodeType": "VariableDeclaration", + "scope": 6099, + "src": "9569:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9569:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6078, + "initialValue": { + "arguments": [ + { + "id": 6075, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6053, + "src": "9596:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6076, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6057, + "src": "9601:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6073, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10360, + "src": "9583:4:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$10360_$", + "typeString": "type(library Math)" + } + }, + "id": 6074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9588:7:18", + "memberName": "average", + "nodeType": "MemberAccess", + "referencedDeclaration": 9089, + "src": "9583:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9583:23:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9569:37:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 6080, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6045, + "src": "9844:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + { + "id": 6081, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6072, + "src": "9851:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6079, + "name": "unsafeAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6404, + 6430, + 6456 + ], + "referencedDeclaration": 6456, + "src": "9831:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$6758_storage_ptr_$", + "typeString": "function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)" + } + }, + "id": 6082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9831:24:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot storage pointer" + } + }, + "id": 6083, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9856:5:18", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6757, + "src": "9831:30:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 6084, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6047, + "src": "9864:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9831:40:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6097, + "nodeType": "Block", + "src": "9922:46:18", + "statements": [ + { + "expression": { + "id": 6095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6091, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6053, + "src": "9940:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6092, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6072, + "src": "9946:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 6093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9952:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9946:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9940:13:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6096, + "nodeType": "ExpressionStatement", + "src": "9940:13:18" + } + ] + }, + "id": 6098, + "nodeType": "IfStatement", + "src": "9827:141:18", + "trueBody": { + "id": 6090, + "nodeType": "Block", + "src": "9873:43:18", + "statements": [ + { + "expression": { + "id": 6088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6086, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6057, + "src": "9891:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6087, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6072, + "src": "9898:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9891:10:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6089, + "nodeType": "ExpressionStatement", + "src": "9891:10:18" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6068, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6053, + "src": "9543:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 6069, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6057, + "src": "9549:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9543:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6100, + "nodeType": "WhileStatement", + "src": "9536:442:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 6113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6101, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6053, + "src": "10095:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 6102, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10101:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10095:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 6105, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6045, + "src": "10119:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6106, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6053, + "src": "10126:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 6107, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10132:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10126:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6104, + "name": "unsafeAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6404, + 6430, + 6456 + ], + "referencedDeclaration": 6456, + "src": "10106:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$6758_storage_ptr_$", + "typeString": "function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)" + } + }, + "id": 6109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10106:28:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot storage pointer" + } + }, + "id": 6110, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10135:5:18", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6757, + "src": "10106:34:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 6111, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6047, + "src": "10144:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10106:45:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10095:56:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6121, + "nodeType": "Block", + "src": "10198:35:18", + "statements": [ + { + "expression": { + "id": 6119, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6053, + "src": "10219:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6051, + "id": 6120, + "nodeType": "Return", + "src": "10212:10:18" + } + ] + }, + "id": 6122, + "nodeType": "IfStatement", + "src": "10091:142:18", + "trueBody": { + "id": 6118, + "nodeType": "Block", + "src": "10153:39:18", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6114, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6053, + "src": "10174:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 6115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10180:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10174:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6051, + "id": 6117, + "nodeType": "Return", + "src": "10167:14:18" + } + ] + } + } + ] + }, + "documentation": { + "id": 6042, + "nodeType": "StructuredDocumentation", + "src": "8686:616:18", + "text": " @dev Searches a sorted `array` and returns the first index that contains\n a value greater or equal to `element`. If no such index exists (i.e. all\n values in the array are strictly less than `element`), the array length is\n returned. Time complexity O(log n).\n NOTE: The `array` is expected to be sorted in ascending order, and to\n contain no repeated elements.\n IMPORTANT: Deprecated. This implementation behaves as {lowerBound} but lacks\n support for repeated elements in the array. The {lowerBound} function should\n be used instead." + }, + "id": 6124, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "findUpperBound", + "nameLocation": "9316:14:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6048, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6045, + "mutability": "mutable", + "name": "array", + "nameLocation": "9349:5:18", + "nodeType": "VariableDeclaration", + "scope": 6124, + "src": "9331:23:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6043, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9331:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6044, + "nodeType": "ArrayTypeName", + "src": "9331:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6047, + "mutability": "mutable", + "name": "element", + "nameLocation": "9364:7:18", + "nodeType": "VariableDeclaration", + "scope": 6124, + "src": "9356:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6046, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9356:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9330:42:18" + }, + "returnParameters": { + "id": 6051, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6050, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6124, + "src": "9396:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6049, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9396:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9395:9:18" + }, + "scope": 6529, + "src": "9307:932:18", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6187, + "nodeType": "Block", + "src": "10756:709:18", + "statements": [ + { + "assignments": [ + 6136 + ], + "declarations": [ + { + "constant": false, + "id": 6136, + "mutability": "mutable", + "name": "low", + "nameLocation": "10774:3:18", + "nodeType": "VariableDeclaration", + "scope": 6187, + "src": "10766:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10766:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6138, + "initialValue": { + "hexValue": "30", + "id": 6137, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10780:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "10766:15:18" + }, + { + "assignments": [ + 6140 + ], + "declarations": [ + { + "constant": false, + "id": 6140, + "mutability": "mutable", + "name": "high", + "nameLocation": "10799:4:18", + "nodeType": "VariableDeclaration", + "scope": 6187, + "src": "10791:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6139, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10791:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6143, + "initialValue": { + "expression": { + "id": 6141, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6128, + "src": "10806:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10812:6:18", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "10806:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10791:27:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6144, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6140, + "src": "10833:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 6145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10841:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10833:9:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6150, + "nodeType": "IfStatement", + "src": "10829:48:18", + "trueBody": { + "id": 6149, + "nodeType": "Block", + "src": "10844:33:18", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 6147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10865:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 6134, + "id": 6148, + "nodeType": "Return", + "src": "10858:8:18" + } + ] + } + }, + { + "body": { + "id": 6183, + "nodeType": "Block", + "src": "10906:532:18", + "statements": [ + { + "assignments": [ + 6155 + ], + "declarations": [ + { + "constant": false, + "id": 6155, + "mutability": "mutable", + "name": "mid", + "nameLocation": "10928:3:18", + "nodeType": "VariableDeclaration", + "scope": 6183, + "src": "10920:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10920:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6161, + "initialValue": { + "arguments": [ + { + "id": 6158, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6136, + "src": "10947:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6159, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6140, + "src": "10952:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6156, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10360, + "src": "10934:4:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$10360_$", + "typeString": "type(library Math)" + } + }, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10939:7:18", + "memberName": "average", + "nodeType": "MemberAccess", + "referencedDeclaration": 9089, + "src": "10934:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10934:23:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10920:37:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 6163, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6128, + "src": "11195:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + { + "id": 6164, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6155, + "src": "11202:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6162, + "name": "unsafeAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6404, + 6430, + 6456 + ], + "referencedDeclaration": 6456, + "src": "11182:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$6758_storage_ptr_$", + "typeString": "function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)" + } + }, + "id": 6165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11182:24:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot storage pointer" + } + }, + "id": 6166, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11207:5:18", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6757, + "src": "11182:30:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 6167, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6130, + "src": "11215:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11182:40:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6181, + "nodeType": "Block", + "src": "11385:43:18", + "statements": [ + { + "expression": { + "id": 6179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6177, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6140, + "src": "11403:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6178, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6155, + "src": "11410:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11403:10:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6180, + "nodeType": "ExpressionStatement", + "src": "11403:10:18" + } + ] + }, + "id": 6182, + "nodeType": "IfStatement", + "src": "11178:250:18", + "trueBody": { + "id": 6176, + "nodeType": "Block", + "src": "11224:155:18", + "statements": [ + { + "id": 6175, + "nodeType": "UncheckedBlock", + "src": "11301:64:18", + "statements": [ + { + "expression": { + "id": 6173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6169, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6136, + "src": "11333:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6170, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6155, + "src": "11339:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 6171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11345:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11339:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11333:13:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6174, + "nodeType": "ExpressionStatement", + "src": "11333:13:18" + } + ] + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6151, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6136, + "src": "10894:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 6152, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6140, + "src": "10900:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10894:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6184, + "nodeType": "WhileStatement", + "src": "10887:551:18" + }, + { + "expression": { + "id": 6185, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6136, + "src": "11455:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6134, + "id": 6186, + "nodeType": "Return", + "src": "11448:10:18" + } + ] + }, + "documentation": { + "id": 6125, + "nodeType": "StructuredDocumentation", + "src": "10245:412:18", + "text": " @dev Searches an `array` sorted in ascending order and returns the first\n index that contains a value greater or equal than `element`. If no such index\n exists (i.e. all values in the array are strictly less than `element`), the array\n length is returned. Time complexity O(log n).\n See C++'s https://en.cppreference.com/w/cpp/algorithm/lower_bound[lower_bound]." + }, + "id": 6188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "lowerBound", + "nameLocation": "10671:10:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6128, + "mutability": "mutable", + "name": "array", + "nameLocation": "10700:5:18", + "nodeType": "VariableDeclaration", + "scope": 6188, + "src": "10682:23:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10682:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6127, + "nodeType": "ArrayTypeName", + "src": "10682:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6130, + "mutability": "mutable", + "name": "element", + "nameLocation": "10715:7:18", + "nodeType": "VariableDeclaration", + "scope": 6188, + "src": "10707:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10707:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10681:42:18" + }, + "returnParameters": { + "id": 6134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6133, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6188, + "src": "10747:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10747:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10746:9:18" + }, + "scope": 6529, + "src": "10662:803:18", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6251, + "nodeType": "Block", + "src": "11982:709:18", + "statements": [ + { + "assignments": [ + 6200 + ], + "declarations": [ + { + "constant": false, + "id": 6200, + "mutability": "mutable", + "name": "low", + "nameLocation": "12000:3:18", + "nodeType": "VariableDeclaration", + "scope": 6251, + "src": "11992:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11992:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6202, + "initialValue": { + "hexValue": "30", + "id": 6201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12006:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "11992:15:18" + }, + { + "assignments": [ + 6204 + ], + "declarations": [ + { + "constant": false, + "id": 6204, + "mutability": "mutable", + "name": "high", + "nameLocation": "12025:4:18", + "nodeType": "VariableDeclaration", + "scope": 6251, + "src": "12017:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12017:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6207, + "initialValue": { + "expression": { + "id": 6205, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6192, + "src": "12032:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + "id": 6206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12038:6:18", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "12032:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12017:27:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6208, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6204, + "src": "12059:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 6209, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12067:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12059:9:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6214, + "nodeType": "IfStatement", + "src": "12055:48:18", + "trueBody": { + "id": 6213, + "nodeType": "Block", + "src": "12070:33:18", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 6211, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12091:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 6198, + "id": 6212, + "nodeType": "Return", + "src": "12084:8:18" + } + ] + } + }, + { + "body": { + "id": 6247, + "nodeType": "Block", + "src": "12132:532:18", + "statements": [ + { + "assignments": [ + 6219 + ], + "declarations": [ + { + "constant": false, + "id": 6219, + "mutability": "mutable", + "name": "mid", + "nameLocation": "12154:3:18", + "nodeType": "VariableDeclaration", + "scope": 6247, + "src": "12146:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6218, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12146:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6225, + "initialValue": { + "arguments": [ + { + "id": 6222, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "12173:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6223, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6204, + "src": "12178:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6220, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10360, + "src": "12160:4:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$10360_$", + "typeString": "type(library Math)" + } + }, + "id": 6221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12165:7:18", + "memberName": "average", + "nodeType": "MemberAccess", + "referencedDeclaration": 9089, + "src": "12160:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12160:23:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12146:37:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 6227, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6192, + "src": "12421:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + } + }, + { + "id": 6228, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6219, + "src": "12428:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[] storage pointer" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6226, + "name": "unsafeAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6404, + 6430, + 6456 + ], + "referencedDeclaration": 6456, + "src": "12408:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$_t_struct$_Uint256Slot_$6758_storage_ptr_$", + "typeString": "function (uint256[] storage pointer,uint256) pure returns (struct StorageSlot.Uint256Slot storage pointer)" + } + }, + "id": 6229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12408:24:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot storage pointer" + } + }, + "id": 6230, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12433:5:18", + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": 6757, + "src": "12408:30:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 6231, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6194, + "src": "12441:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12408:40:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6245, + "nodeType": "Block", + "src": "12499:155:18", + "statements": [ + { + "id": 6244, + "nodeType": "UncheckedBlock", + "src": "12576:64:18", + "statements": [ + { + "expression": { + "id": 6242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6238, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "12608:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6239, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6219, + "src": "12614:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 6240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12620:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12614:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12608:13:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6243, + "nodeType": "ExpressionStatement", + "src": "12608:13:18" + } + ] + } + ] + }, + "id": 6246, + "nodeType": "IfStatement", + "src": "12404:250:18", + "trueBody": { + "id": 6237, + "nodeType": "Block", + "src": "12450:43:18", + "statements": [ + { + "expression": { + "id": 6235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6233, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6204, + "src": "12468:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6234, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6219, + "src": "12475:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12468:10:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6236, + "nodeType": "ExpressionStatement", + "src": "12468:10:18" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6215, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "12120:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 6216, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6204, + "src": "12126:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12120:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6248, + "nodeType": "WhileStatement", + "src": "12113:551:18" + }, + { + "expression": { + "id": 6249, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6200, + "src": "12681:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6198, + "id": 6250, + "nodeType": "Return", + "src": "12674:10:18" + } + ] + }, + "documentation": { + "id": 6189, + "nodeType": "StructuredDocumentation", + "src": "11471:412:18", + "text": " @dev Searches an `array` sorted in ascending order and returns the first\n index that contains a value strictly greater than `element`. If no such index\n exists (i.e. all values in the array are strictly less than `element`), the array\n length is returned. Time complexity O(log n).\n See C++'s https://en.cppreference.com/w/cpp/algorithm/upper_bound[upper_bound]." + }, + "id": 6252, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "upperBound", + "nameLocation": "11897:10:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6192, + "mutability": "mutable", + "name": "array", + "nameLocation": "11926:5:18", + "nodeType": "VariableDeclaration", + "scope": 6252, + "src": "11908:23:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6190, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11908:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6191, + "nodeType": "ArrayTypeName", + "src": "11908:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6194, + "mutability": "mutable", + "name": "element", + "nameLocation": "11941:7:18", + "nodeType": "VariableDeclaration", + "scope": 6252, + "src": "11933:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11933:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11907:42:18" + }, + "returnParameters": { + "id": 6198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6197, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6252, + "src": "11973:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6196, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11973:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11972:9:18" + }, + "scope": 6529, + "src": "11888:803:18", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6314, + "nodeType": "Block", + "src": "12875:709:18", + "statements": [ + { + "assignments": [ + 6264 + ], + "declarations": [ + { + "constant": false, + "id": 6264, + "mutability": "mutable", + "name": "low", + "nameLocation": "12893:3:18", + "nodeType": "VariableDeclaration", + "scope": 6314, + "src": "12885:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6263, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12885:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6266, + "initialValue": { + "hexValue": "30", + "id": 6265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12899:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "12885:15:18" + }, + { + "assignments": [ + 6268 + ], + "declarations": [ + { + "constant": false, + "id": 6268, + "mutability": "mutable", + "name": "high", + "nameLocation": "12918:4:18", + "nodeType": "VariableDeclaration", + "scope": 6314, + "src": "12910:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12910:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6271, + "initialValue": { + "expression": { + "id": 6269, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6256, + "src": "12925:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 6270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12931:6:18", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "12925:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12910:27:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6272, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6268, + "src": "12952:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 6273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12960:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12952:9:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6278, + "nodeType": "IfStatement", + "src": "12948:48:18", + "trueBody": { + "id": 6277, + "nodeType": "Block", + "src": "12963:33:18", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 6275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12984:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 6262, + "id": 6276, + "nodeType": "Return", + "src": "12977:8:18" + } + ] + } + }, + { + "body": { + "id": 6310, + "nodeType": "Block", + "src": "13025:532:18", + "statements": [ + { + "assignments": [ + 6283 + ], + "declarations": [ + { + "constant": false, + "id": 6283, + "mutability": "mutable", + "name": "mid", + "nameLocation": "13047:3:18", + "nodeType": "VariableDeclaration", + "scope": 6310, + "src": "13039:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13039:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6289, + "initialValue": { + "arguments": [ + { + "id": 6286, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6264, + "src": "13066:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6287, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6268, + "src": "13071:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6284, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10360, + "src": "13053:4:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$10360_$", + "typeString": "type(library Math)" + } + }, + "id": 6285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13058:7:18", + "memberName": "average", + "nodeType": "MemberAccess", + "referencedDeclaration": 9089, + "src": "13053:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13053:23:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13039:37:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6291, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6256, + "src": "13320:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 6292, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6283, + "src": "13327:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6290, + "name": "unsafeMemoryAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6469, + 6482, + 6495 + ], + "referencedDeclaration": 6495, + "src": "13301:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 6293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13301:30:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 6294, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "13334:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13301:40:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6308, + "nodeType": "Block", + "src": "13504:43:18", + "statements": [ + { + "expression": { + "id": 6306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6304, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6268, + "src": "13522:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6305, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6283, + "src": "13529:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13522:10:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6307, + "nodeType": "ExpressionStatement", + "src": "13522:10:18" + } + ] + }, + "id": 6309, + "nodeType": "IfStatement", + "src": "13297:250:18", + "trueBody": { + "id": 6303, + "nodeType": "Block", + "src": "13343:155:18", + "statements": [ + { + "id": 6302, + "nodeType": "UncheckedBlock", + "src": "13420:64:18", + "statements": [ + { + "expression": { + "id": 6300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6296, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6264, + "src": "13452:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6297, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6283, + "src": "13458:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 6298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13464:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13458:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13452:13:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6301, + "nodeType": "ExpressionStatement", + "src": "13452:13:18" + } + ] + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6279, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6264, + "src": "13013:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 6280, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6268, + "src": "13019:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13013:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6311, + "nodeType": "WhileStatement", + "src": "13006:551:18" + }, + { + "expression": { + "id": 6312, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6264, + "src": "13574:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6262, + "id": 6313, + "nodeType": "Return", + "src": "13567:10:18" + } + ] + }, + "documentation": { + "id": 6253, + "nodeType": "StructuredDocumentation", + "src": "12697:74:18", + "text": " @dev Same as {lowerBound}, but with an array in memory." + }, + "id": 6315, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "lowerBoundMemory", + "nameLocation": "12785:16:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6256, + "mutability": "mutable", + "name": "array", + "nameLocation": "12819:5:18", + "nodeType": "VariableDeclaration", + "scope": 6315, + "src": "12802:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6254, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12802:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6255, + "nodeType": "ArrayTypeName", + "src": "12802:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6258, + "mutability": "mutable", + "name": "element", + "nameLocation": "12834:7:18", + "nodeType": "VariableDeclaration", + "scope": 6315, + "src": "12826:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12826:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12801:41:18" + }, + "returnParameters": { + "id": 6262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6261, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6315, + "src": "12866:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6260, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12866:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12865:9:18" + }, + "scope": 6529, + "src": "12776:808:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6377, + "nodeType": "Block", + "src": "13768:709:18", + "statements": [ + { + "assignments": [ + 6327 + ], + "declarations": [ + { + "constant": false, + "id": 6327, + "mutability": "mutable", + "name": "low", + "nameLocation": "13786:3:18", + "nodeType": "VariableDeclaration", + "scope": 6377, + "src": "13778:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6326, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13778:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6329, + "initialValue": { + "hexValue": "30", + "id": 6328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13792:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13778:15:18" + }, + { + "assignments": [ + 6331 + ], + "declarations": [ + { + "constant": false, + "id": 6331, + "mutability": "mutable", + "name": "high", + "nameLocation": "13811:4:18", + "nodeType": "VariableDeclaration", + "scope": 6377, + "src": "13803:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6330, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13803:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6334, + "initialValue": { + "expression": { + "id": 6332, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6319, + "src": "13818:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 6333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13824:6:18", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13818:12:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13803:27:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6335, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6331, + "src": "13845:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 6336, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13853:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13845:9:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6341, + "nodeType": "IfStatement", + "src": "13841:48:18", + "trueBody": { + "id": 6340, + "nodeType": "Block", + "src": "13856:33:18", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 6338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13877:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 6325, + "id": 6339, + "nodeType": "Return", + "src": "13870:8:18" + } + ] + } + }, + { + "body": { + "id": 6373, + "nodeType": "Block", + "src": "13918:532:18", + "statements": [ + { + "assignments": [ + 6346 + ], + "declarations": [ + { + "constant": false, + "id": 6346, + "mutability": "mutable", + "name": "mid", + "nameLocation": "13940:3:18", + "nodeType": "VariableDeclaration", + "scope": 6373, + "src": "13932:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6345, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13932:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6352, + "initialValue": { + "arguments": [ + { + "id": 6349, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6327, + "src": "13959:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 6350, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6331, + "src": "13964:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6347, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10360, + "src": "13946:4:18", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$10360_$", + "typeString": "type(library Math)" + } + }, + "id": 6348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13951:7:18", + "memberName": "average", + "nodeType": "MemberAccess", + "referencedDeclaration": 9089, + "src": "13946:12:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13946:23:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13932:37:18" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6354, + "name": "array", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6319, + "src": "14213:5:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "id": 6355, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6346, + "src": "14220:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6353, + "name": "unsafeMemoryAccess", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 6469, + 6482, + 6495 + ], + "referencedDeclaration": 6495, + "src": "14194:18:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256[] memory,uint256) pure returns (uint256)" + } + }, + "id": 6356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14194:30:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 6357, + "name": "element", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6321, + "src": "14227:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14194:40:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 6371, + "nodeType": "Block", + "src": "14285:155:18", + "statements": [ + { + "id": 6370, + "nodeType": "UncheckedBlock", + "src": "14362:64:18", + "statements": [ + { + "expression": { + "id": 6368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6364, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6327, + "src": "14394:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6365, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6346, + "src": "14400:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 6366, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14406:1:18", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14400:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14394:13:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6369, + "nodeType": "ExpressionStatement", + "src": "14394:13:18" + } + ] + } + ] + }, + "id": 6372, + "nodeType": "IfStatement", + "src": "14190:250:18", + "trueBody": { + "id": 6363, + "nodeType": "Block", + "src": "14236:43:18", + "statements": [ + { + "expression": { + "id": 6361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6359, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6331, + "src": "14254:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 6360, + "name": "mid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6346, + "src": "14261:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14254:10:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6362, + "nodeType": "ExpressionStatement", + "src": "14254:10:18" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6342, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6327, + "src": "13906:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 6343, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6331, + "src": "13912:4:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13906:10:18", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6374, + "nodeType": "WhileStatement", + "src": "13899:551:18" + }, + { + "expression": { + "id": 6375, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6327, + "src": "14467:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6325, + "id": 6376, + "nodeType": "Return", + "src": "14460:10:18" + } + ] + }, + "documentation": { + "id": 6316, + "nodeType": "StructuredDocumentation", + "src": "13590:74:18", + "text": " @dev Same as {upperBound}, but with an array in memory." + }, + "id": 6378, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "upperBoundMemory", + "nameLocation": "13678:16:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6322, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6319, + "mutability": "mutable", + "name": "array", + "nameLocation": "13712:5:18", + "nodeType": "VariableDeclaration", + "scope": 6378, + "src": "13695:22:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6317, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13695:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6318, + "nodeType": "ArrayTypeName", + "src": "13695:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6321, + "mutability": "mutable", + "name": "element", + "nameLocation": "13727:7:18", + "nodeType": "VariableDeclaration", + "scope": 6378, + "src": "13719:15:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6320, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13719:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13694:41:18" + }, + "returnParameters": { + "id": 6325, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6324, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6378, + "src": "13759:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6323, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13759:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13758:9:18" + }, + "scope": 6529, + "src": "13669:808:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6403, + "nodeType": "Block", + "src": "14793:167:18", + "statements": [ + { + "assignments": [ + 6391 + ], + "declarations": [ + { + "constant": false, + "id": 6391, + "mutability": "mutable", + "name": "slot", + "nameLocation": "14811:4:18", + "nodeType": "VariableDeclaration", + "scope": 6403, + "src": "14803:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6390, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14803:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 6392, + "nodeType": "VariableDeclarationStatement", + "src": "14803:12:18" + }, + { + "AST": { + "nativeSrc": "14850:40:18", + "nodeType": "YulBlock", + "src": "14850:40:18", + "statements": [ + { + "nativeSrc": "14864:16:18", + "nodeType": "YulAssignment", + "src": "14864:16:18", + "value": { + "name": "arr.slot", + "nativeSrc": "14872:8:18", + "nodeType": "YulIdentifier", + "src": "14872:8:18" + }, + "variableNames": [ + { + "name": "slot", + "nativeSrc": "14864:4:18", + "nodeType": "YulIdentifier", + "src": "14864:4:18" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6382, + "isOffset": false, + "isSlot": true, + "src": "14872:8:18", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 6391, + "isOffset": false, + "isSlot": false, + "src": "14864:4:18", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6393, + "nodeType": "InlineAssembly", + "src": "14825:65:18" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 6398, + "name": "pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6384, + "src": "14932:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 6394, + "name": "slot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6391, + "src": "14906:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 6395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14911:11:18", + "memberName": "deriveArray", + "nodeType": "MemberAccess", + "referencedDeclaration": 6658, + "src": "14906:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32) pure returns (bytes32)" + } + }, + "id": 6396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14906:18:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 6397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14925:6:18", + "memberName": "offset", + "nodeType": "MemberAccess", + "referencedDeclaration": 6648, + "src": "14906:25:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32,uint256) pure returns (bytes32)" + } + }, + "id": 6399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14906:30:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 6400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14937:14:18", + "memberName": "getAddressSlot", + "nodeType": "MemberAccess", + "referencedDeclaration": 6778, + "src": "14906:45:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_AddressSlot_$6749_storage_ptr_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.AddressSlot storage pointer)" + } + }, + "id": 6401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14906:47:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$6749_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot storage pointer" + } + }, + "functionReturnParameters": 6389, + "id": 6402, + "nodeType": "Return", + "src": "14899:54:18" + } + ] + }, + "documentation": { + "id": 6379, + "nodeType": "StructuredDocumentation", + "src": "14483:191:18", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 6404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeAccess", + "nameLocation": "14688:12:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6382, + "mutability": "mutable", + "name": "arr", + "nameLocation": "14719:3:18", + "nodeType": "VariableDeclaration", + "scope": 6404, + "src": "14701:21:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 6380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14701:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6381, + "nodeType": "ArrayTypeName", + "src": "14701:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6384, + "mutability": "mutable", + "name": "pos", + "nameLocation": "14732:3:18", + "nodeType": "VariableDeclaration", + "scope": 6404, + "src": "14724:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14724:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14700:36:18" + }, + "returnParameters": { + "id": 6389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6388, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6404, + "src": "14760:31:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$6749_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + }, + "typeName": { + "id": 6387, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6386, + "name": "StorageSlot.AddressSlot", + "nameLocations": [ + "14760:11:18", + "14772:11:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6749, + "src": "14760:23:18" + }, + "referencedDeclaration": 6749, + "src": "14760:23:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$6749_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + } + }, + "visibility": "internal" + } + ], + "src": "14759:33:18" + }, + "scope": 6529, + "src": "14679:281:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6429, + "nodeType": "Block", + "src": "15276:167:18", + "statements": [ + { + "assignments": [ + 6417 + ], + "declarations": [ + { + "constant": false, + "id": 6417, + "mutability": "mutable", + "name": "slot", + "nameLocation": "15294:4:18", + "nodeType": "VariableDeclaration", + "scope": 6429, + "src": "15286:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6416, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15286:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 6418, + "nodeType": "VariableDeclarationStatement", + "src": "15286:12:18" + }, + { + "AST": { + "nativeSrc": "15333:40:18", + "nodeType": "YulBlock", + "src": "15333:40:18", + "statements": [ + { + "nativeSrc": "15347:16:18", + "nodeType": "YulAssignment", + "src": "15347:16:18", + "value": { + "name": "arr.slot", + "nativeSrc": "15355:8:18", + "nodeType": "YulIdentifier", + "src": "15355:8:18" + }, + "variableNames": [ + { + "name": "slot", + "nativeSrc": "15347:4:18", + "nodeType": "YulIdentifier", + "src": "15347:4:18" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6408, + "isOffset": false, + "isSlot": true, + "src": "15355:8:18", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 6417, + "isOffset": false, + "isSlot": false, + "src": "15347:4:18", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6419, + "nodeType": "InlineAssembly", + "src": "15308:65:18" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 6424, + "name": "pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6410, + "src": "15415:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 6420, + "name": "slot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6417, + "src": "15389:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 6421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15394:11:18", + "memberName": "deriveArray", + "nodeType": "MemberAccess", + "referencedDeclaration": 6658, + "src": "15389:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32) pure returns (bytes32)" + } + }, + "id": 6422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15389:18:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 6423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15408:6:18", + "memberName": "offset", + "nodeType": "MemberAccess", + "referencedDeclaration": 6648, + "src": "15389:25:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32,uint256) pure returns (bytes32)" + } + }, + "id": 6425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15389:30:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 6426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15420:14:18", + "memberName": "getBytes32Slot", + "nodeType": "MemberAccess", + "referencedDeclaration": 6800, + "src": "15389:45:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Bytes32Slot_$6755_storage_ptr_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.Bytes32Slot storage pointer)" + } + }, + "id": 6427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15389:47:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$6755_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot storage pointer" + } + }, + "functionReturnParameters": 6415, + "id": 6428, + "nodeType": "Return", + "src": "15382:54:18" + } + ] + }, + "documentation": { + "id": 6405, + "nodeType": "StructuredDocumentation", + "src": "14966:191:18", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 6430, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeAccess", + "nameLocation": "15171:12:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6411, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6408, + "mutability": "mutable", + "name": "arr", + "nameLocation": "15202:3:18", + "nodeType": "VariableDeclaration", + "scope": 6430, + "src": "15184:21:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 6406, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15184:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 6407, + "nodeType": "ArrayTypeName", + "src": "15184:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6410, + "mutability": "mutable", + "name": "pos", + "nameLocation": "15215:3:18", + "nodeType": "VariableDeclaration", + "scope": 6430, + "src": "15207:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15207:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15183:36:18" + }, + "returnParameters": { + "id": 6415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6414, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6430, + "src": "15243:31:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$6755_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + }, + "typeName": { + "id": 6413, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6412, + "name": "StorageSlot.Bytes32Slot", + "nameLocations": [ + "15243:11:18", + "15255:11:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6755, + "src": "15243:23:18" + }, + "referencedDeclaration": 6755, + "src": "15243:23:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$6755_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + } + }, + "visibility": "internal" + } + ], + "src": "15242:33:18" + }, + "scope": 6529, + "src": "15162:281:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6455, + "nodeType": "Block", + "src": "15759:167:18", + "statements": [ + { + "assignments": [ + 6443 + ], + "declarations": [ + { + "constant": false, + "id": 6443, + "mutability": "mutable", + "name": "slot", + "nameLocation": "15777:4:18", + "nodeType": "VariableDeclaration", + "scope": 6455, + "src": "15769:12:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6442, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15769:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 6444, + "nodeType": "VariableDeclarationStatement", + "src": "15769:12:18" + }, + { + "AST": { + "nativeSrc": "15816:40:18", + "nodeType": "YulBlock", + "src": "15816:40:18", + "statements": [ + { + "nativeSrc": "15830:16:18", + "nodeType": "YulAssignment", + "src": "15830:16:18", + "value": { + "name": "arr.slot", + "nativeSrc": "15838:8:18", + "nodeType": "YulIdentifier", + "src": "15838:8:18" + }, + "variableNames": [ + { + "name": "slot", + "nativeSrc": "15830:4:18", + "nodeType": "YulIdentifier", + "src": "15830:4:18" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6434, + "isOffset": false, + "isSlot": true, + "src": "15838:8:18", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 6443, + "isOffset": false, + "isSlot": false, + "src": "15830:4:18", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6445, + "nodeType": "InlineAssembly", + "src": "15791:65:18" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "arguments": [ + { + "id": 6450, + "name": "pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6436, + "src": "15898:3:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 6446, + "name": "slot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6443, + "src": "15872:4:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 6447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15877:11:18", + "memberName": "deriveArray", + "nodeType": "MemberAccess", + "referencedDeclaration": 6658, + "src": "15872:16:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32) pure returns (bytes32)" + } + }, + "id": 6448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15872:18:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 6449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15891:6:18", + "memberName": "offset", + "nodeType": "MemberAccess", + "referencedDeclaration": 6648, + "src": "15872:25:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint256_$returns$_t_bytes32_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32,uint256) pure returns (bytes32)" + } + }, + "id": 6451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15872:30:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 6452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15903:14:18", + "memberName": "getUint256Slot", + "nodeType": "MemberAccess", + "referencedDeclaration": 6811, + "src": "15872:45:18", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$returns$_t_struct$_Uint256Slot_$6758_storage_ptr_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32) pure returns (struct StorageSlot.Uint256Slot storage pointer)" + } + }, + "id": 6453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15872:47:18", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot storage pointer" + } + }, + "functionReturnParameters": 6441, + "id": 6454, + "nodeType": "Return", + "src": "15865:54:18" + } + ] + }, + "documentation": { + "id": 6431, + "nodeType": "StructuredDocumentation", + "src": "15449:191:18", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 6456, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeAccess", + "nameLocation": "15654:12:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6434, + "mutability": "mutable", + "name": "arr", + "nameLocation": "15685:3:18", + "nodeType": "VariableDeclaration", + "scope": 6456, + "src": "15667:21:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15667:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6433, + "nodeType": "ArrayTypeName", + "src": "15667:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6436, + "mutability": "mutable", + "name": "pos", + "nameLocation": "15698:3:18", + "nodeType": "VariableDeclaration", + "scope": 6456, + "src": "15690:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6435, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15690:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15666:36:18" + }, + "returnParameters": { + "id": 6441, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6440, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6456, + "src": "15726:31:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + }, + "typeName": { + "id": 6439, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6438, + "name": "StorageSlot.Uint256Slot", + "nameLocations": [ + "15726:11:18", + "15738:11:18" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6758, + "src": "15726:23:18" + }, + "referencedDeclaration": 6758, + "src": "15726:23:18", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + } + }, + "visibility": "internal" + } + ], + "src": "15725:33:18" + }, + "scope": 6529, + "src": "15645:281:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6468, + "nodeType": "Block", + "src": "16227:98:18", + "statements": [ + { + "AST": { + "nativeSrc": "16246:73:18", + "nodeType": "YulBlock", + "src": "16246:73:18", + "statements": [ + { + "nativeSrc": "16260:49:18", + "nodeType": "YulAssignment", + "src": "16260:49:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "arr", + "nativeSrc": "16281:3:18", + "nodeType": "YulIdentifier", + "src": "16281:3:18" + }, + { + "kind": "number", + "nativeSrc": "16286:4:18", + "nodeType": "YulLiteral", + "src": "16286:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16277:3:18", + "nodeType": "YulIdentifier", + "src": "16277:3:18" + }, + "nativeSrc": "16277:14:18", + "nodeType": "YulFunctionCall", + "src": "16277:14:18" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16297:3:18", + "nodeType": "YulIdentifier", + "src": "16297:3:18" + }, + { + "kind": "number", + "nativeSrc": "16302:4:18", + "nodeType": "YulLiteral", + "src": "16302:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "16293:3:18", + "nodeType": "YulIdentifier", + "src": "16293:3:18" + }, + "nativeSrc": "16293:14:18", + "nodeType": "YulFunctionCall", + "src": "16293:14:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16273:3:18", + "nodeType": "YulIdentifier", + "src": "16273:3:18" + }, + "nativeSrc": "16273:35:18", + "nodeType": "YulFunctionCall", + "src": "16273:35:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "16267:5:18", + "nodeType": "YulIdentifier", + "src": "16267:5:18" + }, + "nativeSrc": "16267:42:18", + "nodeType": "YulFunctionCall", + "src": "16267:42:18" + }, + "variableNames": [ + { + "name": "res", + "nativeSrc": "16260:3:18", + "nodeType": "YulIdentifier", + "src": "16260:3:18" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6460, + "isOffset": false, + "isSlot": false, + "src": "16281:3:18", + "valueSize": 1 + }, + { + "declaration": 6462, + "isOffset": false, + "isSlot": false, + "src": "16297:3:18", + "valueSize": 1 + }, + { + "declaration": 6465, + "isOffset": false, + "isSlot": false, + "src": "16260:3:18", + "valueSize": 1 + } + ], + "id": 6467, + "nodeType": "InlineAssembly", + "src": "16237:82:18" + } + ] + }, + "documentation": { + "id": 6457, + "nodeType": "StructuredDocumentation", + "src": "15932:191:18", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 6469, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeMemoryAccess", + "nameLocation": "16137:18:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6460, + "mutability": "mutable", + "name": "arr", + "nameLocation": "16173:3:18", + "nodeType": "VariableDeclaration", + "scope": 6469, + "src": "16156:20:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 6458, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16156:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6459, + "nodeType": "ArrayTypeName", + "src": "16156:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6462, + "mutability": "mutable", + "name": "pos", + "nameLocation": "16186:3:18", + "nodeType": "VariableDeclaration", + "scope": 6469, + "src": "16178:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6461, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16178:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16155:35:18" + }, + "returnParameters": { + "id": 6466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6465, + "mutability": "mutable", + "name": "res", + "nameLocation": "16222:3:18", + "nodeType": "VariableDeclaration", + "scope": 6469, + "src": "16214:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16214:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16213:13:18" + }, + "scope": 6529, + "src": "16128:197:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6481, + "nodeType": "Block", + "src": "16626:98:18", + "statements": [ + { + "AST": { + "nativeSrc": "16645:73:18", + "nodeType": "YulBlock", + "src": "16645:73:18", + "statements": [ + { + "nativeSrc": "16659:49:18", + "nodeType": "YulAssignment", + "src": "16659:49:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "arr", + "nativeSrc": "16680:3:18", + "nodeType": "YulIdentifier", + "src": "16680:3:18" + }, + { + "kind": "number", + "nativeSrc": "16685:4:18", + "nodeType": "YulLiteral", + "src": "16685:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16676:3:18", + "nodeType": "YulIdentifier", + "src": "16676:3:18" + }, + "nativeSrc": "16676:14:18", + "nodeType": "YulFunctionCall", + "src": "16676:14:18" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "16696:3:18", + "nodeType": "YulIdentifier", + "src": "16696:3:18" + }, + { + "kind": "number", + "nativeSrc": "16701:4:18", + "nodeType": "YulLiteral", + "src": "16701:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "16692:3:18", + "nodeType": "YulIdentifier", + "src": "16692:3:18" + }, + "nativeSrc": "16692:14:18", + "nodeType": "YulFunctionCall", + "src": "16692:14:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16672:3:18", + "nodeType": "YulIdentifier", + "src": "16672:3:18" + }, + "nativeSrc": "16672:35:18", + "nodeType": "YulFunctionCall", + "src": "16672:35:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "16666:5:18", + "nodeType": "YulIdentifier", + "src": "16666:5:18" + }, + "nativeSrc": "16666:42:18", + "nodeType": "YulFunctionCall", + "src": "16666:42:18" + }, + "variableNames": [ + { + "name": "res", + "nativeSrc": "16659:3:18", + "nodeType": "YulIdentifier", + "src": "16659:3:18" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6473, + "isOffset": false, + "isSlot": false, + "src": "16680:3:18", + "valueSize": 1 + }, + { + "declaration": 6475, + "isOffset": false, + "isSlot": false, + "src": "16696:3:18", + "valueSize": 1 + }, + { + "declaration": 6478, + "isOffset": false, + "isSlot": false, + "src": "16659:3:18", + "valueSize": 1 + } + ], + "id": 6480, + "nodeType": "InlineAssembly", + "src": "16636:82:18" + } + ] + }, + "documentation": { + "id": 6470, + "nodeType": "StructuredDocumentation", + "src": "16331:191:18", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 6482, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeMemoryAccess", + "nameLocation": "16536:18:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6473, + "mutability": "mutable", + "name": "arr", + "nameLocation": "16572:3:18", + "nodeType": "VariableDeclaration", + "scope": 6482, + "src": "16555:20:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 6471, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "16555:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 6472, + "nodeType": "ArrayTypeName", + "src": "16555:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6475, + "mutability": "mutable", + "name": "pos", + "nameLocation": "16585:3:18", + "nodeType": "VariableDeclaration", + "scope": 6482, + "src": "16577:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16577:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16554:35:18" + }, + "returnParameters": { + "id": 6479, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6478, + "mutability": "mutable", + "name": "res", + "nameLocation": "16621:3:18", + "nodeType": "VariableDeclaration", + "scope": 6482, + "src": "16613:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6477, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "16613:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "16612:13:18" + }, + "scope": 6529, + "src": "16527:197:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6494, + "nodeType": "Block", + "src": "17025:98:18", + "statements": [ + { + "AST": { + "nativeSrc": "17044:73:18", + "nodeType": "YulBlock", + "src": "17044:73:18", + "statements": [ + { + "nativeSrc": "17058:49:18", + "nodeType": "YulAssignment", + "src": "17058:49:18", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "arr", + "nativeSrc": "17079:3:18", + "nodeType": "YulIdentifier", + "src": "17079:3:18" + }, + { + "kind": "number", + "nativeSrc": "17084:4:18", + "nodeType": "YulLiteral", + "src": "17084:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17075:3:18", + "nodeType": "YulIdentifier", + "src": "17075:3:18" + }, + "nativeSrc": "17075:14:18", + "nodeType": "YulFunctionCall", + "src": "17075:14:18" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "17095:3:18", + "nodeType": "YulIdentifier", + "src": "17095:3:18" + }, + { + "kind": "number", + "nativeSrc": "17100:4:18", + "nodeType": "YulLiteral", + "src": "17100:4:18", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "17091:3:18", + "nodeType": "YulIdentifier", + "src": "17091:3:18" + }, + "nativeSrc": "17091:14:18", + "nodeType": "YulFunctionCall", + "src": "17091:14:18" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17071:3:18", + "nodeType": "YulIdentifier", + "src": "17071:3:18" + }, + "nativeSrc": "17071:35:18", + "nodeType": "YulFunctionCall", + "src": "17071:35:18" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17065:5:18", + "nodeType": "YulIdentifier", + "src": "17065:5:18" + }, + "nativeSrc": "17065:42:18", + "nodeType": "YulFunctionCall", + "src": "17065:42:18" + }, + "variableNames": [ + { + "name": "res", + "nativeSrc": "17058:3:18", + "nodeType": "YulIdentifier", + "src": "17058:3:18" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6486, + "isOffset": false, + "isSlot": false, + "src": "17079:3:18", + "valueSize": 1 + }, + { + "declaration": 6488, + "isOffset": false, + "isSlot": false, + "src": "17095:3:18", + "valueSize": 1 + }, + { + "declaration": 6491, + "isOffset": false, + "isSlot": false, + "src": "17058:3:18", + "valueSize": 1 + } + ], + "id": 6493, + "nodeType": "InlineAssembly", + "src": "17035:82:18" + } + ] + }, + "documentation": { + "id": 6483, + "nodeType": "StructuredDocumentation", + "src": "16730:191:18", + "text": " @dev Access an array in an \"unsafe\" way. Skips solidity \"index-out-of-range\" check.\n WARNING: Only use if you are certain `pos` is lower than the array length." + }, + "id": 6495, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeMemoryAccess", + "nameLocation": "16935:18:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6486, + "mutability": "mutable", + "name": "arr", + "nameLocation": "16971:3:18", + "nodeType": "VariableDeclaration", + "scope": 6495, + "src": "16954:20:18", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16954:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6485, + "nodeType": "ArrayTypeName", + "src": "16954:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6488, + "mutability": "mutable", + "name": "pos", + "nameLocation": "16984:3:18", + "nodeType": "VariableDeclaration", + "scope": 6495, + "src": "16976:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6487, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16976:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16953:35:18" + }, + "returnParameters": { + "id": 6492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6491, + "mutability": "mutable", + "name": "res", + "nameLocation": "17020:3:18", + "nodeType": "VariableDeclaration", + "scope": 6495, + "src": "17012:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17012:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17011:13:18" + }, + "scope": 6529, + "src": "16926:197:18", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6505, + "nodeType": "Block", + "src": "17439:88:18", + "statements": [ + { + "AST": { + "nativeSrc": "17474:47:18", + "nodeType": "YulBlock", + "src": "17474:47:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "array.slot", + "nativeSrc": "17495:10:18", + "nodeType": "YulIdentifier", + "src": "17495:10:18" + }, + { + "name": "len", + "nativeSrc": "17507:3:18", + "nodeType": "YulIdentifier", + "src": "17507:3:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "17488:6:18", + "nodeType": "YulIdentifier", + "src": "17488:6:18" + }, + "nativeSrc": "17488:23:18", + "nodeType": "YulFunctionCall", + "src": "17488:23:18" + }, + "nativeSrc": "17488:23:18", + "nodeType": "YulExpressionStatement", + "src": "17488:23:18" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6499, + "isOffset": false, + "isSlot": true, + "src": "17495:10:18", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 6501, + "isOffset": false, + "isSlot": false, + "src": "17507:3:18", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6504, + "nodeType": "InlineAssembly", + "src": "17449:72:18" + } + ] + }, + "documentation": { + "id": 6496, + "nodeType": "StructuredDocumentation", + "src": "17129:233:18", + "text": " @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased." + }, + "id": 6506, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeSetLength", + "nameLocation": "17376:15:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6499, + "mutability": "mutable", + "name": "array", + "nameLocation": "17410:5:18", + "nodeType": "VariableDeclaration", + "scope": 6506, + "src": "17392:23:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 6497, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17392:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6498, + "nodeType": "ArrayTypeName", + "src": "17392:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6501, + "mutability": "mutable", + "name": "len", + "nameLocation": "17425:3:18", + "nodeType": "VariableDeclaration", + "scope": 6506, + "src": "17417:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6500, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17417:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17391:38:18" + }, + "returnParameters": { + "id": 6503, + "nodeType": "ParameterList", + "parameters": [], + "src": "17439:0:18" + }, + "scope": 6529, + "src": "17367:160:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6516, + "nodeType": "Block", + "src": "17843:88:18", + "statements": [ + { + "AST": { + "nativeSrc": "17878:47:18", + "nodeType": "YulBlock", + "src": "17878:47:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "array.slot", + "nativeSrc": "17899:10:18", + "nodeType": "YulIdentifier", + "src": "17899:10:18" + }, + { + "name": "len", + "nativeSrc": "17911:3:18", + "nodeType": "YulIdentifier", + "src": "17911:3:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "17892:6:18", + "nodeType": "YulIdentifier", + "src": "17892:6:18" + }, + "nativeSrc": "17892:23:18", + "nodeType": "YulFunctionCall", + "src": "17892:23:18" + }, + "nativeSrc": "17892:23:18", + "nodeType": "YulExpressionStatement", + "src": "17892:23:18" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6510, + "isOffset": false, + "isSlot": true, + "src": "17899:10:18", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 6512, + "isOffset": false, + "isSlot": false, + "src": "17911:3:18", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6515, + "nodeType": "InlineAssembly", + "src": "17853:72:18" + } + ] + }, + "documentation": { + "id": 6507, + "nodeType": "StructuredDocumentation", + "src": "17533:233:18", + "text": " @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased." + }, + "id": 6517, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeSetLength", + "nameLocation": "17780:15:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6510, + "mutability": "mutable", + "name": "array", + "nameLocation": "17814:5:18", + "nodeType": "VariableDeclaration", + "scope": 6517, + "src": "17796:23:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 6508, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "17796:7:18", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 6509, + "nodeType": "ArrayTypeName", + "src": "17796:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6512, + "mutability": "mutable", + "name": "len", + "nameLocation": "17829:3:18", + "nodeType": "VariableDeclaration", + "scope": 6517, + "src": "17821:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6511, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17821:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17795:38:18" + }, + "returnParameters": { + "id": 6514, + "nodeType": "ParameterList", + "parameters": [], + "src": "17843:0:18" + }, + "scope": 6529, + "src": "17771:160:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6527, + "nodeType": "Block", + "src": "18247:88:18", + "statements": [ + { + "AST": { + "nativeSrc": "18282:47:18", + "nodeType": "YulBlock", + "src": "18282:47:18", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "array.slot", + "nativeSrc": "18303:10:18", + "nodeType": "YulIdentifier", + "src": "18303:10:18" + }, + { + "name": "len", + "nativeSrc": "18315:3:18", + "nodeType": "YulIdentifier", + "src": "18315:3:18" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "18296:6:18", + "nodeType": "YulIdentifier", + "src": "18296:6:18" + }, + "nativeSrc": "18296:23:18", + "nodeType": "YulFunctionCall", + "src": "18296:23:18" + }, + "nativeSrc": "18296:23:18", + "nodeType": "YulExpressionStatement", + "src": "18296:23:18" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6521, + "isOffset": false, + "isSlot": true, + "src": "18303:10:18", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 6523, + "isOffset": false, + "isSlot": false, + "src": "18315:3:18", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6526, + "nodeType": "InlineAssembly", + "src": "18257:72:18" + } + ] + }, + "documentation": { + "id": 6518, + "nodeType": "StructuredDocumentation", + "src": "17937:233:18", + "text": " @dev Helper to set the length of a dynamic array. Directly writing to `.length` is forbidden.\n WARNING: this does not clear elements if length is reduced, of initialize elements if length is increased." + }, + "id": 6528, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsafeSetLength", + "nameLocation": "18184:15:18", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6524, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6521, + "mutability": "mutable", + "name": "array", + "nameLocation": "18218:5:18", + "nodeType": "VariableDeclaration", + "scope": 6528, + "src": "18200:23:18", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6519, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18200:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6520, + "nodeType": "ArrayTypeName", + "src": "18200:9:18", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6523, + "mutability": "mutable", + "name": "len", + "nameLocation": "18233:3:18", + "nodeType": "VariableDeclaration", + "scope": 6528, + "src": "18225:11:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6522, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18225:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "18199:38:18" + }, + "returnParameters": { + "id": 6525, + "nodeType": "ParameterList", + "parameters": [], + "src": "18247:0:18" + }, + "scope": 6529, + "src": "18175:160:18", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6530, + "src": "459:17878:18", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "183:18155:18" + }, + "id": 18 + }, + "@openzeppelin/contracts/utils/Comparators.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Comparators.sol", + "exportedSymbols": { + "Comparators": [ + 6561 + ] + }, + "id": 6562, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6531, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "105:24:19" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Comparators", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 6532, + "nodeType": "StructuredDocumentation", + "src": "131:92:19", + "text": " @dev Provides a set of functions to compare values.\n _Available since v5.1._" + }, + "fullyImplemented": true, + "id": 6561, + "linearizedBaseContracts": [ + 6561 + ], + "name": "Comparators", + "nameLocation": "232:11:19", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 6545, + "nodeType": "Block", + "src": "313:29:19", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6541, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6534, + "src": "330:1:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 6542, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6536, + "src": "334:1:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "330:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 6540, + "id": 6544, + "nodeType": "Return", + "src": "323:12:19" + } + ] + }, + "id": 6546, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "lt", + "nameLocation": "259:2:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6534, + "mutability": "mutable", + "name": "a", + "nameLocation": "270:1:19", + "nodeType": "VariableDeclaration", + "scope": 6546, + "src": "262:9:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6533, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "262:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6536, + "mutability": "mutable", + "name": "b", + "nameLocation": "281:1:19", + "nodeType": "VariableDeclaration", + "scope": 6546, + "src": "273:9:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6535, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "273:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "261:22:19" + }, + "returnParameters": { + "id": 6540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6539, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6546, + "src": "307:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6538, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "307:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "306:6:19" + }, + "scope": 6561, + "src": "250:92:19", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6559, + "nodeType": "Block", + "src": "411:29:19", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6555, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6548, + "src": "428:1:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 6556, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6550, + "src": "432:1:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "428:5:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 6554, + "id": 6558, + "nodeType": "Return", + "src": "421:12:19" + } + ] + }, + "id": 6560, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "gt", + "nameLocation": "357:2:19", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6548, + "mutability": "mutable", + "name": "a", + "nameLocation": "368:1:19", + "nodeType": "VariableDeclaration", + "scope": 6560, + "src": "360:9:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6547, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "360:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6550, + "mutability": "mutable", + "name": "b", + "nameLocation": "379:1:19", + "nodeType": "VariableDeclaration", + "scope": 6560, + "src": "371:9:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6549, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "371:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "359:22:19" + }, + "returnParameters": { + "id": 6554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6553, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6560, + "src": "405:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6552, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "405:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "404:6:19" + }, + "scope": 6561, + "src": "348:92:19", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6562, + "src": "224:218:19", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "105:338:19" + }, + "id": 19 + }, + "@openzeppelin/contracts/utils/Panic.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Panic.sol", + "exportedSymbols": { + "Panic": [ + 6613 + ] + }, + "id": 6614, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6563, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "99:24:20" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Panic", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 6564, + "nodeType": "StructuredDocumentation", + "src": "125:489:20", + "text": " @dev Helper library for emitting standardized panic codes.\n ```solidity\n contract Example {\n using Panic for uint256;\n // Use any of the declared internal constants\n function foo() { Panic.GENERIC.panic(); }\n // Alternatively\n function foo() { Panic.panic(Panic.GENERIC); }\n }\n ```\n Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil].\n _Available since v5.1._" + }, + "fullyImplemented": true, + "id": 6613, + "linearizedBaseContracts": [ + 6613 + ], + "name": "Panic", + "nameLocation": "665:5:20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 6565, + "nodeType": "StructuredDocumentation", + "src": "677:36:20", + "text": "@dev generic / unspecified error" + }, + "id": 6568, + "mutability": "constant", + "name": "GENERIC", + "nameLocation": "744:7:20", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "718:40:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6566, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "718:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783030", + "id": 6567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "754:4:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0x00" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6569, + "nodeType": "StructuredDocumentation", + "src": "764:37:20", + "text": "@dev used by the assert() builtin" + }, + "id": 6572, + "mutability": "constant", + "name": "ASSERT", + "nameLocation": "832:6:20", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "806:39:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "806:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783031", + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "841:4:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "0x01" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6573, + "nodeType": "StructuredDocumentation", + "src": "851:41:20", + "text": "@dev arithmetic underflow or overflow" + }, + "id": 6576, + "mutability": "constant", + "name": "UNDER_OVERFLOW", + "nameLocation": "923:14:20", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "897:47:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6574, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "897:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783131", + "id": 6575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "940:4:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_17_by_1", + "typeString": "int_const 17" + }, + "value": "0x11" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6577, + "nodeType": "StructuredDocumentation", + "src": "950:35:20", + "text": "@dev division or modulo by zero" + }, + "id": 6580, + "mutability": "constant", + "name": "DIVISION_BY_ZERO", + "nameLocation": "1016:16:20", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "990:49:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6578, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "990:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783132", + "id": 6579, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1035:4:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "0x12" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6581, + "nodeType": "StructuredDocumentation", + "src": "1045:30:20", + "text": "@dev enum conversion error" + }, + "id": 6584, + "mutability": "constant", + "name": "ENUM_CONVERSION_ERROR", + "nameLocation": "1106:21:20", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "1080:54:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1080:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783231", + "id": 6583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1130:4:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_33_by_1", + "typeString": "int_const 33" + }, + "value": "0x21" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6585, + "nodeType": "StructuredDocumentation", + "src": "1140:36:20", + "text": "@dev invalid encoding in storage" + }, + "id": 6588, + "mutability": "constant", + "name": "STORAGE_ENCODING_ERROR", + "nameLocation": "1207:22:20", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "1181:55:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6586, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1181:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783232", + "id": 6587, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1232:4:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_34_by_1", + "typeString": "int_const 34" + }, + "value": "0x22" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6589, + "nodeType": "StructuredDocumentation", + "src": "1242:24:20", + "text": "@dev empty array pop" + }, + "id": 6592, + "mutability": "constant", + "name": "EMPTY_ARRAY_POP", + "nameLocation": "1297:15:20", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "1271:48:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6590, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1271:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783331", + "id": 6591, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1315:4:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_49_by_1", + "typeString": "int_const 49" + }, + "value": "0x31" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6593, + "nodeType": "StructuredDocumentation", + "src": "1325:35:20", + "text": "@dev array out of bounds access" + }, + "id": 6596, + "mutability": "constant", + "name": "ARRAY_OUT_OF_BOUNDS", + "nameLocation": "1391:19:20", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "1365:52:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1365:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783332", + "id": 6595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1413:4:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_50_by_1", + "typeString": "int_const 50" + }, + "value": "0x32" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6597, + "nodeType": "StructuredDocumentation", + "src": "1423:65:20", + "text": "@dev resource error (too large allocation or too large array)" + }, + "id": 6600, + "mutability": "constant", + "name": "RESOURCE_ERROR", + "nameLocation": "1519:14:20", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "1493:47:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6598, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1493:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783431", + "id": 6599, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1536:4:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_65_by_1", + "typeString": "int_const 65" + }, + "value": "0x41" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 6601, + "nodeType": "StructuredDocumentation", + "src": "1546:42:20", + "text": "@dev calling invalid internal function" + }, + "id": 6604, + "mutability": "constant", + "name": "INVALID_INTERNAL_FUNCTION", + "nameLocation": "1619:25:20", + "nodeType": "VariableDeclaration", + "scope": 6613, + "src": "1593:58:20", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6602, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1593:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30783531", + "id": 6603, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1647:4:20", + "typeDescriptions": { + "typeIdentifier": "t_rational_81_by_1", + "typeString": "int_const 81" + }, + "value": "0x51" + }, + "visibility": "internal" + }, + { + "body": { + "id": 6611, + "nodeType": "Block", + "src": "1819:151:20", + "statements": [ + { + "AST": { + "nativeSrc": "1854:110:20", + "nodeType": "YulBlock", + "src": "1854:110:20", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1875:4:20", + "nodeType": "YulLiteral", + "src": "1875:4:20", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "1881:10:20", + "nodeType": "YulLiteral", + "src": "1881:10:20", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1868:6:20", + "nodeType": "YulIdentifier", + "src": "1868:6:20" + }, + "nativeSrc": "1868:24:20", + "nodeType": "YulFunctionCall", + "src": "1868:24:20" + }, + "nativeSrc": "1868:24:20", + "nodeType": "YulExpressionStatement", + "src": "1868:24:20" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1912:4:20", + "nodeType": "YulLiteral", + "src": "1912:4:20", + "type": "", + "value": "0x20" + }, + { + "name": "code", + "nativeSrc": "1918:4:20", + "nodeType": "YulIdentifier", + "src": "1918:4:20" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1905:6:20", + "nodeType": "YulIdentifier", + "src": "1905:6:20" + }, + "nativeSrc": "1905:18:20", + "nodeType": "YulFunctionCall", + "src": "1905:18:20" + }, + "nativeSrc": "1905:18:20", + "nodeType": "YulExpressionStatement", + "src": "1905:18:20" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1943:4:20", + "nodeType": "YulLiteral", + "src": "1943:4:20", + "type": "", + "value": "0x1c" + }, + { + "kind": "number", + "nativeSrc": "1949:4:20", + "nodeType": "YulLiteral", + "src": "1949:4:20", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1936:6:20", + "nodeType": "YulIdentifier", + "src": "1936:6:20" + }, + "nativeSrc": "1936:18:20", + "nodeType": "YulFunctionCall", + "src": "1936:18:20" + }, + "nativeSrc": "1936:18:20", + "nodeType": "YulExpressionStatement", + "src": "1936:18:20" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6607, + "isOffset": false, + "isSlot": false, + "src": "1918:4:20", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6610, + "nodeType": "InlineAssembly", + "src": "1829:135:20" + } + ] + }, + "documentation": { + "id": 6605, + "nodeType": "StructuredDocumentation", + "src": "1658:113:20", + "text": "@dev Reverts with a panic code. Recommended to use with\n the internal constants with predefined codes." + }, + "id": 6612, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "panic", + "nameLocation": "1785:5:20", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6607, + "mutability": "mutable", + "name": "code", + "nameLocation": "1799:4:20", + "nodeType": "VariableDeclaration", + "scope": 6612, + "src": "1791:12:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6606, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1791:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1790:14:20" + }, + "returnParameters": { + "id": 6609, + "nodeType": "ParameterList", + "parameters": [], + "src": "1819:0:20" + }, + "scope": 6613, + "src": "1776:194:20", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6614, + "src": "657:1315:20", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "99:1874:20" + }, + "id": 20 + }, + "@openzeppelin/contracts/utils/SlotDerivation.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/SlotDerivation.sol", + "exportedSymbols": { + "SlotDerivation": [ + 6743 + ] + }, + "id": 6744, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6615, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "199:24:21" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SlotDerivation", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 6616, + "nodeType": "StructuredDocumentation", + "src": "225:1373:21", + "text": " @dev Library for computing storage (and transient storage) locations from namespaces and deriving slots\n corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by\n the solidity language / compiler.\n See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.].\n Example usage:\n ```solidity\n contract Example {\n // Add the library methods\n using StorageSlot for bytes32;\n using SlotDerivation for bytes32;\n // Declare a namespace\n string private constant _NAMESPACE = \"\"; // eg. OpenZeppelin.Slot\n function setValueInNamespace(uint256 key, address newValue) internal {\n _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue;\n }\n function getValueInNamespace(uint256 key) internal view returns (address) {\n return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value;\n }\n }\n ```\n TIP: Consider using this library along with {StorageSlot}.\n NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking\n upgrade safety will ignore the slots accessed through this library.\n _Available since v5.1._" + }, + "fullyImplemented": true, + "id": 6743, + "linearizedBaseContracts": [ + 6743 + ], + "name": "SlotDerivation", + "nameLocation": "1607:14:21", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 6625, + "nodeType": "Block", + "src": "1790:194:21", + "statements": [ + { + "AST": { + "nativeSrc": "1825:153:21", + "nodeType": "YulBlock", + "src": "1825:153:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1846:4:21", + "nodeType": "YulLiteral", + "src": "1846:4:21", + "type": "", + "value": "0x00" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "namespace", + "nativeSrc": "1870:9:21", + "nodeType": "YulIdentifier", + "src": "1870:9:21" + }, + { + "kind": "number", + "nativeSrc": "1881:4:21", + "nodeType": "YulLiteral", + "src": "1881:4:21", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1866:3:21", + "nodeType": "YulIdentifier", + "src": "1866:3:21" + }, + "nativeSrc": "1866:20:21", + "nodeType": "YulFunctionCall", + "src": "1866:20:21" + }, + { + "arguments": [ + { + "name": "namespace", + "nativeSrc": "1894:9:21", + "nodeType": "YulIdentifier", + "src": "1894:9:21" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1888:5:21", + "nodeType": "YulIdentifier", + "src": "1888:5:21" + }, + "nativeSrc": "1888:16:21", + "nodeType": "YulFunctionCall", + "src": "1888:16:21" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "1856:9:21", + "nodeType": "YulIdentifier", + "src": "1856:9:21" + }, + "nativeSrc": "1856:49:21", + "nodeType": "YulFunctionCall", + "src": "1856:49:21" + }, + { + "kind": "number", + "nativeSrc": "1907:1:21", + "nodeType": "YulLiteral", + "src": "1907:1:21", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1852:3:21", + "nodeType": "YulIdentifier", + "src": "1852:3:21" + }, + "nativeSrc": "1852:57:21", + "nodeType": "YulFunctionCall", + "src": "1852:57:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1839:6:21", + "nodeType": "YulIdentifier", + "src": "1839:6:21" + }, + "nativeSrc": "1839:71:21", + "nodeType": "YulFunctionCall", + "src": "1839:71:21" + }, + "nativeSrc": "1839:71:21", + "nodeType": "YulExpressionStatement", + "src": "1839:71:21" + }, + { + "nativeSrc": "1923:45:21", + "nodeType": "YulAssignment", + "src": "1923:45:21", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1945:4:21", + "nodeType": "YulLiteral", + "src": "1945:4:21", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "1951:4:21", + "nodeType": "YulLiteral", + "src": "1951:4:21", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "1935:9:21", + "nodeType": "YulIdentifier", + "src": "1935:9:21" + }, + "nativeSrc": "1935:21:21", + "nodeType": "YulFunctionCall", + "src": "1935:21:21" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1962:4:21", + "nodeType": "YulLiteral", + "src": "1962:4:21", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1958:3:21", + "nodeType": "YulIdentifier", + "src": "1958:3:21" + }, + "nativeSrc": "1958:9:21", + "nodeType": "YulFunctionCall", + "src": "1958:9:21" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1931:3:21", + "nodeType": "YulIdentifier", + "src": "1931:3:21" + }, + "nativeSrc": "1931:37:21", + "nodeType": "YulFunctionCall", + "src": "1931:37:21" + }, + "variableNames": [ + { + "name": "slot", + "nativeSrc": "1923:4:21", + "nodeType": "YulIdentifier", + "src": "1923:4:21" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6619, + "isOffset": false, + "isSlot": false, + "src": "1870:9:21", + "valueSize": 1 + }, + { + "declaration": 6619, + "isOffset": false, + "isSlot": false, + "src": "1894:9:21", + "valueSize": 1 + }, + { + "declaration": 6622, + "isOffset": false, + "isSlot": false, + "src": "1923:4:21", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6624, + "nodeType": "InlineAssembly", + "src": "1800:178:21" + } + ] + }, + "documentation": { + "id": 6617, + "nodeType": "StructuredDocumentation", + "src": "1628:74:21", + "text": " @dev Derive an ERC-7201 slot from a string (namespace)." + }, + "id": 6626, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "erc7201Slot", + "nameLocation": "1716:11:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6619, + "mutability": "mutable", + "name": "namespace", + "nameLocation": "1742:9:21", + "nodeType": "VariableDeclaration", + "scope": 6626, + "src": "1728:23:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6618, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1728:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1727:25:21" + }, + "returnParameters": { + "id": 6623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6622, + "mutability": "mutable", + "name": "slot", + "nameLocation": "1784:4:21", + "nodeType": "VariableDeclaration", + "scope": 6626, + "src": "1776:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6621, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1776:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1775:14:21" + }, + "scope": 6743, + "src": "1707:277:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6647, + "nodeType": "Block", + "src": "2176:86:21", + "statements": [ + { + "id": 6646, + "nodeType": "UncheckedBlock", + "src": "2186:70:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6640, + "name": "slot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6629, + "src": "2233:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 6639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2225:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 6638, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2225:7:21", + "typeDescriptions": {} + } + }, + "id": 6641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2225:13:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 6642, + "name": "pos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6631, + "src": "2241:3:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2225:19:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2217:7:21", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 6636, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2217:7:21", + "typeDescriptions": {} + } + }, + "id": 6644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2217:28:21", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 6635, + "id": 6645, + "nodeType": "Return", + "src": "2210:35:21" + } + ] + } + ] + }, + "documentation": { + "id": 6627, + "nodeType": "StructuredDocumentation", + "src": "1990:99:21", + "text": " @dev Add an offset to a slot to get the n-th element of a structure or an array." + }, + "id": 6648, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "offset", + "nameLocation": "2103:6:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6632, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6629, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2118:4:21", + "nodeType": "VariableDeclaration", + "scope": 6648, + "src": "2110:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6628, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2110:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6631, + "mutability": "mutable", + "name": "pos", + "nameLocation": "2132:3:21", + "nodeType": "VariableDeclaration", + "scope": 6648, + "src": "2124:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6630, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2124:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2109:27:21" + }, + "returnParameters": { + "id": 6635, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6634, + "mutability": "mutable", + "name": "result", + "nameLocation": "2168:6:21", + "nodeType": "VariableDeclaration", + "scope": 6648, + "src": "2160:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6633, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2160:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2159:16:21" + }, + "scope": 6743, + "src": "2094:168:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6657, + "nodeType": "Block", + "src": "2465:127:21", + "statements": [ + { + "AST": { + "nativeSrc": "2500:86:21", + "nodeType": "YulBlock", + "src": "2500:86:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2521:4:21", + "nodeType": "YulLiteral", + "src": "2521:4:21", + "type": "", + "value": "0x00" + }, + { + "name": "slot", + "nativeSrc": "2527:4:21", + "nodeType": "YulIdentifier", + "src": "2527:4:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2514:6:21", + "nodeType": "YulIdentifier", + "src": "2514:6:21" + }, + "nativeSrc": "2514:18:21", + "nodeType": "YulFunctionCall", + "src": "2514:18:21" + }, + "nativeSrc": "2514:18:21", + "nodeType": "YulExpressionStatement", + "src": "2514:18:21" + }, + { + "nativeSrc": "2545:31:21", + "nodeType": "YulAssignment", + "src": "2545:31:21", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2565:4:21", + "nodeType": "YulLiteral", + "src": "2565:4:21", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "2571:4:21", + "nodeType": "YulLiteral", + "src": "2571:4:21", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "2555:9:21", + "nodeType": "YulIdentifier", + "src": "2555:9:21" + }, + "nativeSrc": "2555:21:21", + "nodeType": "YulFunctionCall", + "src": "2555:21:21" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "2545:6:21", + "nodeType": "YulIdentifier", + "src": "2545:6:21" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6654, + "isOffset": false, + "isSlot": false, + "src": "2545:6:21", + "valueSize": 1 + }, + { + "declaration": 6651, + "isOffset": false, + "isSlot": false, + "src": "2527:4:21", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6656, + "nodeType": "InlineAssembly", + "src": "2475:111:21" + } + ] + }, + "documentation": { + "id": 6649, + "nodeType": "StructuredDocumentation", + "src": "2268:118:21", + "text": " @dev Derive the location of the first element in an array from the slot where the length is stored." + }, + "id": 6658, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deriveArray", + "nameLocation": "2400:11:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6651, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2420:4:21", + "nodeType": "VariableDeclaration", + "scope": 6658, + "src": "2412:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6650, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2412:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2411:14:21" + }, + "returnParameters": { + "id": 6655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6654, + "mutability": "mutable", + "name": "result", + "nameLocation": "2457:6:21", + "nodeType": "VariableDeclaration", + "scope": 6658, + "src": "2449:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6653, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2449:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2448:16:21" + }, + "scope": 6743, + "src": "2391:201:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6669, + "nodeType": "Block", + "src": "2770:179:21", + "statements": [ + { + "AST": { + "nativeSrc": "2805:138:21", + "nodeType": "YulBlock", + "src": "2805:138:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2826:4:21", + "nodeType": "YulLiteral", + "src": "2826:4:21", + "type": "", + "value": "0x00" + }, + { + "arguments": [ + { + "name": "key", + "nativeSrc": "2836:3:21", + "nodeType": "YulIdentifier", + "src": "2836:3:21" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2845:2:21", + "nodeType": "YulLiteral", + "src": "2845:2:21", + "type": "", + "value": "96" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2853:1:21", + "nodeType": "YulLiteral", + "src": "2853:1:21", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "2849:3:21", + "nodeType": "YulIdentifier", + "src": "2849:3:21" + }, + "nativeSrc": "2849:6:21", + "nodeType": "YulFunctionCall", + "src": "2849:6:21" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "2841:3:21", + "nodeType": "YulIdentifier", + "src": "2841:3:21" + }, + "nativeSrc": "2841:15:21", + "nodeType": "YulFunctionCall", + "src": "2841:15:21" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2832:3:21", + "nodeType": "YulIdentifier", + "src": "2832:3:21" + }, + "nativeSrc": "2832:25:21", + "nodeType": "YulFunctionCall", + "src": "2832:25:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2819:6:21", + "nodeType": "YulIdentifier", + "src": "2819:6:21" + }, + "nativeSrc": "2819:39:21", + "nodeType": "YulFunctionCall", + "src": "2819:39:21" + }, + "nativeSrc": "2819:39:21", + "nodeType": "YulExpressionStatement", + "src": "2819:39:21" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2878:4:21", + "nodeType": "YulLiteral", + "src": "2878:4:21", + "type": "", + "value": "0x20" + }, + { + "name": "slot", + "nativeSrc": "2884:4:21", + "nodeType": "YulIdentifier", + "src": "2884:4:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2871:6:21", + "nodeType": "YulIdentifier", + "src": "2871:6:21" + }, + "nativeSrc": "2871:18:21", + "nodeType": "YulFunctionCall", + "src": "2871:18:21" + }, + "nativeSrc": "2871:18:21", + "nodeType": "YulExpressionStatement", + "src": "2871:18:21" + }, + { + "nativeSrc": "2902:31:21", + "nodeType": "YulAssignment", + "src": "2902:31:21", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2922:4:21", + "nodeType": "YulLiteral", + "src": "2922:4:21", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "2928:4:21", + "nodeType": "YulLiteral", + "src": "2928:4:21", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "2912:9:21", + "nodeType": "YulIdentifier", + "src": "2912:9:21" + }, + "nativeSrc": "2912:21:21", + "nodeType": "YulFunctionCall", + "src": "2912:21:21" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "2902:6:21", + "nodeType": "YulIdentifier", + "src": "2902:6:21" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6663, + "isOffset": false, + "isSlot": false, + "src": "2836:3:21", + "valueSize": 1 + }, + { + "declaration": 6666, + "isOffset": false, + "isSlot": false, + "src": "2902:6:21", + "valueSize": 1 + }, + { + "declaration": 6661, + "isOffset": false, + "isSlot": false, + "src": "2884:4:21", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6668, + "nodeType": "InlineAssembly", + "src": "2780:163:21" + } + ] + }, + "documentation": { + "id": 6659, + "nodeType": "StructuredDocumentation", + "src": "2598:78:21", + "text": " @dev Derive the location of a mapping element from the key." + }, + "id": 6670, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deriveMapping", + "nameLocation": "2690:13:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6661, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2712:4:21", + "nodeType": "VariableDeclaration", + "scope": 6670, + "src": "2704:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6660, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2704:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6663, + "mutability": "mutable", + "name": "key", + "nameLocation": "2726:3:21", + "nodeType": "VariableDeclaration", + "scope": 6670, + "src": "2718:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2718:7:21", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2703:27:21" + }, + "returnParameters": { + "id": 6667, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6666, + "mutability": "mutable", + "name": "result", + "nameLocation": "2762:6:21", + "nodeType": "VariableDeclaration", + "scope": 6670, + "src": "2754:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6665, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2754:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2753:16:21" + }, + "scope": 6743, + "src": "2681:268:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6681, + "nodeType": "Block", + "src": "3124:173:21", + "statements": [ + { + "AST": { + "nativeSrc": "3159:132:21", + "nodeType": "YulBlock", + "src": "3159:132:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3180:4:21", + "nodeType": "YulLiteral", + "src": "3180:4:21", + "type": "", + "value": "0x00" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "key", + "nativeSrc": "3200:3:21", + "nodeType": "YulIdentifier", + "src": "3200:3:21" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3193:6:21", + "nodeType": "YulIdentifier", + "src": "3193:6:21" + }, + "nativeSrc": "3193:11:21", + "nodeType": "YulFunctionCall", + "src": "3193:11:21" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3186:6:21", + "nodeType": "YulIdentifier", + "src": "3186:6:21" + }, + "nativeSrc": "3186:19:21", + "nodeType": "YulFunctionCall", + "src": "3186:19:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3173:6:21", + "nodeType": "YulIdentifier", + "src": "3173:6:21" + }, + "nativeSrc": "3173:33:21", + "nodeType": "YulFunctionCall", + "src": "3173:33:21" + }, + "nativeSrc": "3173:33:21", + "nodeType": "YulExpressionStatement", + "src": "3173:33:21" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3226:4:21", + "nodeType": "YulLiteral", + "src": "3226:4:21", + "type": "", + "value": "0x20" + }, + { + "name": "slot", + "nativeSrc": "3232:4:21", + "nodeType": "YulIdentifier", + "src": "3232:4:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3219:6:21", + "nodeType": "YulIdentifier", + "src": "3219:6:21" + }, + "nativeSrc": "3219:18:21", + "nodeType": "YulFunctionCall", + "src": "3219:18:21" + }, + "nativeSrc": "3219:18:21", + "nodeType": "YulExpressionStatement", + "src": "3219:18:21" + }, + { + "nativeSrc": "3250:31:21", + "nodeType": "YulAssignment", + "src": "3250:31:21", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3270:4:21", + "nodeType": "YulLiteral", + "src": "3270:4:21", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "3276:4:21", + "nodeType": "YulLiteral", + "src": "3276:4:21", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3260:9:21", + "nodeType": "YulIdentifier", + "src": "3260:9:21" + }, + "nativeSrc": "3260:21:21", + "nodeType": "YulFunctionCall", + "src": "3260:21:21" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "3250:6:21", + "nodeType": "YulIdentifier", + "src": "3250:6:21" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6675, + "isOffset": false, + "isSlot": false, + "src": "3200:3:21", + "valueSize": 1 + }, + { + "declaration": 6678, + "isOffset": false, + "isSlot": false, + "src": "3250:6:21", + "valueSize": 1 + }, + { + "declaration": 6673, + "isOffset": false, + "isSlot": false, + "src": "3232:4:21", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6680, + "nodeType": "InlineAssembly", + "src": "3134:157:21" + } + ] + }, + "documentation": { + "id": 6671, + "nodeType": "StructuredDocumentation", + "src": "2955:78:21", + "text": " @dev Derive the location of a mapping element from the key." + }, + "id": 6682, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deriveMapping", + "nameLocation": "3047:13:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6673, + "mutability": "mutable", + "name": "slot", + "nameLocation": "3069:4:21", + "nodeType": "VariableDeclaration", + "scope": 6682, + "src": "3061:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6672, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3061:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6675, + "mutability": "mutable", + "name": "key", + "nameLocation": "3080:3:21", + "nodeType": "VariableDeclaration", + "scope": 6682, + "src": "3075:8:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6674, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3075:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "3060:24:21" + }, + "returnParameters": { + "id": 6679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6678, + "mutability": "mutable", + "name": "result", + "nameLocation": "3116:6:21", + "nodeType": "VariableDeclaration", + "scope": 6682, + "src": "3108:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6677, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3108:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3107:16:21" + }, + "scope": 6743, + "src": "3038:259:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6693, + "nodeType": "Block", + "src": "3475:157:21", + "statements": [ + { + "AST": { + "nativeSrc": "3510:116:21", + "nodeType": "YulBlock", + "src": "3510:116:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3531:4:21", + "nodeType": "YulLiteral", + "src": "3531:4:21", + "type": "", + "value": "0x00" + }, + { + "name": "key", + "nativeSrc": "3537:3:21", + "nodeType": "YulIdentifier", + "src": "3537:3:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3524:6:21", + "nodeType": "YulIdentifier", + "src": "3524:6:21" + }, + "nativeSrc": "3524:17:21", + "nodeType": "YulFunctionCall", + "src": "3524:17:21" + }, + "nativeSrc": "3524:17:21", + "nodeType": "YulExpressionStatement", + "src": "3524:17:21" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3561:4:21", + "nodeType": "YulLiteral", + "src": "3561:4:21", + "type": "", + "value": "0x20" + }, + { + "name": "slot", + "nativeSrc": "3567:4:21", + "nodeType": "YulIdentifier", + "src": "3567:4:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3554:6:21", + "nodeType": "YulIdentifier", + "src": "3554:6:21" + }, + "nativeSrc": "3554:18:21", + "nodeType": "YulFunctionCall", + "src": "3554:18:21" + }, + "nativeSrc": "3554:18:21", + "nodeType": "YulExpressionStatement", + "src": "3554:18:21" + }, + { + "nativeSrc": "3585:31:21", + "nodeType": "YulAssignment", + "src": "3585:31:21", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3605:4:21", + "nodeType": "YulLiteral", + "src": "3605:4:21", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "3611:4:21", + "nodeType": "YulLiteral", + "src": "3611:4:21", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3595:9:21", + "nodeType": "YulIdentifier", + "src": "3595:9:21" + }, + "nativeSrc": "3595:21:21", + "nodeType": "YulFunctionCall", + "src": "3595:21:21" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "3585:6:21", + "nodeType": "YulIdentifier", + "src": "3585:6:21" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6687, + "isOffset": false, + "isSlot": false, + "src": "3537:3:21", + "valueSize": 1 + }, + { + "declaration": 6690, + "isOffset": false, + "isSlot": false, + "src": "3585:6:21", + "valueSize": 1 + }, + { + "declaration": 6685, + "isOffset": false, + "isSlot": false, + "src": "3567:4:21", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6692, + "nodeType": "InlineAssembly", + "src": "3485:141:21" + } + ] + }, + "documentation": { + "id": 6683, + "nodeType": "StructuredDocumentation", + "src": "3303:78:21", + "text": " @dev Derive the location of a mapping element from the key." + }, + "id": 6694, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deriveMapping", + "nameLocation": "3395:13:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6688, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6685, + "mutability": "mutable", + "name": "slot", + "nameLocation": "3417:4:21", + "nodeType": "VariableDeclaration", + "scope": 6694, + "src": "3409:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6684, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3409:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6687, + "mutability": "mutable", + "name": "key", + "nameLocation": "3431:3:21", + "nodeType": "VariableDeclaration", + "scope": 6694, + "src": "3423:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6686, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3423:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3408:27:21" + }, + "returnParameters": { + "id": 6691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6690, + "mutability": "mutable", + "name": "result", + "nameLocation": "3467:6:21", + "nodeType": "VariableDeclaration", + "scope": 6694, + "src": "3459:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6689, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3459:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3458:16:21" + }, + "scope": 6743, + "src": "3386:246:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6705, + "nodeType": "Block", + "src": "3810:157:21", + "statements": [ + { + "AST": { + "nativeSrc": "3845:116:21", + "nodeType": "YulBlock", + "src": "3845:116:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3866:4:21", + "nodeType": "YulLiteral", + "src": "3866:4:21", + "type": "", + "value": "0x00" + }, + { + "name": "key", + "nativeSrc": "3872:3:21", + "nodeType": "YulIdentifier", + "src": "3872:3:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3859:6:21", + "nodeType": "YulIdentifier", + "src": "3859:6:21" + }, + "nativeSrc": "3859:17:21", + "nodeType": "YulFunctionCall", + "src": "3859:17:21" + }, + "nativeSrc": "3859:17:21", + "nodeType": "YulExpressionStatement", + "src": "3859:17:21" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3896:4:21", + "nodeType": "YulLiteral", + "src": "3896:4:21", + "type": "", + "value": "0x20" + }, + { + "name": "slot", + "nativeSrc": "3902:4:21", + "nodeType": "YulIdentifier", + "src": "3902:4:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3889:6:21", + "nodeType": "YulIdentifier", + "src": "3889:6:21" + }, + "nativeSrc": "3889:18:21", + "nodeType": "YulFunctionCall", + "src": "3889:18:21" + }, + "nativeSrc": "3889:18:21", + "nodeType": "YulExpressionStatement", + "src": "3889:18:21" + }, + { + "nativeSrc": "3920:31:21", + "nodeType": "YulAssignment", + "src": "3920:31:21", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3940:4:21", + "nodeType": "YulLiteral", + "src": "3940:4:21", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "3946:4:21", + "nodeType": "YulLiteral", + "src": "3946:4:21", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3930:9:21", + "nodeType": "YulIdentifier", + "src": "3930:9:21" + }, + "nativeSrc": "3930:21:21", + "nodeType": "YulFunctionCall", + "src": "3930:21:21" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "3920:6:21", + "nodeType": "YulIdentifier", + "src": "3920:6:21" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6699, + "isOffset": false, + "isSlot": false, + "src": "3872:3:21", + "valueSize": 1 + }, + { + "declaration": 6702, + "isOffset": false, + "isSlot": false, + "src": "3920:6:21", + "valueSize": 1 + }, + { + "declaration": 6697, + "isOffset": false, + "isSlot": false, + "src": "3902:4:21", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6704, + "nodeType": "InlineAssembly", + "src": "3820:141:21" + } + ] + }, + "documentation": { + "id": 6695, + "nodeType": "StructuredDocumentation", + "src": "3638:78:21", + "text": " @dev Derive the location of a mapping element from the key." + }, + "id": 6706, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deriveMapping", + "nameLocation": "3730:13:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6700, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6697, + "mutability": "mutable", + "name": "slot", + "nameLocation": "3752:4:21", + "nodeType": "VariableDeclaration", + "scope": 6706, + "src": "3744:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6696, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3744:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6699, + "mutability": "mutable", + "name": "key", + "nameLocation": "3766:3:21", + "nodeType": "VariableDeclaration", + "scope": 6706, + "src": "3758:11:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3758:7:21", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3743:27:21" + }, + "returnParameters": { + "id": 6703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6702, + "mutability": "mutable", + "name": "result", + "nameLocation": "3802:6:21", + "nodeType": "VariableDeclaration", + "scope": 6706, + "src": "3794:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6701, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3794:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3793:16:21" + }, + "scope": 6743, + "src": "3721:246:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6717, + "nodeType": "Block", + "src": "4144:157:21", + "statements": [ + { + "AST": { + "nativeSrc": "4179:116:21", + "nodeType": "YulBlock", + "src": "4179:116:21", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4200:4:21", + "nodeType": "YulLiteral", + "src": "4200:4:21", + "type": "", + "value": "0x00" + }, + { + "name": "key", + "nativeSrc": "4206:3:21", + "nodeType": "YulIdentifier", + "src": "4206:3:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4193:6:21", + "nodeType": "YulIdentifier", + "src": "4193:6:21" + }, + "nativeSrc": "4193:17:21", + "nodeType": "YulFunctionCall", + "src": "4193:17:21" + }, + "nativeSrc": "4193:17:21", + "nodeType": "YulExpressionStatement", + "src": "4193:17:21" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4230:4:21", + "nodeType": "YulLiteral", + "src": "4230:4:21", + "type": "", + "value": "0x20" + }, + { + "name": "slot", + "nativeSrc": "4236:4:21", + "nodeType": "YulIdentifier", + "src": "4236:4:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4223:6:21", + "nodeType": "YulIdentifier", + "src": "4223:6:21" + }, + "nativeSrc": "4223:18:21", + "nodeType": "YulFunctionCall", + "src": "4223:18:21" + }, + "nativeSrc": "4223:18:21", + "nodeType": "YulExpressionStatement", + "src": "4223:18:21" + }, + { + "nativeSrc": "4254:31:21", + "nodeType": "YulAssignment", + "src": "4254:31:21", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4274:4:21", + "nodeType": "YulLiteral", + "src": "4274:4:21", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "4280:4:21", + "nodeType": "YulLiteral", + "src": "4280:4:21", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "4264:9:21", + "nodeType": "YulIdentifier", + "src": "4264:9:21" + }, + "nativeSrc": "4264:21:21", + "nodeType": "YulFunctionCall", + "src": "4264:21:21" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4254:6:21", + "nodeType": "YulIdentifier", + "src": "4254:6:21" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6711, + "isOffset": false, + "isSlot": false, + "src": "4206:3:21", + "valueSize": 1 + }, + { + "declaration": 6714, + "isOffset": false, + "isSlot": false, + "src": "4254:6:21", + "valueSize": 1 + }, + { + "declaration": 6709, + "isOffset": false, + "isSlot": false, + "src": "4236:4:21", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6716, + "nodeType": "InlineAssembly", + "src": "4154:141:21" + } + ] + }, + "documentation": { + "id": 6707, + "nodeType": "StructuredDocumentation", + "src": "3973:78:21", + "text": " @dev Derive the location of a mapping element from the key." + }, + "id": 6718, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deriveMapping", + "nameLocation": "4065:13:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6709, + "mutability": "mutable", + "name": "slot", + "nameLocation": "4087:4:21", + "nodeType": "VariableDeclaration", + "scope": 6718, + "src": "4079:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6708, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4079:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6711, + "mutability": "mutable", + "name": "key", + "nameLocation": "4100:3:21", + "nodeType": "VariableDeclaration", + "scope": 6718, + "src": "4093:10:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6710, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "4093:6:21", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "4078:26:21" + }, + "returnParameters": { + "id": 6715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6714, + "mutability": "mutable", + "name": "result", + "nameLocation": "4136:6:21", + "nodeType": "VariableDeclaration", + "scope": 6718, + "src": "4128:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6713, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4128:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4127:16:21" + }, + "scope": 6743, + "src": "4056:245:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6729, + "nodeType": "Block", + "src": "4485:326:21", + "statements": [ + { + "AST": { + "nativeSrc": "4520:285:21", + "nodeType": "YulBlock", + "src": "4520:285:21", + "statements": [ + { + "nativeSrc": "4534:24:21", + "nodeType": "YulVariableDeclaration", + "src": "4534:24:21", + "value": { + "arguments": [ + { + "name": "key", + "nativeSrc": "4554:3:21", + "nodeType": "YulIdentifier", + "src": "4554:3:21" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4548:5:21", + "nodeType": "YulIdentifier", + "src": "4548:5:21" + }, + "nativeSrc": "4548:10:21", + "nodeType": "YulFunctionCall", + "src": "4548:10:21" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "4538:6:21", + "nodeType": "YulTypedName", + "src": "4538:6:21", + "type": "" + } + ] + }, + { + "nativeSrc": "4571:27:21", + "nodeType": "YulVariableDeclaration", + "src": "4571:27:21", + "value": { + "arguments": [ + { + "name": "key", + "nativeSrc": "4588:3:21", + "nodeType": "YulIdentifier", + "src": "4588:3:21" + }, + { + "kind": "number", + "nativeSrc": "4593:4:21", + "nodeType": "YulLiteral", + "src": "4593:4:21", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4584:3:21", + "nodeType": "YulIdentifier", + "src": "4584:3:21" + }, + "nativeSrc": "4584:14:21", + "nodeType": "YulFunctionCall", + "src": "4584:14:21" + }, + "variables": [ + { + "name": "begin", + "nativeSrc": "4575:5:21", + "nodeType": "YulTypedName", + "src": "4575:5:21", + "type": "" + } + ] + }, + { + "nativeSrc": "4611:29:21", + "nodeType": "YulVariableDeclaration", + "src": "4611:29:21", + "value": { + "arguments": [ + { + "name": "begin", + "nativeSrc": "4626:5:21", + "nodeType": "YulIdentifier", + "src": "4626:5:21" + }, + { + "name": "length", + "nativeSrc": "4633:6:21", + "nodeType": "YulIdentifier", + "src": "4633:6:21" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4622:3:21", + "nodeType": "YulIdentifier", + "src": "4622:3:21" + }, + "nativeSrc": "4622:18:21", + "nodeType": "YulFunctionCall", + "src": "4622:18:21" + }, + "variables": [ + { + "name": "end", + "nativeSrc": "4615:3:21", + "nodeType": "YulTypedName", + "src": "4615:3:21", + "type": "" + } + ] + }, + { + "nativeSrc": "4653:23:21", + "nodeType": "YulVariableDeclaration", + "src": "4653:23:21", + "value": { + "arguments": [ + { + "name": "end", + "nativeSrc": "4672:3:21", + "nodeType": "YulIdentifier", + "src": "4672:3:21" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4666:5:21", + "nodeType": "YulIdentifier", + "src": "4666:5:21" + }, + "nativeSrc": "4666:10:21", + "nodeType": "YulFunctionCall", + "src": "4666:10:21" + }, + "variables": [ + { + "name": "cache", + "nativeSrc": "4657:5:21", + "nodeType": "YulTypedName", + "src": "4657:5:21", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "end", + "nativeSrc": "4696:3:21", + "nodeType": "YulIdentifier", + "src": "4696:3:21" + }, + { + "name": "slot", + "nativeSrc": "4701:4:21", + "nodeType": "YulIdentifier", + "src": "4701:4:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4689:6:21", + "nodeType": "YulIdentifier", + "src": "4689:6:21" + }, + "nativeSrc": "4689:17:21", + "nodeType": "YulFunctionCall", + "src": "4689:17:21" + }, + "nativeSrc": "4689:17:21", + "nodeType": "YulExpressionStatement", + "src": "4689:17:21" + }, + { + "nativeSrc": "4719:45:21", + "nodeType": "YulAssignment", + "src": "4719:45:21", + "value": { + "arguments": [ + { + "name": "begin", + "nativeSrc": "4739:5:21", + "nodeType": "YulIdentifier", + "src": "4739:5:21" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "4750:6:21", + "nodeType": "YulIdentifier", + "src": "4750:6:21" + }, + { + "kind": "number", + "nativeSrc": "4758:4:21", + "nodeType": "YulLiteral", + "src": "4758:4:21", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4746:3:21", + "nodeType": "YulIdentifier", + "src": "4746:3:21" + }, + "nativeSrc": "4746:17:21", + "nodeType": "YulFunctionCall", + "src": "4746:17:21" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "4729:9:21", + "nodeType": "YulIdentifier", + "src": "4729:9:21" + }, + "nativeSrc": "4729:35:21", + "nodeType": "YulFunctionCall", + "src": "4729:35:21" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "4719:6:21", + "nodeType": "YulIdentifier", + "src": "4719:6:21" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "end", + "nativeSrc": "4784:3:21", + "nodeType": "YulIdentifier", + "src": "4784:3:21" + }, + { + "name": "cache", + "nativeSrc": "4789:5:21", + "nodeType": "YulIdentifier", + "src": "4789:5:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4777:6:21", + "nodeType": "YulIdentifier", + "src": "4777:6:21" + }, + "nativeSrc": "4777:18:21", + "nodeType": "YulFunctionCall", + "src": "4777:18:21" + }, + "nativeSrc": "4777:18:21", + "nodeType": "YulExpressionStatement", + "src": "4777:18:21" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6723, + "isOffset": false, + "isSlot": false, + "src": "4554:3:21", + "valueSize": 1 + }, + { + "declaration": 6723, + "isOffset": false, + "isSlot": false, + "src": "4588:3:21", + "valueSize": 1 + }, + { + "declaration": 6726, + "isOffset": false, + "isSlot": false, + "src": "4719:6:21", + "valueSize": 1 + }, + { + "declaration": 6721, + "isOffset": false, + "isSlot": false, + "src": "4701:4:21", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6728, + "nodeType": "InlineAssembly", + "src": "4495:310:21" + } + ] + }, + "documentation": { + "id": 6719, + "nodeType": "StructuredDocumentation", + "src": "4307:78:21", + "text": " @dev Derive the location of a mapping element from the key." + }, + "id": 6730, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deriveMapping", + "nameLocation": "4399:13:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6721, + "mutability": "mutable", + "name": "slot", + "nameLocation": "4421:4:21", + "nodeType": "VariableDeclaration", + "scope": 6730, + "src": "4413:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6720, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4413:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6723, + "mutability": "mutable", + "name": "key", + "nameLocation": "4441:3:21", + "nodeType": "VariableDeclaration", + "scope": 6730, + "src": "4427:17:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6722, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4427:6:21", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4412:33:21" + }, + "returnParameters": { + "id": 6727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6726, + "mutability": "mutable", + "name": "result", + "nameLocation": "4477:6:21", + "nodeType": "VariableDeclaration", + "scope": 6730, + "src": "4469:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6725, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4469:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4468:16:21" + }, + "scope": 6743, + "src": "4390:421:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6741, + "nodeType": "Block", + "src": "4994:326:21", + "statements": [ + { + "AST": { + "nativeSrc": "5029:285:21", + "nodeType": "YulBlock", + "src": "5029:285:21", + "statements": [ + { + "nativeSrc": "5043:24:21", + "nodeType": "YulVariableDeclaration", + "src": "5043:24:21", + "value": { + "arguments": [ + { + "name": "key", + "nativeSrc": "5063:3:21", + "nodeType": "YulIdentifier", + "src": "5063:3:21" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5057:5:21", + "nodeType": "YulIdentifier", + "src": "5057:5:21" + }, + "nativeSrc": "5057:10:21", + "nodeType": "YulFunctionCall", + "src": "5057:10:21" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "5047:6:21", + "nodeType": "YulTypedName", + "src": "5047:6:21", + "type": "" + } + ] + }, + { + "nativeSrc": "5080:27:21", + "nodeType": "YulVariableDeclaration", + "src": "5080:27:21", + "value": { + "arguments": [ + { + "name": "key", + "nativeSrc": "5097:3:21", + "nodeType": "YulIdentifier", + "src": "5097:3:21" + }, + { + "kind": "number", + "nativeSrc": "5102:4:21", + "nodeType": "YulLiteral", + "src": "5102:4:21", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5093:3:21", + "nodeType": "YulIdentifier", + "src": "5093:3:21" + }, + "nativeSrc": "5093:14:21", + "nodeType": "YulFunctionCall", + "src": "5093:14:21" + }, + "variables": [ + { + "name": "begin", + "nativeSrc": "5084:5:21", + "nodeType": "YulTypedName", + "src": "5084:5:21", + "type": "" + } + ] + }, + { + "nativeSrc": "5120:29:21", + "nodeType": "YulVariableDeclaration", + "src": "5120:29:21", + "value": { + "arguments": [ + { + "name": "begin", + "nativeSrc": "5135:5:21", + "nodeType": "YulIdentifier", + "src": "5135:5:21" + }, + { + "name": "length", + "nativeSrc": "5142:6:21", + "nodeType": "YulIdentifier", + "src": "5142:6:21" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5131:3:21", + "nodeType": "YulIdentifier", + "src": "5131:3:21" + }, + "nativeSrc": "5131:18:21", + "nodeType": "YulFunctionCall", + "src": "5131:18:21" + }, + "variables": [ + { + "name": "end", + "nativeSrc": "5124:3:21", + "nodeType": "YulTypedName", + "src": "5124:3:21", + "type": "" + } + ] + }, + { + "nativeSrc": "5162:23:21", + "nodeType": "YulVariableDeclaration", + "src": "5162:23:21", + "value": { + "arguments": [ + { + "name": "end", + "nativeSrc": "5181:3:21", + "nodeType": "YulIdentifier", + "src": "5181:3:21" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5175:5:21", + "nodeType": "YulIdentifier", + "src": "5175:5:21" + }, + "nativeSrc": "5175:10:21", + "nodeType": "YulFunctionCall", + "src": "5175:10:21" + }, + "variables": [ + { + "name": "cache", + "nativeSrc": "5166:5:21", + "nodeType": "YulTypedName", + "src": "5166:5:21", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "end", + "nativeSrc": "5205:3:21", + "nodeType": "YulIdentifier", + "src": "5205:3:21" + }, + { + "name": "slot", + "nativeSrc": "5210:4:21", + "nodeType": "YulIdentifier", + "src": "5210:4:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5198:6:21", + "nodeType": "YulIdentifier", + "src": "5198:6:21" + }, + "nativeSrc": "5198:17:21", + "nodeType": "YulFunctionCall", + "src": "5198:17:21" + }, + "nativeSrc": "5198:17:21", + "nodeType": "YulExpressionStatement", + "src": "5198:17:21" + }, + { + "nativeSrc": "5228:45:21", + "nodeType": "YulAssignment", + "src": "5228:45:21", + "value": { + "arguments": [ + { + "name": "begin", + "nativeSrc": "5248:5:21", + "nodeType": "YulIdentifier", + "src": "5248:5:21" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "5259:6:21", + "nodeType": "YulIdentifier", + "src": "5259:6:21" + }, + { + "kind": "number", + "nativeSrc": "5267:4:21", + "nodeType": "YulLiteral", + "src": "5267:4:21", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5255:3:21", + "nodeType": "YulIdentifier", + "src": "5255:3:21" + }, + "nativeSrc": "5255:17:21", + "nodeType": "YulFunctionCall", + "src": "5255:17:21" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "5238:9:21", + "nodeType": "YulIdentifier", + "src": "5238:9:21" + }, + "nativeSrc": "5238:35:21", + "nodeType": "YulFunctionCall", + "src": "5238:35:21" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "5228:6:21", + "nodeType": "YulIdentifier", + "src": "5228:6:21" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "end", + "nativeSrc": "5293:3:21", + "nodeType": "YulIdentifier", + "src": "5293:3:21" + }, + { + "name": "cache", + "nativeSrc": "5298:5:21", + "nodeType": "YulIdentifier", + "src": "5298:5:21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5286:6:21", + "nodeType": "YulIdentifier", + "src": "5286:6:21" + }, + "nativeSrc": "5286:18:21", + "nodeType": "YulFunctionCall", + "src": "5286:18:21" + }, + "nativeSrc": "5286:18:21", + "nodeType": "YulExpressionStatement", + "src": "5286:18:21" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6735, + "isOffset": false, + "isSlot": false, + "src": "5063:3:21", + "valueSize": 1 + }, + { + "declaration": 6735, + "isOffset": false, + "isSlot": false, + "src": "5097:3:21", + "valueSize": 1 + }, + { + "declaration": 6738, + "isOffset": false, + "isSlot": false, + "src": "5228:6:21", + "valueSize": 1 + }, + { + "declaration": 6733, + "isOffset": false, + "isSlot": false, + "src": "5210:4:21", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6740, + "nodeType": "InlineAssembly", + "src": "5004:310:21" + } + ] + }, + "documentation": { + "id": 6731, + "nodeType": "StructuredDocumentation", + "src": "4817:78:21", + "text": " @dev Derive the location of a mapping element from the key." + }, + "id": 6742, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deriveMapping", + "nameLocation": "4909:13:21", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6733, + "mutability": "mutable", + "name": "slot", + "nameLocation": "4931:4:21", + "nodeType": "VariableDeclaration", + "scope": 6742, + "src": "4923:12:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6732, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4923:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6735, + "mutability": "mutable", + "name": "key", + "nameLocation": "4950:3:21", + "nodeType": "VariableDeclaration", + "scope": 6742, + "src": "4937:16:21", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6734, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4937:5:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4922:32:21" + }, + "returnParameters": { + "id": 6739, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6738, + "mutability": "mutable", + "name": "result", + "nameLocation": "4986:6:21", + "nodeType": "VariableDeclaration", + "scope": 6742, + "src": "4978:14:21", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6737, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4978:7:21", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4977:16:21" + }, + "scope": 6743, + "src": "4900:420:21", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6744, + "src": "1599:3723:21", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "199:5124:21" + }, + "id": 21 + }, + "@openzeppelin/contracts/utils/StorageSlot.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/StorageSlot.sol", + "exportedSymbols": { + "StorageSlot": [ + 6867 + ] + }, + "id": 6868, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6745, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "193:24:22" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "StorageSlot", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 6746, + "nodeType": "StructuredDocumentation", + "src": "219:1187:22", + "text": " @dev Library for reading and writing primitive types to specific storage slots.\n Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts.\n This library helps with reading and writing to such slots without the need for inline assembly.\n The functions in this library return Slot structs that contain a `value` member that can be used to read or write.\n Example usage to set ERC-1967 implementation slot:\n ```solidity\n contract ERC1967 {\n // Define the slot. Alternatively, use the SlotDerivation library to derive the slot.\n bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc;\n function _getImplementation() internal view returns (address) {\n return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value;\n }\n function _setImplementation(address newImplementation) internal {\n require(newImplementation.code.length > 0);\n StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation;\n }\n }\n ```\n TIP: Consider using this library along with {SlotDerivation}." + }, + "fullyImplemented": true, + "id": 6867, + "linearizedBaseContracts": [ + 6867 + ], + "name": "StorageSlot", + "nameLocation": "1415:11:22", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "StorageSlot.AddressSlot", + "id": 6749, + "members": [ + { + "constant": false, + "id": 6748, + "mutability": "mutable", + "name": "value", + "nameLocation": "1470:5:22", + "nodeType": "VariableDeclaration", + "scope": 6749, + "src": "1462:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6747, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1462:7:22", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSlot", + "nameLocation": "1440:11:22", + "nodeType": "StructDefinition", + "scope": 6867, + "src": "1433:49:22", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.BooleanSlot", + "id": 6752, + "members": [ + { + "constant": false, + "id": 6751, + "mutability": "mutable", + "name": "value", + "nameLocation": "1522:5:22", + "nodeType": "VariableDeclaration", + "scope": 6752, + "src": "1517:10:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6750, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1517:4:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "BooleanSlot", + "nameLocation": "1495:11:22", + "nodeType": "StructDefinition", + "scope": 6867, + "src": "1488:46:22", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.Bytes32Slot", + "id": 6755, + "members": [ + { + "constant": false, + "id": 6754, + "mutability": "mutable", + "name": "value", + "nameLocation": "1577:5:22", + "nodeType": "VariableDeclaration", + "scope": 6755, + "src": "1569:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6753, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1569:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Slot", + "nameLocation": "1547:11:22", + "nodeType": "StructDefinition", + "scope": 6867, + "src": "1540:49:22", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.Uint256Slot", + "id": 6758, + "members": [ + { + "constant": false, + "id": 6757, + "mutability": "mutable", + "name": "value", + "nameLocation": "1632:5:22", + "nodeType": "VariableDeclaration", + "scope": 6758, + "src": "1624:13:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6756, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1624:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "Uint256Slot", + "nameLocation": "1602:11:22", + "nodeType": "StructDefinition", + "scope": 6867, + "src": "1595:49:22", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.Int256Slot", + "id": 6761, + "members": [ + { + "constant": false, + "id": 6760, + "mutability": "mutable", + "name": "value", + "nameLocation": "1685:5:22", + "nodeType": "VariableDeclaration", + "scope": 6761, + "src": "1678:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6759, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1678:6:22", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "name": "Int256Slot", + "nameLocation": "1657:10:22", + "nodeType": "StructDefinition", + "scope": 6867, + "src": "1650:47:22", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.StringSlot", + "id": 6764, + "members": [ + { + "constant": false, + "id": 6763, + "mutability": "mutable", + "name": "value", + "nameLocation": "1738:5:22", + "nodeType": "VariableDeclaration", + "scope": 6764, + "src": "1731:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6762, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1731:6:22", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "name": "StringSlot", + "nameLocation": "1710:10:22", + "nodeType": "StructDefinition", + "scope": 6867, + "src": "1703:47:22", + "visibility": "public" + }, + { + "canonicalName": "StorageSlot.BytesSlot", + "id": 6767, + "members": [ + { + "constant": false, + "id": 6766, + "mutability": "mutable", + "name": "value", + "nameLocation": "1789:5:22", + "nodeType": "VariableDeclaration", + "scope": 6767, + "src": "1783:11:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6765, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1783:5:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "BytesSlot", + "nameLocation": "1763:9:22", + "nodeType": "StructDefinition", + "scope": 6867, + "src": "1756:45:22", + "visibility": "public" + }, + { + "body": { + "id": 6777, + "nodeType": "Block", + "src": "1983:79:22", + "statements": [ + { + "AST": { + "nativeSrc": "2018:38:22", + "nodeType": "YulBlock", + "src": "2018:38:22", + "statements": [ + { + "nativeSrc": "2032:14:22", + "nodeType": "YulAssignment", + "src": "2032:14:22", + "value": { + "name": "slot", + "nativeSrc": "2042:4:22", + "nodeType": "YulIdentifier", + "src": "2042:4:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2032:6:22", + "nodeType": "YulIdentifier", + "src": "2032:6:22" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6774, + "isOffset": false, + "isSlot": true, + "src": "2032:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 6770, + "isOffset": false, + "isSlot": false, + "src": "2042:4:22", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6776, + "nodeType": "InlineAssembly", + "src": "1993:63:22" + } + ] + }, + "documentation": { + "id": 6768, + "nodeType": "StructuredDocumentation", + "src": "1807:87:22", + "text": " @dev Returns an `AddressSlot` with member `value` located at `slot`." + }, + "id": 6778, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getAddressSlot", + "nameLocation": "1908:14:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6770, + "mutability": "mutable", + "name": "slot", + "nameLocation": "1931:4:22", + "nodeType": "VariableDeclaration", + "scope": 6778, + "src": "1923:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6769, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1923:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1922:14:22" + }, + "returnParameters": { + "id": 6775, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6774, + "mutability": "mutable", + "name": "r", + "nameLocation": "1980:1:22", + "nodeType": "VariableDeclaration", + "scope": 6778, + "src": "1960:21:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$6749_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + }, + "typeName": { + "id": 6773, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6772, + "name": "AddressSlot", + "nameLocations": [ + "1960:11:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6749, + "src": "1960:11:22" + }, + "referencedDeclaration": 6749, + "src": "1960:11:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSlot_$6749_storage_ptr", + "typeString": "struct StorageSlot.AddressSlot" + } + }, + "visibility": "internal" + } + ], + "src": "1959:23:22" + }, + "scope": 6867, + "src": "1899:163:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6788, + "nodeType": "Block", + "src": "2243:79:22", + "statements": [ + { + "AST": { + "nativeSrc": "2278:38:22", + "nodeType": "YulBlock", + "src": "2278:38:22", + "statements": [ + { + "nativeSrc": "2292:14:22", + "nodeType": "YulAssignment", + "src": "2292:14:22", + "value": { + "name": "slot", + "nativeSrc": "2302:4:22", + "nodeType": "YulIdentifier", + "src": "2302:4:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2292:6:22", + "nodeType": "YulIdentifier", + "src": "2292:6:22" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6785, + "isOffset": false, + "isSlot": true, + "src": "2292:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 6781, + "isOffset": false, + "isSlot": false, + "src": "2302:4:22", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6787, + "nodeType": "InlineAssembly", + "src": "2253:63:22" + } + ] + }, + "documentation": { + "id": 6779, + "nodeType": "StructuredDocumentation", + "src": "2068:86:22", + "text": " @dev Returns a `BooleanSlot` with member `value` located at `slot`." + }, + "id": 6789, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBooleanSlot", + "nameLocation": "2168:14:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6782, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6781, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2191:4:22", + "nodeType": "VariableDeclaration", + "scope": 6789, + "src": "2183:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6780, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2183:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2182:14:22" + }, + "returnParameters": { + "id": 6786, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6785, + "mutability": "mutable", + "name": "r", + "nameLocation": "2240:1:22", + "nodeType": "VariableDeclaration", + "scope": 6789, + "src": "2220:21:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BooleanSlot_$6752_storage_ptr", + "typeString": "struct StorageSlot.BooleanSlot" + }, + "typeName": { + "id": 6784, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6783, + "name": "BooleanSlot", + "nameLocations": [ + "2220:11:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6752, + "src": "2220:11:22" + }, + "referencedDeclaration": 6752, + "src": "2220:11:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BooleanSlot_$6752_storage_ptr", + "typeString": "struct StorageSlot.BooleanSlot" + } + }, + "visibility": "internal" + } + ], + "src": "2219:23:22" + }, + "scope": 6867, + "src": "2159:163:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6799, + "nodeType": "Block", + "src": "2503:79:22", + "statements": [ + { + "AST": { + "nativeSrc": "2538:38:22", + "nodeType": "YulBlock", + "src": "2538:38:22", + "statements": [ + { + "nativeSrc": "2552:14:22", + "nodeType": "YulAssignment", + "src": "2552:14:22", + "value": { + "name": "slot", + "nativeSrc": "2562:4:22", + "nodeType": "YulIdentifier", + "src": "2562:4:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2552:6:22", + "nodeType": "YulIdentifier", + "src": "2552:6:22" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6796, + "isOffset": false, + "isSlot": true, + "src": "2552:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 6792, + "isOffset": false, + "isSlot": false, + "src": "2562:4:22", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6798, + "nodeType": "InlineAssembly", + "src": "2513:63:22" + } + ] + }, + "documentation": { + "id": 6790, + "nodeType": "StructuredDocumentation", + "src": "2328:86:22", + "text": " @dev Returns a `Bytes32Slot` with member `value` located at `slot`." + }, + "id": 6800, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBytes32Slot", + "nameLocation": "2428:14:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6792, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2451:4:22", + "nodeType": "VariableDeclaration", + "scope": 6800, + "src": "2443:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6791, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2443:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2442:14:22" + }, + "returnParameters": { + "id": 6797, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6796, + "mutability": "mutable", + "name": "r", + "nameLocation": "2500:1:22", + "nodeType": "VariableDeclaration", + "scope": 6800, + "src": "2480:21:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$6755_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + }, + "typeName": { + "id": 6795, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6794, + "name": "Bytes32Slot", + "nameLocations": [ + "2480:11:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6755, + "src": "2480:11:22" + }, + "referencedDeclaration": 6755, + "src": "2480:11:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Slot_$6755_storage_ptr", + "typeString": "struct StorageSlot.Bytes32Slot" + } + }, + "visibility": "internal" + } + ], + "src": "2479:23:22" + }, + "scope": 6867, + "src": "2419:163:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6810, + "nodeType": "Block", + "src": "2763:79:22", + "statements": [ + { + "AST": { + "nativeSrc": "2798:38:22", + "nodeType": "YulBlock", + "src": "2798:38:22", + "statements": [ + { + "nativeSrc": "2812:14:22", + "nodeType": "YulAssignment", + "src": "2812:14:22", + "value": { + "name": "slot", + "nativeSrc": "2822:4:22", + "nodeType": "YulIdentifier", + "src": "2822:4:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "2812:6:22", + "nodeType": "YulIdentifier", + "src": "2812:6:22" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6807, + "isOffset": false, + "isSlot": true, + "src": "2812:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 6803, + "isOffset": false, + "isSlot": false, + "src": "2822:4:22", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6809, + "nodeType": "InlineAssembly", + "src": "2773:63:22" + } + ] + }, + "documentation": { + "id": 6801, + "nodeType": "StructuredDocumentation", + "src": "2588:86:22", + "text": " @dev Returns a `Uint256Slot` with member `value` located at `slot`." + }, + "id": 6811, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getUint256Slot", + "nameLocation": "2688:14:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6804, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6803, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2711:4:22", + "nodeType": "VariableDeclaration", + "scope": 6811, + "src": "2703:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6802, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2703:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2702:14:22" + }, + "returnParameters": { + "id": 6808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6807, + "mutability": "mutable", + "name": "r", + "nameLocation": "2760:1:22", + "nodeType": "VariableDeclaration", + "scope": 6811, + "src": "2740:21:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + }, + "typeName": { + "id": 6806, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6805, + "name": "Uint256Slot", + "nameLocations": [ + "2740:11:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6758, + "src": "2740:11:22" + }, + "referencedDeclaration": 6758, + "src": "2740:11:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Uint256Slot_$6758_storage_ptr", + "typeString": "struct StorageSlot.Uint256Slot" + } + }, + "visibility": "internal" + } + ], + "src": "2739:23:22" + }, + "scope": 6867, + "src": "2679:163:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6821, + "nodeType": "Block", + "src": "3020:79:22", + "statements": [ + { + "AST": { + "nativeSrc": "3055:38:22", + "nodeType": "YulBlock", + "src": "3055:38:22", + "statements": [ + { + "nativeSrc": "3069:14:22", + "nodeType": "YulAssignment", + "src": "3069:14:22", + "value": { + "name": "slot", + "nativeSrc": "3079:4:22", + "nodeType": "YulIdentifier", + "src": "3079:4:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3069:6:22", + "nodeType": "YulIdentifier", + "src": "3069:6:22" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6818, + "isOffset": false, + "isSlot": true, + "src": "3069:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 6814, + "isOffset": false, + "isSlot": false, + "src": "3079:4:22", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6820, + "nodeType": "InlineAssembly", + "src": "3030:63:22" + } + ] + }, + "documentation": { + "id": 6812, + "nodeType": "StructuredDocumentation", + "src": "2848:85:22", + "text": " @dev Returns a `Int256Slot` with member `value` located at `slot`." + }, + "id": 6822, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getInt256Slot", + "nameLocation": "2947:13:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6815, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6814, + "mutability": "mutable", + "name": "slot", + "nameLocation": "2969:4:22", + "nodeType": "VariableDeclaration", + "scope": 6822, + "src": "2961:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6813, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2961:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2960:14:22" + }, + "returnParameters": { + "id": 6819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6818, + "mutability": "mutable", + "name": "r", + "nameLocation": "3017:1:22", + "nodeType": "VariableDeclaration", + "scope": 6822, + "src": "2998:20:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Int256Slot_$6761_storage_ptr", + "typeString": "struct StorageSlot.Int256Slot" + }, + "typeName": { + "id": 6817, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6816, + "name": "Int256Slot", + "nameLocations": [ + "2998:10:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6761, + "src": "2998:10:22" + }, + "referencedDeclaration": 6761, + "src": "2998:10:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Int256Slot_$6761_storage_ptr", + "typeString": "struct StorageSlot.Int256Slot" + } + }, + "visibility": "internal" + } + ], + "src": "2997:22:22" + }, + "scope": 6867, + "src": "2938:161:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6832, + "nodeType": "Block", + "src": "3277:79:22", + "statements": [ + { + "AST": { + "nativeSrc": "3312:38:22", + "nodeType": "YulBlock", + "src": "3312:38:22", + "statements": [ + { + "nativeSrc": "3326:14:22", + "nodeType": "YulAssignment", + "src": "3326:14:22", + "value": { + "name": "slot", + "nativeSrc": "3336:4:22", + "nodeType": "YulIdentifier", + "src": "3336:4:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3326:6:22", + "nodeType": "YulIdentifier", + "src": "3326:6:22" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6829, + "isOffset": false, + "isSlot": true, + "src": "3326:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 6825, + "isOffset": false, + "isSlot": false, + "src": "3336:4:22", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6831, + "nodeType": "InlineAssembly", + "src": "3287:63:22" + } + ] + }, + "documentation": { + "id": 6823, + "nodeType": "StructuredDocumentation", + "src": "3105:85:22", + "text": " @dev Returns a `StringSlot` with member `value` located at `slot`." + }, + "id": 6833, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStringSlot", + "nameLocation": "3204:13:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6826, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6825, + "mutability": "mutable", + "name": "slot", + "nameLocation": "3226:4:22", + "nodeType": "VariableDeclaration", + "scope": 6833, + "src": "3218:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6824, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3218:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3217:14:22" + }, + "returnParameters": { + "id": 6830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6829, + "mutability": "mutable", + "name": "r", + "nameLocation": "3274:1:22", + "nodeType": "VariableDeclaration", + "scope": 6833, + "src": "3255:20:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$6764_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + }, + "typeName": { + "id": 6828, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6827, + "name": "StringSlot", + "nameLocations": [ + "3255:10:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6764, + "src": "3255:10:22" + }, + "referencedDeclaration": 6764, + "src": "3255:10:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$6764_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + } + }, + "visibility": "internal" + } + ], + "src": "3254:22:22" + }, + "scope": 6867, + "src": "3195:161:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6843, + "nodeType": "Block", + "src": "3558:85:22", + "statements": [ + { + "AST": { + "nativeSrc": "3593:44:22", + "nodeType": "YulBlock", + "src": "3593:44:22", + "statements": [ + { + "nativeSrc": "3607:20:22", + "nodeType": "YulAssignment", + "src": "3607:20:22", + "value": { + "name": "store.slot", + "nativeSrc": "3617:10:22", + "nodeType": "YulIdentifier", + "src": "3617:10:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3607:6:22", + "nodeType": "YulIdentifier", + "src": "3607:6:22" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6840, + "isOffset": false, + "isSlot": true, + "src": "3607:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 6836, + "isOffset": false, + "isSlot": true, + "src": "3617:10:22", + "suffix": "slot", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6842, + "nodeType": "InlineAssembly", + "src": "3568:69:22" + } + ] + }, + "documentation": { + "id": 6834, + "nodeType": "StructuredDocumentation", + "src": "3362:101:22", + "text": " @dev Returns an `StringSlot` representation of the string storage pointer `store`." + }, + "id": 6844, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getStringSlot", + "nameLocation": "3477:13:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6836, + "mutability": "mutable", + "name": "store", + "nameLocation": "3506:5:22", + "nodeType": "VariableDeclaration", + "scope": 6844, + "src": "3491:20:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6835, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3491:6:22", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3490:22:22" + }, + "returnParameters": { + "id": 6841, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6840, + "mutability": "mutable", + "name": "r", + "nameLocation": "3555:1:22", + "nodeType": "VariableDeclaration", + "scope": 6844, + "src": "3536:20:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$6764_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + }, + "typeName": { + "id": 6839, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6838, + "name": "StringSlot", + "nameLocations": [ + "3536:10:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6764, + "src": "3536:10:22" + }, + "referencedDeclaration": 6764, + "src": "3536:10:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StringSlot_$6764_storage_ptr", + "typeString": "struct StorageSlot.StringSlot" + } + }, + "visibility": "internal" + } + ], + "src": "3535:22:22" + }, + "scope": 6867, + "src": "3468:175:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6854, + "nodeType": "Block", + "src": "3818:79:22", + "statements": [ + { + "AST": { + "nativeSrc": "3853:38:22", + "nodeType": "YulBlock", + "src": "3853:38:22", + "statements": [ + { + "nativeSrc": "3867:14:22", + "nodeType": "YulAssignment", + "src": "3867:14:22", + "value": { + "name": "slot", + "nativeSrc": "3877:4:22", + "nodeType": "YulIdentifier", + "src": "3877:4:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "3867:6:22", + "nodeType": "YulIdentifier", + "src": "3867:6:22" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6851, + "isOffset": false, + "isSlot": true, + "src": "3867:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 6847, + "isOffset": false, + "isSlot": false, + "src": "3877:4:22", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6853, + "nodeType": "InlineAssembly", + "src": "3828:63:22" + } + ] + }, + "documentation": { + "id": 6845, + "nodeType": "StructuredDocumentation", + "src": "3649:84:22", + "text": " @dev Returns a `BytesSlot` with member `value` located at `slot`." + }, + "id": 6855, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBytesSlot", + "nameLocation": "3747:12:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6847, + "mutability": "mutable", + "name": "slot", + "nameLocation": "3768:4:22", + "nodeType": "VariableDeclaration", + "scope": 6855, + "src": "3760:12:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 6846, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3760:7:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3759:14:22" + }, + "returnParameters": { + "id": 6852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6851, + "mutability": "mutable", + "name": "r", + "nameLocation": "3815:1:22", + "nodeType": "VariableDeclaration", + "scope": 6855, + "src": "3797:19:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$6767_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + }, + "typeName": { + "id": 6850, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6849, + "name": "BytesSlot", + "nameLocations": [ + "3797:9:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6767, + "src": "3797:9:22" + }, + "referencedDeclaration": 6767, + "src": "3797:9:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$6767_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + } + }, + "visibility": "internal" + } + ], + "src": "3796:21:22" + }, + "scope": 6867, + "src": "3738:159:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 6865, + "nodeType": "Block", + "src": "4094:85:22", + "statements": [ + { + "AST": { + "nativeSrc": "4129:44:22", + "nodeType": "YulBlock", + "src": "4129:44:22", + "statements": [ + { + "nativeSrc": "4143:20:22", + "nodeType": "YulAssignment", + "src": "4143:20:22", + "value": { + "name": "store.slot", + "nativeSrc": "4153:10:22", + "nodeType": "YulIdentifier", + "src": "4153:10:22" + }, + "variableNames": [ + { + "name": "r.slot", + "nativeSrc": "4143:6:22", + "nodeType": "YulIdentifier", + "src": "4143:6:22" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6862, + "isOffset": false, + "isSlot": true, + "src": "4143:6:22", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 6858, + "isOffset": false, + "isSlot": true, + "src": "4153:10:22", + "suffix": "slot", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6864, + "nodeType": "InlineAssembly", + "src": "4104:69:22" + } + ] + }, + "documentation": { + "id": 6856, + "nodeType": "StructuredDocumentation", + "src": "3903:99:22", + "text": " @dev Returns an `BytesSlot` representation of the bytes storage pointer `store`." + }, + "id": 6866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBytesSlot", + "nameLocation": "4016:12:22", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6859, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6858, + "mutability": "mutable", + "name": "store", + "nameLocation": "4043:5:22", + "nodeType": "VariableDeclaration", + "scope": 6866, + "src": "4029:19:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 6857, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4029:5:22", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "4028:21:22" + }, + "returnParameters": { + "id": 6863, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6862, + "mutability": "mutable", + "name": "r", + "nameLocation": "4091:1:22", + "nodeType": "VariableDeclaration", + "scope": 6866, + "src": "4073:19:22", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$6767_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + }, + "typeName": { + "id": 6861, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 6860, + "name": "BytesSlot", + "nameLocations": [ + "4073:9:22" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 6767, + "src": "4073:9:22" + }, + "referencedDeclaration": 6767, + "src": "4073:9:22", + "typeDescriptions": { + "typeIdentifier": "t_struct$_BytesSlot_$6767_storage_ptr", + "typeString": "struct StorageSlot.BytesSlot" + } + }, + "visibility": "internal" + } + ], + "src": "4072:21:22" + }, + "scope": 6867, + "src": "4007:172:22", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 6868, + "src": "1407:2774:22", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "193:3989:22" + }, + "id": 22 + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "exportedSymbols": { + "Math": [ + 10360 + ], + "SafeCast": [ + 12125 + ], + "SignedMath": [ + 12269 + ], + "Strings": [ + 8269 + ] + }, + "id": 8270, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6869, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "101:24:23" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "./math/Math.sol", + "id": 6871, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 8270, + "sourceUnit": 10361, + "src": "127:37:23", + "symbolAliases": [ + { + "foreign": { + "id": 6870, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10360, + "src": "135:4:23", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", + "file": "./math/SafeCast.sol", + "id": 6873, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 8270, + "sourceUnit": 12126, + "src": "165:45:23", + "symbolAliases": [ + { + "foreign": { + "id": 6872, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "173:8:23", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "file": "./math/SignedMath.sol", + "id": 6875, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 8270, + "sourceUnit": 12270, + "src": "211:49:23", + "symbolAliases": [ + { + "foreign": { + "id": 6874, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12269, + "src": "219:10:23", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Strings", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 6876, + "nodeType": "StructuredDocumentation", + "src": "262:34:23", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 8269, + "linearizedBaseContracts": [ + 8269 + ], + "name": "Strings", + "nameLocation": "305:7:23", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 6878, + "libraryName": { + "id": 6877, + "name": "SafeCast", + "nameLocations": [ + "325:8:23" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12125, + "src": "325:8:23" + }, + "nodeType": "UsingForDirective", + "src": "319:21:23" + }, + { + "constant": true, + "id": 6881, + "mutability": "constant", + "name": "HEX_DIGITS", + "nameLocation": "371:10:23", + "nodeType": "VariableDeclaration", + "scope": 8269, + "src": "346:56:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + }, + "typeName": { + "id": 6879, + "name": "bytes16", + "nodeType": "ElementaryTypeName", + "src": "346:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "value": { + "hexValue": "30313233343536373839616263646566", + "id": 6880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "384:18:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f", + "typeString": "literal_string \"0123456789abcdef\"" + }, + "value": "0123456789abcdef" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6884, + "mutability": "constant", + "name": "ADDRESS_LENGTH", + "nameLocation": "431:14:23", + "nodeType": "VariableDeclaration", + "scope": 8269, + "src": "408:42:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6882, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "408:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": { + "hexValue": "3230", + "id": 6883, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "448:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 6920, + "mutability": "constant", + "name": "SPECIAL_CHARS_LOOKUP", + "nameLocation": "481:20:23", + "nodeType": "VariableDeclaration", + "scope": 8269, + "src": "456:302:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6885, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "456:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_4951760157141521116776380160_by_1", + "typeString": "int_const 4951760157141521116776380160" + }, + "id": 6919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_17179883264_by_1", + "typeString": "int_const 17179883264" + }, + "id": 6914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_14080_by_1", + "typeString": "int_const 14080" + }, + "id": 6909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_5888_by_1", + "typeString": "int_const 5888" + }, + "id": 6904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_1792_by_1", + "typeString": "int_const 1792" + }, + "id": 6899, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_768_by_1", + "typeString": "int_const 768" + }, + "id": 6894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "id": 6888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "513:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783038", + "id": 6887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "518:4:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "0x08" + }, + "src": "513:9:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + } + } + ], + "id": 6889, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "512:11:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_512_by_1", + "typeString": "int_const 512" + }, + "id": 6892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6890, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "552:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783039", + "id": 6891, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "557:4:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "0x09" + }, + "src": "552:9:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_512_by_1", + "typeString": "int_const 512" + } + } + ], + "id": 6893, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "551:11:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_512_by_1", + "typeString": "int_const 512" + } + }, + "src": "512:50:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_768_by_1", + "typeString": "int_const 768" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_1024_by_1", + "typeString": "int_const 1024" + }, + "id": 6897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "585:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783061", + "id": 6896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "590:4:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "0x0a" + }, + "src": "585:9:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1024_by_1", + "typeString": "int_const 1024" + } + } + ], + "id": 6898, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "584:11:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1024_by_1", + "typeString": "int_const 1024" + } + }, + "src": "512:83:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1792_by_1", + "typeString": "int_const 1792" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_4096_by_1", + "typeString": "int_const 4096" + }, + "id": 6902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "622:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783063", + "id": 6901, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "627:4:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "0x0c" + }, + "src": "622:9:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_4096_by_1", + "typeString": "int_const 4096" + } + } + ], + "id": 6903, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "621:11:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_4096_by_1", + "typeString": "int_const 4096" + } + }, + "src": "512:120:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_5888_by_1", + "typeString": "int_const 5888" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_8192_by_1", + "typeString": "int_const 8192" + }, + "id": 6907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "661:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783064", + "id": 6906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "666:4:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_13_by_1", + "typeString": "int_const 13" + }, + "value": "0x0d" + }, + "src": "661:9:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_8192_by_1", + "typeString": "int_const 8192" + } + } + ], + "id": 6908, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "660:11:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_8192_by_1", + "typeString": "int_const 8192" + } + }, + "src": "512:159:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_14080_by_1", + "typeString": "int_const 14080" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_17179869184_by_1", + "typeString": "int_const 17179869184" + }, + "id": 6912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "706:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783232", + "id": 6911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "711:4:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_34_by_1", + "typeString": "int_const 34" + }, + "value": "0x22" + }, + "src": "706:9:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_17179869184_by_1", + "typeString": "int_const 17179869184" + } + } + ], + "id": 6913, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "705:11:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_17179869184_by_1", + "typeString": "int_const 17179869184" + } + }, + "src": "512:204:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_17179883264_by_1", + "typeString": "int_const 17179883264" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_4951760157141521099596496896_by_1", + "typeString": "int_const 4951760157141521099596496896" + }, + "id": 6917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 6915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "748:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "30783563", + "id": 6916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "753:4:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_92_by_1", + "typeString": "int_const 92" + }, + "value": "0x5c" + }, + "src": "748:9:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_4951760157141521099596496896_by_1", + "typeString": "int_const 4951760157141521099596496896" + } + } + ], + "id": 6918, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "747:11:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_4951760157141521099596496896_by_1", + "typeString": "int_const 4951760157141521099596496896" + } + }, + "src": "512:246:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_4951760157141521116776380160_by_1", + "typeString": "int_const 4951760157141521116776380160" + } + }, + "visibility": "private" + }, + { + "documentation": { + "id": 6921, + "nodeType": "StructuredDocumentation", + "src": "778:81:23", + "text": " @dev The `value` string doesn't fit in the specified `length`." + }, + "errorSelector": "e22e27eb", + "id": 6927, + "name": "StringsInsufficientHexLength", + "nameLocation": "870:28:23", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 6926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6923, + "mutability": "mutable", + "name": "value", + "nameLocation": "907:5:23", + "nodeType": "VariableDeclaration", + "scope": 6927, + "src": "899:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6922, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "899:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 6925, + "mutability": "mutable", + "name": "length", + "nameLocation": "922:6:23", + "nodeType": "VariableDeclaration", + "scope": 6927, + "src": "914:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "914:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "898:31:23" + }, + "src": "864:66:23" + }, + { + "documentation": { + "id": 6928, + "nodeType": "StructuredDocumentation", + "src": "936:108:23", + "text": " @dev The string being parsed contains characters that are not in scope of the given base." + }, + "errorSelector": "94e2737e", + "id": 6930, + "name": "StringsInvalidChar", + "nameLocation": "1055:18:23", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 6929, + "nodeType": "ParameterList", + "parameters": [], + "src": "1073:2:23" + }, + "src": "1049:27:23" + }, + { + "documentation": { + "id": 6931, + "nodeType": "StructuredDocumentation", + "src": "1082:84:23", + "text": " @dev The string being parsed is not a properly formatted address." + }, + "errorSelector": "1d15ae44", + "id": 6933, + "name": "StringsInvalidAddressFormat", + "nameLocation": "1177:27:23", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 6932, + "nodeType": "ParameterList", + "parameters": [], + "src": "1204:2:23" + }, + "src": "1171:36:23" + }, + { + "body": { + "id": 6980, + "nodeType": "Block", + "src": "1379:561:23", + "statements": [ + { + "id": 6979, + "nodeType": "UncheckedBlock", + "src": "1389:545:23", + "statements": [ + { + "assignments": [ + 6942 + ], + "declarations": [ + { + "constant": false, + "id": 6942, + "mutability": "mutable", + "name": "length", + "nameLocation": "1421:6:23", + "nodeType": "VariableDeclaration", + "scope": 6979, + "src": "1413:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1413:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6949, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 6945, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6936, + "src": "1441:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 6943, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10360, + "src": "1430:4:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$10360_$", + "typeString": "type(library Math)" + } + }, + "id": 6944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1435:5:23", + "memberName": "log10", + "nodeType": "MemberAccess", + "referencedDeclaration": 10192, + "src": "1430:10:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 6946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1430:17:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 6947, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1450:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1430:21:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1413:38:23" + }, + { + "assignments": [ + 6951 + ], + "declarations": [ + { + "constant": false, + "id": 6951, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "1479:6:23", + "nodeType": "VariableDeclaration", + "scope": 6979, + "src": "1465:20:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6950, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1465:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 6956, + "initialValue": { + "arguments": [ + { + "id": 6954, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6942, + "src": "1499:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6953, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "1488:10:23", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + }, + "typeName": { + "id": 6952, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1492:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "id": 6955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1488:18:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1465:41:23" + }, + { + "assignments": [ + 6958 + ], + "declarations": [ + { + "constant": false, + "id": 6958, + "mutability": "mutable", + "name": "ptr", + "nameLocation": "1528:3:23", + "nodeType": "VariableDeclaration", + "scope": 6979, + "src": "1520:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6957, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1520:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 6959, + "nodeType": "VariableDeclarationStatement", + "src": "1520:11:23" + }, + { + "AST": { + "nativeSrc": "1570:67:23", + "nodeType": "YulBlock", + "src": "1570:67:23", + "statements": [ + { + "nativeSrc": "1588:35:23", + "nodeType": "YulAssignment", + "src": "1588:35:23", + "value": { + "arguments": [ + { + "name": "buffer", + "nativeSrc": "1599:6:23", + "nodeType": "YulIdentifier", + "src": "1599:6:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1611:2:23", + "nodeType": "YulLiteral", + "src": "1611:2:23", + "type": "", + "value": "32" + }, + { + "name": "length", + "nativeSrc": "1615:6:23", + "nodeType": "YulIdentifier", + "src": "1615:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1607:3:23", + "nodeType": "YulIdentifier", + "src": "1607:3:23" + }, + "nativeSrc": "1607:15:23", + "nodeType": "YulFunctionCall", + "src": "1607:15:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1595:3:23", + "nodeType": "YulIdentifier", + "src": "1595:3:23" + }, + "nativeSrc": "1595:28:23", + "nodeType": "YulFunctionCall", + "src": "1595:28:23" + }, + "variableNames": [ + { + "name": "ptr", + "nativeSrc": "1588:3:23", + "nodeType": "YulIdentifier", + "src": "1588:3:23" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6951, + "isOffset": false, + "isSlot": false, + "src": "1599:6:23", + "valueSize": 1 + }, + { + "declaration": 6942, + "isOffset": false, + "isSlot": false, + "src": "1615:6:23", + "valueSize": 1 + }, + { + "declaration": 6958, + "isOffset": false, + "isSlot": false, + "src": "1588:3:23", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6960, + "nodeType": "InlineAssembly", + "src": "1545:92:23" + }, + { + "body": { + "id": 6975, + "nodeType": "Block", + "src": "1663:234:23", + "statements": [ + { + "expression": { + "id": 6963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "1681:5:23", + "subExpression": { + "id": 6962, + "name": "ptr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6958, + "src": "1681:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6964, + "nodeType": "ExpressionStatement", + "src": "1681:5:23" + }, + { + "AST": { + "nativeSrc": "1729:86:23", + "nodeType": "YulBlock", + "src": "1729:86:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "1759:3:23", + "nodeType": "YulIdentifier", + "src": "1759:3:23" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1773:5:23", + "nodeType": "YulIdentifier", + "src": "1773:5:23" + }, + { + "kind": "number", + "nativeSrc": "1780:2:23", + "nodeType": "YulLiteral", + "src": "1780:2:23", + "type": "", + "value": "10" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "1769:3:23", + "nodeType": "YulIdentifier", + "src": "1769:3:23" + }, + "nativeSrc": "1769:14:23", + "nodeType": "YulFunctionCall", + "src": "1769:14:23" + }, + { + "name": "HEX_DIGITS", + "nativeSrc": "1785:10:23", + "nodeType": "YulIdentifier", + "src": "1785:10:23" + } + ], + "functionName": { + "name": "byte", + "nativeSrc": "1764:4:23", + "nodeType": "YulIdentifier", + "src": "1764:4:23" + }, + "nativeSrc": "1764:32:23", + "nodeType": "YulFunctionCall", + "src": "1764:32:23" + } + ], + "functionName": { + "name": "mstore8", + "nativeSrc": "1751:7:23", + "nodeType": "YulIdentifier", + "src": "1751:7:23" + }, + "nativeSrc": "1751:46:23", + "nodeType": "YulFunctionCall", + "src": "1751:46:23" + }, + "nativeSrc": "1751:46:23", + "nodeType": "YulExpressionStatement", + "src": "1751:46:23" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 6881, + "isOffset": false, + "isSlot": false, + "src": "1785:10:23", + "valueSize": 1 + }, + { + "declaration": 6958, + "isOffset": false, + "isSlot": false, + "src": "1759:3:23", + "valueSize": 1 + }, + { + "declaration": 6936, + "isOffset": false, + "isSlot": false, + "src": "1773:5:23", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 6965, + "nodeType": "InlineAssembly", + "src": "1704:111:23" + }, + { + "expression": { + "id": 6968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 6966, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6936, + "src": "1832:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 6967, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1841:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1832:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6969, + "nodeType": "ExpressionStatement", + "src": "1832:11:23" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6970, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6936, + "src": "1865:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 6971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1874:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1865:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6974, + "nodeType": "IfStatement", + "src": "1861:21:23", + "trueBody": { + "id": 6973, + "nodeType": "Break", + "src": "1877:5:23" + } + } + ] + }, + "condition": { + "hexValue": "74727565", + "id": 6961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1657:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "id": 6976, + "nodeType": "WhileStatement", + "src": "1650:247:23" + }, + { + "expression": { + "id": 6977, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6951, + "src": "1917:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 6940, + "id": 6978, + "nodeType": "Return", + "src": "1910:13:23" + } + ] + } + ] + }, + "documentation": { + "id": 6934, + "nodeType": "StructuredDocumentation", + "src": "1213:90:23", + "text": " @dev Converts a `uint256` to its ASCII `string` decimal representation." + }, + "id": 6981, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nameLocation": "1317:8:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6936, + "mutability": "mutable", + "name": "value", + "nameLocation": "1334:5:23", + "nodeType": "VariableDeclaration", + "scope": 6981, + "src": "1326:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6935, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1326:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1325:15:23" + }, + "returnParameters": { + "id": 6940, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6939, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 6981, + "src": "1364:13:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6938, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1364:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1363:15:23" + }, + "scope": 8269, + "src": "1308:632:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7006, + "nodeType": "Block", + "src": "2116:92:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 6994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 6992, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6984, + "src": "2147:5:23", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 6993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2155:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2147:9:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "", + "id": 6996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2165:2:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + }, + "id": 6997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "2147:20:23", + "trueExpression": { + "hexValue": "2d", + "id": 6995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2159:3:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561", + "typeString": "literal_string \"-\"" + }, + "value": "-" + }, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 7001, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6984, + "src": "2193:5:23", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "expression": { + "id": 6999, + "name": "SignedMath", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12269, + "src": "2178:10:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SignedMath_$12269_$", + "typeString": "type(library SignedMath)" + } + }, + "id": 7000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2189:3:23", + "memberName": "abs", + "nodeType": "MemberAccess", + "referencedDeclaration": 12268, + "src": "2178:14:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_int256_$returns$_t_uint256_$", + "typeString": "function (int256) pure returns (uint256)" + } + }, + "id": 7002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2178:21:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6998, + "name": "toString", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6981, + "src": "2169:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 7003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2169:31:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 6990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2133:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 6989, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2133:6:23", + "typeDescriptions": {} + } + }, + "id": 6991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2140:6:23", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "2133:13:23", + "typeDescriptions": { + "typeIdentifier": "t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$", + "typeString": "function () pure returns (string memory)" + } + }, + "id": 7004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2133:68:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 6988, + "id": 7005, + "nodeType": "Return", + "src": "2126:75:23" + } + ] + }, + "documentation": { + "id": 6982, + "nodeType": "StructuredDocumentation", + "src": "1946:89:23", + "text": " @dev Converts a `int256` to its ASCII `string` decimal representation." + }, + "id": 7007, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toStringSigned", + "nameLocation": "2049:14:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6985, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6984, + "mutability": "mutable", + "name": "value", + "nameLocation": "2071:5:23", + "nodeType": "VariableDeclaration", + "scope": 7007, + "src": "2064:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 6983, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "2064:6:23", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "2063:14:23" + }, + "returnParameters": { + "id": 6988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6987, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7007, + "src": "2101:13:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6986, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2101:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2100:15:23" + }, + "scope": 8269, + "src": "2040:168:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7026, + "nodeType": "Block", + "src": "2387:100:23", + "statements": [ + { + "id": 7025, + "nodeType": "UncheckedBlock", + "src": "2397:84:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7016, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7010, + "src": "2440:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 7019, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7010, + "src": "2459:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 7017, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10360, + "src": "2447:4:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$10360_$", + "typeString": "type(library Math)" + } + }, + "id": 7018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2452:6:23", + "memberName": "log256", + "nodeType": "MemberAccess", + "referencedDeclaration": 10303, + "src": "2447:11:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 7020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2447:18:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 7021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2468:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2447:22:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7015, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7027, + 7110, + 7130 + ], + "referencedDeclaration": 7110, + "src": "2428:11:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 7023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2428:42:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 7014, + "id": 7024, + "nodeType": "Return", + "src": "2421:49:23" + } + ] + } + ] + }, + "documentation": { + "id": 7008, + "nodeType": "StructuredDocumentation", + "src": "2214:94:23", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation." + }, + "id": 7027, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2322:11:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7011, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7010, + "mutability": "mutable", + "name": "value", + "nameLocation": "2342:5:23", + "nodeType": "VariableDeclaration", + "scope": 7027, + "src": "2334:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7009, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2334:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2333:15:23" + }, + "returnParameters": { + "id": 7014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7013, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7027, + "src": "2372:13:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7012, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2372:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2371:15:23" + }, + "scope": 8269, + "src": "2313:174:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7109, + "nodeType": "Block", + "src": "2700:435:23", + "statements": [ + { + "assignments": [ + 7038 + ], + "declarations": [ + { + "constant": false, + "id": 7038, + "mutability": "mutable", + "name": "localValue", + "nameLocation": "2718:10:23", + "nodeType": "VariableDeclaration", + "scope": 7109, + "src": "2710:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7037, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2710:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7040, + "initialValue": { + "id": 7039, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7030, + "src": "2731:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2710:26:23" + }, + { + "assignments": [ + 7042 + ], + "declarations": [ + { + "constant": false, + "id": 7042, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "2759:6:23", + "nodeType": "VariableDeclaration", + "scope": 7109, + "src": "2746:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 7041, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2746:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 7051, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 7045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2778:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 7046, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7032, + "src": "2782:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2778:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 7048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2791:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2778:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2768:9:23", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 7043, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2772:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 7050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2768:25:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2746:47:23" + }, + { + "expression": { + "id": 7056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 7052, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7042, + "src": "2803:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7054, + "indexExpression": { + "hexValue": "30", + "id": 7053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2810:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2803:9:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 7055, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2815:3:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "src": "2803:15:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 7057, + "nodeType": "ExpressionStatement", + "src": "2803:15:23" + }, + { + "expression": { + "id": 7062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 7058, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7042, + "src": "2828:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7060, + "indexExpression": { + "hexValue": "31", + "id": 7059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2835:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2828:9:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "78", + "id": 7061, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2840:3:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83", + "typeString": "literal_string \"x\"" + }, + "value": "x" + }, + "src": "2828:15:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 7063, + "nodeType": "ExpressionStatement", + "src": "2828:15:23" + }, + { + "body": { + "id": 7092, + "nodeType": "Block", + "src": "2898:95:23", + "statements": [ + { + "expression": { + "id": 7086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 7078, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7042, + "src": "2912:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7080, + "indexExpression": { + "id": 7079, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7065, + "src": "2919:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2912:9:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 7081, + "name": "HEX_DIGITS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6881, + "src": "2924:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes16", + "typeString": "bytes16" + } + }, + "id": 7085, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7082, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7038, + "src": "2935:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307866", + "id": 7083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2948:3:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "2935:16:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2924:28:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "2912:40:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 7087, + "nodeType": "ExpressionStatement", + "src": "2912:40:23" + }, + { + "expression": { + "id": 7090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7088, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7038, + "src": "2966:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 7089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2981:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "2966:16:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7091, + "nodeType": "ExpressionStatement", + "src": "2966:16:23" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7072, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7065, + "src": "2886:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "31", + "id": 7073, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2890:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2886:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7093, + "initializationExpression": { + "assignments": [ + 7065 + ], + "declarations": [ + { + "constant": false, + "id": 7065, + "mutability": "mutable", + "name": "i", + "nameLocation": "2866:1:23", + "nodeType": "VariableDeclaration", + "scope": 7093, + "src": "2858:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2858:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7071, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 7066, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2870:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 7067, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7032, + "src": "2874:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2870:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 7069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2883:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2870:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2858:26:23" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 7076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "2893:3:23", + "subExpression": { + "id": 7075, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7065, + "src": "2895:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7077, + "nodeType": "ExpressionStatement", + "src": "2893:3:23" + }, + "nodeType": "ForStatement", + "src": "2853:140:23" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7094, + "name": "localValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7038, + "src": "3006:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 7095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3020:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3006:15:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7103, + "nodeType": "IfStatement", + "src": "3002:96:23", + "trueBody": { + "id": 7102, + "nodeType": "Block", + "src": "3023:75:23", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 7098, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7030, + "src": "3073:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7099, + "name": "length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7032, + "src": "3080:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7097, + "name": "StringsInsufficientHexLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6927, + "src": "3044:28:23", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 7100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3044:43:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 7101, + "nodeType": "RevertStatement", + "src": "3037:50:23" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 7106, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7042, + "src": "3121:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 7105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3114:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 7104, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3114:6:23", + "typeDescriptions": {} + } + }, + "id": 7107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3114:14:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 7036, + "id": 7108, + "nodeType": "Return", + "src": "3107:21:23" + } + ] + }, + "documentation": { + "id": 7028, + "nodeType": "StructuredDocumentation", + "src": "2493:112:23", + "text": " @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length." + }, + "id": 7110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "2619:11:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7033, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7030, + "mutability": "mutable", + "name": "value", + "nameLocation": "2639:5:23", + "nodeType": "VariableDeclaration", + "scope": 7110, + "src": "2631:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7029, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2631:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7032, + "mutability": "mutable", + "name": "length", + "nameLocation": "2654:6:23", + "nodeType": "VariableDeclaration", + "scope": 7110, + "src": "2646:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7031, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2646:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2630:31:23" + }, + "returnParameters": { + "id": 7036, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7035, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7110, + "src": "2685:13:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7034, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2685:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "2684:15:23" + }, + "scope": 8269, + "src": "2610:525:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7129, + "nodeType": "Block", + "src": "3367:75:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 7123, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7113, + "src": "3412:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7122, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3404:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 7121, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "3404:7:23", + "typeDescriptions": {} + } + }, + "id": 7124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3404:13:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 7120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3396:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 7119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3396:7:23", + "typeDescriptions": {} + } + }, + "id": 7125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3396:22:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7126, + "name": "ADDRESS_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6884, + "src": "3420:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 7118, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7027, + 7110, + 7130 + ], + "referencedDeclaration": 7110, + "src": "3384:11:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256,uint256) pure returns (string memory)" + } + }, + "id": 7127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3384:51:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 7117, + "id": 7128, + "nodeType": "Return", + "src": "3377:58:23" + } + ] + }, + "documentation": { + "id": 7111, + "nodeType": "StructuredDocumentation", + "src": "3141:148:23", + "text": " @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation." + }, + "id": 7130, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toHexString", + "nameLocation": "3303:11:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7113, + "mutability": "mutable", + "name": "addr", + "nameLocation": "3323:4:23", + "nodeType": "VariableDeclaration", + "scope": 7130, + "src": "3315:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3315:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3314:14:23" + }, + "returnParameters": { + "id": 7117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7116, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7130, + "src": "3352:13:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7115, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3352:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3351:15:23" + }, + "scope": 8269, + "src": "3294:148:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7194, + "nodeType": "Block", + "src": "3699:642:23", + "statements": [ + { + "assignments": [ + 7139 + ], + "declarations": [ + { + "constant": false, + "id": 7139, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "3722:6:23", + "nodeType": "VariableDeclaration", + "scope": 7194, + "src": "3709:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 7138, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3709:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 7146, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 7143, + "name": "addr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7133, + "src": "3749:4:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7142, + "name": "toHexString", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7027, + 7110, + 7130 + ], + "referencedDeclaration": 7130, + "src": "3737:11:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_string_memory_ptr_$", + "typeString": "function (address) pure returns (string memory)" + } + }, + "id": 7144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3737:17:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7141, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3731:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7140, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3731:5:23", + "typeDescriptions": {} + } + }, + "id": 7145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3731:24:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3709:46:23" + }, + { + "assignments": [ + 7148 + ], + "declarations": [ + { + "constant": false, + "id": 7148, + "mutability": "mutable", + "name": "hashValue", + "nameLocation": "3848:9:23", + "nodeType": "VariableDeclaration", + "scope": 7194, + "src": "3840:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7147, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3840:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7149, + "nodeType": "VariableDeclarationStatement", + "src": "3840:17:23" + }, + { + "AST": { + "nativeSrc": "3892:78:23", + "nodeType": "YulBlock", + "src": "3892:78:23", + "statements": [ + { + "nativeSrc": "3906:54:23", + "nodeType": "YulAssignment", + "src": "3906:54:23", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3923:2:23", + "nodeType": "YulLiteral", + "src": "3923:2:23", + "type": "", + "value": "96" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "buffer", + "nativeSrc": "3941:6:23", + "nodeType": "YulIdentifier", + "src": "3941:6:23" + }, + { + "kind": "number", + "nativeSrc": "3949:4:23", + "nodeType": "YulLiteral", + "src": "3949:4:23", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3937:3:23", + "nodeType": "YulIdentifier", + "src": "3937:3:23" + }, + "nativeSrc": "3937:17:23", + "nodeType": "YulFunctionCall", + "src": "3937:17:23" + }, + { + "kind": "number", + "nativeSrc": "3956:2:23", + "nodeType": "YulLiteral", + "src": "3956:2:23", + "type": "", + "value": "40" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3927:9:23", + "nodeType": "YulIdentifier", + "src": "3927:9:23" + }, + "nativeSrc": "3927:32:23", + "nodeType": "YulFunctionCall", + "src": "3927:32:23" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "3919:3:23", + "nodeType": "YulIdentifier", + "src": "3919:3:23" + }, + "nativeSrc": "3919:41:23", + "nodeType": "YulFunctionCall", + "src": "3919:41:23" + }, + "variableNames": [ + { + "name": "hashValue", + "nativeSrc": "3906:9:23", + "nodeType": "YulIdentifier", + "src": "3906:9:23" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 7139, + "isOffset": false, + "isSlot": false, + "src": "3941:6:23", + "valueSize": 1 + }, + { + "declaration": 7148, + "isOffset": false, + "isSlot": false, + "src": "3906:9:23", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 7150, + "nodeType": "InlineAssembly", + "src": "3867:103:23" + }, + { + "body": { + "id": 7187, + "nodeType": "Block", + "src": "4013:291:23", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7161, + "name": "hashValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7148, + "src": "4119:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "hexValue": "307866", + "id": 7162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4131:3:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "4119:15:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "37", + "id": 7164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4137:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "src": "4119:19:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "baseExpression": { + "id": 7168, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7139, + "src": "4148:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7170, + "indexExpression": { + "id": 7169, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7152, + "src": "4155:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4148:9:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 7167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4142:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 7166, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4142:5:23", + "typeDescriptions": {} + } + }, + "id": 7171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4142:16:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3936", + "id": 7172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4161:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + "src": "4142:21:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4119:44:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7182, + "nodeType": "IfStatement", + "src": "4115:150:23", + "trueBody": { + "id": 7181, + "nodeType": "Block", + "src": "4165:100:23", + "statements": [ + { + "expression": { + "id": 7179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 7175, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7139, + "src": "4233:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7177, + "indexExpression": { + "id": 7176, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7152, + "src": "4240:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4233:9:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "^=", + "rightHandSide": { + "hexValue": "30783230", + "id": 7178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4246:4:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "0x20" + }, + "src": "4233:17:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 7180, + "nodeType": "ExpressionStatement", + "src": "4233:17:23" + } + ] + } + }, + { + "expression": { + "id": 7185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7183, + "name": "hashValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7148, + "src": "4278:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 7184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4292:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "4278:15:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7186, + "nodeType": "ExpressionStatement", + "src": "4278:15:23" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7155, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7152, + "src": "4001:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "31", + "id": 7156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4005:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4001:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7188, + "initializationExpression": { + "assignments": [ + 7152 + ], + "declarations": [ + { + "constant": false, + "id": 7152, + "mutability": "mutable", + "name": "i", + "nameLocation": "3993:1:23", + "nodeType": "VariableDeclaration", + "scope": 7188, + "src": "3985:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3985:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7154, + "initialValue": { + "hexValue": "3431", + "id": 7153, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3997:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_41_by_1", + "typeString": "int_const 41" + }, + "value": "41" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3985:14:23" + }, + "isSimpleCounterLoop": false, + "loopExpression": { + "expression": { + "id": 7159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": true, + "src": "4008:3:23", + "subExpression": { + "id": 7158, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7152, + "src": "4010:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7160, + "nodeType": "ExpressionStatement", + "src": "4008:3:23" + }, + "nodeType": "ForStatement", + "src": "3980:324:23" + }, + { + "expression": { + "arguments": [ + { + "id": 7191, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7139, + "src": "4327:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 7190, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4320:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 7189, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4320:6:23", + "typeDescriptions": {} + } + }, + "id": 7192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4320:14:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 7137, + "id": 7193, + "nodeType": "Return", + "src": "4313:21:23" + } + ] + }, + "documentation": { + "id": 7131, + "nodeType": "StructuredDocumentation", + "src": "3448:165:23", + "text": " @dev Converts an `address` with fixed length of 20 bytes to its checksummed ASCII `string` hexadecimal\n representation, according to EIP-55." + }, + "id": 7195, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toChecksumHexString", + "nameLocation": "3627:19:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7134, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7133, + "mutability": "mutable", + "name": "addr", + "nameLocation": "3655:4:23", + "nodeType": "VariableDeclaration", + "scope": 7195, + "src": "3647:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3647:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3646:14:23" + }, + "returnParameters": { + "id": 7137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7136, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7195, + "src": "3684:13:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7135, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3684:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "3683:15:23" + }, + "scope": 8269, + "src": "3618:723:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7231, + "nodeType": "Block", + "src": "4496:104:23", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 7207, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7198, + "src": "4519:1:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4513:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7205, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4513:5:23", + "typeDescriptions": {} + } + }, + "id": 7208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4513:8:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4522:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4513:15:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7212, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7200, + "src": "4538:1:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7211, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4532:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7210, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4532:5:23", + "typeDescriptions": {} + } + }, + "id": 7213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4532:8:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4541:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4532:15:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4513:34:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 7228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 7219, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7198, + "src": "4567:1:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4561:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7217, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4561:5:23", + "typeDescriptions": {} + } + }, + "id": 7220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4561:8:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 7216, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4551:9:23", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 7221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4551:19:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 7225, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7200, + "src": "4590:1:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4584:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7223, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4584:5:23", + "typeDescriptions": {} + } + }, + "id": 7226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4584:8:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 7222, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "4574:9:23", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 7227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4574:19:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "4551:42:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4513:80:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7204, + "id": 7230, + "nodeType": "Return", + "src": "4506:87:23" + } + ] + }, + "documentation": { + "id": 7196, + "nodeType": "StructuredDocumentation", + "src": "4347:66:23", + "text": " @dev Returns true if the two strings are equal." + }, + "id": 7232, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "equal", + "nameLocation": "4427:5:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7201, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7198, + "mutability": "mutable", + "name": "a", + "nameLocation": "4447:1:23", + "nodeType": "VariableDeclaration", + "scope": 7232, + "src": "4433:15:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7197, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4433:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7200, + "mutability": "mutable", + "name": "b", + "nameLocation": "4464:1:23", + "nodeType": "VariableDeclaration", + "scope": 7232, + "src": "4450:15:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7199, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4450:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4432:34:23" + }, + "returnParameters": { + "id": 7204, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7203, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7232, + "src": "4490:4:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7202, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4490:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4489:6:23" + }, + "scope": 8269, + "src": "4418:182:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7250, + "nodeType": "Block", + "src": "4897:64:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7241, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7235, + "src": "4924:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 7242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4931:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 7245, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7235, + "src": "4940:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7244, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4934:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7243, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4934:5:23", + "typeDescriptions": {} + } + }, + "id": 7246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4934:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4947:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "4934:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7240, + "name": "parseUint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7251, + 7282 + ], + "referencedDeclaration": 7282, + "src": "4914:9:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (uint256)" + } + }, + "id": 7248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4914:40:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7239, + "id": 7249, + "nodeType": "Return", + "src": "4907:47:23" + } + ] + }, + "documentation": { + "id": 7233, + "nodeType": "StructuredDocumentation", + "src": "4606:214:23", + "text": " @dev Parse a decimal string and returns the value as a `uint256`.\n Requirements:\n - The string must be formatted as `[0-9]*`\n - The result must fit into an `uint256` type" + }, + "id": 7251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseUint", + "nameLocation": "4834:9:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7235, + "mutability": "mutable", + "name": "input", + "nameLocation": "4858:5:23", + "nodeType": "VariableDeclaration", + "scope": 7251, + "src": "4844:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7234, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4844:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "4843:21:23" + }, + "returnParameters": { + "id": 7239, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7238, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7251, + "src": "4888:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7237, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4888:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4887:9:23" + }, + "scope": 8269, + "src": "4825:136:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7281, + "nodeType": "Block", + "src": "5366:153:23", + "statements": [ + { + "assignments": [ + 7264, + 7266 + ], + "declarations": [ + { + "constant": false, + "id": 7264, + "mutability": "mutable", + "name": "success", + "nameLocation": "5382:7:23", + "nodeType": "VariableDeclaration", + "scope": 7281, + "src": "5377:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5377:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7266, + "mutability": "mutable", + "name": "value", + "nameLocation": "5399:5:23", + "nodeType": "VariableDeclaration", + "scope": 7281, + "src": "5391:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7265, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5391:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7272, + "initialValue": { + "arguments": [ + { + "id": 7268, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7254, + "src": "5421:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 7269, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7256, + "src": "5428:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7270, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7258, + "src": "5435:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7267, + "name": "tryParseUint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7303, + 7340 + ], + "referencedDeclaration": 7340, + "src": "5408:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 7271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5408:31:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5376:63:23" + }, + { + "condition": { + "id": 7274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "5453:8:23", + "subExpression": { + "id": 7273, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7264, + "src": "5454:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7278, + "nodeType": "IfStatement", + "src": "5449:41:23", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7275, + "name": "StringsInvalidChar", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6930, + "src": "5470:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 7276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5470:20:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 7277, + "nodeType": "RevertStatement", + "src": "5463:27:23" + } + }, + { + "expression": { + "id": 7279, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7266, + "src": "5507:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7262, + "id": 7280, + "nodeType": "Return", + "src": "5500:12:23" + } + ] + }, + "documentation": { + "id": 7252, + "nodeType": "StructuredDocumentation", + "src": "4967:294:23", + "text": " @dev Variant of {parseUint-string} that parses a substring of `input` located between position `begin` (included) and\n `end` (excluded).\n Requirements:\n - The substring must be formatted as `[0-9]*`\n - The result must fit into an `uint256` type" + }, + "id": 7282, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseUint", + "nameLocation": "5275:9:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7254, + "mutability": "mutable", + "name": "input", + "nameLocation": "5299:5:23", + "nodeType": "VariableDeclaration", + "scope": 7282, + "src": "5285:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7253, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5285:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7256, + "mutability": "mutable", + "name": "begin", + "nameLocation": "5314:5:23", + "nodeType": "VariableDeclaration", + "scope": 7282, + "src": "5306:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5306:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7258, + "mutability": "mutable", + "name": "end", + "nameLocation": "5329:3:23", + "nodeType": "VariableDeclaration", + "scope": 7282, + "src": "5321:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5321:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5284:49:23" + }, + "returnParameters": { + "id": 7262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7261, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7282, + "src": "5357:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7260, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5357:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5356:9:23" + }, + "scope": 8269, + "src": "5266:253:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7302, + "nodeType": "Block", + "src": "5840:83:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7293, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7285, + "src": "5886:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 7294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5893:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 7297, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7285, + "src": "5902:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5896:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7295, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5896:5:23", + "typeDescriptions": {} + } + }, + "id": 7298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5896:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5909:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5896:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7292, + "name": "_tryParseUintUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7410, + "src": "5857:28:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 7300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5857:59:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 7291, + "id": 7301, + "nodeType": "Return", + "src": "5850:66:23" + } + ] + }, + "documentation": { + "id": 7283, + "nodeType": "StructuredDocumentation", + "src": "5525:215:23", + "text": " @dev Variant of {parseUint-string} that returns false if the parsing fails because of an invalid character.\n NOTE: This function will revert if the result does not fit in a `uint256`." + }, + "id": 7303, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseUint", + "nameLocation": "5754:12:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7286, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7285, + "mutability": "mutable", + "name": "input", + "nameLocation": "5781:5:23", + "nodeType": "VariableDeclaration", + "scope": 7303, + "src": "5767:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7284, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5767:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "5766:21:23" + }, + "returnParameters": { + "id": 7291, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7288, + "mutability": "mutable", + "name": "success", + "nameLocation": "5816:7:23", + "nodeType": "VariableDeclaration", + "scope": 7303, + "src": "5811:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7287, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5811:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7290, + "mutability": "mutable", + "name": "value", + "nameLocation": "5833:5:23", + "nodeType": "VariableDeclaration", + "scope": 7303, + "src": "5825:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7289, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5825:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5810:29:23" + }, + "scope": 8269, + "src": "5745:178:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7339, + "nodeType": "Block", + "src": "6325:144:23", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7317, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7310, + "src": "6339:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7320, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7306, + "src": "6351:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7319, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6345:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7318, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6345:5:23", + "typeDescriptions": {} + } + }, + "id": 7321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6345:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6358:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "6345:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6339:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7324, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7308, + "src": "6368:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 7325, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7310, + "src": "6376:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6368:11:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6339:40:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7332, + "nodeType": "IfStatement", + "src": "6335:63:23", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 7328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6389:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 7329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6396:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 7330, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6388:10:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 7316, + "id": 7331, + "nodeType": "Return", + "src": "6381:17:23" + } + }, + { + "expression": { + "arguments": [ + { + "id": 7334, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7306, + "src": "6444:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 7335, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7308, + "src": "6451:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7336, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7310, + "src": "6458:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7333, + "name": "_tryParseUintUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7410, + "src": "6415:28:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 7337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6415:47:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 7316, + "id": 7338, + "nodeType": "Return", + "src": "6408:54:23" + } + ] + }, + "documentation": { + "id": 7304, + "nodeType": "StructuredDocumentation", + "src": "5929:238:23", + "text": " @dev Variant of {parseUint-string-uint256-uint256} that returns false if the parsing fails because of an invalid\n character.\n NOTE: This function will revert if the result does not fit in a `uint256`." + }, + "id": 7340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseUint", + "nameLocation": "6181:12:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7311, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7306, + "mutability": "mutable", + "name": "input", + "nameLocation": "6217:5:23", + "nodeType": "VariableDeclaration", + "scope": 7340, + "src": "6203:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7305, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6203:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7308, + "mutability": "mutable", + "name": "begin", + "nameLocation": "6240:5:23", + "nodeType": "VariableDeclaration", + "scope": 7340, + "src": "6232:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7307, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6232:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7310, + "mutability": "mutable", + "name": "end", + "nameLocation": "6263:3:23", + "nodeType": "VariableDeclaration", + "scope": 7340, + "src": "6255:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7309, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6255:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6193:79:23" + }, + "returnParameters": { + "id": 7316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7313, + "mutability": "mutable", + "name": "success", + "nameLocation": "6301:7:23", + "nodeType": "VariableDeclaration", + "scope": 7340, + "src": "6296:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7312, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6296:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7315, + "mutability": "mutable", + "name": "value", + "nameLocation": "6318:5:23", + "nodeType": "VariableDeclaration", + "scope": 7340, + "src": "6310:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7314, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6310:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6295:29:23" + }, + "scope": 8269, + "src": "6172:297:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7409, + "nodeType": "Block", + "src": "6872:347:23", + "statements": [ + { + "assignments": [ + 7355 + ], + "declarations": [ + { + "constant": false, + "id": 7355, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "6895:6:23", + "nodeType": "VariableDeclaration", + "scope": 7409, + "src": "6882:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 7354, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6882:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 7360, + "initialValue": { + "arguments": [ + { + "id": 7358, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7343, + "src": "6910:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6904:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7356, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6904:5:23", + "typeDescriptions": {} + } + }, + "id": 7359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6904:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6882:34:23" + }, + { + "assignments": [ + 7362 + ], + "declarations": [ + { + "constant": false, + "id": 7362, + "mutability": "mutable", + "name": "result", + "nameLocation": "6935:6:23", + "nodeType": "VariableDeclaration", + "scope": 7409, + "src": "6927:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7361, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6927:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7364, + "initialValue": { + "hexValue": "30", + "id": 7363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6944:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "6927:18:23" + }, + { + "body": { + "id": 7403, + "nodeType": "Block", + "src": "6993:189:23", + "statements": [ + { + "assignments": [ + 7376 + ], + "declarations": [ + { + "constant": false, + "id": 7376, + "mutability": "mutable", + "name": "chr", + "nameLocation": "7013:3:23", + "nodeType": "VariableDeclaration", + "scope": 7403, + "src": "7007:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7375, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "7007:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 7386, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 7381, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7355, + "src": "7062:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 7382, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7366, + "src": "7070:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7380, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8268, + "src": "7039:22:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 7383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7039:33:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7379, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7032:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 7378, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "7032:6:23", + "typeDescriptions": {} + } + }, + "id": 7384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7032:41:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 7377, + "name": "_tryParseChr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8090, + "src": "7019:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes1_$returns$_t_uint8_$", + "typeString": "function (bytes1) pure returns (uint8)" + } + }, + "id": 7385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7019:55:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7007:67:23" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7387, + "name": "chr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7376, + "src": "7092:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "39", + "id": 7388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7098:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "7092:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7394, + "nodeType": "IfStatement", + "src": "7088:30:23", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 7390, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7109:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 7391, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7116:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 7392, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7108:10:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 7353, + "id": 7393, + "nodeType": "Return", + "src": "7101:17:23" + } + }, + { + "expression": { + "id": 7397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7395, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7362, + "src": "7132:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "hexValue": "3130", + "id": 7396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7142:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "7132:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7398, + "nodeType": "ExpressionStatement", + "src": "7132:12:23" + }, + { + "expression": { + "id": 7401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7399, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7362, + "src": "7158:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 7400, + "name": "chr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7376, + "src": "7168:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7158:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7402, + "nodeType": "ExpressionStatement", + "src": "7158:13:23" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7369, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7366, + "src": "6979:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 7370, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7347, + "src": "6983:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6979:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7404, + "initializationExpression": { + "assignments": [ + 7366 + ], + "declarations": [ + { + "constant": false, + "id": 7366, + "mutability": "mutable", + "name": "i", + "nameLocation": "6968:1:23", + "nodeType": "VariableDeclaration", + "scope": 7404, + "src": "6960:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6960:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7368, + "initialValue": { + "id": 7367, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7345, + "src": "6972:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6960:17:23" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 7373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "6988:3:23", + "subExpression": { + "id": 7372, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7366, + "src": "6990:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7374, + "nodeType": "ExpressionStatement", + "src": "6988:3:23" + }, + "nodeType": "ForStatement", + "src": "6955:227:23" + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 7405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7199:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 7406, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7362, + "src": "7205:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7407, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7198:14:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 7353, + "id": 7408, + "nodeType": "Return", + "src": "7191:21:23" + } + ] + }, + "documentation": { + "id": 7341, + "nodeType": "StructuredDocumentation", + "src": "6475:224:23", + "text": " @dev Implementation of {tryParseUint-string-uint256-uint256} that does not check bounds. Caller should make sure that\n `begin <= end <= input.length`. Other inputs would result in undefined behavior." + }, + "id": 7410, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryParseUintUncheckedBounds", + "nameLocation": "6713:28:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7343, + "mutability": "mutable", + "name": "input", + "nameLocation": "6765:5:23", + "nodeType": "VariableDeclaration", + "scope": 7410, + "src": "6751:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7342, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6751:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7345, + "mutability": "mutable", + "name": "begin", + "nameLocation": "6788:5:23", + "nodeType": "VariableDeclaration", + "scope": 7410, + "src": "6780:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6780:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7347, + "mutability": "mutable", + "name": "end", + "nameLocation": "6811:3:23", + "nodeType": "VariableDeclaration", + "scope": 7410, + "src": "6803:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6803:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6741:79:23" + }, + "returnParameters": { + "id": 7353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7350, + "mutability": "mutable", + "name": "success", + "nameLocation": "6848:7:23", + "nodeType": "VariableDeclaration", + "scope": 7410, + "src": "6843:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7349, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6843:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7352, + "mutability": "mutable", + "name": "value", + "nameLocation": "6865:5:23", + "nodeType": "VariableDeclaration", + "scope": 7410, + "src": "6857:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7351, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6857:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6842:29:23" + }, + "scope": 8269, + "src": "6704:515:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 7428, + "nodeType": "Block", + "src": "7516:63:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7419, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7413, + "src": "7542:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 7420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7549:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 7423, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7413, + "src": "7558:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7552:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7421, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7552:5:23", + "typeDescriptions": {} + } + }, + "id": 7424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7552:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7565:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "7552:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7418, + "name": "parseInt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7429, + 7460 + ], + "referencedDeclaration": 7460, + "src": "7533:8:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_int256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (int256)" + } + }, + "id": 7426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7533:39:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 7417, + "id": 7427, + "nodeType": "Return", + "src": "7526:46:23" + } + ] + }, + "documentation": { + "id": 7411, + "nodeType": "StructuredDocumentation", + "src": "7225:216:23", + "text": " @dev Parse a decimal string and returns the value as a `int256`.\n Requirements:\n - The string must be formatted as `[-+]?[0-9]*`\n - The result must fit in an `int256` type." + }, + "id": 7429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseInt", + "nameLocation": "7455:8:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7413, + "mutability": "mutable", + "name": "input", + "nameLocation": "7478:5:23", + "nodeType": "VariableDeclaration", + "scope": 7429, + "src": "7464:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7412, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7464:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7463:21:23" + }, + "returnParameters": { + "id": 7417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7416, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7429, + "src": "7508:6:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 7415, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "7508:6:23", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "7507:8:23" + }, + "scope": 8269, + "src": "7446:133:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7459, + "nodeType": "Block", + "src": "7984:151:23", + "statements": [ + { + "assignments": [ + 7442, + 7444 + ], + "declarations": [ + { + "constant": false, + "id": 7442, + "mutability": "mutable", + "name": "success", + "nameLocation": "8000:7:23", + "nodeType": "VariableDeclaration", + "scope": 7459, + "src": "7995:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7441, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7995:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7444, + "mutability": "mutable", + "name": "value", + "nameLocation": "8016:5:23", + "nodeType": "VariableDeclaration", + "scope": 7459, + "src": "8009:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 7443, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "8009:6:23", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 7450, + "initialValue": { + "arguments": [ + { + "id": 7446, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7432, + "src": "8037:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 7447, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7434, + "src": "8044:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7448, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7436, + "src": "8051:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7445, + "name": "tryParseInt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7481, + 7523 + ], + "referencedDeclaration": 7523, + "src": "8025:11:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_int256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,int256)" + } + }, + "id": 7449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8025:30:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$", + "typeString": "tuple(bool,int256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7994:61:23" + }, + { + "condition": { + "id": 7452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "8069:8:23", + "subExpression": { + "id": 7451, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7442, + "src": "8070:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7456, + "nodeType": "IfStatement", + "src": "8065:41:23", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7453, + "name": "StringsInvalidChar", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6930, + "src": "8086:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 7454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8086:20:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 7455, + "nodeType": "RevertStatement", + "src": "8079:27:23" + } + }, + { + "expression": { + "id": 7457, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7444, + "src": "8123:5:23", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 7440, + "id": 7458, + "nodeType": "Return", + "src": "8116:12:23" + } + ] + }, + "documentation": { + "id": 7430, + "nodeType": "StructuredDocumentation", + "src": "7585:296:23", + "text": " @dev Variant of {parseInt-string} that parses a substring of `input` located between position `begin` (included) and\n `end` (excluded).\n Requirements:\n - The substring must be formatted as `[-+]?[0-9]*`\n - The result must fit in an `int256` type." + }, + "id": 7460, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseInt", + "nameLocation": "7895:8:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7432, + "mutability": "mutable", + "name": "input", + "nameLocation": "7918:5:23", + "nodeType": "VariableDeclaration", + "scope": 7460, + "src": "7904:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7431, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7904:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7434, + "mutability": "mutable", + "name": "begin", + "nameLocation": "7933:5:23", + "nodeType": "VariableDeclaration", + "scope": 7460, + "src": "7925:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7433, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7925:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7436, + "mutability": "mutable", + "name": "end", + "nameLocation": "7948:3:23", + "nodeType": "VariableDeclaration", + "scope": 7460, + "src": "7940:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7435, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7940:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7903:49:23" + }, + "returnParameters": { + "id": 7440, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7439, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7460, + "src": "7976:6:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 7438, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "7976:6:23", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "7975:8:23" + }, + "scope": 8269, + "src": "7886:249:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7480, + "nodeType": "Block", + "src": "8526:82:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7471, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7463, + "src": "8571:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 7472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8578:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 7475, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7463, + "src": "8587:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7474, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8581:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7473, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8581:5:23", + "typeDescriptions": {} + } + }, + "id": 7476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8581:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8594:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "8581:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7470, + "name": "_tryParseIntUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7644, + "src": "8543:27:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_int256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,int256)" + } + }, + "id": 7478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8543:58:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$", + "typeString": "tuple(bool,int256)" + } + }, + "functionReturnParameters": 7469, + "id": 7479, + "nodeType": "Return", + "src": "8536:65:23" + } + ] + }, + "documentation": { + "id": 7461, + "nodeType": "StructuredDocumentation", + "src": "8141:287:23", + "text": " @dev Variant of {parseInt-string} that returns false if the parsing fails because of an invalid character or if\n the result does not fit in a `int256`.\n NOTE: This function will revert if the absolute value of the result does not fit in a `uint256`." + }, + "id": 7481, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseInt", + "nameLocation": "8442:11:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7463, + "mutability": "mutable", + "name": "input", + "nameLocation": "8468:5:23", + "nodeType": "VariableDeclaration", + "scope": 7481, + "src": "8454:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7462, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8454:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "8453:21:23" + }, + "returnParameters": { + "id": 7469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7466, + "mutability": "mutable", + "name": "success", + "nameLocation": "8503:7:23", + "nodeType": "VariableDeclaration", + "scope": 7481, + "src": "8498:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7465, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8498:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7468, + "mutability": "mutable", + "name": "value", + "nameLocation": "8519:5:23", + "nodeType": "VariableDeclaration", + "scope": 7481, + "src": "8512:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 7467, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "8512:6:23", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "8497:28:23" + }, + "scope": 8269, + "src": "8433:175:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "constant": true, + "id": 7486, + "mutability": "constant", + "name": "ABS_MIN_INT256", + "nameLocation": "8639:14:23", + "nodeType": "VariableDeclaration", + "scope": 8269, + "src": "8614:50:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7482, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8614:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", + "typeString": "int_const 5789...(69 digits omitted)...9968" + }, + "id": 7485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 7483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8656:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "323535", + "id": 7484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8661:3:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "8656:8:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1", + "typeString": "int_const 5789...(69 digits omitted)...9968" + } + }, + "visibility": "private" + }, + { + "body": { + "id": 7522, + "nodeType": "Block", + "src": "9130:143:23", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7500, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7493, + "src": "9144:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7503, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7489, + "src": "9156:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7502, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9150:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7501, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9150:5:23", + "typeDescriptions": {} + } + }, + "id": 7504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9150:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9163:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9150:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9144:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7507, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7491, + "src": "9173:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 7508, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7493, + "src": "9181:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9173:11:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "9144:40:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7515, + "nodeType": "IfStatement", + "src": "9140:63:23", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 7511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9194:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 7512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9201:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 7513, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9193:10:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 7499, + "id": 7514, + "nodeType": "Return", + "src": "9186:17:23" + } + }, + { + "expression": { + "arguments": [ + { + "id": 7517, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7489, + "src": "9248:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 7518, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7491, + "src": "9255:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7519, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7493, + "src": "9262:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7516, + "name": "_tryParseIntUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7644, + "src": "9220:27:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_int256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,int256)" + } + }, + "id": 7520, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9220:46:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$", + "typeString": "tuple(bool,int256)" + } + }, + "functionReturnParameters": 7499, + "id": 7521, + "nodeType": "Return", + "src": "9213:53:23" + } + ] + }, + "documentation": { + "id": 7487, + "nodeType": "StructuredDocumentation", + "src": "8671:303:23", + "text": " @dev Variant of {parseInt-string-uint256-uint256} that returns false if the parsing fails because of an invalid\n character or if the result does not fit in a `int256`.\n NOTE: This function will revert if the absolute value of the result does not fit in a `uint256`." + }, + "id": 7523, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseInt", + "nameLocation": "8988:11:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7489, + "mutability": "mutable", + "name": "input", + "nameLocation": "9023:5:23", + "nodeType": "VariableDeclaration", + "scope": 7523, + "src": "9009:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7488, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9009:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7491, + "mutability": "mutable", + "name": "begin", + "nameLocation": "9046:5:23", + "nodeType": "VariableDeclaration", + "scope": 7523, + "src": "9038:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9038:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7493, + "mutability": "mutable", + "name": "end", + "nameLocation": "9069:3:23", + "nodeType": "VariableDeclaration", + "scope": 7523, + "src": "9061:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9061:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8999:79:23" + }, + "returnParameters": { + "id": 7499, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7496, + "mutability": "mutable", + "name": "success", + "nameLocation": "9107:7:23", + "nodeType": "VariableDeclaration", + "scope": 7523, + "src": "9102:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7495, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9102:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7498, + "mutability": "mutable", + "name": "value", + "nameLocation": "9123:5:23", + "nodeType": "VariableDeclaration", + "scope": 7523, + "src": "9116:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 7497, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "9116:6:23", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "9101:28:23" + }, + "scope": 8269, + "src": "8979:294:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7643, + "nodeType": "Block", + "src": "9673:812:23", + "statements": [ + { + "assignments": [ + 7538 + ], + "declarations": [ + { + "constant": false, + "id": 7538, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "9696:6:23", + "nodeType": "VariableDeclaration", + "scope": 7643, + "src": "9683:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 7537, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9683:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 7543, + "initialValue": { + "arguments": [ + { + "id": 7541, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7526, + "src": "9711:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9705:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7539, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9705:5:23", + "typeDescriptions": {} + } + }, + "id": 7542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9705:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9683:34:23" + }, + { + "assignments": [ + 7545 + ], + "declarations": [ + { + "constant": false, + "id": 7545, + "mutability": "mutable", + "name": "sign", + "nameLocation": "9781:4:23", + "nodeType": "VariableDeclaration", + "scope": 7643, + "src": "9774:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "typeName": { + "id": 7544, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "9774:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "visibility": "internal" + } + ], + "id": 7561, + "initialValue": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7546, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7528, + "src": "9788:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 7547, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "9797:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9788:12:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 7556, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7538, + "src": "9845:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 7557, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7528, + "src": "9853:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7555, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8268, + "src": "9822:22:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 7558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9822:37:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9815:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 7553, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "9815:6:23", + "typeDescriptions": {} + } + }, + "id": 7559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9815:45:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 7560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "9788:72:23", + "trueExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 7551, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9810:1:23", + "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" + } + ], + "id": 7550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9803:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 7549, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "9803:6:23", + "typeDescriptions": {} + } + }, + "id": 7552, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9803:9:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9774:86:23" + }, + { + "assignments": [ + 7563 + ], + "declarations": [ + { + "constant": false, + "id": 7563, + "mutability": "mutable", + "name": "positiveSign", + "nameLocation": "9946:12:23", + "nodeType": "VariableDeclaration", + "scope": 7643, + "src": "9941:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7562, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9941:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7570, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 7569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7564, + "name": "sign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7545, + "src": "9961:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "2b", + "id": 7567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9976:3:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8", + "typeString": "literal_string \"+\"" + }, + "value": "+" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_728b8dbbe730d9acd55e30e768e6a28a04bea0c61b88108287c2c87d79c98bb8", + "typeString": "literal_string \"+\"" + } + ], + "id": 7566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9969:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 7565, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "9969:6:23", + "typeDescriptions": {} + } + }, + "id": 7568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9969:11:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "9961:19:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9941:39:23" + }, + { + "assignments": [ + 7572 + ], + "declarations": [ + { + "constant": false, + "id": 7572, + "mutability": "mutable", + "name": "negativeSign", + "nameLocation": "9995:12:23", + "nodeType": "VariableDeclaration", + "scope": 7643, + "src": "9990:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7571, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9990:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7579, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 7578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7573, + "name": "sign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7545, + "src": "10010:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "2d", + "id": 7576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:3:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561", + "typeString": "literal_string \"-\"" + }, + "value": "-" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561", + "typeString": "literal_string \"-\"" + } + ], + "id": 7575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10018:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 7574, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "10018:6:23", + "typeDescriptions": {} + } + }, + "id": 7577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10018:11:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "10010:19:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9990:39:23" + }, + { + "assignments": [ + 7581 + ], + "declarations": [ + { + "constant": false, + "id": 7581, + "mutability": "mutable", + "name": "offset", + "nameLocation": "10047:6:23", + "nodeType": "VariableDeclaration", + "scope": 7643, + "src": "10039:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10039:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7588, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7582, + "name": "positiveSign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7563, + "src": "10057:12:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "id": 7583, + "name": "negativeSign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7572, + "src": "10073:12:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10057:28:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 7585, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10056:30:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10087:6:23", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "10056:37:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$attached_to$_t_bool_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 7587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10056:39:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10039:56:23" + }, + { + "assignments": [ + 7590, + 7592 + ], + "declarations": [ + { + "constant": false, + "id": 7590, + "mutability": "mutable", + "name": "absSuccess", + "nameLocation": "10112:10:23", + "nodeType": "VariableDeclaration", + "scope": 7643, + "src": "10107:15:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7589, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10107:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7592, + "mutability": "mutable", + "name": "absValue", + "nameLocation": "10132:8:23", + "nodeType": "VariableDeclaration", + "scope": 7643, + "src": "10124:16:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7591, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10124:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7600, + "initialValue": { + "arguments": [ + { + "id": 7594, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7526, + "src": "10157:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7595, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7528, + "src": "10164:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 7596, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7581, + "src": "10172:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10164:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7598, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "10180:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7593, + "name": "tryParseUint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7303, + 7340 + ], + "referencedDeclaration": 7340, + "src": "10144:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 7599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10144:40:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10106:78:23" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7601, + "name": "absSuccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7590, + "src": "10199:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7602, + "name": "absValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7592, + "src": "10213:8:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 7603, + "name": "ABS_MIN_INT256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7486, + "src": "10224:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10213:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10199:39:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7621, + "name": "absSuccess", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7590, + "src": "10341:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "id": 7622, + "name": "negativeSign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7572, + "src": "10355:12:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10341:26:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7624, + "name": "absValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7592, + "src": "10371:8:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 7625, + "name": "ABS_MIN_INT256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7486, + "src": "10383:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10371:26:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10341:56:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 7637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10469:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 7638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10476:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 7639, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10468:10:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 7536, + "id": 7640, + "nodeType": "Return", + "src": "10461:17:23" + }, + "id": 7641, + "nodeType": "IfStatement", + "src": "10337:141:23", + "trueBody": { + "id": 7636, + "nodeType": "Block", + "src": "10399:56:23", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 7628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10421:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "arguments": [ + { + "id": 7631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10432:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 7630, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "10432:6:23", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + } + ], + "id": 7629, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10427:4:23", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 7632, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10427:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_int256", + "typeString": "type(int256)" + } + }, + "id": 7633, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10440:3:23", + "memberName": "min", + "nodeType": "MemberAccess", + "src": "10427:16:23", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 7634, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10420:24:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$", + "typeString": "tuple(bool,int256)" + } + }, + "functionReturnParameters": 7536, + "id": 7635, + "nodeType": "Return", + "src": "10413:31:23" + } + ] + } + }, + "id": 7642, + "nodeType": "IfStatement", + "src": "10195:283:23", + "trueBody": { + "id": 7620, + "nodeType": "Block", + "src": "10240:91:23", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 7606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10262:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "condition": { + "id": 7607, + "name": "negativeSign", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7572, + "src": "10268:12:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "arguments": [ + { + "id": 7615, + "name": "absValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7592, + "src": "10310:8:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7614, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10303:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 7613, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "10303:6:23", + "typeDescriptions": {} + } + }, + "id": 7616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10303:16:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 7617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "10268:51:23", + "trueExpression": { + "id": 7612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "10283:17:23", + "subExpression": { + "arguments": [ + { + "id": 7610, + "name": "absValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7592, + "src": "10291:8:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10284:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 7608, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "10284:6:23", + "typeDescriptions": {} + } + }, + "id": 7611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10284:16:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 7618, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10261:59:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_int256_$", + "typeString": "tuple(bool,int256)" + } + }, + "functionReturnParameters": 7536, + "id": 7619, + "nodeType": "Return", + "src": "10254:66:23" + } + ] + } + } + ] + }, + "documentation": { + "id": 7524, + "nodeType": "StructuredDocumentation", + "src": "9279:223:23", + "text": " @dev Implementation of {tryParseInt-string-uint256-uint256} that does not check bounds. Caller should make sure that\n `begin <= end <= input.length`. Other inputs would result in undefined behavior." + }, + "id": 7644, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryParseIntUncheckedBounds", + "nameLocation": "9516:27:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7531, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7526, + "mutability": "mutable", + "name": "input", + "nameLocation": "9567:5:23", + "nodeType": "VariableDeclaration", + "scope": 7644, + "src": "9553:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7525, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9553:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7528, + "mutability": "mutable", + "name": "begin", + "nameLocation": "9590:5:23", + "nodeType": "VariableDeclaration", + "scope": 7644, + "src": "9582:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7527, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9582:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7530, + "mutability": "mutable", + "name": "end", + "nameLocation": "9613:3:23", + "nodeType": "VariableDeclaration", + "scope": 7644, + "src": "9605:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7529, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9605:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9543:79:23" + }, + "returnParameters": { + "id": 7536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7533, + "mutability": "mutable", + "name": "success", + "nameLocation": "9650:7:23", + "nodeType": "VariableDeclaration", + "scope": 7644, + "src": "9645:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7532, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9645:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7535, + "mutability": "mutable", + "name": "value", + "nameLocation": "9666:5:23", + "nodeType": "VariableDeclaration", + "scope": 7644, + "src": "9659:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 7534, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "9659:6:23", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "9644:28:23" + }, + "scope": 8269, + "src": "9507:978:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 7662, + "nodeType": "Block", + "src": "10830:67:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7653, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7647, + "src": "10860:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 7654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10867:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 7657, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7647, + "src": "10876:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7656, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10870:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7655, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "10870:5:23", + "typeDescriptions": {} + } + }, + "id": 7658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10870:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10883:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "10870:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7652, + "name": "parseHexUint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7663, + 7694 + ], + "referencedDeclaration": 7694, + "src": "10847:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (uint256)" + } + }, + "id": 7660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10847:43:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7651, + "id": 7661, + "nodeType": "Return", + "src": "10840:50:23" + } + ] + }, + "documentation": { + "id": 7645, + "nodeType": "StructuredDocumentation", + "src": "10491:259:23", + "text": " @dev Parse a hexadecimal string (with or without \"0x\" prefix), and returns the value as a `uint256`.\n Requirements:\n - The string must be formatted as `(0x)?[0-9a-fA-F]*`\n - The result must fit in an `uint256` type." + }, + "id": 7663, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseHexUint", + "nameLocation": "10764:12:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7648, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7647, + "mutability": "mutable", + "name": "input", + "nameLocation": "10791:5:23", + "nodeType": "VariableDeclaration", + "scope": 7663, + "src": "10777:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7646, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "10777:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "10776:21:23" + }, + "returnParameters": { + "id": 7651, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7650, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7663, + "src": "10821:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7649, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10821:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10820:9:23" + }, + "scope": 8269, + "src": "10755:142:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7693, + "nodeType": "Block", + "src": "11318:156:23", + "statements": [ + { + "assignments": [ + 7676, + 7678 + ], + "declarations": [ + { + "constant": false, + "id": 7676, + "mutability": "mutable", + "name": "success", + "nameLocation": "11334:7:23", + "nodeType": "VariableDeclaration", + "scope": 7693, + "src": "11329:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7675, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11329:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7678, + "mutability": "mutable", + "name": "value", + "nameLocation": "11351:5:23", + "nodeType": "VariableDeclaration", + "scope": 7693, + "src": "11343:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11343:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7684, + "initialValue": { + "arguments": [ + { + "id": 7680, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7666, + "src": "11376:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 7681, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7668, + "src": "11383:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7682, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7670, + "src": "11390:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7679, + "name": "tryParseHexUint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7715, + 7752 + ], + "referencedDeclaration": 7752, + "src": "11360:15:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 7683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11360:34:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11328:66:23" + }, + { + "condition": { + "id": 7686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "11408:8:23", + "subExpression": { + "id": 7685, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7676, + "src": "11409:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7690, + "nodeType": "IfStatement", + "src": "11404:41:23", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7687, + "name": "StringsInvalidChar", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6930, + "src": "11425:18:23", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 7688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11425:20:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 7689, + "nodeType": "RevertStatement", + "src": "11418:27:23" + } + }, + { + "expression": { + "id": 7691, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7678, + "src": "11462:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7674, + "id": 7692, + "nodeType": "Return", + "src": "11455:12:23" + } + ] + }, + "documentation": { + "id": 7664, + "nodeType": "StructuredDocumentation", + "src": "10903:307:23", + "text": " @dev Variant of {parseHexUint-string} that parses a substring of `input` located between position `begin` (included) and\n `end` (excluded).\n Requirements:\n - The substring must be formatted as `(0x)?[0-9a-fA-F]*`\n - The result must fit in an `uint256` type." + }, + "id": 7694, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseHexUint", + "nameLocation": "11224:12:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7666, + "mutability": "mutable", + "name": "input", + "nameLocation": "11251:5:23", + "nodeType": "VariableDeclaration", + "scope": 7694, + "src": "11237:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7665, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "11237:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7668, + "mutability": "mutable", + "name": "begin", + "nameLocation": "11266:5:23", + "nodeType": "VariableDeclaration", + "scope": 7694, + "src": "11258:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11258:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7670, + "mutability": "mutable", + "name": "end", + "nameLocation": "11281:3:23", + "nodeType": "VariableDeclaration", + "scope": 7694, + "src": "11273:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11273:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11236:49:23" + }, + "returnParameters": { + "id": 7674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7673, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7694, + "src": "11309:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11309:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11308:9:23" + }, + "scope": 8269, + "src": "11215:259:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7714, + "nodeType": "Block", + "src": "11801:86:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7705, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7697, + "src": "11850:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 7706, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11857:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 7709, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7697, + "src": "11866:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11860:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7707, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11860:5:23", + "typeDescriptions": {} + } + }, + "id": 7710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11860:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11873:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "11860:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7704, + "name": "_tryParseHexUintUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7855, + "src": "11818:31:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 7712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11818:62:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 7703, + "id": 7713, + "nodeType": "Return", + "src": "11811:69:23" + } + ] + }, + "documentation": { + "id": 7695, + "nodeType": "StructuredDocumentation", + "src": "11480:218:23", + "text": " @dev Variant of {parseHexUint-string} that returns false if the parsing fails because of an invalid character.\n NOTE: This function will revert if the result does not fit in a `uint256`." + }, + "id": 7715, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseHexUint", + "nameLocation": "11712:15:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7697, + "mutability": "mutable", + "name": "input", + "nameLocation": "11742:5:23", + "nodeType": "VariableDeclaration", + "scope": 7715, + "src": "11728:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7696, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "11728:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "11727:21:23" + }, + "returnParameters": { + "id": 7703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7700, + "mutability": "mutable", + "name": "success", + "nameLocation": "11777:7:23", + "nodeType": "VariableDeclaration", + "scope": 7715, + "src": "11772:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7699, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11772:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7702, + "mutability": "mutable", + "name": "value", + "nameLocation": "11794:5:23", + "nodeType": "VariableDeclaration", + "scope": 7715, + "src": "11786:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7701, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11786:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11771:29:23" + }, + "scope": 8269, + "src": "11703:184:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7751, + "nodeType": "Block", + "src": "12295:147:23", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7735, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7729, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7722, + "src": "12309:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7732, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7718, + "src": "12321:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12315:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7730, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12315:5:23", + "typeDescriptions": {} + } + }, + "id": 7733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12315:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12328:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "12315:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12309:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7736, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7720, + "src": "12338:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 7737, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7722, + "src": "12346:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12338:11:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12309:40:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7744, + "nodeType": "IfStatement", + "src": "12305:63:23", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 7740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12359:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 7741, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12366:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 7742, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12358:10:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 7728, + "id": 7743, + "nodeType": "Return", + "src": "12351:17:23" + } + }, + { + "expression": { + "arguments": [ + { + "id": 7746, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7718, + "src": "12417:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 7747, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7720, + "src": "12424:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7748, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7722, + "src": "12431:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7745, + "name": "_tryParseHexUintUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7855, + "src": "12385:31:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 7749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12385:50:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 7728, + "id": 7750, + "nodeType": "Return", + "src": "12378:57:23" + } + ] + }, + "documentation": { + "id": 7716, + "nodeType": "StructuredDocumentation", + "src": "11893:241:23", + "text": " @dev Variant of {parseHexUint-string-uint256-uint256} that returns false if the parsing fails because of an\n invalid character.\n NOTE: This function will revert if the result does not fit in a `uint256`." + }, + "id": 7752, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseHexUint", + "nameLocation": "12148:15:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7723, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7718, + "mutability": "mutable", + "name": "input", + "nameLocation": "12187:5:23", + "nodeType": "VariableDeclaration", + "scope": 7752, + "src": "12173:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7717, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12173:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7720, + "mutability": "mutable", + "name": "begin", + "nameLocation": "12210:5:23", + "nodeType": "VariableDeclaration", + "scope": 7752, + "src": "12202:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7719, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12202:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7722, + "mutability": "mutable", + "name": "end", + "nameLocation": "12233:3:23", + "nodeType": "VariableDeclaration", + "scope": 7752, + "src": "12225:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7721, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12225:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12163:79:23" + }, + "returnParameters": { + "id": 7728, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7725, + "mutability": "mutable", + "name": "success", + "nameLocation": "12271:7:23", + "nodeType": "VariableDeclaration", + "scope": 7752, + "src": "12266:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7724, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12266:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7727, + "mutability": "mutable", + "name": "value", + "nameLocation": "12288:5:23", + "nodeType": "VariableDeclaration", + "scope": 7752, + "src": "12280:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7726, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12280:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12265:29:23" + }, + "scope": 8269, + "src": "12139:303:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7854, + "nodeType": "Block", + "src": "12851:881:23", + "statements": [ + { + "assignments": [ + 7767 + ], + "declarations": [ + { + "constant": false, + "id": 7767, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "12874:6:23", + "nodeType": "VariableDeclaration", + "scope": 7854, + "src": "12861:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 7766, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12861:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 7772, + "initialValue": { + "arguments": [ + { + "id": 7770, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7755, + "src": "12889:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12883:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7768, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12883:5:23", + "typeDescriptions": {} + } + }, + "id": 7771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12883:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12861:34:23" + }, + { + "assignments": [ + 7774 + ], + "declarations": [ + { + "constant": false, + "id": 7774, + "mutability": "mutable", + "name": "hasPrefix", + "nameLocation": "12948:9:23", + "nodeType": "VariableDeclaration", + "scope": 7854, + "src": "12943:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7773, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12943:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7794, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7775, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7759, + "src": "12961:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7776, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7757, + "src": "12967:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 7777, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12975:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12967:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12961:15:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 7780, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12960:17:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "id": 7792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 7784, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7767, + "src": "13011:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 7785, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7757, + "src": "13019:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7783, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8268, + "src": "12988:22:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 7786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12988:37:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12981:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes2_$", + "typeString": "type(bytes2)" + }, + "typeName": { + "id": 7781, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "12981:6:23", + "typeDescriptions": {} + } + }, + "id": 7787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12981:45:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "3078", + "id": 7790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13037:4:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837", + "typeString": "literal_string \"0x\"" + }, + "value": "0x" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837", + "typeString": "literal_string \"0x\"" + } + ], + "id": 7789, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13030:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes2_$", + "typeString": "type(bytes2)" + }, + "typeName": { + "id": 7788, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "13030:6:23", + "typeDescriptions": {} + } + }, + "id": 7791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13030:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "src": "12981:61:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12960:82:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12943:99:23" + }, + { + "assignments": [ + 7796 + ], + "declarations": [ + { + "constant": false, + "id": 7796, + "mutability": "mutable", + "name": "offset", + "nameLocation": "13131:6:23", + "nodeType": "VariableDeclaration", + "scope": 7854, + "src": "13123:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13123:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7802, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 7797, + "name": "hasPrefix", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7774, + "src": "13140:9:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13150:6:23", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "13140:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$attached_to$_t_bool_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 7799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13140:18:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "32", + "id": 7800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13161:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "13140:22:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13123:39:23" + }, + { + "assignments": [ + 7804 + ], + "declarations": [ + { + "constant": false, + "id": 7804, + "mutability": "mutable", + "name": "result", + "nameLocation": "13181:6:23", + "nodeType": "VariableDeclaration", + "scope": 7854, + "src": "13173:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13173:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7806, + "initialValue": { + "hexValue": "30", + "id": 7805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13190:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13173:18:23" + }, + { + "body": { + "id": 7848, + "nodeType": "Block", + "src": "13248:447:23", + "statements": [ + { + "assignments": [ + 7820 + ], + "declarations": [ + { + "constant": false, + "id": 7820, + "mutability": "mutable", + "name": "chr", + "nameLocation": "13268:3:23", + "nodeType": "VariableDeclaration", + "scope": 7848, + "src": "13262:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7819, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "13262:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 7830, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 7825, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7767, + "src": "13317:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 7826, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7808, + "src": "13325:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7824, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8268, + "src": "13294:22:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 7827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13294:33:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13287:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 7822, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "13287:6:23", + "typeDescriptions": {} + } + }, + "id": 7828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13287:41:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 7821, + "name": "_tryParseChr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8090, + "src": "13274:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes1_$returns$_t_uint8_$", + "typeString": "function (bytes1) pure returns (uint8)" + } + }, + "id": 7829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13274:55:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13262:67:23" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 7833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7831, + "name": "chr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7820, + "src": "13347:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3135", + "id": 7832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13353:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "15" + }, + "src": "13347:8:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7838, + "nodeType": "IfStatement", + "src": "13343:31:23", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 7834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13365:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 7835, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13372:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 7836, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13364:10:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 7765, + "id": 7837, + "nodeType": "Return", + "src": "13357:17:23" + } + }, + { + "expression": { + "id": 7841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7839, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7804, + "src": "13388:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "hexValue": "3136", + "id": 7840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13398:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "13388:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7842, + "nodeType": "ExpressionStatement", + "src": "13388:12:23" + }, + { + "id": 7847, + "nodeType": "UncheckedBlock", + "src": "13414:271:23", + "statements": [ + { + "expression": { + "id": 7845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 7843, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7804, + "src": "13657:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 7844, + "name": "chr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7820, + "src": "13667:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "13657:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7846, + "nodeType": "ExpressionStatement", + "src": "13657:13:23" + } + ] + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7813, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7808, + "src": "13234:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 7814, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7759, + "src": "13238:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13234:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7849, + "initializationExpression": { + "assignments": [ + 7808 + ], + "declarations": [ + { + "constant": false, + "id": 7808, + "mutability": "mutable", + "name": "i", + "nameLocation": "13214:1:23", + "nodeType": "VariableDeclaration", + "scope": 7849, + "src": "13206:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13206:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7812, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7809, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7757, + "src": "13218:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 7810, + "name": "offset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7796, + "src": "13226:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13218:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13206:26:23" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 7817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "13243:3:23", + "subExpression": { + "id": 7816, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7808, + "src": "13245:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7818, + "nodeType": "ExpressionStatement", + "src": "13243:3:23" + }, + "nodeType": "ForStatement", + "src": "13201:494:23" + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 7850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13712:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 7851, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7804, + "src": "13718:6:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7852, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13711:14:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 7765, + "id": 7853, + "nodeType": "Return", + "src": "13704:21:23" + } + ] + }, + "documentation": { + "id": 7753, + "nodeType": "StructuredDocumentation", + "src": "12448:227:23", + "text": " @dev Implementation of {tryParseHexUint-string-uint256-uint256} that does not check bounds. Caller should make sure that\n `begin <= end <= input.length`. Other inputs would result in undefined behavior." + }, + "id": 7855, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryParseHexUintUncheckedBounds", + "nameLocation": "12689:31:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7755, + "mutability": "mutable", + "name": "input", + "nameLocation": "12744:5:23", + "nodeType": "VariableDeclaration", + "scope": 7855, + "src": "12730:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7754, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12730:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7757, + "mutability": "mutable", + "name": "begin", + "nameLocation": "12767:5:23", + "nodeType": "VariableDeclaration", + "scope": 7855, + "src": "12759:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7756, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12759:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7759, + "mutability": "mutable", + "name": "end", + "nameLocation": "12790:3:23", + "nodeType": "VariableDeclaration", + "scope": 7855, + "src": "12782:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7758, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12782:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12720:79:23" + }, + "returnParameters": { + "id": 7765, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7762, + "mutability": "mutable", + "name": "success", + "nameLocation": "12827:7:23", + "nodeType": "VariableDeclaration", + "scope": 7855, + "src": "12822:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7761, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12822:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7764, + "mutability": "mutable", + "name": "value", + "nameLocation": "12844:5:23", + "nodeType": "VariableDeclaration", + "scope": 7855, + "src": "12836:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7763, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12836:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12821:29:23" + }, + "scope": 8269, + "src": "12680:1052:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 7873, + "nodeType": "Block", + "src": "14030:67:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7864, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7858, + "src": "14060:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 7865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14067:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 7868, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7858, + "src": "14076:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7867, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14070:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7866, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14070:5:23", + "typeDescriptions": {} + } + }, + "id": 7869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14070:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14083:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "14070:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7863, + "name": "parseAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7874, + 7905 + ], + "referencedDeclaration": 7905, + "src": "14047:12:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_address_$", + "typeString": "function (string memory,uint256,uint256) pure returns (address)" + } + }, + "id": 7871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14047:43:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 7862, + "id": 7872, + "nodeType": "Return", + "src": "14040:50:23" + } + ] + }, + "documentation": { + "id": 7856, + "nodeType": "StructuredDocumentation", + "src": "13738:212:23", + "text": " @dev Parse a hexadecimal string (with or without \"0x\" prefix), and returns the value as an `address`.\n Requirements:\n - The string must be formatted as `(0x)?[0-9a-fA-F]{40}`" + }, + "id": 7874, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseAddress", + "nameLocation": "13964:12:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7859, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7858, + "mutability": "mutable", + "name": "input", + "nameLocation": "13991:5:23", + "nodeType": "VariableDeclaration", + "scope": 7874, + "src": "13977:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7857, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "13977:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "13976:21:23" + }, + "returnParameters": { + "id": 7862, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7861, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7874, + "src": "14021:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7860, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14021:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14020:9:23" + }, + "scope": 8269, + "src": "13955:142:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7904, + "nodeType": "Block", + "src": "14470:165:23", + "statements": [ + { + "assignments": [ + 7887, + 7889 + ], + "declarations": [ + { + "constant": false, + "id": 7887, + "mutability": "mutable", + "name": "success", + "nameLocation": "14486:7:23", + "nodeType": "VariableDeclaration", + "scope": 7904, + "src": "14481:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7886, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14481:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7889, + "mutability": "mutable", + "name": "value", + "nameLocation": "14503:5:23", + "nodeType": "VariableDeclaration", + "scope": 7904, + "src": "14495:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7888, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14495:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 7895, + "initialValue": { + "arguments": [ + { + "id": 7891, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7877, + "src": "14528:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 7892, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7879, + "src": "14535:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 7893, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7881, + "src": "14542:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7890, + "name": "tryParseAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7926, + 8030 + ], + "referencedDeclaration": 8030, + "src": "14512:15:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_address_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,address)" + } + }, + "id": 7894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14512:34:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14480:66:23" + }, + { + "condition": { + "id": 7897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14560:8:23", + "subExpression": { + "id": 7896, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7887, + "src": "14561:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7901, + "nodeType": "IfStatement", + "src": "14556:50:23", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7898, + "name": "StringsInvalidAddressFormat", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6933, + "src": "14577:27:23", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 7899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14577:29:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 7900, + "nodeType": "RevertStatement", + "src": "14570:36:23" + } + }, + { + "expression": { + "id": 7902, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7889, + "src": "14623:5:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 7885, + "id": 7903, + "nodeType": "Return", + "src": "14616:12:23" + } + ] + }, + "documentation": { + "id": 7875, + "nodeType": "StructuredDocumentation", + "src": "14103:259:23", + "text": " @dev Variant of {parseAddress-string} that parses a substring of `input` located between position `begin` (included) and\n `end` (excluded).\n Requirements:\n - The substring must be formatted as `(0x)?[0-9a-fA-F]{40}`" + }, + "id": 7905, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseAddress", + "nameLocation": "14376:12:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7882, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7877, + "mutability": "mutable", + "name": "input", + "nameLocation": "14403:5:23", + "nodeType": "VariableDeclaration", + "scope": 7905, + "src": "14389:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7876, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14389:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7879, + "mutability": "mutable", + "name": "begin", + "nameLocation": "14418:5:23", + "nodeType": "VariableDeclaration", + "scope": 7905, + "src": "14410:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7878, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14410:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7881, + "mutability": "mutable", + "name": "end", + "nameLocation": "14433:3:23", + "nodeType": "VariableDeclaration", + "scope": 7905, + "src": "14425:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7880, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14425:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14388:49:23" + }, + "returnParameters": { + "id": 7885, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7884, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 7905, + "src": "14461:7:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7883, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14461:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14460:9:23" + }, + "scope": 8269, + "src": "14367:268:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 7925, + "nodeType": "Block", + "src": "14942:70:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 7916, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7908, + "src": "14975:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "hexValue": "30", + "id": 7917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14982:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "expression": { + "arguments": [ + { + "id": 7920, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7908, + "src": "14991:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14985:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7918, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14985:5:23", + "typeDescriptions": {} + } + }, + "id": 7921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14985:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14998:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "14985:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7915, + "name": "tryParseAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 7926, + 8030 + ], + "referencedDeclaration": 8030, + "src": "14959:15:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_address_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,address)" + } + }, + "id": 7923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14959:46:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "functionReturnParameters": 7914, + "id": 7924, + "nodeType": "Return", + "src": "14952:53:23" + } + ] + }, + "documentation": { + "id": 7906, + "nodeType": "StructuredDocumentation", + "src": "14641:198:23", + "text": " @dev Variant of {parseAddress-string} that returns false if the parsing fails because the input is not a properly\n formatted address. See {parseAddress-string} requirements." + }, + "id": 7926, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseAddress", + "nameLocation": "14853:15:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7908, + "mutability": "mutable", + "name": "input", + "nameLocation": "14883:5:23", + "nodeType": "VariableDeclaration", + "scope": 7926, + "src": "14869:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7907, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14869:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "14868:21:23" + }, + "returnParameters": { + "id": 7914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7911, + "mutability": "mutable", + "name": "success", + "nameLocation": "14918:7:23", + "nodeType": "VariableDeclaration", + "scope": 7926, + "src": "14913:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7910, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14913:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7913, + "mutability": "mutable", + "name": "value", + "nameLocation": "14935:5:23", + "nodeType": "VariableDeclaration", + "scope": 7926, + "src": "14927:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7912, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14927:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "14912:29:23" + }, + "scope": 8269, + "src": "14844:168:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8029, + "nodeType": "Block", + "src": "15405:733:23", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7940, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7933, + "src": "15419:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 7943, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7929, + "src": "15431:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7942, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15425:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7941, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15425:5:23", + "typeDescriptions": {} + } + }, + "id": 7944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15425:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 7945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15438:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "15425:19:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15419:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7947, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7931, + "src": "15448:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 7948, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7933, + "src": "15456:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15448:11:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15419:40:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7958, + "nodeType": "IfStatement", + "src": "15415:72:23", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 7951, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15469:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 7954, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15484:1:23", + "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" + } + ], + "id": 7953, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15476:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 7952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15476:7:23", + "typeDescriptions": {} + } + }, + "id": 7955, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15476:10:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 7956, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15468:19:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "functionReturnParameters": 7939, + "id": 7957, + "nodeType": "Return", + "src": "15461:26:23" + } + }, + { + "assignments": [ + 7960 + ], + "declarations": [ + { + "constant": false, + "id": 7960, + "mutability": "mutable", + "name": "hasPrefix", + "nameLocation": "15503:9:23", + "nodeType": "VariableDeclaration", + "scope": 8029, + "src": "15498:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7959, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15498:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 7983, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7961, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7933, + "src": "15516:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7962, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7931, + "src": "15522:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 7963, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15530:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15522:9:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15516:15:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 7966, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15515:17:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "id": 7981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 7972, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7929, + "src": "15572:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 7971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15566:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 7970, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15566:5:23", + "typeDescriptions": {} + } + }, + "id": 7973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15566:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 7974, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7931, + "src": "15580:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7969, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8268, + "src": "15543:22:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 7975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15543:43:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 7968, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15536:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes2_$", + "typeString": "type(bytes2)" + }, + "typeName": { + "id": 7967, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "15536:6:23", + "typeDescriptions": {} + } + }, + "id": 7976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15536:51:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "3078", + "id": 7979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15598:4:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837", + "typeString": "literal_string \"0x\"" + }, + "value": "0x" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_39bef1777deb3dfb14f64b9f81ced092c501fee72f90e93d03bb95ee89df9837", + "typeString": "literal_string \"0x\"" + } + ], + "id": 7978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15591:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes2_$", + "typeString": "type(bytes2)" + }, + "typeName": { + "id": 7977, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "15591:6:23", + "typeDescriptions": {} + } + }, + "id": 7980, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15591:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "src": "15536:67:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15515:88:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15498:105:23" + }, + { + "assignments": [ + 7985 + ], + "declarations": [ + { + "constant": false, + "id": 7985, + "mutability": "mutable", + "name": "expectedLength", + "nameLocation": "15692:14:23", + "nodeType": "VariableDeclaration", + "scope": 8029, + "src": "15684:22:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7984, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15684:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 7993, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3430", + "id": 7986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15709:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + "value": "40" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 7987, + "name": "hasPrefix", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7960, + "src": "15714:9:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15724:6:23", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "15714:16:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$attached_to$_t_bool_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 7989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15714:18:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "32", + "id": 7990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15735:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "15714:22:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15709:27:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15684:52:23" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 7994, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7933, + "src": "15801:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 7995, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7931, + "src": "15807:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15801:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 7997, + "name": "expectedLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7985, + "src": "15816:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15801:29:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8027, + "nodeType": "Block", + "src": "16081:51:23", + "statements": [ + { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 8020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16103:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 8023, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16118:1:23", + "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" + } + ], + "id": 8022, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16110:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 8021, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16110:7:23", + "typeDescriptions": {} + } + }, + "id": 8024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16110:10:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 8025, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "16102:19:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "functionReturnParameters": 7939, + "id": 8026, + "nodeType": "Return", + "src": "16095:26:23" + } + ] + }, + "id": 8028, + "nodeType": "IfStatement", + "src": "15797:335:23", + "trueBody": { + "id": 8019, + "nodeType": "Block", + "src": "15832:243:23", + "statements": [ + { + "assignments": [ + 8000, + 8002 + ], + "declarations": [ + { + "constant": false, + "id": 8000, + "mutability": "mutable", + "name": "s", + "nameLocation": "15953:1:23", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "15948:6:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7999, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15948:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8002, + "mutability": "mutable", + "name": "v", + "nameLocation": "15964:1:23", + "nodeType": "VariableDeclaration", + "scope": 8019, + "src": "15956:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15956:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8008, + "initialValue": { + "arguments": [ + { + "id": 8004, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7929, + "src": "16001:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 8005, + "name": "begin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7931, + "src": "16008:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8006, + "name": "end", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7933, + "src": "16015:3:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8003, + "name": "_tryParseHexUintUncheckedBounds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7855, + "src": "15969:31:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (string memory,uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 8007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15969:50:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15947:72:23" + }, + { + "expression": { + "components": [ + { + "id": 8009, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8000, + "src": "16041:1:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "id": 8014, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8002, + "src": "16060:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16052:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 8012, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "16052:7:23", + "typeDescriptions": {} + } + }, + "id": 8015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16052:10:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 8011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16044:7:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 8010, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16044:7:23", + "typeDescriptions": {} + } + }, + "id": 8016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16044:19:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 8017, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "16040:24:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "functionReturnParameters": 7939, + "id": 8018, + "nodeType": "Return", + "src": "16033:31:23" + } + ] + } + } + ] + }, + "documentation": { + "id": 7927, + "nodeType": "StructuredDocumentation", + "src": "15018:226:23", + "text": " @dev Variant of {parseAddress-string-uint256-uint256} that returns false if the parsing fails because input is not a properly\n formatted address. See {parseAddress-string-uint256-uint256} requirements." + }, + "id": 8030, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryParseAddress", + "nameLocation": "15258:15:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7934, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7929, + "mutability": "mutable", + "name": "input", + "nameLocation": "15297:5:23", + "nodeType": "VariableDeclaration", + "scope": 8030, + "src": "15283:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7928, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "15283:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7931, + "mutability": "mutable", + "name": "begin", + "nameLocation": "15320:5:23", + "nodeType": "VariableDeclaration", + "scope": 8030, + "src": "15312:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7930, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15312:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7933, + "mutability": "mutable", + "name": "end", + "nameLocation": "15343:3:23", + "nodeType": "VariableDeclaration", + "scope": 8030, + "src": "15335:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7932, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15335:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15273:79:23" + }, + "returnParameters": { + "id": 7939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7936, + "mutability": "mutable", + "name": "success", + "nameLocation": "15381:7:23", + "nodeType": "VariableDeclaration", + "scope": 8030, + "src": "15376:12:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7935, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15376:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7938, + "mutability": "mutable", + "name": "value", + "nameLocation": "15398:5:23", + "nodeType": "VariableDeclaration", + "scope": 8030, + "src": "15390:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7937, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15390:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15375:29:23" + }, + "scope": 8269, + "src": "15249:889:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8089, + "nodeType": "Block", + "src": "16207:461:23", + "statements": [ + { + "assignments": [ + 8038 + ], + "declarations": [ + { + "constant": false, + "id": 8038, + "mutability": "mutable", + "name": "value", + "nameLocation": "16223:5:23", + "nodeType": "VariableDeclaration", + "scope": 8089, + "src": "16217:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8037, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16217:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 8043, + "initialValue": { + "arguments": [ + { + "id": 8041, + "name": "chr", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8032, + "src": "16237:3:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 8040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16231:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 8039, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16231:5:23", + "typeDescriptions": {} + } + }, + "id": 8042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16231:10:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16217:24:23" + }, + { + "id": 8086, + "nodeType": "UncheckedBlock", + "src": "16401:238:23", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8044, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8038, + "src": "16429:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3437", + "id": 8045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16437:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_47_by_1", + "typeString": "int_const 47" + }, + "value": "47" + }, + "src": "16429:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8047, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8038, + "src": "16443:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3538", + "id": 8048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16451:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_58_by_1", + "typeString": "int_const 58" + }, + "value": "58" + }, + "src": "16443:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16429:24:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8055, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8038, + "src": "16489:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3936", + "id": 8056, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16497:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + "src": "16489:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8058, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8038, + "src": "16503:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "313033", + "id": 8059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16511:3:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_103_by_1", + "typeString": "int_const 103" + }, + "value": "103" + }, + "src": "16503:11:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16489:25:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8066, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8038, + "src": "16550:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "3634", + "id": 8067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16558:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "16550:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8069, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8038, + "src": "16564:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3731", + "id": 8070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16572:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_71_by_1", + "typeString": "int_const 71" + }, + "value": "71" + }, + "src": "16564:10:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16550:24:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "expression": { + "expression": { + "arguments": [ + { + "id": 8079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16618:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 8078, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16618:5:23", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + } + ], + "id": 8077, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "16613:4:23", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 8080, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16613:11:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint8", + "typeString": "type(uint8)" + } + }, + "id": 8081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16625:3:23", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "16613:15:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 8036, + "id": 8082, + "nodeType": "Return", + "src": "16606:22:23" + }, + "id": 8083, + "nodeType": "IfStatement", + "src": "16546:82:23", + "trueBody": { + "expression": { + "id": 8075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8073, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8038, + "src": "16576:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "3535", + "id": 8074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16585:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_55_by_1", + "typeString": "int_const 55" + }, + "value": "55" + }, + "src": "16576:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 8076, + "nodeType": "ExpressionStatement", + "src": "16576:11:23" + } + }, + "id": 8084, + "nodeType": "IfStatement", + "src": "16485:143:23", + "trueBody": { + "expression": { + "id": 8064, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8062, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8038, + "src": "16516:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "3837", + "id": 8063, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16525:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_87_by_1", + "typeString": "int_const 87" + }, + "value": "87" + }, + "src": "16516:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 8065, + "nodeType": "ExpressionStatement", + "src": "16516:11:23" + } + }, + "id": 8085, + "nodeType": "IfStatement", + "src": "16425:203:23", + "trueBody": { + "expression": { + "id": 8053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8051, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8038, + "src": "16455:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "3438", + "id": 8052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16464:2:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "src": "16455:11:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 8054, + "nodeType": "ExpressionStatement", + "src": "16455:11:23" + } + } + ] + }, + { + "expression": { + "id": 8087, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8038, + "src": "16656:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 8036, + "id": 8088, + "nodeType": "Return", + "src": "16649:12:23" + } + ] + }, + "id": 8090, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryParseChr", + "nameLocation": "16153:12:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8033, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8032, + "mutability": "mutable", + "name": "chr", + "nameLocation": "16173:3:23", + "nodeType": "VariableDeclaration", + "scope": 8090, + "src": "16166:10:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "typeName": { + "id": 8031, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "16166:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "visibility": "internal" + } + ], + "src": "16165:12:23" + }, + "returnParameters": { + "id": 8036, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8035, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8090, + "src": "16200:5:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8034, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16200:5:23", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "16199:7:23" + }, + "scope": 8269, + "src": "16144:524:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 8255, + "nodeType": "Block", + "src": "17334:1331:23", + "statements": [ + { + "assignments": [ + 8099 + ], + "declarations": [ + { + "constant": false, + "id": 8099, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "17357:6:23", + "nodeType": "VariableDeclaration", + "scope": 8255, + "src": "17344:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 8098, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17344:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 8104, + "initialValue": { + "arguments": [ + { + "id": 8102, + "name": "input", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8093, + "src": "17372:5:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 8101, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17366:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 8100, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17366:5:23", + "typeDescriptions": {} + } + }, + "id": 8103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17366:12:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17344:34:23" + }, + { + "assignments": [ + 8106 + ], + "declarations": [ + { + "constant": false, + "id": 8106, + "mutability": "mutable", + "name": "output", + "nameLocation": "17401:6:23", + "nodeType": "VariableDeclaration", + "scope": 8255, + "src": "17388:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 8105, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17388:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 8114, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 8109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17420:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "expression": { + "id": 8110, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8099, + "src": "17424:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 8111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17431:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "17424:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17420:17:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "17410:9:23", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 8107, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17414:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 8113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17410:28:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17388:50:23" + }, + { + "assignments": [ + 8116 + ], + "declarations": [ + { + "constant": false, + "id": 8116, + "mutability": "mutable", + "name": "outputLength", + "nameLocation": "17479:12:23", + "nodeType": "VariableDeclaration", + "scope": 8255, + "src": "17471:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17471:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8118, + "initialValue": { + "hexValue": "30", + "id": 8117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17494:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "17471:24:23" + }, + { + "body": { + "id": 8247, + "nodeType": "Block", + "src": "17546:854:23", + "statements": [ + { + "assignments": [ + 8130 + ], + "declarations": [ + { + "constant": false, + "id": 8130, + "mutability": "mutable", + "name": "char", + "nameLocation": "17567:4:23", + "nodeType": "VariableDeclaration", + "scope": 8247, + "src": "17560:11:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "typeName": { + "id": 8129, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "17560:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "visibility": "internal" + } + ], + "id": 8138, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "id": 8134, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8099, + "src": "17604:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 8135, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8120, + "src": "17612:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8133, + "name": "_unsafeReadBytesOffset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8268, + "src": "17581:22:23", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (bytes memory,uint256) pure returns (bytes32)" + } + }, + "id": 8136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17581:33:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17574:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 8131, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "17574:6:23", + "typeDescriptions": {} + } + }, + "id": 8137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17574:41:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17560:55:23" + }, + { + "condition": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8139, + "name": "SPECIAL_CHARS_LOOKUP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6920, + "src": "17635:20:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 8140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17659:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "arguments": [ + { + "id": 8143, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "17670:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + ], + "id": 8142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17664:5:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 8141, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "17664:5:23", + "typeDescriptions": {} + } + }, + "id": 8144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17664:11:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "17659:16:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8146, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17658:18:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17635:41:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8148, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17634:43:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 8149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17681:1:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17634:48:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 8151, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17633:50:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8245, + "nodeType": "Block", + "src": "18328:62:23", + "statements": [ + { + "expression": { + "id": 8243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 8238, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8106, + "src": "18346:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 8241, + "indexExpression": { + "id": 8240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18353:14:23", + "subExpression": { + "id": 8239, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8116, + "src": "18353:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18346:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 8242, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "18371:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "18346:29:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 8244, + "nodeType": "ExpressionStatement", + "src": "18346:29:23" + } + ] + }, + "id": 8246, + "nodeType": "IfStatement", + "src": "17629:761:23", + "trueBody": { + "id": 8237, + "nodeType": "Block", + "src": "17685:637:23", + "statements": [ + { + "expression": { + "id": 8157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 8152, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8106, + "src": "17703:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 8155, + "indexExpression": { + "id": 8154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17710:14:23", + "subExpression": { + "id": 8153, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8116, + "src": "17710:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17703:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "5c", + "id": 8156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17728:4:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_731553fa98541ade8b78284229adfe09a819380dee9244baac20dd1e0aa24095", + "typeString": "literal_string \"\\\"" + }, + "value": "\\" + }, + "src": "17703:29:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 8158, + "nodeType": "ExpressionStatement", + "src": "17703:29:23" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 8161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8159, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "17754:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783038", + "id": 8160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17762:4:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "0x08" + }, + "src": "17754:12:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 8171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8169, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "17823:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783039", + "id": 8170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17831:4:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "0x09" + }, + "src": "17823:12:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 8181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8179, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "17892:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783061", + "id": 8180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17900:4:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "0x0a" + }, + "src": "17892:12:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 8191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8189, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "17961:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783063", + "id": 8190, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17969:4:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "0x0c" + }, + "src": "17961:12:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 8201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8199, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "18030:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783064", + "id": 8200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18038:4:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_13_by_1", + "typeString": "int_const 13" + }, + "value": "0x0d" + }, + "src": "18030:12:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 8211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8209, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "18099:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783563", + "id": 8210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18107:4:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_92_by_1", + "typeString": "int_const 92" + }, + "value": "0x5c" + }, + "src": "18099:12:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 8221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8219, + "name": "char", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "18169:4:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30783232", + "id": 8220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18177:4:23", + "typeDescriptions": { + "typeIdentifier": "t_rational_34_by_1", + "typeString": "int_const 34" + }, + "value": "0x22" + }, + "src": "18169:12:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8230, + "nodeType": "IfStatement", + "src": "18165:143:23", + "trueBody": { + "id": 8229, + "nodeType": "Block", + "src": "18183:125:23", + "statements": [ + { + "expression": { + "id": 8227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 8222, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8106, + "src": "18261:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 8225, + "indexExpression": { + "id": 8224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18268:14:23", + "subExpression": { + "id": 8223, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8116, + "src": "18268:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18261:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "22", + "id": 8226, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18286:3:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6e9f33448a4153023cdaf3eb759f1afdc24aba433a3e18b683f8c04a6eaa69f0", + "typeString": "literal_string \"\"\"" + }, + "value": "\"" + }, + "src": "18261:28:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 8228, + "nodeType": "ExpressionStatement", + "src": "18261:28:23" + } + ] + } + }, + "id": 8231, + "nodeType": "IfStatement", + "src": "18095:213:23", + "trueBody": { + "expression": { + "id": 8217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 8212, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8106, + "src": "18113:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 8215, + "indexExpression": { + "id": 8214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18120:14:23", + "subExpression": { + "id": 8213, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8116, + "src": "18120:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18113:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "5c", + "id": 8216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18138:4:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_731553fa98541ade8b78284229adfe09a819380dee9244baac20dd1e0aa24095", + "typeString": "literal_string \"\\\"" + }, + "value": "\\" + }, + "src": "18113:29:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 8218, + "nodeType": "ExpressionStatement", + "src": "18113:29:23" + } + }, + "id": 8232, + "nodeType": "IfStatement", + "src": "18026:282:23", + "trueBody": { + "expression": { + "id": 8207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 8202, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8106, + "src": "18044:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 8205, + "indexExpression": { + "id": 8204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18051:14:23", + "subExpression": { + "id": 8203, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8116, + "src": "18051:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18044:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "72", + "id": 8206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18069:3:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_414f72a4d550cad29f17d9d99a4af64b3776ec5538cd440cef0f03fef2e9e010", + "typeString": "literal_string \"r\"" + }, + "value": "r" + }, + "src": "18044:28:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 8208, + "nodeType": "ExpressionStatement", + "src": "18044:28:23" + } + }, + "id": 8233, + "nodeType": "IfStatement", + "src": "17957:351:23", + "trueBody": { + "expression": { + "id": 8197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 8192, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8106, + "src": "17975:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 8195, + "indexExpression": { + "id": 8194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17982:14:23", + "subExpression": { + "id": 8193, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8116, + "src": "17982:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17975:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66", + "id": 8196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18000:3:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d1e8aeb79500496ef3dc2e57ba746a8315d048b7a664a2bf948db4fa91960483", + "typeString": "literal_string \"f\"" + }, + "value": "f" + }, + "src": "17975:28:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 8198, + "nodeType": "ExpressionStatement", + "src": "17975:28:23" + } + }, + "id": 8234, + "nodeType": "IfStatement", + "src": "17888:420:23", + "trueBody": { + "expression": { + "id": 8187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 8182, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8106, + "src": "17906:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 8185, + "indexExpression": { + "id": 8184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17913:14:23", + "subExpression": { + "id": 8183, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8116, + "src": "17913:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17906:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "6e", + "id": 8186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17931:3:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4b4ecedb4964a40fe416b16c7bd8b46092040ec42ef0aa69e59f09872f105cf3", + "typeString": "literal_string \"n\"" + }, + "value": "n" + }, + "src": "17906:28:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 8188, + "nodeType": "ExpressionStatement", + "src": "17906:28:23" + } + }, + "id": 8235, + "nodeType": "IfStatement", + "src": "17819:489:23", + "trueBody": { + "expression": { + "id": 8177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 8172, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8106, + "src": "17837:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 8175, + "indexExpression": { + "id": 8174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17844:14:23", + "subExpression": { + "id": 8173, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8116, + "src": "17844:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17837:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74", + "id": 8176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17862:3:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cac1bb71f0a97c8ac94ca9546b43178a9ad254c7b757ac07433aa6df35cd8089", + "typeString": "literal_string \"t\"" + }, + "value": "t" + }, + "src": "17837:28:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 8178, + "nodeType": "ExpressionStatement", + "src": "17837:28:23" + } + }, + "id": 8236, + "nodeType": "IfStatement", + "src": "17750:558:23", + "trueBody": { + "expression": { + "id": 8167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 8162, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8106, + "src": "17768:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 8165, + "indexExpression": { + "id": 8164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17775:14:23", + "subExpression": { + "id": 8163, + "name": "outputLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8116, + "src": "17775:12:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17768:22:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "62", + "id": 8166, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17793:3:23", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b5553de315e0edf504d9150af82dafa5c4667fa618ed0a6f19c69b41166c5510", + "typeString": "literal_string \"b\"" + }, + "value": "b" + }, + "src": "17768:28:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 8168, + "nodeType": "ExpressionStatement", + "src": "17768:28:23" + } + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8122, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8120, + "src": "17522:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 8123, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8099, + "src": "17526:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 8124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17533:6:23", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "17526:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17522:17:23", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8248, + "initializationExpression": { + "assignments": [ + 8120 + ], + "declarations": [ + { + "constant": false, + "id": 8120, + "mutability": "mutable", + "name": "i", + "nameLocation": "17519:1:23", + "nodeType": "VariableDeclaration", + "scope": 8248, + "src": "17511:9:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17511:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8121, + "nodeType": "VariableDeclarationStatement", + "src": "17511:9:23" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 8127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "17541:3:23", + "subExpression": { + "id": 8126, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8120, + "src": "17543:1:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8128, + "nodeType": "ExpressionStatement", + "src": "17541:3:23" + }, + "nodeType": "ForStatement", + "src": "17506:894:23" + }, + { + "AST": { + "nativeSrc": "18498:129:23", + "nodeType": "YulBlock", + "src": "18498:129:23", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "output", + "nativeSrc": "18519:6:23", + "nodeType": "YulIdentifier", + "src": "18519:6:23" + }, + { + "name": "outputLength", + "nativeSrc": "18527:12:23", + "nodeType": "YulIdentifier", + "src": "18527:12:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18512:6:23", + "nodeType": "YulIdentifier", + "src": "18512:6:23" + }, + "nativeSrc": "18512:28:23", + "nodeType": "YulFunctionCall", + "src": "18512:28:23" + }, + "nativeSrc": "18512:28:23", + "nodeType": "YulExpressionStatement", + "src": "18512:28:23" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18560:4:23", + "nodeType": "YulLiteral", + "src": "18560:4:23", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "name": "output", + "nativeSrc": "18570:6:23", + "nodeType": "YulIdentifier", + "src": "18570:6:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18582:1:23", + "nodeType": "YulLiteral", + "src": "18582:1:23", + "type": "", + "value": "5" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18589:1:23", + "nodeType": "YulLiteral", + "src": "18589:1:23", + "type": "", + "value": "5" + }, + { + "arguments": [ + { + "name": "outputLength", + "nativeSrc": "18596:12:23", + "nodeType": "YulIdentifier", + "src": "18596:12:23" + }, + { + "kind": "number", + "nativeSrc": "18610:2:23", + "nodeType": "YulLiteral", + "src": "18610:2:23", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18592:3:23", + "nodeType": "YulIdentifier", + "src": "18592:3:23" + }, + "nativeSrc": "18592:21:23", + "nodeType": "YulFunctionCall", + "src": "18592:21:23" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "18585:3:23", + "nodeType": "YulIdentifier", + "src": "18585:3:23" + }, + "nativeSrc": "18585:29:23", + "nodeType": "YulFunctionCall", + "src": "18585:29:23" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "18578:3:23", + "nodeType": "YulIdentifier", + "src": "18578:3:23" + }, + "nativeSrc": "18578:37:23", + "nodeType": "YulFunctionCall", + "src": "18578:37:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18566:3:23", + "nodeType": "YulIdentifier", + "src": "18566:3:23" + }, + "nativeSrc": "18566:50:23", + "nodeType": "YulFunctionCall", + "src": "18566:50:23" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18553:6:23", + "nodeType": "YulIdentifier", + "src": "18553:6:23" + }, + "nativeSrc": "18553:64:23", + "nodeType": "YulFunctionCall", + "src": "18553:64:23" + }, + "nativeSrc": "18553:64:23", + "nodeType": "YulExpressionStatement", + "src": "18553:64:23" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8106, + "isOffset": false, + "isSlot": false, + "src": "18519:6:23", + "valueSize": 1 + }, + { + "declaration": 8106, + "isOffset": false, + "isSlot": false, + "src": "18570:6:23", + "valueSize": 1 + }, + { + "declaration": 8116, + "isOffset": false, + "isSlot": false, + "src": "18527:12:23", + "valueSize": 1 + }, + { + "declaration": 8116, + "isOffset": false, + "isSlot": false, + "src": "18596:12:23", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8249, + "nodeType": "InlineAssembly", + "src": "18473:154:23" + }, + { + "expression": { + "arguments": [ + { + "id": 8252, + "name": "output", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8106, + "src": "18651:6:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 8251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18644:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 8250, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "18644:6:23", + "typeDescriptions": {} + } + }, + "id": 8253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18644:14:23", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 8097, + "id": 8254, + "nodeType": "Return", + "src": "18637:21:23" + } + ] + }, + "documentation": { + "id": 8091, + "nodeType": "StructuredDocumentation", + "src": "16674:576:23", + "text": " @dev Escape special characters in JSON strings. This can be useful to prevent JSON injection in NFT metadata.\n WARNING: This function should only be used in double quoted JSON strings. Single quotes are not escaped.\n NOTE: This function escapes all unicode characters, and not just the ones in ranges defined in section 2.5 of\n RFC-4627 (U+0000 to U+001F, U+0022 and U+005C). ECMAScript's `JSON.parse` does recover escaped unicode\n characters that are not in this range, but other tooling may provide different results." + }, + "id": 8256, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "escapeJSON", + "nameLocation": "17264:10:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8093, + "mutability": "mutable", + "name": "input", + "nameLocation": "17289:5:23", + "nodeType": "VariableDeclaration", + "scope": 8256, + "src": "17275:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8092, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17275:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17274:21:23" + }, + "returnParameters": { + "id": 8097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8096, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8256, + "src": "17319:13:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8095, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17319:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17318:15:23" + }, + "scope": 8269, + "src": "17255:1410:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8267, + "nodeType": "Block", + "src": "19050:225:23", + "statements": [ + { + "AST": { + "nativeSrc": "19199:70:23", + "nodeType": "YulBlock", + "src": "19199:70:23", + "statements": [ + { + "nativeSrc": "19213:46:23", + "nodeType": "YulAssignment", + "src": "19213:46:23", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "buffer", + "nativeSrc": "19232:6:23", + "nodeType": "YulIdentifier", + "src": "19232:6:23" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19244:4:23", + "nodeType": "YulLiteral", + "src": "19244:4:23", + "type": "", + "value": "0x20" + }, + { + "name": "offset", + "nativeSrc": "19250:6:23", + "nodeType": "YulIdentifier", + "src": "19250:6:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19240:3:23", + "nodeType": "YulIdentifier", + "src": "19240:3:23" + }, + "nativeSrc": "19240:17:23", + "nodeType": "YulFunctionCall", + "src": "19240:17:23" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19228:3:23", + "nodeType": "YulIdentifier", + "src": "19228:3:23" + }, + "nativeSrc": "19228:30:23", + "nodeType": "YulFunctionCall", + "src": "19228:30:23" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19222:5:23", + "nodeType": "YulIdentifier", + "src": "19222:5:23" + }, + "nativeSrc": "19222:37:23", + "nodeType": "YulFunctionCall", + "src": "19222:37:23" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "19213:5:23", + "nodeType": "YulIdentifier", + "src": "19213:5:23" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8259, + "isOffset": false, + "isSlot": false, + "src": "19232:6:23", + "valueSize": 1 + }, + { + "declaration": 8261, + "isOffset": false, + "isSlot": false, + "src": "19250:6:23", + "valueSize": 1 + }, + { + "declaration": 8264, + "isOffset": false, + "isSlot": false, + "src": "19213:5:23", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8266, + "nodeType": "InlineAssembly", + "src": "19174:95:23" + } + ] + }, + "documentation": { + "id": 8257, + "nodeType": "StructuredDocumentation", + "src": "18671:268:23", + "text": " @dev Reads a bytes32 from a bytes array without bounds checking.\n NOTE: making this function internal would mean it could be used with memory unsafe offset, and marking the\n assembly block as such would prevent some optimizations." + }, + "id": 8268, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_unsafeReadBytesOffset", + "nameLocation": "18953:22:23", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8259, + "mutability": "mutable", + "name": "buffer", + "nameLocation": "18989:6:23", + "nodeType": "VariableDeclaration", + "scope": 8268, + "src": "18976:19:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 8258, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18976:5:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8261, + "mutability": "mutable", + "name": "offset", + "nameLocation": "19005:6:23", + "nodeType": "VariableDeclaration", + "scope": 8268, + "src": "18997:14:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8260, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18997:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "18975:37:23" + }, + "returnParameters": { + "id": 8265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8264, + "mutability": "mutable", + "name": "value", + "nameLocation": "19043:5:23", + "nodeType": "VariableDeclaration", + "scope": 8268, + "src": "19035:13:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8263, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "19035:7:23", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "19034:15:23" + }, + "scope": 8269, + "src": "18944:331:23", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 8270, + "src": "297:18980:23", + "usedErrors": [ + 6927, + 6930, + 6933 + ], + "usedEvents": [] + } + ], + "src": "101:19177:23" + }, + "id": 23 + }, + "@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "exportedSymbols": { + "ECDSA": [ + 8617 + ] + }, + "id": 8618, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8271, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "112:24:24" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ECDSA", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 8272, + "nodeType": "StructuredDocumentation", + "src": "138:205:24", + "text": " @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address." + }, + "fullyImplemented": true, + "id": 8617, + "linearizedBaseContracts": [ + 8617 + ], + "name": "ECDSA", + "nameLocation": "352:5:24", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "ECDSA.RecoverError", + "id": 8277, + "members": [ + { + "id": 8273, + "name": "NoError", + "nameLocation": "392:7:24", + "nodeType": "EnumValue", + "src": "392:7:24" + }, + { + "id": 8274, + "name": "InvalidSignature", + "nameLocation": "409:16:24", + "nodeType": "EnumValue", + "src": "409:16:24" + }, + { + "id": 8275, + "name": "InvalidSignatureLength", + "nameLocation": "435:22:24", + "nodeType": "EnumValue", + "src": "435:22:24" + }, + { + "id": 8276, + "name": "InvalidSignatureS", + "nameLocation": "467:17:24", + "nodeType": "EnumValue", + "src": "467:17:24" + } + ], + "name": "RecoverError", + "nameLocation": "369:12:24", + "nodeType": "EnumDefinition", + "src": "364:126:24" + }, + { + "documentation": { + "id": 8278, + "nodeType": "StructuredDocumentation", + "src": "496:63:24", + "text": " @dev The signature derives the `address(0)`." + }, + "errorSelector": "f645eedf", + "id": 8280, + "name": "ECDSAInvalidSignature", + "nameLocation": "570:21:24", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 8279, + "nodeType": "ParameterList", + "parameters": [], + "src": "591:2:24" + }, + "src": "564:30:24" + }, + { + "documentation": { + "id": 8281, + "nodeType": "StructuredDocumentation", + "src": "600:60:24", + "text": " @dev The signature has an invalid length." + }, + "errorSelector": "fce698f7", + "id": 8285, + "name": "ECDSAInvalidSignatureLength", + "nameLocation": "671:27:24", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 8284, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8283, + "mutability": "mutable", + "name": "length", + "nameLocation": "707:6:24", + "nodeType": "VariableDeclaration", + "scope": 8285, + "src": "699:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "699:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "698:16:24" + }, + "src": "665:50:24" + }, + { + "documentation": { + "id": 8286, + "nodeType": "StructuredDocumentation", + "src": "721:85:24", + "text": " @dev The signature has an S value that is in the upper half order." + }, + "errorSelector": "d78bce0c", + "id": 8290, + "name": "ECDSAInvalidSignatureS", + "nameLocation": "817:22:24", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 8289, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8288, + "mutability": "mutable", + "name": "s", + "nameLocation": "848:1:24", + "nodeType": "VariableDeclaration", + "scope": 8290, + "src": "840:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "840:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "839:11:24" + }, + "src": "811:40:24" + }, + { + "body": { + "id": 8342, + "nodeType": "Block", + "src": "2285:622:24", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 8305, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8295, + "src": "2299:9:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 8306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2309:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2299:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3635", + "id": 8307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2319:2:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_65_by_1", + "typeString": "int_const 65" + }, + "value": "65" + }, + "src": "2299:22:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8340, + "nodeType": "Block", + "src": "2793:108:24", + "statements": [ + { + "expression": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 8329, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2823:1:24", + "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" + } + ], + "id": 8328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2815:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 8327, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2815:7:24", + "typeDescriptions": {} + } + }, + "id": 8330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2815:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 8331, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8277, + "src": "2827:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 8332, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2840:22:24", + "memberName": "InvalidSignatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 8275, + "src": "2827:35:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "arguments": [ + { + "expression": { + "id": 8335, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8295, + "src": "2872:9:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 8336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2882:6:24", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2872:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2864:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 8333, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2864:7:24", + "typeDescriptions": {} + } + }, + "id": 8337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2864:25:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 8338, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2814:76:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 8304, + "id": 8339, + "nodeType": "Return", + "src": "2807:83:24" + } + ] + }, + "id": 8341, + "nodeType": "IfStatement", + "src": "2295:606:24", + "trueBody": { + "id": 8326, + "nodeType": "Block", + "src": "2323:464:24", + "statements": [ + { + "assignments": [ + 8310 + ], + "declarations": [ + { + "constant": false, + "id": 8310, + "mutability": "mutable", + "name": "r", + "nameLocation": "2345:1:24", + "nodeType": "VariableDeclaration", + "scope": 8326, + "src": "2337:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8309, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2337:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 8311, + "nodeType": "VariableDeclarationStatement", + "src": "2337:9:24" + }, + { + "assignments": [ + 8313 + ], + "declarations": [ + { + "constant": false, + "id": 8313, + "mutability": "mutable", + "name": "s", + "nameLocation": "2368:1:24", + "nodeType": "VariableDeclaration", + "scope": 8326, + "src": "2360:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8312, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2360:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 8314, + "nodeType": "VariableDeclarationStatement", + "src": "2360:9:24" + }, + { + "assignments": [ + 8316 + ], + "declarations": [ + { + "constant": false, + "id": 8316, + "mutability": "mutable", + "name": "v", + "nameLocation": "2389:1:24", + "nodeType": "VariableDeclaration", + "scope": 8326, + "src": "2383:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8315, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2383:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 8317, + "nodeType": "VariableDeclarationStatement", + "src": "2383:7:24" + }, + { + "AST": { + "nativeSrc": "2560:171:24", + "nodeType": "YulBlock", + "src": "2560:171:24", + "statements": [ + { + "nativeSrc": "2578:32:24", + "nodeType": "YulAssignment", + "src": "2578:32:24", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "signature", + "nativeSrc": "2593:9:24", + "nodeType": "YulIdentifier", + "src": "2593:9:24" + }, + { + "kind": "number", + "nativeSrc": "2604:4:24", + "nodeType": "YulLiteral", + "src": "2604:4:24", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2589:3:24", + "nodeType": "YulIdentifier", + "src": "2589:3:24" + }, + "nativeSrc": "2589:20:24", + "nodeType": "YulFunctionCall", + "src": "2589:20:24" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2583:5:24", + "nodeType": "YulIdentifier", + "src": "2583:5:24" + }, + "nativeSrc": "2583:27:24", + "nodeType": "YulFunctionCall", + "src": "2583:27:24" + }, + "variableNames": [ + { + "name": "r", + "nativeSrc": "2578:1:24", + "nodeType": "YulIdentifier", + "src": "2578:1:24" + } + ] + }, + { + "nativeSrc": "2627:32:24", + "nodeType": "YulAssignment", + "src": "2627:32:24", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "signature", + "nativeSrc": "2642:9:24", + "nodeType": "YulIdentifier", + "src": "2642:9:24" + }, + { + "kind": "number", + "nativeSrc": "2653:4:24", + "nodeType": "YulLiteral", + "src": "2653:4:24", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2638:3:24", + "nodeType": "YulIdentifier", + "src": "2638:3:24" + }, + "nativeSrc": "2638:20:24", + "nodeType": "YulFunctionCall", + "src": "2638:20:24" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2632:5:24", + "nodeType": "YulIdentifier", + "src": "2632:5:24" + }, + "nativeSrc": "2632:27:24", + "nodeType": "YulFunctionCall", + "src": "2632:27:24" + }, + "variableNames": [ + { + "name": "s", + "nativeSrc": "2627:1:24", + "nodeType": "YulIdentifier", + "src": "2627:1:24" + } + ] + }, + { + "nativeSrc": "2676:41:24", + "nodeType": "YulAssignment", + "src": "2676:41:24", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2686:1:24", + "nodeType": "YulLiteral", + "src": "2686:1:24", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "signature", + "nativeSrc": "2699:9:24", + "nodeType": "YulIdentifier", + "src": "2699:9:24" + }, + { + "kind": "number", + "nativeSrc": "2710:4:24", + "nodeType": "YulLiteral", + "src": "2710:4:24", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2695:3:24", + "nodeType": "YulIdentifier", + "src": "2695:3:24" + }, + "nativeSrc": "2695:20:24", + "nodeType": "YulFunctionCall", + "src": "2695:20:24" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2689:5:24", + "nodeType": "YulIdentifier", + "src": "2689:5:24" + }, + "nativeSrc": "2689:27:24", + "nodeType": "YulFunctionCall", + "src": "2689:27:24" + } + ], + "functionName": { + "name": "byte", + "nativeSrc": "2681:4:24", + "nodeType": "YulIdentifier", + "src": "2681:4:24" + }, + "nativeSrc": "2681:36:24", + "nodeType": "YulFunctionCall", + "src": "2681:36:24" + }, + "variableNames": [ + { + "name": "v", + "nativeSrc": "2676:1:24", + "nodeType": "YulIdentifier", + "src": "2676:1:24" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8310, + "isOffset": false, + "isSlot": false, + "src": "2578:1:24", + "valueSize": 1 + }, + { + "declaration": 8313, + "isOffset": false, + "isSlot": false, + "src": "2627:1:24", + "valueSize": 1 + }, + { + "declaration": 8295, + "isOffset": false, + "isSlot": false, + "src": "2593:9:24", + "valueSize": 1 + }, + { + "declaration": 8295, + "isOffset": false, + "isSlot": false, + "src": "2642:9:24", + "valueSize": 1 + }, + { + "declaration": 8295, + "isOffset": false, + "isSlot": false, + "src": "2699:9:24", + "valueSize": 1 + }, + { + "declaration": 8316, + "isOffset": false, + "isSlot": false, + "src": "2676:1:24", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8318, + "nodeType": "InlineAssembly", + "src": "2535:196:24" + }, + { + "expression": { + "arguments": [ + { + "id": 8320, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8293, + "src": "2762:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8321, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8316, + "src": "2768:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 8322, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8310, + "src": "2771:1:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8323, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8313, + "src": "2774:1:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8319, + "name": "tryRecover", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 8343, + 8423, + 8531 + ], + "referencedDeclaration": 8531, + "src": "2751:10:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 8324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2751:25:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 8304, + "id": 8325, + "nodeType": "Return", + "src": "2744:32:24" + } + ] + } + } + ] + }, + "documentation": { + "id": 8291, + "nodeType": "StructuredDocumentation", + "src": "857:1267:24", + "text": " @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n return address(0) without also returning an error description. Errors are documented using an enum (error type)\n and a bytes32 providing additional information about the error.\n If no error is returned, then the address can be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n Documentation for signature generation:\n - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]" + }, + "id": 8343, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryRecover", + "nameLocation": "2138:10:24", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8296, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8293, + "mutability": "mutable", + "name": "hash", + "nameLocation": "2166:4:24", + "nodeType": "VariableDeclaration", + "scope": 8343, + "src": "2158:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8292, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2158:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8295, + "mutability": "mutable", + "name": "signature", + "nameLocation": "2193:9:24", + "nodeType": "VariableDeclaration", + "scope": 8343, + "src": "2180:22:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 8294, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2180:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2148:60:24" + }, + "returnParameters": { + "id": 8304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8298, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "2240:9:24", + "nodeType": "VariableDeclaration", + "scope": 8343, + "src": "2232:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2232:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8301, + "mutability": "mutable", + "name": "err", + "nameLocation": "2264:3:24", + "nodeType": "VariableDeclaration", + "scope": 8343, + "src": "2251:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 8300, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 8299, + "name": "RecoverError", + "nameLocations": [ + "2251:12:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8277, + "src": "2251:12:24" + }, + "referencedDeclaration": 8277, + "src": "2251:12:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8303, + "mutability": "mutable", + "name": "errArg", + "nameLocation": "2277:6:24", + "nodeType": "VariableDeclaration", + "scope": 8343, + "src": "2269:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8302, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2269:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2231:53:24" + }, + "scope": 8617, + "src": "2129:778:24", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8372, + "nodeType": "Block", + "src": "3801:168:24", + "statements": [ + { + "assignments": [ + 8354, + 8357, + 8359 + ], + "declarations": [ + { + "constant": false, + "id": 8354, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "3820:9:24", + "nodeType": "VariableDeclaration", + "scope": 8372, + "src": "3812:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8353, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3812:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8357, + "mutability": "mutable", + "name": "error", + "nameLocation": "3844:5:24", + "nodeType": "VariableDeclaration", + "scope": 8372, + "src": "3831:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 8356, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 8355, + "name": "RecoverError", + "nameLocations": [ + "3831:12:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8277, + "src": "3831:12:24" + }, + "referencedDeclaration": 8277, + "src": "3831:12:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8359, + "mutability": "mutable", + "name": "errorArg", + "nameLocation": "3859:8:24", + "nodeType": "VariableDeclaration", + "scope": 8372, + "src": "3851:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8358, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3851:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 8364, + "initialValue": { + "arguments": [ + { + "id": 8361, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8346, + "src": "3882:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8362, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8348, + "src": "3888:9:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 8360, + "name": "tryRecover", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 8343, + 8423, + 8531 + ], + "referencedDeclaration": 8343, + "src": "3871:10:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$", + "typeString": "function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 8363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3871:27:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3811:87:24" + }, + { + "expression": { + "arguments": [ + { + "id": 8366, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8357, + "src": "3920:5:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "id": 8367, + "name": "errorArg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8359, + "src": "3927:8:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8365, + "name": "_throwError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8616, + "src": "3908:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_RecoverError_$8277_$_t_bytes32_$returns$__$", + "typeString": "function (enum ECDSA.RecoverError,bytes32) pure" + } + }, + "id": 8368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3908:28:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8369, + "nodeType": "ExpressionStatement", + "src": "3908:28:24" + }, + { + "expression": { + "id": 8370, + "name": "recovered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8354, + "src": "3953:9:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 8352, + "id": 8371, + "nodeType": "Return", + "src": "3946:16:24" + } + ] + }, + "documentation": { + "id": 8344, + "nodeType": "StructuredDocumentation", + "src": "2913:796:24", + "text": " @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it." + }, + "id": 8373, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "recover", + "nameLocation": "3723:7:24", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8349, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8346, + "mutability": "mutable", + "name": "hash", + "nameLocation": "3739:4:24", + "nodeType": "VariableDeclaration", + "scope": 8373, + "src": "3731:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8345, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3731:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8348, + "mutability": "mutable", + "name": "signature", + "nameLocation": "3758:9:24", + "nodeType": "VariableDeclaration", + "scope": 8373, + "src": "3745:22:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 8347, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3745:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3730:38:24" + }, + "returnParameters": { + "id": 8352, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8351, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8373, + "src": "3792:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8350, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3792:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3791:9:24" + }, + "scope": 8617, + "src": "3714:255:24", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8422, + "nodeType": "Block", + "src": "4348:342:24", + "statements": [ + { + "id": 8421, + "nodeType": "UncheckedBlock", + "src": "4358:326:24", + "statements": [ + { + "assignments": [ + 8391 + ], + "declarations": [ + { + "constant": false, + "id": 8391, + "mutability": "mutable", + "name": "s", + "nameLocation": "4390:1:24", + "nodeType": "VariableDeclaration", + "scope": 8421, + "src": "4382:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8390, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4382:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 8398, + "initialValue": { + "commonType": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "id": 8397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8392, + "name": "vs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8380, + "src": "4394:2:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "arguments": [ + { + "hexValue": "307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666", + "id": 8395, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4407:66:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1", + "typeString": "int_const 5789...(69 digits omitted)...9967" + }, + "value": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1", + "typeString": "int_const 5789...(69 digits omitted)...9967" + } + ], + "id": 8394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4399:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 8393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4399:7:24", + "typeDescriptions": {} + } + }, + "id": 8396, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4399:75:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "4394:80:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4382:92:24" + }, + { + "assignments": [ + 8400 + ], + "declarations": [ + { + "constant": false, + "id": 8400, + "mutability": "mutable", + "name": "v", + "nameLocation": "4591:1:24", + "nodeType": "VariableDeclaration", + "scope": 8421, + "src": "4585:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8399, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4585:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 8413, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 8405, + "name": "vs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8380, + "src": "4610:2:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4602:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4602:7:24", + "typeDescriptions": {} + } + }, + "id": 8406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4602:11:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 8407, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4617:3:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "4602:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 8409, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4601:20:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "3237", + "id": 8410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4624:2:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_27_by_1", + "typeString": "int_const 27" + }, + "value": "27" + }, + "src": "4601:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8402, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4595:5:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 8401, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4595:5:24", + "typeDescriptions": {} + } + }, + "id": 8412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4595:32:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4585:42:24" + }, + { + "expression": { + "arguments": [ + { + "id": 8415, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8376, + "src": "4659:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8416, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8400, + "src": "4665:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 8417, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8378, + "src": "4668:1:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8418, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8391, + "src": "4671:1:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8414, + "name": "tryRecover", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 8343, + 8423, + 8531 + ], + "referencedDeclaration": 8531, + "src": "4648:10:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 8419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4648:25:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 8389, + "id": 8420, + "nodeType": "Return", + "src": "4641:32:24" + } + ] + } + ] + }, + "documentation": { + "id": 8374, + "nodeType": "StructuredDocumentation", + "src": "3975:205:24", + "text": " @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n See https://eips.ethereum.org/EIPS/eip-2098[ERC-2098 short signatures]" + }, + "id": 8423, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryRecover", + "nameLocation": "4194:10:24", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8381, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8376, + "mutability": "mutable", + "name": "hash", + "nameLocation": "4222:4:24", + "nodeType": "VariableDeclaration", + "scope": 8423, + "src": "4214:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8375, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4214:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8378, + "mutability": "mutable", + "name": "r", + "nameLocation": "4244:1:24", + "nodeType": "VariableDeclaration", + "scope": 8423, + "src": "4236:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8377, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4236:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8380, + "mutability": "mutable", + "name": "vs", + "nameLocation": "4263:2:24", + "nodeType": "VariableDeclaration", + "scope": 8423, + "src": "4255:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8379, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4255:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4204:67:24" + }, + "returnParameters": { + "id": 8389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8383, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "4303:9:24", + "nodeType": "VariableDeclaration", + "scope": 8423, + "src": "4295:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8382, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4295:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8386, + "mutability": "mutable", + "name": "err", + "nameLocation": "4327:3:24", + "nodeType": "VariableDeclaration", + "scope": 8423, + "src": "4314:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 8385, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 8384, + "name": "RecoverError", + "nameLocations": [ + "4314:12:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8277, + "src": "4314:12:24" + }, + "referencedDeclaration": 8277, + "src": "4314:12:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8388, + "mutability": "mutable", + "name": "errArg", + "nameLocation": "4340:6:24", + "nodeType": "VariableDeclaration", + "scope": 8423, + "src": "4332:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8387, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4332:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4294:53:24" + }, + "scope": 8617, + "src": "4185:505:24", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8455, + "nodeType": "Block", + "src": "4903:164:24", + "statements": [ + { + "assignments": [ + 8436, + 8439, + 8441 + ], + "declarations": [ + { + "constant": false, + "id": 8436, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "4922:9:24", + "nodeType": "VariableDeclaration", + "scope": 8455, + "src": "4914:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8435, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4914:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8439, + "mutability": "mutable", + "name": "error", + "nameLocation": "4946:5:24", + "nodeType": "VariableDeclaration", + "scope": 8455, + "src": "4933:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 8438, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 8437, + "name": "RecoverError", + "nameLocations": [ + "4933:12:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8277, + "src": "4933:12:24" + }, + "referencedDeclaration": 8277, + "src": "4933:12:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8441, + "mutability": "mutable", + "name": "errorArg", + "nameLocation": "4961:8:24", + "nodeType": "VariableDeclaration", + "scope": 8455, + "src": "4953:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8440, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4953:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 8447, + "initialValue": { + "arguments": [ + { + "id": 8443, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8426, + "src": "4984:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8444, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8428, + "src": "4990:1:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8445, + "name": "vs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8430, + "src": "4993:2:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8442, + "name": "tryRecover", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 8343, + 8423, + 8531 + ], + "referencedDeclaration": 8423, + "src": "4973:10:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$", + "typeString": "function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 8446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4973:23:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4913:83:24" + }, + { + "expression": { + "arguments": [ + { + "id": 8449, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8439, + "src": "5018:5:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "id": 8450, + "name": "errorArg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8441, + "src": "5025:8:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8448, + "name": "_throwError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8616, + "src": "5006:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_RecoverError_$8277_$_t_bytes32_$returns$__$", + "typeString": "function (enum ECDSA.RecoverError,bytes32) pure" + } + }, + "id": 8451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5006:28:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8452, + "nodeType": "ExpressionStatement", + "src": "5006:28:24" + }, + { + "expression": { + "id": 8453, + "name": "recovered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8436, + "src": "5051:9:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 8434, + "id": 8454, + "nodeType": "Return", + "src": "5044:16:24" + } + ] + }, + "documentation": { + "id": 8424, + "nodeType": "StructuredDocumentation", + "src": "4696:116:24", + "text": " @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately." + }, + "id": 8456, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "recover", + "nameLocation": "4826:7:24", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8431, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8426, + "mutability": "mutable", + "name": "hash", + "nameLocation": "4842:4:24", + "nodeType": "VariableDeclaration", + "scope": 8456, + "src": "4834:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8425, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4834:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8428, + "mutability": "mutable", + "name": "r", + "nameLocation": "4856:1:24", + "nodeType": "VariableDeclaration", + "scope": 8456, + "src": "4848:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8427, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4848:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8430, + "mutability": "mutable", + "name": "vs", + "nameLocation": "4867:2:24", + "nodeType": "VariableDeclaration", + "scope": 8456, + "src": "4859:10:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8429, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4859:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4833:37:24" + }, + "returnParameters": { + "id": 8434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8433, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8456, + "src": "4894:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8432, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4894:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4893:9:24" + }, + "scope": 8617, + "src": "4817:250:24", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8530, + "nodeType": "Block", + "src": "5382:1372:24", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 8477, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8465, + "src": "6278:1:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6270:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8475, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6270:7:24", + "typeDescriptions": {} + } + }, + "id": 8478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6270:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130", + "id": 8479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6283:66:24", + "typeDescriptions": { + "typeIdentifier": "t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1", + "typeString": "int_const 5789...(69 digits omitted)...7168" + }, + "value": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0" + }, + "src": "6270:79:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8491, + "nodeType": "IfStatement", + "src": "6266:164:24", + "trueBody": { + "id": 8490, + "nodeType": "Block", + "src": "6351:79:24", + "statements": [ + { + "expression": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 8483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6381:1:24", + "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" + } + ], + "id": 8482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6373:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 8481, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6373:7:24", + "typeDescriptions": {} + } + }, + "id": 8484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6373:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 8485, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8277, + "src": "6385:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 8486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6398:17:24", + "memberName": "InvalidSignatureS", + "nodeType": "MemberAccess", + "referencedDeclaration": 8276, + "src": "6385:30:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "id": 8487, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8465, + "src": "6417:1:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 8488, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6372:47:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 8474, + "id": 8489, + "nodeType": "Return", + "src": "6365:54:24" + } + ] + } + }, + { + "assignments": [ + 8493 + ], + "declarations": [ + { + "constant": false, + "id": 8493, + "mutability": "mutable", + "name": "signer", + "nameLocation": "6532:6:24", + "nodeType": "VariableDeclaration", + "scope": 8530, + "src": "6524:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8492, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6524:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 8500, + "initialValue": { + "arguments": [ + { + "id": 8495, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8459, + "src": "6551:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8496, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8461, + "src": "6557:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 8497, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8463, + "src": "6560:1:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8498, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8465, + "src": "6563:1:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8494, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -6, + "src": "6541:9:24", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 8499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6541:24:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6524:41:24" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8501, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8493, + "src": "6579:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 8504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6597:1:24", + "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" + } + ], + "id": 8503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6589:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 8502, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6589:7:24", + "typeDescriptions": {} + } + }, + "id": 8505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6589:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6579:20:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8520, + "nodeType": "IfStatement", + "src": "6575:113:24", + "trueBody": { + "id": 8519, + "nodeType": "Block", + "src": "6601:87:24", + "statements": [ + { + "expression": { + "components": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 8509, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6631:1:24", + "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" + } + ], + "id": 8508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6623:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 8507, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6623:7:24", + "typeDescriptions": {} + } + }, + "id": 8510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6623:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 8511, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8277, + "src": "6635:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 8512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6648:16:24", + "memberName": "InvalidSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 8274, + "src": "6635:29:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 8515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6674:1:24", + "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" + } + ], + "id": 8514, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6666:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 8513, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6666:7:24", + "typeDescriptions": {} + } + }, + "id": 8516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6666:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 8517, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6622:55:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 8474, + "id": 8518, + "nodeType": "Return", + "src": "6615:62:24" + } + ] + } + }, + { + "expression": { + "components": [ + { + "id": 8521, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8493, + "src": "6706:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 8522, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8277, + "src": "6714:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 8523, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6727:7:24", + "memberName": "NoError", + "nodeType": "MemberAccess", + "referencedDeclaration": 8273, + "src": "6714:20:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 8526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6744:1:24", + "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" + } + ], + "id": 8525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6736:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 8524, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6736:7:24", + "typeDescriptions": {} + } + }, + "id": 8527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6736:10:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 8528, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6705:42:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "functionReturnParameters": 8474, + "id": 8529, + "nodeType": "Return", + "src": "6698:49:24" + } + ] + }, + "documentation": { + "id": 8457, + "nodeType": "StructuredDocumentation", + "src": "5073:125:24", + "text": " @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately." + }, + "id": 8531, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryRecover", + "nameLocation": "5212:10:24", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8459, + "mutability": "mutable", + "name": "hash", + "nameLocation": "5240:4:24", + "nodeType": "VariableDeclaration", + "scope": 8531, + "src": "5232:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8458, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5232:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8461, + "mutability": "mutable", + "name": "v", + "nameLocation": "5260:1:24", + "nodeType": "VariableDeclaration", + "scope": 8531, + "src": "5254:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8460, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5254:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8463, + "mutability": "mutable", + "name": "r", + "nameLocation": "5279:1:24", + "nodeType": "VariableDeclaration", + "scope": 8531, + "src": "5271:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8462, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5271:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8465, + "mutability": "mutable", + "name": "s", + "nameLocation": "5298:1:24", + "nodeType": "VariableDeclaration", + "scope": 8531, + "src": "5290:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8464, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5290:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5222:83:24" + }, + "returnParameters": { + "id": 8474, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8468, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "5337:9:24", + "nodeType": "VariableDeclaration", + "scope": 8531, + "src": "5329:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8467, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5329:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8471, + "mutability": "mutable", + "name": "err", + "nameLocation": "5361:3:24", + "nodeType": "VariableDeclaration", + "scope": 8531, + "src": "5348:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 8470, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 8469, + "name": "RecoverError", + "nameLocations": [ + "5348:12:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8277, + "src": "5348:12:24" + }, + "referencedDeclaration": 8277, + "src": "5348:12:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8473, + "mutability": "mutable", + "name": "errArg", + "nameLocation": "5374:6:24", + "nodeType": "VariableDeclaration", + "scope": 8531, + "src": "5366:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8472, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5366:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5328:53:24" + }, + "scope": 8617, + "src": "5203:1551:24", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8566, + "nodeType": "Block", + "src": "6981:166:24", + "statements": [ + { + "assignments": [ + 8546, + 8549, + 8551 + ], + "declarations": [ + { + "constant": false, + "id": 8546, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "7000:9:24", + "nodeType": "VariableDeclaration", + "scope": 8566, + "src": "6992:17:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8545, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6992:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8549, + "mutability": "mutable", + "name": "error", + "nameLocation": "7024:5:24", + "nodeType": "VariableDeclaration", + "scope": 8566, + "src": "7011:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 8548, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 8547, + "name": "RecoverError", + "nameLocations": [ + "7011:12:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8277, + "src": "7011:12:24" + }, + "referencedDeclaration": 8277, + "src": "7011:12:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8551, + "mutability": "mutable", + "name": "errorArg", + "nameLocation": "7039:8:24", + "nodeType": "VariableDeclaration", + "scope": 8566, + "src": "7031:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8550, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7031:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 8558, + "initialValue": { + "arguments": [ + { + "id": 8553, + "name": "hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8534, + "src": "7062:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8554, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8536, + "src": "7068:1:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 8555, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8538, + "src": "7071:1:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 8556, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8540, + "src": "7074:1:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8552, + "name": "tryRecover", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 8343, + 8423, + 8531 + ], + "referencedDeclaration": 8531, + "src": "7051:10:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 8557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7051:25:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6991:85:24" + }, + { + "expression": { + "arguments": [ + { + "id": 8560, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8549, + "src": "7098:5:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + { + "id": 8561, + "name": "errorArg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8551, + "src": "7105:8:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8559, + "name": "_throwError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8616, + "src": "7086:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_RecoverError_$8277_$_t_bytes32_$returns$__$", + "typeString": "function (enum ECDSA.RecoverError,bytes32) pure" + } + }, + "id": 8562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7086:28:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8563, + "nodeType": "ExpressionStatement", + "src": "7086:28:24" + }, + { + "expression": { + "id": 8564, + "name": "recovered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8546, + "src": "7131:9:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 8544, + "id": 8565, + "nodeType": "Return", + "src": "7124:16:24" + } + ] + }, + "documentation": { + "id": 8532, + "nodeType": "StructuredDocumentation", + "src": "6760:122:24", + "text": " @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately." + }, + "id": 8567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "recover", + "nameLocation": "6896:7:24", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8534, + "mutability": "mutable", + "name": "hash", + "nameLocation": "6912:4:24", + "nodeType": "VariableDeclaration", + "scope": 8567, + "src": "6904:12:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8533, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6904:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8536, + "mutability": "mutable", + "name": "v", + "nameLocation": "6924:1:24", + "nodeType": "VariableDeclaration", + "scope": 8567, + "src": "6918:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8535, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "6918:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8538, + "mutability": "mutable", + "name": "r", + "nameLocation": "6935:1:24", + "nodeType": "VariableDeclaration", + "scope": 8567, + "src": "6927:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8537, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6927:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8540, + "mutability": "mutable", + "name": "s", + "nameLocation": "6946:1:24", + "nodeType": "VariableDeclaration", + "scope": 8567, + "src": "6938:9:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8539, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6938:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "6903:45:24" + }, + "returnParameters": { + "id": 8544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8543, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8567, + "src": "6972:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8542, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6972:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6971:9:24" + }, + "scope": 8617, + "src": "6887:260:24", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8615, + "nodeType": "Block", + "src": "7352:460:24", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + "id": 8579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8576, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8571, + "src": "7366:5:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 8577, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8277, + "src": "7375:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 8578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7388:7:24", + "memberName": "NoError", + "nodeType": "MemberAccess", + "referencedDeclaration": 8273, + "src": "7375:20:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "src": "7366:29:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + "id": 8585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8582, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8571, + "src": "7462:5:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 8583, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8277, + "src": "7471:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 8584, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7484:16:24", + "memberName": "InvalidSignature", + "nodeType": "MemberAccess", + "referencedDeclaration": 8274, + "src": "7471:29:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "src": "7462:38:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + "id": 8593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8590, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8571, + "src": "7567:5:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 8591, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8277, + "src": "7576:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 8592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7589:22:24", + "memberName": "InvalidSignatureLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 8275, + "src": "7576:35:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "src": "7567:44:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + "id": 8605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8602, + "name": "error", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8571, + "src": "7701:5:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 8603, + "name": "RecoverError", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8277, + "src": "7710:12:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 8604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7723:17:24", + "memberName": "InvalidSignatureS", + "nodeType": "MemberAccess", + "referencedDeclaration": 8276, + "src": "7710:30:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "src": "7701:39:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8611, + "nodeType": "IfStatement", + "src": "7697:109:24", + "trueBody": { + "id": 8610, + "nodeType": "Block", + "src": "7742:64:24", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 8607, + "name": "errorArg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8573, + "src": "7786:8:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8606, + "name": "ECDSAInvalidSignatureS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8290, + "src": "7763:22:24", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", + "typeString": "function (bytes32) pure returns (error)" + } + }, + "id": 8608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7763:32:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 8609, + "nodeType": "RevertStatement", + "src": "7756:39:24" + } + ] + } + }, + "id": 8612, + "nodeType": "IfStatement", + "src": "7563:243:24", + "trueBody": { + "id": 8601, + "nodeType": "Block", + "src": "7613:78:24", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [ + { + "id": 8597, + "name": "errorArg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8573, + "src": "7670:8:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 8596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7662:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8595, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7662:7:24", + "typeDescriptions": {} + } + }, + "id": 8598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7662:17:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8594, + "name": "ECDSAInvalidSignatureLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8285, + "src": "7634:27:24", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 8599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7634:46:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 8600, + "nodeType": "RevertStatement", + "src": "7627:53:24" + } + ] + } + }, + "id": 8613, + "nodeType": "IfStatement", + "src": "7458:348:24", + "trueBody": { + "id": 8589, + "nodeType": "Block", + "src": "7502:55:24", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8586, + "name": "ECDSAInvalidSignature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8280, + "src": "7523:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 8587, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7523:23:24", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 8588, + "nodeType": "RevertStatement", + "src": "7516:30:24" + } + ] + } + }, + "id": 8614, + "nodeType": "IfStatement", + "src": "7362:444:24", + "trueBody": { + "id": 8581, + "nodeType": "Block", + "src": "7397:55:24", + "statements": [ + { + "functionReturnParameters": 8575, + "id": 8580, + "nodeType": "Return", + "src": "7411:7:24" + } + ] + } + } + ] + }, + "documentation": { + "id": 8568, + "nodeType": "StructuredDocumentation", + "src": "7153:122:24", + "text": " @dev Optionally reverts with the corresponding custom error according to the `error` argument provided." + }, + "id": 8616, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_throwError", + "nameLocation": "7289:11:24", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8574, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8571, + "mutability": "mutable", + "name": "error", + "nameLocation": "7314:5:24", + "nodeType": "VariableDeclaration", + "scope": 8616, + "src": "7301:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 8570, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 8569, + "name": "RecoverError", + "nameLocations": [ + "7301:12:24" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8277, + "src": "7301:12:24" + }, + "referencedDeclaration": 8277, + "src": "7301:12:24", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8573, + "mutability": "mutable", + "name": "errorArg", + "nameLocation": "7329:8:24", + "nodeType": "VariableDeclaration", + "scope": 8616, + "src": "7321:16:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8572, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7321:7:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "7300:38:24" + }, + "returnParameters": { + "id": 8575, + "nodeType": "ParameterList", + "parameters": [], + "src": "7352:0:24" + }, + "scope": 8617, + "src": "7280:532:24", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 8618, + "src": "344:7470:24", + "usedErrors": [ + 8280, + 8285, + 8290 + ], + "usedEvents": [] + } + ], + "src": "112:7703:24" + }, + "id": 24 + }, + "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", + "exportedSymbols": { + "MessageHashUtils": [ + 8703 + ], + "Strings": [ + 8269 + ] + }, + "id": 8704, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8619, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "123:24:25" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Strings.sol", + "file": "../Strings.sol", + "id": 8621, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 8704, + "sourceUnit": 8270, + "src": "149:39:25", + "symbolAliases": [ + { + "foreign": { + "id": 8620, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8269, + "src": "157:7:25", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "MessageHashUtils", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 8622, + "nodeType": "StructuredDocumentation", + "src": "190:330:25", + "text": " @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.\n The library provides methods for generating a hash of a message that conforms to the\n https://eips.ethereum.org/EIPS/eip-191[ERC-191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]\n specifications." + }, + "fullyImplemented": true, + "id": 8703, + "linearizedBaseContracts": [ + 8703 + ], + "name": "MessageHashUtils", + "nameLocation": "529:16:25", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 8631, + "nodeType": "Block", + "src": "1339:341:25", + "statements": [ + { + "AST": { + "nativeSrc": "1374:300:25", + "nodeType": "YulBlock", + "src": "1374:300:25", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1395:4:25", + "nodeType": "YulLiteral", + "src": "1395:4:25", + "type": "", + "value": "0x00" + }, + { + "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", + "kind": "string", + "nativeSrc": "1401:34:25", + "nodeType": "YulLiteral", + "src": "1401:34:25", + "type": "", + "value": "\u0019Ethereum Signed Message:\n32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1388:6:25", + "nodeType": "YulIdentifier", + "src": "1388:6:25" + }, + "nativeSrc": "1388:48:25", + "nodeType": "YulFunctionCall", + "src": "1388:48:25" + }, + "nativeSrc": "1388:48:25", + "nodeType": "YulExpressionStatement", + "src": "1388:48:25" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1497:4:25", + "nodeType": "YulLiteral", + "src": "1497:4:25", + "type": "", + "value": "0x1c" + }, + { + "name": "messageHash", + "nativeSrc": "1503:11:25", + "nodeType": "YulIdentifier", + "src": "1503:11:25" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1490:6:25", + "nodeType": "YulIdentifier", + "src": "1490:6:25" + }, + "nativeSrc": "1490:25:25", + "nodeType": "YulFunctionCall", + "src": "1490:25:25" + }, + "nativeSrc": "1490:25:25", + "nodeType": "YulExpressionStatement", + "src": "1490:25:25" + }, + { + "nativeSrc": "1569:31:25", + "nodeType": "YulAssignment", + "src": "1569:31:25", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1589:4:25", + "nodeType": "YulLiteral", + "src": "1589:4:25", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "1595:4:25", + "nodeType": "YulLiteral", + "src": "1595:4:25", + "type": "", + "value": "0x3c" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "1579:9:25", + "nodeType": "YulIdentifier", + "src": "1579:9:25" + }, + "nativeSrc": "1579:21:25", + "nodeType": "YulFunctionCall", + "src": "1579:21:25" + }, + "variableNames": [ + { + "name": "digest", + "nativeSrc": "1569:6:25", + "nodeType": "YulIdentifier", + "src": "1569:6:25" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8628, + "isOffset": false, + "isSlot": false, + "src": "1569:6:25", + "valueSize": 1 + }, + { + "declaration": 8625, + "isOffset": false, + "isSlot": false, + "src": "1503:11:25", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8630, + "nodeType": "InlineAssembly", + "src": "1349:325:25" + } + ] + }, + "documentation": { + "id": 8623, + "nodeType": "StructuredDocumentation", + "src": "552:690:25", + "text": " @dev Returns the keccak256 digest of an ERC-191 signed data with version\n `0x45` (`personal_sign` messages).\n The digest is calculated by prefixing a bytes32 `messageHash` with\n `\"\\x19Ethereum Signed Message:\\n32\"` and hashing the result. It corresponds with the\n hash signed when using the https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sign[`eth_sign`] JSON-RPC method.\n NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with\n keccak256, although any bytes32 value can be safely used because the final digest will\n be re-hashed.\n See {ECDSA-recover}." + }, + "id": 8632, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toEthSignedMessageHash", + "nameLocation": "1256:22:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8625, + "mutability": "mutable", + "name": "messageHash", + "nameLocation": "1287:11:25", + "nodeType": "VariableDeclaration", + "scope": 8632, + "src": "1279:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1279:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1278:21:25" + }, + "returnParameters": { + "id": 8629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8628, + "mutability": "mutable", + "name": "digest", + "nameLocation": "1331:6:25", + "nodeType": "VariableDeclaration", + "scope": 8632, + "src": "1323:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8627, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1323:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1322:16:25" + }, + "scope": 8703, + "src": "1247:433:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8657, + "nodeType": "Block", + "src": "2257:143:25", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a", + "id": 8644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2309:32:25", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4", + "typeString": "literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\"" + }, + "value": "\u0019Ethereum Signed Message:\n" + }, + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 8649, + "name": "message", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8635, + "src": "2366:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 8650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2374:6:25", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2366:14:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 8647, + "name": "Strings", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8269, + "src": "2349:7:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Strings_$8269_$", + "typeString": "type(library Strings)" + } + }, + "id": 8648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2357:8:25", + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 6981, + "src": "2349:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 8651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2349:32:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 8646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2343:5:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 8645, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2343:5:25", + "typeDescriptions": {} + } + }, + "id": 8652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2343:39:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 8653, + "name": "message", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8635, + "src": "2384:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4", + "typeString": "literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\"" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 8642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2296:5:25", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 8641, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2296:5:25", + "typeDescriptions": {} + } + }, + "id": 8643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2302:6:25", + "memberName": "concat", + "nodeType": "MemberAccess", + "src": "2296:12:25", + "typeDescriptions": { + "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 8654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2296:96:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 8640, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "2286:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 8655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2286:107:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 8639, + "id": 8656, + "nodeType": "Return", + "src": "2267:126:25" + } + ] + }, + "documentation": { + "id": 8633, + "nodeType": "StructuredDocumentation", + "src": "1686:480:25", + "text": " @dev Returns the keccak256 digest of an ERC-191 signed data with version\n `0x45` (`personal_sign` messages).\n The digest is calculated by prefixing an arbitrary `message` with\n `\"\\x19Ethereum Signed Message:\\n\" + len(message)` and hashing the result. It corresponds with the\n hash signed when using the https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sign[`eth_sign`] JSON-RPC method.\n See {ECDSA-recover}." + }, + "id": 8658, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toEthSignedMessageHash", + "nameLocation": "2180:22:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8636, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8635, + "mutability": "mutable", + "name": "message", + "nameLocation": "2216:7:25", + "nodeType": "VariableDeclaration", + "scope": 8658, + "src": "2203:20:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 8634, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2203:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2202:22:25" + }, + "returnParameters": { + "id": 8639, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8638, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8658, + "src": "2248:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8637, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2248:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2247:9:25" + }, + "scope": 8703, + "src": "2171:229:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8677, + "nodeType": "Block", + "src": "2854:80:25", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "1900", + "id": 8671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "hexString", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2898:10:25", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a", + "typeString": "literal_string hex\"1900\"" + }, + "value": "\u0019\u0000" + }, + { + "id": 8672, + "name": "validator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8661, + "src": "2910:9:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 8673, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8663, + "src": "2921:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a", + "typeString": "literal_string hex\"1900\"" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 8669, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "2881:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 8670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2885:12:25", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "2881:16:25", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 8674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2881:45:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 8668, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "2871:9:25", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 8675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2871:56:25", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 8667, + "id": 8676, + "nodeType": "Return", + "src": "2864:63:25" + } + ] + }, + "documentation": { + "id": 8659, + "nodeType": "StructuredDocumentation", + "src": "2406:332:25", + "text": " @dev Returns the keccak256 digest of an ERC-191 signed data with version\n `0x00` (data with intended validator).\n The digest is calculated by prefixing an arbitrary `data` with `\"\\x19\\x00\"` and the intended\n `validator` address. Then hashing the result.\n See {ECDSA-recover}." + }, + "id": 8678, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toDataWithIntendedValidatorHash", + "nameLocation": "2752:31:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8661, + "mutability": "mutable", + "name": "validator", + "nameLocation": "2792:9:25", + "nodeType": "VariableDeclaration", + "scope": 8678, + "src": "2784:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8660, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2784:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8663, + "mutability": "mutable", + "name": "data", + "nameLocation": "2816:4:25", + "nodeType": "VariableDeclaration", + "scope": 8678, + "src": "2803:17:25", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 8662, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2803:5:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "2783:38:25" + }, + "returnParameters": { + "id": 8667, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8666, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8678, + "src": "2845:7:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8665, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2845:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2844:9:25" + }, + "scope": 8703, + "src": "2743:191:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8689, + "nodeType": "Block", + "src": "3216:216:25", + "statements": [ + { + "AST": { + "nativeSrc": "3251:175:25", + "nodeType": "YulBlock", + "src": "3251:175:25", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3272:4:25", + "nodeType": "YulLiteral", + "src": "3272:4:25", + "type": "", + "value": "0x00" + }, + { + "hexValue": "1900", + "kind": "string", + "nativeSrc": "3278:10:25", + "nodeType": "YulLiteral", + "src": "3278:10:25", + "type": "", + "value": "\u0019\u0000" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3265:6:25", + "nodeType": "YulIdentifier", + "src": "3265:6:25" + }, + "nativeSrc": "3265:24:25", + "nodeType": "YulFunctionCall", + "src": "3265:24:25" + }, + "nativeSrc": "3265:24:25", + "nodeType": "YulExpressionStatement", + "src": "3265:24:25" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3309:4:25", + "nodeType": "YulLiteral", + "src": "3309:4:25", + "type": "", + "value": "0x02" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3319:2:25", + "nodeType": "YulLiteral", + "src": "3319:2:25", + "type": "", + "value": "96" + }, + { + "name": "validator", + "nativeSrc": "3323:9:25", + "nodeType": "YulIdentifier", + "src": "3323:9:25" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "3315:3:25", + "nodeType": "YulIdentifier", + "src": "3315:3:25" + }, + "nativeSrc": "3315:18:25", + "nodeType": "YulFunctionCall", + "src": "3315:18:25" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3302:6:25", + "nodeType": "YulIdentifier", + "src": "3302:6:25" + }, + "nativeSrc": "3302:32:25", + "nodeType": "YulFunctionCall", + "src": "3302:32:25" + }, + "nativeSrc": "3302:32:25", + "nodeType": "YulExpressionStatement", + "src": "3302:32:25" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3354:4:25", + "nodeType": "YulLiteral", + "src": "3354:4:25", + "type": "", + "value": "0x16" + }, + { + "name": "messageHash", + "nativeSrc": "3360:11:25", + "nodeType": "YulIdentifier", + "src": "3360:11:25" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3347:6:25", + "nodeType": "YulIdentifier", + "src": "3347:6:25" + }, + "nativeSrc": "3347:25:25", + "nodeType": "YulFunctionCall", + "src": "3347:25:25" + }, + "nativeSrc": "3347:25:25", + "nodeType": "YulExpressionStatement", + "src": "3347:25:25" + }, + { + "nativeSrc": "3385:31:25", + "nodeType": "YulAssignment", + "src": "3385:31:25", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3405:4:25", + "nodeType": "YulLiteral", + "src": "3405:4:25", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "3411:4:25", + "nodeType": "YulLiteral", + "src": "3411:4:25", + "type": "", + "value": "0x36" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "3395:9:25", + "nodeType": "YulIdentifier", + "src": "3395:9:25" + }, + "nativeSrc": "3395:21:25", + "nodeType": "YulFunctionCall", + "src": "3395:21:25" + }, + "variableNames": [ + { + "name": "digest", + "nativeSrc": "3385:6:25", + "nodeType": "YulIdentifier", + "src": "3385:6:25" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8686, + "isOffset": false, + "isSlot": false, + "src": "3385:6:25", + "valueSize": 1 + }, + { + "declaration": 8683, + "isOffset": false, + "isSlot": false, + "src": "3360:11:25", + "valueSize": 1 + }, + { + "declaration": 8681, + "isOffset": false, + "isSlot": false, + "src": "3323:9:25", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8688, + "nodeType": "InlineAssembly", + "src": "3226:200:25" + } + ] + }, + "documentation": { + "id": 8679, + "nodeType": "StructuredDocumentation", + "src": "2940:129:25", + "text": " @dev Variant of {toDataWithIntendedValidatorHash-address-bytes} optimized for cases where `data` is a bytes32." + }, + "id": 8690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toDataWithIntendedValidatorHash", + "nameLocation": "3083:31:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8684, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8681, + "mutability": "mutable", + "name": "validator", + "nameLocation": "3132:9:25", + "nodeType": "VariableDeclaration", + "scope": 8690, + "src": "3124:17:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8680, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3124:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8683, + "mutability": "mutable", + "name": "messageHash", + "nameLocation": "3159:11:25", + "nodeType": "VariableDeclaration", + "scope": 8690, + "src": "3151:19:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8682, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3151:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3114:62:25" + }, + "returnParameters": { + "id": 8687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8686, + "mutability": "mutable", + "name": "digest", + "nameLocation": "3208:6:25", + "nodeType": "VariableDeclaration", + "scope": 8690, + "src": "3200:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8685, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3200:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3199:16:25" + }, + "scope": 8703, + "src": "3074:358:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8701, + "nodeType": "Block", + "src": "3983:265:25", + "statements": [ + { + "AST": { + "nativeSrc": "4018:224:25", + "nodeType": "YulBlock", + "src": "4018:224:25", + "statements": [ + { + "nativeSrc": "4032:22:25", + "nodeType": "YulVariableDeclaration", + "src": "4032:22:25", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4049:4:25", + "nodeType": "YulLiteral", + "src": "4049:4:25", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4043:5:25", + "nodeType": "YulIdentifier", + "src": "4043:5:25" + }, + "nativeSrc": "4043:11:25", + "nodeType": "YulFunctionCall", + "src": "4043:11:25" + }, + "variables": [ + { + "name": "ptr", + "nativeSrc": "4036:3:25", + "nodeType": "YulTypedName", + "src": "4036:3:25", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4074:3:25", + "nodeType": "YulIdentifier", + "src": "4074:3:25" + }, + { + "hexValue": "1901", + "kind": "string", + "nativeSrc": "4079:10:25", + "nodeType": "YulLiteral", + "src": "4079:10:25", + "type": "", + "value": "\u0019\u0001" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4067:6:25", + "nodeType": "YulIdentifier", + "src": "4067:6:25" + }, + "nativeSrc": "4067:23:25", + "nodeType": "YulFunctionCall", + "src": "4067:23:25" + }, + "nativeSrc": "4067:23:25", + "nodeType": "YulExpressionStatement", + "src": "4067:23:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4114:3:25", + "nodeType": "YulIdentifier", + "src": "4114:3:25" + }, + { + "kind": "number", + "nativeSrc": "4119:4:25", + "nodeType": "YulLiteral", + "src": "4119:4:25", + "type": "", + "value": "0x02" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4110:3:25", + "nodeType": "YulIdentifier", + "src": "4110:3:25" + }, + "nativeSrc": "4110:14:25", + "nodeType": "YulFunctionCall", + "src": "4110:14:25" + }, + { + "name": "domainSeparator", + "nativeSrc": "4126:15:25", + "nodeType": "YulIdentifier", + "src": "4126:15:25" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4103:6:25", + "nodeType": "YulIdentifier", + "src": "4103:6:25" + }, + "nativeSrc": "4103:39:25", + "nodeType": "YulFunctionCall", + "src": "4103:39:25" + }, + "nativeSrc": "4103:39:25", + "nodeType": "YulExpressionStatement", + "src": "4103:39:25" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4166:3:25", + "nodeType": "YulIdentifier", + "src": "4166:3:25" + }, + { + "kind": "number", + "nativeSrc": "4171:4:25", + "nodeType": "YulLiteral", + "src": "4171:4:25", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4162:3:25", + "nodeType": "YulIdentifier", + "src": "4162:3:25" + }, + "nativeSrc": "4162:14:25", + "nodeType": "YulFunctionCall", + "src": "4162:14:25" + }, + { + "name": "structHash", + "nativeSrc": "4178:10:25", + "nodeType": "YulIdentifier", + "src": "4178:10:25" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4155:6:25", + "nodeType": "YulIdentifier", + "src": "4155:6:25" + }, + "nativeSrc": "4155:34:25", + "nodeType": "YulFunctionCall", + "src": "4155:34:25" + }, + "nativeSrc": "4155:34:25", + "nodeType": "YulExpressionStatement", + "src": "4155:34:25" + }, + { + "nativeSrc": "4202:30:25", + "nodeType": "YulAssignment", + "src": "4202:30:25", + "value": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "4222:3:25", + "nodeType": "YulIdentifier", + "src": "4222:3:25" + }, + { + "kind": "number", + "nativeSrc": "4227:4:25", + "nodeType": "YulLiteral", + "src": "4227:4:25", + "type": "", + "value": "0x42" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "4212:9:25", + "nodeType": "YulIdentifier", + "src": "4212:9:25" + }, + "nativeSrc": "4212:20:25", + "nodeType": "YulFunctionCall", + "src": "4212:20:25" + }, + "variableNames": [ + { + "name": "digest", + "nativeSrc": "4202:6:25", + "nodeType": "YulIdentifier", + "src": "4202:6:25" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8698, + "isOffset": false, + "isSlot": false, + "src": "4202:6:25", + "valueSize": 1 + }, + { + "declaration": 8693, + "isOffset": false, + "isSlot": false, + "src": "4126:15:25", + "valueSize": 1 + }, + { + "declaration": 8695, + "isOffset": false, + "isSlot": false, + "src": "4178:10:25", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8700, + "nodeType": "InlineAssembly", + "src": "3993:249:25" + } + ] + }, + "documentation": { + "id": 8691, + "nodeType": "StructuredDocumentation", + "src": "3438:431:25", + "text": " @dev Returns the keccak256 digest of an EIP-712 typed data (ERC-191 version `0x01`).\n The digest is calculated from a `domainSeparator` and a `structHash`, by prefixing them with\n `\\x19\\x01` and hashing the result. It corresponds to the hash signed by the\n https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] JSON-RPC method as part of EIP-712.\n See {ECDSA-recover}." + }, + "id": 8702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toTypedDataHash", + "nameLocation": "3883:15:25", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8693, + "mutability": "mutable", + "name": "domainSeparator", + "nameLocation": "3907:15:25", + "nodeType": "VariableDeclaration", + "scope": 8702, + "src": "3899:23:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8692, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3899:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8695, + "mutability": "mutable", + "name": "structHash", + "nameLocation": "3932:10:25", + "nodeType": "VariableDeclaration", + "scope": 8702, + "src": "3924:18:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8694, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3924:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3898:45:25" + }, + "returnParameters": { + "id": 8699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8698, + "mutability": "mutable", + "name": "digest", + "nameLocation": "3975:6:25", + "nodeType": "VariableDeclaration", + "scope": 8702, + "src": "3967:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 8697, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3967:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "3966:16:25" + }, + "scope": 8703, + "src": "3874:374:25", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 8704, + "src": "521:3729:25", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "123:4128:25" + }, + "id": 25 + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/ERC165.sol", + "exportedSymbols": { + "ERC165": [ + 8727 + ], + "IERC165": [ + 8739 + ] + }, + "id": 8728, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8705, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "114:24:26" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "file": "./IERC165.sol", + "id": 8707, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 8728, + "sourceUnit": 8740, + "src": "140:38:26", + "symbolAliases": [ + { + "foreign": { + "id": 8706, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8739, + "src": "148:7:26", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 8709, + "name": "IERC165", + "nameLocations": [ + "688:7:26" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8739, + "src": "688:7:26" + }, + "id": 8710, + "nodeType": "InheritanceSpecifier", + "src": "688:7:26" + } + ], + "canonicalName": "ERC165", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 8708, + "nodeType": "StructuredDocumentation", + "src": "180:479:26", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check\n for the additional interface id that will be supported. For example:\n ```solidity\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId);\n }\n ```" + }, + "fullyImplemented": true, + "id": 8727, + "linearizedBaseContracts": [ + 8727, + 8739 + ], + "name": "ERC165", + "nameLocation": "678:6:26", + "nodeType": "ContractDefinition", + "nodes": [ + { + "baseFunctions": [ + 8738 + ], + "body": { + "id": 8725, + "nodeType": "Block", + "src": "845:64:26", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 8723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8718, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8713, + "src": "862:11:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 8720, + "name": "IERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8739, + "src": "882:7:26", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC165_$8739_$", + "typeString": "type(contract IERC165)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_contract$_IERC165_$8739_$", + "typeString": "type(contract IERC165)" + } + ], + "id": 8719, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "877:4:26", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 8721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "877:13:26", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_contract$_IERC165_$8739", + "typeString": "type(contract IERC165)" + } + }, + "id": 8722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "891:11:26", + "memberName": "interfaceId", + "nodeType": "MemberAccess", + "src": "877:25:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "862:40:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 8717, + "id": 8724, + "nodeType": "Return", + "src": "855:47:26" + } + ] + }, + "documentation": { + "id": 8711, + "nodeType": "StructuredDocumentation", + "src": "702:56:26", + "text": " @dev See {IERC165-supportsInterface}." + }, + "functionSelector": "01ffc9a7", + "id": 8726, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "772:17:26", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8713, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "797:11:26", + "nodeType": "VariableDeclaration", + "scope": 8726, + "src": "790:18:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 8712, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "790:6:26", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "789:20:26" + }, + "returnParameters": { + "id": 8717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8716, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8726, + "src": "839:4:26", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8715, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "839:4:26", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "838:6:26" + }, + "scope": 8727, + "src": "763:146:26", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + } + ], + "scope": 8728, + "src": "660:251:26", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "114:798:26" + }, + "id": 26 + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/introspection/IERC165.sol", + "exportedSymbols": { + "IERC165": [ + 8739 + ] + }, + "id": 8740, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8729, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "115:24:27" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IERC165", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 8730, + "nodeType": "StructuredDocumentation", + "src": "141:280:27", + "text": " @dev Interface of the ERC-165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[ERC].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 8739, + "linearizedBaseContracts": [ + 8739 + ], + "name": "IERC165", + "nameLocation": "432:7:27", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 8731, + "nodeType": "StructuredDocumentation", + "src": "446:340:27", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 8738, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nameLocation": "800:17:27", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8733, + "mutability": "mutable", + "name": "interfaceId", + "nameLocation": "825:11:27", + "nodeType": "VariableDeclaration", + "scope": 8738, + "src": "818:18:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 8732, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "818:6:27", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "817:20:27" + }, + "returnParameters": { + "id": 8737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8736, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8738, + "src": "861:4:27", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8735, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "861:4:27", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "860:6:27" + }, + "scope": 8739, + "src": "791:76:27", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 8740, + "src": "422:447:27", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "115:755:27" + }, + "id": 27 + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "exportedSymbols": { + "Math": [ + 10360 + ], + "Panic": [ + 6613 + ], + "SafeCast": [ + 12125 + ] + }, + "id": 10361, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 8741, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "103:24:28" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Panic.sol", + "file": "../Panic.sol", + "id": 8743, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 10361, + "sourceUnit": 6614, + "src": "129:35:28", + "symbolAliases": [ + { + "foreign": { + "id": 8742, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6613, + "src": "137:5:28", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", + "file": "./SafeCast.sol", + "id": 8745, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 10361, + "sourceUnit": 12126, + "src": "165:40:28", + "symbolAliases": [ + { + "foreign": { + "id": 8744, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "173:8:28", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Math", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 8746, + "nodeType": "StructuredDocumentation", + "src": "207:73:28", + "text": " @dev Standard math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 10360, + "linearizedBaseContracts": [ + 10360 + ], + "name": "Math", + "nameLocation": "289:4:28", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "Math.Rounding", + "id": 8751, + "members": [ + { + "id": 8747, + "name": "Floor", + "nameLocation": "324:5:28", + "nodeType": "EnumValue", + "src": "324:5:28" + }, + { + "id": 8748, + "name": "Ceil", + "nameLocation": "367:4:28", + "nodeType": "EnumValue", + "src": "367:4:28" + }, + { + "id": 8749, + "name": "Trunc", + "nameLocation": "409:5:28", + "nodeType": "EnumValue", + "src": "409:5:28" + }, + { + "id": 8750, + "name": "Expand", + "nameLocation": "439:6:28", + "nodeType": "EnumValue", + "src": "439:6:28" + } + ], + "name": "Rounding", + "nameLocation": "305:8:28", + "nodeType": "EnumDefinition", + "src": "300:169:28" + }, + { + "body": { + "id": 8764, + "nodeType": "Block", + "src": "731:112:28", + "statements": [ + { + "AST": { + "nativeSrc": "766:71:28", + "nodeType": "YulBlock", + "src": "766:71:28", + "statements": [ + { + "nativeSrc": "780:16:28", + "nodeType": "YulAssignment", + "src": "780:16:28", + "value": { + "arguments": [ + { + "name": "a", + "nativeSrc": "791:1:28", + "nodeType": "YulIdentifier", + "src": "791:1:28" + }, + { + "name": "b", + "nativeSrc": "794:1:28", + "nodeType": "YulIdentifier", + "src": "794:1:28" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "787:3:28", + "nodeType": "YulIdentifier", + "src": "787:3:28" + }, + "nativeSrc": "787:9:28", + "nodeType": "YulFunctionCall", + "src": "787:9:28" + }, + "variableNames": [ + { + "name": "low", + "nativeSrc": "780:3:28", + "nodeType": "YulIdentifier", + "src": "780:3:28" + } + ] + }, + { + "nativeSrc": "809:18:28", + "nodeType": "YulAssignment", + "src": "809:18:28", + "value": { + "arguments": [ + { + "name": "low", + "nativeSrc": "820:3:28", + "nodeType": "YulIdentifier", + "src": "820:3:28" + }, + { + "name": "a", + "nativeSrc": "825:1:28", + "nodeType": "YulIdentifier", + "src": "825:1:28" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "817:2:28", + "nodeType": "YulIdentifier", + "src": "817:2:28" + }, + "nativeSrc": "817:10:28", + "nodeType": "YulFunctionCall", + "src": "817:10:28" + }, + "variableNames": [ + { + "name": "high", + "nativeSrc": "809:4:28", + "nodeType": "YulIdentifier", + "src": "809:4:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8754, + "isOffset": false, + "isSlot": false, + "src": "791:1:28", + "valueSize": 1 + }, + { + "declaration": 8754, + "isOffset": false, + "isSlot": false, + "src": "825:1:28", + "valueSize": 1 + }, + { + "declaration": 8756, + "isOffset": false, + "isSlot": false, + "src": "794:1:28", + "valueSize": 1 + }, + { + "declaration": 8759, + "isOffset": false, + "isSlot": false, + "src": "809:4:28", + "valueSize": 1 + }, + { + "declaration": 8761, + "isOffset": false, + "isSlot": false, + "src": "780:3:28", + "valueSize": 1 + }, + { + "declaration": 8761, + "isOffset": false, + "isSlot": false, + "src": "820:3:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8763, + "nodeType": "InlineAssembly", + "src": "741:96:28" + } + ] + }, + "documentation": { + "id": 8752, + "nodeType": "StructuredDocumentation", + "src": "475:163:28", + "text": " @dev Return the 512-bit addition of two uint256.\n The result is stored in two 256 variables such that sum = high * 2²⁵⁶ + low." + }, + "id": 8765, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add512", + "nameLocation": "652:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8757, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8754, + "mutability": "mutable", + "name": "a", + "nameLocation": "667:1:28", + "nodeType": "VariableDeclaration", + "scope": 8765, + "src": "659:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "659:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8756, + "mutability": "mutable", + "name": "b", + "nameLocation": "678:1:28", + "nodeType": "VariableDeclaration", + "scope": 8765, + "src": "670:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8755, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "670:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "658:22:28" + }, + "returnParameters": { + "id": 8762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8759, + "mutability": "mutable", + "name": "high", + "nameLocation": "712:4:28", + "nodeType": "VariableDeclaration", + "scope": 8765, + "src": "704:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8758, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "704:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8761, + "mutability": "mutable", + "name": "low", + "nameLocation": "726:3:28", + "nodeType": "VariableDeclaration", + "scope": 8765, + "src": "718:11:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "718:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "703:27:28" + }, + "scope": 10360, + "src": "643:200:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8778, + "nodeType": "Block", + "src": "1115:462:28", + "statements": [ + { + "AST": { + "nativeSrc": "1437:134:28", + "nodeType": "YulBlock", + "src": "1437:134:28", + "statements": [ + { + "nativeSrc": "1451:30:28", + "nodeType": "YulVariableDeclaration", + "src": "1451:30:28", + "value": { + "arguments": [ + { + "name": "a", + "nativeSrc": "1468:1:28", + "nodeType": "YulIdentifier", + "src": "1468:1:28" + }, + { + "name": "b", + "nativeSrc": "1471:1:28", + "nodeType": "YulIdentifier", + "src": "1471:1:28" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1478:1:28", + "nodeType": "YulLiteral", + "src": "1478:1:28", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "1474:3:28", + "nodeType": "YulIdentifier", + "src": "1474:3:28" + }, + "nativeSrc": "1474:6:28", + "nodeType": "YulFunctionCall", + "src": "1474:6:28" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "1461:6:28", + "nodeType": "YulIdentifier", + "src": "1461:6:28" + }, + "nativeSrc": "1461:20:28", + "nodeType": "YulFunctionCall", + "src": "1461:20:28" + }, + "variables": [ + { + "name": "mm", + "nativeSrc": "1455:2:28", + "nodeType": "YulTypedName", + "src": "1455:2:28", + "type": "" + } + ] + }, + { + "nativeSrc": "1494:16:28", + "nodeType": "YulAssignment", + "src": "1494:16:28", + "value": { + "arguments": [ + { + "name": "a", + "nativeSrc": "1505:1:28", + "nodeType": "YulIdentifier", + "src": "1505:1:28" + }, + { + "name": "b", + "nativeSrc": "1508:1:28", + "nodeType": "YulIdentifier", + "src": "1508:1:28" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "1501:3:28", + "nodeType": "YulIdentifier", + "src": "1501:3:28" + }, + "nativeSrc": "1501:9:28", + "nodeType": "YulFunctionCall", + "src": "1501:9:28" + }, + "variableNames": [ + { + "name": "low", + "nativeSrc": "1494:3:28", + "nodeType": "YulIdentifier", + "src": "1494:3:28" + } + ] + }, + { + "nativeSrc": "1523:38:28", + "nodeType": "YulAssignment", + "src": "1523:38:28", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "1539:2:28", + "nodeType": "YulIdentifier", + "src": "1539:2:28" + }, + { + "name": "low", + "nativeSrc": "1543:3:28", + "nodeType": "YulIdentifier", + "src": "1543:3:28" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1535:3:28", + "nodeType": "YulIdentifier", + "src": "1535:3:28" + }, + "nativeSrc": "1535:12:28", + "nodeType": "YulFunctionCall", + "src": "1535:12:28" + }, + { + "arguments": [ + { + "name": "mm", + "nativeSrc": "1552:2:28", + "nodeType": "YulIdentifier", + "src": "1552:2:28" + }, + { + "name": "low", + "nativeSrc": "1556:3:28", + "nodeType": "YulIdentifier", + "src": "1556:3:28" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1549:2:28", + "nodeType": "YulIdentifier", + "src": "1549:2:28" + }, + "nativeSrc": "1549:11:28", + "nodeType": "YulFunctionCall", + "src": "1549:11:28" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1531:3:28", + "nodeType": "YulIdentifier", + "src": "1531:3:28" + }, + "nativeSrc": "1531:30:28", + "nodeType": "YulFunctionCall", + "src": "1531:30:28" + }, + "variableNames": [ + { + "name": "high", + "nativeSrc": "1523:4:28", + "nodeType": "YulIdentifier", + "src": "1523:4:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8768, + "isOffset": false, + "isSlot": false, + "src": "1468:1:28", + "valueSize": 1 + }, + { + "declaration": 8768, + "isOffset": false, + "isSlot": false, + "src": "1505:1:28", + "valueSize": 1 + }, + { + "declaration": 8770, + "isOffset": false, + "isSlot": false, + "src": "1471:1:28", + "valueSize": 1 + }, + { + "declaration": 8770, + "isOffset": false, + "isSlot": false, + "src": "1508:1:28", + "valueSize": 1 + }, + { + "declaration": 8773, + "isOffset": false, + "isSlot": false, + "src": "1523:4:28", + "valueSize": 1 + }, + { + "declaration": 8775, + "isOffset": false, + "isSlot": false, + "src": "1494:3:28", + "valueSize": 1 + }, + { + "declaration": 8775, + "isOffset": false, + "isSlot": false, + "src": "1543:3:28", + "valueSize": 1 + }, + { + "declaration": 8775, + "isOffset": false, + "isSlot": false, + "src": "1556:3:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8777, + "nodeType": "InlineAssembly", + "src": "1412:159:28" + } + ] + }, + "documentation": { + "id": 8766, + "nodeType": "StructuredDocumentation", + "src": "849:173:28", + "text": " @dev Return the 512-bit multiplication of two uint256.\n The result is stored in two 256 variables such that product = high * 2²⁵⁶ + low." + }, + "id": 8779, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul512", + "nameLocation": "1036:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8768, + "mutability": "mutable", + "name": "a", + "nameLocation": "1051:1:28", + "nodeType": "VariableDeclaration", + "scope": 8779, + "src": "1043:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8767, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1043:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8770, + "mutability": "mutable", + "name": "b", + "nameLocation": "1062:1:28", + "nodeType": "VariableDeclaration", + "scope": 8779, + "src": "1054:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1054:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1042:22:28" + }, + "returnParameters": { + "id": 8776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8773, + "mutability": "mutable", + "name": "high", + "nameLocation": "1096:4:28", + "nodeType": "VariableDeclaration", + "scope": 8779, + "src": "1088:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1088:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8775, + "mutability": "mutable", + "name": "low", + "nameLocation": "1110:3:28", + "nodeType": "VariableDeclaration", + "scope": 8779, + "src": "1102:11:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1102:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1087:27:28" + }, + "scope": 10360, + "src": "1027:550:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8813, + "nodeType": "Block", + "src": "1784:149:28", + "statements": [ + { + "id": 8812, + "nodeType": "UncheckedBlock", + "src": "1794:133:28", + "statements": [ + { + "assignments": [ + 8792 + ], + "declarations": [ + { + "constant": false, + "id": 8792, + "mutability": "mutable", + "name": "c", + "nameLocation": "1826:1:28", + "nodeType": "VariableDeclaration", + "scope": 8812, + "src": "1818:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8791, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1818:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8796, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8793, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8782, + "src": "1830:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 8794, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8784, + "src": "1834:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1830:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1818:17:28" + }, + { + "expression": { + "id": 8801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8797, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8787, + "src": "1849:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8798, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8792, + "src": "1859:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 8799, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8782, + "src": "1864:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1859:6:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1849:16:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8802, + "nodeType": "ExpressionStatement", + "src": "1849:16:28" + }, + { + "expression": { + "id": 8810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8803, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8789, + "src": "1879:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8804, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8792, + "src": "1888:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 8807, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8787, + "src": "1908:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 8805, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "1892:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 8806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "1901:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "1892:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 8808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1892:24:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1888:28:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1879:37:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8811, + "nodeType": "ExpressionStatement", + "src": "1879:37:28" + } + ] + } + ] + }, + "documentation": { + "id": 8780, + "nodeType": "StructuredDocumentation", + "src": "1583:105:28", + "text": " @dev Returns the addition of two unsigned integers, with a success flag (no overflow)." + }, + "id": 8814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nameLocation": "1702:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8785, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8782, + "mutability": "mutable", + "name": "a", + "nameLocation": "1717:1:28", + "nodeType": "VariableDeclaration", + "scope": 8814, + "src": "1709:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8781, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1709:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8784, + "mutability": "mutable", + "name": "b", + "nameLocation": "1728:1:28", + "nodeType": "VariableDeclaration", + "scope": 8814, + "src": "1720:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8783, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1720:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1708:22:28" + }, + "returnParameters": { + "id": 8790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8787, + "mutability": "mutable", + "name": "success", + "nameLocation": "1759:7:28", + "nodeType": "VariableDeclaration", + "scope": 8814, + "src": "1754:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8786, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1754:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8789, + "mutability": "mutable", + "name": "result", + "nameLocation": "1776:6:28", + "nodeType": "VariableDeclaration", + "scope": 8814, + "src": "1768:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1768:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1753:30:28" + }, + "scope": 10360, + "src": "1693:240:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8848, + "nodeType": "Block", + "src": "2143:149:28", + "statements": [ + { + "id": 8847, + "nodeType": "UncheckedBlock", + "src": "2153:133:28", + "statements": [ + { + "assignments": [ + 8827 + ], + "declarations": [ + { + "constant": false, + "id": 8827, + "mutability": "mutable", + "name": "c", + "nameLocation": "2185:1:28", + "nodeType": "VariableDeclaration", + "scope": 8847, + "src": "2177:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8826, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2177:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8831, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8828, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8817, + "src": "2189:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 8829, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8819, + "src": "2193:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2189:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2177:17:28" + }, + { + "expression": { + "id": 8836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8832, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8822, + "src": "2208:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8833, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8827, + "src": "2218:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 8834, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8817, + "src": "2223:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2218:6:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2208:16:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8837, + "nodeType": "ExpressionStatement", + "src": "2208:16:28" + }, + { + "expression": { + "id": 8845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8838, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8824, + "src": "2238:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8839, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8827, + "src": "2247:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 8842, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8822, + "src": "2267:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 8840, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "2251:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 8841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2260:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "2251:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 8843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2251:24:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2247:28:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2238:37:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8846, + "nodeType": "ExpressionStatement", + "src": "2238:37:28" + } + ] + } + ] + }, + "documentation": { + "id": 8815, + "nodeType": "StructuredDocumentation", + "src": "1939:108:28", + "text": " @dev Returns the subtraction of two unsigned integers, with a success flag (no overflow)." + }, + "id": 8849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nameLocation": "2061:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8817, + "mutability": "mutable", + "name": "a", + "nameLocation": "2076:1:28", + "nodeType": "VariableDeclaration", + "scope": 8849, + "src": "2068:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2068:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8819, + "mutability": "mutable", + "name": "b", + "nameLocation": "2087:1:28", + "nodeType": "VariableDeclaration", + "scope": 8849, + "src": "2079:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2079:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2067:22:28" + }, + "returnParameters": { + "id": 8825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8822, + "mutability": "mutable", + "name": "success", + "nameLocation": "2118:7:28", + "nodeType": "VariableDeclaration", + "scope": 8849, + "src": "2113:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8821, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2113:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8824, + "mutability": "mutable", + "name": "result", + "nameLocation": "2135:6:28", + "nodeType": "VariableDeclaration", + "scope": 8849, + "src": "2127:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2127:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2112:30:28" + }, + "scope": 10360, + "src": "2052:240:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8878, + "nodeType": "Block", + "src": "2505:391:28", + "statements": [ + { + "id": 8877, + "nodeType": "UncheckedBlock", + "src": "2515:375:28", + "statements": [ + { + "assignments": [ + 8862 + ], + "declarations": [ + { + "constant": false, + "id": 8862, + "mutability": "mutable", + "name": "c", + "nameLocation": "2547:1:28", + "nodeType": "VariableDeclaration", + "scope": 8877, + "src": "2539:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2539:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8866, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8863, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8852, + "src": "2551:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 8864, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8854, + "src": "2555:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2551:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2539:17:28" + }, + { + "AST": { + "nativeSrc": "2595:188:28", + "nodeType": "YulBlock", + "src": "2595:188:28", + "statements": [ + { + "nativeSrc": "2727:42:28", + "nodeType": "YulAssignment", + "src": "2727:42:28", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "c", + "nativeSrc": "2748:1:28", + "nodeType": "YulIdentifier", + "src": "2748:1:28" + }, + { + "name": "a", + "nativeSrc": "2751:1:28", + "nodeType": "YulIdentifier", + "src": "2751:1:28" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "2744:3:28", + "nodeType": "YulIdentifier", + "src": "2744:3:28" + }, + "nativeSrc": "2744:9:28", + "nodeType": "YulFunctionCall", + "src": "2744:9:28" + }, + { + "name": "b", + "nativeSrc": "2755:1:28", + "nodeType": "YulIdentifier", + "src": "2755:1:28" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2741:2:28", + "nodeType": "YulIdentifier", + "src": "2741:2:28" + }, + "nativeSrc": "2741:16:28", + "nodeType": "YulFunctionCall", + "src": "2741:16:28" + }, + { + "arguments": [ + { + "name": "a", + "nativeSrc": "2766:1:28", + "nodeType": "YulIdentifier", + "src": "2766:1:28" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2759:6:28", + "nodeType": "YulIdentifier", + "src": "2759:6:28" + }, + "nativeSrc": "2759:9:28", + "nodeType": "YulFunctionCall", + "src": "2759:9:28" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "2738:2:28", + "nodeType": "YulIdentifier", + "src": "2738:2:28" + }, + "nativeSrc": "2738:31:28", + "nodeType": "YulFunctionCall", + "src": "2738:31:28" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "2727:7:28", + "nodeType": "YulIdentifier", + "src": "2727:7:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8852, + "isOffset": false, + "isSlot": false, + "src": "2751:1:28", + "valueSize": 1 + }, + { + "declaration": 8852, + "isOffset": false, + "isSlot": false, + "src": "2766:1:28", + "valueSize": 1 + }, + { + "declaration": 8854, + "isOffset": false, + "isSlot": false, + "src": "2755:1:28", + "valueSize": 1 + }, + { + "declaration": 8862, + "isOffset": false, + "isSlot": false, + "src": "2748:1:28", + "valueSize": 1 + }, + { + "declaration": 8857, + "isOffset": false, + "isSlot": false, + "src": "2727:7:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8867, + "nodeType": "InlineAssembly", + "src": "2570:213:28" + }, + { + "expression": { + "id": 8875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8868, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8859, + "src": "2842:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8869, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8862, + "src": "2851:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 8872, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8857, + "src": "2871:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 8870, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "2855:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 8871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2864:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "2855:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 8873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2855:24:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2851:28:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2842:37:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8876, + "nodeType": "ExpressionStatement", + "src": "2842:37:28" + } + ] + } + ] + }, + "documentation": { + "id": 8850, + "nodeType": "StructuredDocumentation", + "src": "2298:111:28", + "text": " @dev Returns the multiplication of two unsigned integers, with a success flag (no overflow)." + }, + "id": 8879, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nameLocation": "2423:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8852, + "mutability": "mutable", + "name": "a", + "nameLocation": "2438:1:28", + "nodeType": "VariableDeclaration", + "scope": 8879, + "src": "2430:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8851, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2430:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8854, + "mutability": "mutable", + "name": "b", + "nameLocation": "2449:1:28", + "nodeType": "VariableDeclaration", + "scope": 8879, + "src": "2441:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2441:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2429:22:28" + }, + "returnParameters": { + "id": 8860, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8857, + "mutability": "mutable", + "name": "success", + "nameLocation": "2480:7:28", + "nodeType": "VariableDeclaration", + "scope": 8879, + "src": "2475:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8856, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2475:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8859, + "mutability": "mutable", + "name": "result", + "nameLocation": "2497:6:28", + "nodeType": "VariableDeclaration", + "scope": 8879, + "src": "2489:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2489:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2474:30:28" + }, + "scope": 10360, + "src": "2414:482:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8899, + "nodeType": "Block", + "src": "3111:231:28", + "statements": [ + { + "id": 8898, + "nodeType": "UncheckedBlock", + "src": "3121:215:28", + "statements": [ + { + "expression": { + "id": 8895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8891, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8887, + "src": "3145:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8892, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8884, + "src": "3155:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 8893, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3159:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3155:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3145:15:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8896, + "nodeType": "ExpressionStatement", + "src": "3145:15:28" + }, + { + "AST": { + "nativeSrc": "3199:127:28", + "nodeType": "YulBlock", + "src": "3199:127:28", + "statements": [ + { + "nativeSrc": "3293:19:28", + "nodeType": "YulAssignment", + "src": "3293:19:28", + "value": { + "arguments": [ + { + "name": "a", + "nativeSrc": "3307:1:28", + "nodeType": "YulIdentifier", + "src": "3307:1:28" + }, + { + "name": "b", + "nativeSrc": "3310:1:28", + "nodeType": "YulIdentifier", + "src": "3310:1:28" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "3303:3:28", + "nodeType": "YulIdentifier", + "src": "3303:3:28" + }, + "nativeSrc": "3303:9:28", + "nodeType": "YulFunctionCall", + "src": "3303:9:28" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "3293:6:28", + "nodeType": "YulIdentifier", + "src": "3293:6:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8882, + "isOffset": false, + "isSlot": false, + "src": "3307:1:28", + "valueSize": 1 + }, + { + "declaration": 8884, + "isOffset": false, + "isSlot": false, + "src": "3310:1:28", + "valueSize": 1 + }, + { + "declaration": 8889, + "isOffset": false, + "isSlot": false, + "src": "3293:6:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8897, + "nodeType": "InlineAssembly", + "src": "3174:152:28" + } + ] + } + ] + }, + "documentation": { + "id": 8880, + "nodeType": "StructuredDocumentation", + "src": "2902:113:28", + "text": " @dev Returns the division of two unsigned integers, with a success flag (no division by zero)." + }, + "id": 8900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nameLocation": "3029:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8885, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8882, + "mutability": "mutable", + "name": "a", + "nameLocation": "3044:1:28", + "nodeType": "VariableDeclaration", + "scope": 8900, + "src": "3036:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8881, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3036:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8884, + "mutability": "mutable", + "name": "b", + "nameLocation": "3055:1:28", + "nodeType": "VariableDeclaration", + "scope": 8900, + "src": "3047:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3047:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3035:22:28" + }, + "returnParameters": { + "id": 8890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8887, + "mutability": "mutable", + "name": "success", + "nameLocation": "3086:7:28", + "nodeType": "VariableDeclaration", + "scope": 8900, + "src": "3081:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8886, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3081:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8889, + "mutability": "mutable", + "name": "result", + "nameLocation": "3103:6:28", + "nodeType": "VariableDeclaration", + "scope": 8900, + "src": "3095:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8888, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3095:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3080:30:28" + }, + "scope": 10360, + "src": "3020:322:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8920, + "nodeType": "Block", + "src": "3567:231:28", + "statements": [ + { + "id": 8919, + "nodeType": "UncheckedBlock", + "src": "3577:215:28", + "statements": [ + { + "expression": { + "id": 8916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 8912, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8908, + "src": "3601:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 8913, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8905, + "src": "3611:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 8914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3615:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3611:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3601:15:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8917, + "nodeType": "ExpressionStatement", + "src": "3601:15:28" + }, + { + "AST": { + "nativeSrc": "3655:127:28", + "nodeType": "YulBlock", + "src": "3655:127:28", + "statements": [ + { + "nativeSrc": "3749:19:28", + "nodeType": "YulAssignment", + "src": "3749:19:28", + "value": { + "arguments": [ + { + "name": "a", + "nativeSrc": "3763:1:28", + "nodeType": "YulIdentifier", + "src": "3763:1:28" + }, + { + "name": "b", + "nativeSrc": "3766:1:28", + "nodeType": "YulIdentifier", + "src": "3766:1:28" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "3759:3:28", + "nodeType": "YulIdentifier", + "src": "3759:3:28" + }, + "nativeSrc": "3759:9:28", + "nodeType": "YulFunctionCall", + "src": "3759:9:28" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "3749:6:28", + "nodeType": "YulIdentifier", + "src": "3749:6:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 8903, + "isOffset": false, + "isSlot": false, + "src": "3763:1:28", + "valueSize": 1 + }, + { + "declaration": 8905, + "isOffset": false, + "isSlot": false, + "src": "3766:1:28", + "valueSize": 1 + }, + { + "declaration": 8910, + "isOffset": false, + "isSlot": false, + "src": "3749:6:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 8918, + "nodeType": "InlineAssembly", + "src": "3630:152:28" + } + ] + } + ] + }, + "documentation": { + "id": 8901, + "nodeType": "StructuredDocumentation", + "src": "3348:123:28", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a success flag (no division by zero)." + }, + "id": 8921, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nameLocation": "3485:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8903, + "mutability": "mutable", + "name": "a", + "nameLocation": "3500:1:28", + "nodeType": "VariableDeclaration", + "scope": 8921, + "src": "3492:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8902, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3492:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8905, + "mutability": "mutable", + "name": "b", + "nameLocation": "3511:1:28", + "nodeType": "VariableDeclaration", + "scope": 8921, + "src": "3503:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3503:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3491:22:28" + }, + "returnParameters": { + "id": 8911, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8908, + "mutability": "mutable", + "name": "success", + "nameLocation": "3542:7:28", + "nodeType": "VariableDeclaration", + "scope": 8921, + "src": "3537:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8907, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3537:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8910, + "mutability": "mutable", + "name": "result", + "nameLocation": "3559:6:28", + "nodeType": "VariableDeclaration", + "scope": 8921, + "src": "3551:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8909, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3551:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3536:30:28" + }, + "scope": 10360, + "src": "3476:322:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8950, + "nodeType": "Block", + "src": "3989:122:28", + "statements": [ + { + "assignments": [ + 8932, + 8934 + ], + "declarations": [ + { + "constant": false, + "id": 8932, + "mutability": "mutable", + "name": "success", + "nameLocation": "4005:7:28", + "nodeType": "VariableDeclaration", + "scope": 8950, + "src": "4000:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8931, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4000:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8934, + "mutability": "mutable", + "name": "result", + "nameLocation": "4022:6:28", + "nodeType": "VariableDeclaration", + "scope": 8950, + "src": "4014:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4014:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8939, + "initialValue": { + "arguments": [ + { + "id": 8936, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8924, + "src": "4039:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8937, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8926, + "src": "4042:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8935, + "name": "tryAdd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8814, + "src": "4032:6:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 8938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4032:12:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3999:45:28" + }, + { + "expression": { + "arguments": [ + { + "id": 8941, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8932, + "src": "4069:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 8942, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8934, + "src": "4078:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "arguments": [ + { + "id": 8945, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4091:7:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8944, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4091:7:28", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 8943, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4086:4:28", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 8946, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4086:13:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 8947, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4100:3:28", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4086:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8940, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9028, + "src": "4061:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4061:43:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8930, + "id": 8949, + "nodeType": "Return", + "src": "4054:50:28" + } + ] + }, + "documentation": { + "id": 8922, + "nodeType": "StructuredDocumentation", + "src": "3804:103:28", + "text": " @dev Unsigned saturating addition, bounds to `2²⁵⁶ - 1` instead of overflowing." + }, + "id": 8951, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "saturatingAdd", + "nameLocation": "3921:13:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8927, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8924, + "mutability": "mutable", + "name": "a", + "nameLocation": "3943:1:28", + "nodeType": "VariableDeclaration", + "scope": 8951, + "src": "3935:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8923, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3935:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8926, + "mutability": "mutable", + "name": "b", + "nameLocation": "3954:1:28", + "nodeType": "VariableDeclaration", + "scope": 8951, + "src": "3946:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8925, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3946:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3934:22:28" + }, + "returnParameters": { + "id": 8930, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8929, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8951, + "src": "3980:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8928, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3980:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3979:9:28" + }, + "scope": 10360, + "src": "3912:199:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 8970, + "nodeType": "Block", + "src": "4294:73:28", + "statements": [ + { + "assignments": [ + null, + 8962 + ], + "declarations": [ + null, + { + "constant": false, + "id": 8962, + "mutability": "mutable", + "name": "result", + "nameLocation": "4315:6:28", + "nodeType": "VariableDeclaration", + "scope": 8970, + "src": "4307:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8961, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4307:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8967, + "initialValue": { + "arguments": [ + { + "id": 8964, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8954, + "src": "4332:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8965, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8956, + "src": "4335:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8963, + "name": "trySub", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8849, + "src": "4325:6:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 8966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4325:12:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4304:33:28" + }, + { + "expression": { + "id": 8968, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8962, + "src": "4354:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8960, + "id": 8969, + "nodeType": "Return", + "src": "4347:13:28" + } + ] + }, + "documentation": { + "id": 8952, + "nodeType": "StructuredDocumentation", + "src": "4117:95:28", + "text": " @dev Unsigned saturating subtraction, bounds to zero instead of overflowing." + }, + "id": 8971, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "saturatingSub", + "nameLocation": "4226:13:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8957, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8954, + "mutability": "mutable", + "name": "a", + "nameLocation": "4248:1:28", + "nodeType": "VariableDeclaration", + "scope": 8971, + "src": "4240:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8953, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4240:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8956, + "mutability": "mutable", + "name": "b", + "nameLocation": "4259:1:28", + "nodeType": "VariableDeclaration", + "scope": 8971, + "src": "4251:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8955, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4251:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4239:22:28" + }, + "returnParameters": { + "id": 8960, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8959, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 8971, + "src": "4285:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8958, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4285:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4284:9:28" + }, + "scope": 10360, + "src": "4217:150:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9000, + "nodeType": "Block", + "src": "4564:122:28", + "statements": [ + { + "assignments": [ + 8982, + 8984 + ], + "declarations": [ + { + "constant": false, + "id": 8982, + "mutability": "mutable", + "name": "success", + "nameLocation": "4580:7:28", + "nodeType": "VariableDeclaration", + "scope": 9000, + "src": "4575:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8981, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4575:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8984, + "mutability": "mutable", + "name": "result", + "nameLocation": "4597:6:28", + "nodeType": "VariableDeclaration", + "scope": 9000, + "src": "4589:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8983, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4589:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 8989, + "initialValue": { + "arguments": [ + { + "id": 8986, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8974, + "src": "4614:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 8987, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8976, + "src": "4617:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8985, + "name": "tryMul", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8879, + "src": "4607:6:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (bool,uint256)" + } + }, + "id": 8988, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4607:12:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4574:45:28" + }, + { + "expression": { + "arguments": [ + { + "id": 8991, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8982, + "src": "4644:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 8992, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8984, + "src": "4653:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "arguments": [ + { + "id": 8995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4666:7:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 8994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4666:7:28", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + } + ], + "id": 8993, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4661:4:28", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 8996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4661:13:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint256", + "typeString": "type(uint256)" + } + }, + "id": 8997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4675:3:28", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4661:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8990, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9028, + "src": "4636:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 8998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4636:43:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8980, + "id": 8999, + "nodeType": "Return", + "src": "4629:50:28" + } + ] + }, + "documentation": { + "id": 8972, + "nodeType": "StructuredDocumentation", + "src": "4373:109:28", + "text": " @dev Unsigned saturating multiplication, bounds to `2²⁵⁶ - 1` instead of overflowing." + }, + "id": 9001, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "saturatingMul", + "nameLocation": "4496:13:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8977, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8974, + "mutability": "mutable", + "name": "a", + "nameLocation": "4518:1:28", + "nodeType": "VariableDeclaration", + "scope": 9001, + "src": "4510:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8973, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4510:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 8976, + "mutability": "mutable", + "name": "b", + "nameLocation": "4529:1:28", + "nodeType": "VariableDeclaration", + "scope": 9001, + "src": "4521:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8975, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4521:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4509:22:28" + }, + "returnParameters": { + "id": 8980, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8979, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9001, + "src": "4555:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8978, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4555:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4554:9:28" + }, + "scope": 10360, + "src": "4487:199:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9027, + "nodeType": "Block", + "src": "5158:207:28", + "statements": [ + { + "id": 9026, + "nodeType": "UncheckedBlock", + "src": "5168:191:28", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9013, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9008, + "src": "5306:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9014, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9006, + "src": "5312:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 9015, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9008, + "src": "5316:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5312:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9017, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5311:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 9020, + "name": "condition", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9004, + "src": "5337:9:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9018, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "5321:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5330:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "5321:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5321:26:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5311:36:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9023, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5310:38:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5306:42:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9012, + "id": 9025, + "nodeType": "Return", + "src": "5299:49:28" + } + ] + } + ] + }, + "documentation": { + "id": 9002, + "nodeType": "StructuredDocumentation", + "src": "4692:374:28", + "text": " @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n one branch when needed, making this function more expensive." + }, + "id": 9028, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ternary", + "nameLocation": "5080:7:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9009, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9004, + "mutability": "mutable", + "name": "condition", + "nameLocation": "5093:9:28", + "nodeType": "VariableDeclaration", + "scope": 9028, + "src": "5088:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9003, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5088:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9006, + "mutability": "mutable", + "name": "a", + "nameLocation": "5112:1:28", + "nodeType": "VariableDeclaration", + "scope": 9028, + "src": "5104:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5104:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9008, + "mutability": "mutable", + "name": "b", + "nameLocation": "5123:1:28", + "nodeType": "VariableDeclaration", + "scope": 9028, + "src": "5115:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9007, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5115:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5087:38:28" + }, + "returnParameters": { + "id": 9012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9011, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9028, + "src": "5149:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9010, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5149:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5148:9:28" + }, + "scope": 10360, + "src": "5071:294:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9046, + "nodeType": "Block", + "src": "5502:44:28", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9039, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9031, + "src": "5527:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 9040, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9033, + "src": "5531:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5527:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 9042, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9031, + "src": "5534:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9043, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9033, + "src": "5537:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9038, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9028, + "src": "5519:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 9044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5519:20:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9037, + "id": 9045, + "nodeType": "Return", + "src": "5512:27:28" + } + ] + }, + "documentation": { + "id": 9029, + "nodeType": "StructuredDocumentation", + "src": "5371:59:28", + "text": " @dev Returns the largest of two numbers." + }, + "id": 9047, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "5444:3:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9034, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9031, + "mutability": "mutable", + "name": "a", + "nameLocation": "5456:1:28", + "nodeType": "VariableDeclaration", + "scope": 9047, + "src": "5448:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5448:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9033, + "mutability": "mutable", + "name": "b", + "nameLocation": "5467:1:28", + "nodeType": "VariableDeclaration", + "scope": 9047, + "src": "5459:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9032, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5459:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5447:22:28" + }, + "returnParameters": { + "id": 9037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9036, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9047, + "src": "5493:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9035, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5493:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5492:9:28" + }, + "scope": 10360, + "src": "5435:111:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9065, + "nodeType": "Block", + "src": "5684:44:28", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9058, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9050, + "src": "5709:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 9059, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9052, + "src": "5713:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5709:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 9061, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9050, + "src": "5716:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9062, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9052, + "src": "5719:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9057, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9028, + "src": "5701:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 9063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5701:20:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9056, + "id": 9064, + "nodeType": "Return", + "src": "5694:27:28" + } + ] + }, + "documentation": { + "id": 9048, + "nodeType": "StructuredDocumentation", + "src": "5552:60:28", + "text": " @dev Returns the smallest of two numbers." + }, + "id": 9066, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "5626:3:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9053, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9050, + "mutability": "mutable", + "name": "a", + "nameLocation": "5638:1:28", + "nodeType": "VariableDeclaration", + "scope": 9066, + "src": "5630:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9049, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5630:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9052, + "mutability": "mutable", + "name": "b", + "nameLocation": "5649:1:28", + "nodeType": "VariableDeclaration", + "scope": 9066, + "src": "5641:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9051, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5641:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5629:22:28" + }, + "returnParameters": { + "id": 9056, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9055, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9066, + "src": "5675:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9054, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5675:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5674:9:28" + }, + "scope": 10360, + "src": "5617:111:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9088, + "nodeType": "Block", + "src": "5912:82:28", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9076, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9069, + "src": "5967:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 9077, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9071, + "src": "5971:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5967:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9079, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5966:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9080, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9069, + "src": "5977:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 9081, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9071, + "src": "5981:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5977:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9083, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5976:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32", + "id": 9084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5986:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "5976:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5966:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9075, + "id": 9087, + "nodeType": "Return", + "src": "5959:28:28" + } + ] + }, + "documentation": { + "id": 9067, + "nodeType": "StructuredDocumentation", + "src": "5734:102:28", + "text": " @dev Returns the average of two numbers. The result is rounded towards\n zero." + }, + "id": 9089, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "5850:7:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9072, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9069, + "mutability": "mutable", + "name": "a", + "nameLocation": "5866:1:28", + "nodeType": "VariableDeclaration", + "scope": 9089, + "src": "5858:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5858:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9071, + "mutability": "mutable", + "name": "b", + "nameLocation": "5877:1:28", + "nodeType": "VariableDeclaration", + "scope": 9089, + "src": "5869:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9070, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5869:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5857:22:28" + }, + "returnParameters": { + "id": 9075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9074, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9089, + "src": "5903:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5903:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5902:9:28" + }, + "scope": 10360, + "src": "5841:153:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9129, + "nodeType": "Block", + "src": "6286:633:28", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9099, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9094, + "src": "6300:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 9100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6305:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6300:6:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9110, + "nodeType": "IfStatement", + "src": "6296:150:28", + "trueBody": { + "id": 9109, + "nodeType": "Block", + "src": "6308:138:28", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 9105, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6613, + "src": "6412:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$", + "typeString": "type(library Panic)" + } + }, + "id": 9106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6418:16:28", + "memberName": "DIVISION_BY_ZERO", + "nodeType": "MemberAccess", + "referencedDeclaration": 6580, + "src": "6412:22:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 9102, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6613, + "src": "6400:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$", + "typeString": "type(library Panic)" + } + }, + "id": 9104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6406:5:28", + "memberName": "panic", + "nodeType": "MemberAccess", + "referencedDeclaration": 6612, + "src": "6400:11:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 9107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6400:35:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9108, + "nodeType": "ExpressionStatement", + "src": "6400:35:28" + } + ] + } + }, + { + "id": 9128, + "nodeType": "UncheckedBlock", + "src": "6829:84:28", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9113, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9092, + "src": "6876:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 9114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6880:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6876:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9111, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "6860:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6869:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "6860:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6860:22:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9117, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9092, + "src": "6887:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 9118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6891:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6887:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9120, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6886:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9121, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9094, + "src": "6896:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6886:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 9123, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6900:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "6886:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9125, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6885:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6860:42:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9098, + "id": 9127, + "nodeType": "Return", + "src": "6853:49:28" + } + ] + } + ] + }, + "documentation": { + "id": 9090, + "nodeType": "StructuredDocumentation", + "src": "6000:210:28", + "text": " @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero." + }, + "id": 9130, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ceilDiv", + "nameLocation": "6224:7:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9095, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9092, + "mutability": "mutable", + "name": "a", + "nameLocation": "6240:1:28", + "nodeType": "VariableDeclaration", + "scope": 9130, + "src": "6232:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9091, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6232:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9094, + "mutability": "mutable", + "name": "b", + "nameLocation": "6251:1:28", + "nodeType": "VariableDeclaration", + "scope": 9130, + "src": "6243:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9093, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6243:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6231:22:28" + }, + "returnParameters": { + "id": 9098, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9097, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9130, + "src": "6277:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9096, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6277:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6276:9:28" + }, + "scope": 10360, + "src": "6215:704:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9265, + "nodeType": "Block", + "src": "7340:3585:28", + "statements": [ + { + "id": 9264, + "nodeType": "UncheckedBlock", + "src": "7350:3569:28", + "statements": [ + { + "assignments": [ + 9143, + 9145 + ], + "declarations": [ + { + "constant": false, + "id": 9143, + "mutability": "mutable", + "name": "high", + "nameLocation": "7383:4:28", + "nodeType": "VariableDeclaration", + "scope": 9264, + "src": "7375:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9142, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7375:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9145, + "mutability": "mutable", + "name": "low", + "nameLocation": "7397:3:28", + "nodeType": "VariableDeclaration", + "scope": 9264, + "src": "7389:11:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7389:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9150, + "initialValue": { + "arguments": [ + { + "id": 9147, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9133, + "src": "7411:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9148, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9135, + "src": "7414:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9146, + "name": "mul512", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8779, + "src": "7404:6:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256,uint256)" + } + }, + "id": 9149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7404:12:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7374:42:28" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9151, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9143, + "src": "7498:4:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 9152, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7506:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7498:9:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9159, + "nodeType": "IfStatement", + "src": "7494:365:28", + "trueBody": { + "id": 9158, + "nodeType": "Block", + "src": "7509:350:28", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9154, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9145, + "src": "7827:3:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9155, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9137, + "src": "7833:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7827:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9141, + "id": 9157, + "nodeType": "Return", + "src": "7820:24:28" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9160, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9137, + "src": "7969:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 9161, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9143, + "src": "7984:4:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7969:19:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9178, + "nodeType": "IfStatement", + "src": "7965:142:28", + "trueBody": { + "id": 9177, + "nodeType": "Block", + "src": "7990:117:28", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9167, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9137, + "src": "8028:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 9168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8043:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8028:16:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "expression": { + "id": 9170, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6613, + "src": "8046:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$", + "typeString": "type(library Panic)" + } + }, + "id": 9171, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8052:16:28", + "memberName": "DIVISION_BY_ZERO", + "nodeType": "MemberAccess", + "referencedDeclaration": 6580, + "src": "8046:22:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 9172, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6613, + "src": "8070:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$", + "typeString": "type(library Panic)" + } + }, + "id": 9173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8076:14:28", + "memberName": "UNDER_OVERFLOW", + "nodeType": "MemberAccess", + "referencedDeclaration": 6576, + "src": "8070:20:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9166, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9028, + "src": "8020:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 9174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8020:71:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 9163, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6613, + "src": "8008:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$", + "typeString": "type(library Panic)" + } + }, + "id": 9165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8014:5:28", + "memberName": "panic", + "nodeType": "MemberAccess", + "referencedDeclaration": 6612, + "src": "8008:11:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 9175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8008:84:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9176, + "nodeType": "ExpressionStatement", + "src": "8008:84:28" + } + ] + } + }, + { + "assignments": [ + 9180 + ], + "declarations": [ + { + "constant": false, + "id": 9180, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "8367:9:28", + "nodeType": "VariableDeclaration", + "scope": 9264, + "src": "8359:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9179, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8359:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9181, + "nodeType": "VariableDeclarationStatement", + "src": "8359:17:28" + }, + { + "AST": { + "nativeSrc": "8415:283:28", + "nodeType": "YulBlock", + "src": "8415:283:28", + "statements": [ + { + "nativeSrc": "8484:38:28", + "nodeType": "YulAssignment", + "src": "8484:38:28", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "8504:1:28", + "nodeType": "YulIdentifier", + "src": "8504:1:28" + }, + { + "name": "y", + "nativeSrc": "8507:1:28", + "nodeType": "YulIdentifier", + "src": "8507:1:28" + }, + { + "name": "denominator", + "nativeSrc": "8510:11:28", + "nodeType": "YulIdentifier", + "src": "8510:11:28" + } + ], + "functionName": { + "name": "mulmod", + "nativeSrc": "8497:6:28", + "nodeType": "YulIdentifier", + "src": "8497:6:28" + }, + "nativeSrc": "8497:25:28", + "nodeType": "YulFunctionCall", + "src": "8497:25:28" + }, + "variableNames": [ + { + "name": "remainder", + "nativeSrc": "8484:9:28", + "nodeType": "YulIdentifier", + "src": "8484:9:28" + } + ] + }, + { + "nativeSrc": "8604:37:28", + "nodeType": "YulAssignment", + "src": "8604:37:28", + "value": { + "arguments": [ + { + "name": "high", + "nativeSrc": "8616:4:28", + "nodeType": "YulIdentifier", + "src": "8616:4:28" + }, + { + "arguments": [ + { + "name": "remainder", + "nativeSrc": "8625:9:28", + "nodeType": "YulIdentifier", + "src": "8625:9:28" + }, + { + "name": "low", + "nativeSrc": "8636:3:28", + "nodeType": "YulIdentifier", + "src": "8636:3:28" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8622:2:28", + "nodeType": "YulIdentifier", + "src": "8622:2:28" + }, + "nativeSrc": "8622:18:28", + "nodeType": "YulFunctionCall", + "src": "8622:18:28" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8612:3:28", + "nodeType": "YulIdentifier", + "src": "8612:3:28" + }, + "nativeSrc": "8612:29:28", + "nodeType": "YulFunctionCall", + "src": "8612:29:28" + }, + "variableNames": [ + { + "name": "high", + "nativeSrc": "8604:4:28", + "nodeType": "YulIdentifier", + "src": "8604:4:28" + } + ] + }, + { + "nativeSrc": "8658:26:28", + "nodeType": "YulAssignment", + "src": "8658:26:28", + "value": { + "arguments": [ + { + "name": "low", + "nativeSrc": "8669:3:28", + "nodeType": "YulIdentifier", + "src": "8669:3:28" + }, + { + "name": "remainder", + "nativeSrc": "8674:9:28", + "nodeType": "YulIdentifier", + "src": "8674:9:28" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8665:3:28", + "nodeType": "YulIdentifier", + "src": "8665:3:28" + }, + "nativeSrc": "8665:19:28", + "nodeType": "YulFunctionCall", + "src": "8665:19:28" + }, + "variableNames": [ + { + "name": "low", + "nativeSrc": "8658:3:28", + "nodeType": "YulIdentifier", + "src": "8658:3:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 9137, + "isOffset": false, + "isSlot": false, + "src": "8510:11:28", + "valueSize": 1 + }, + { + "declaration": 9143, + "isOffset": false, + "isSlot": false, + "src": "8604:4:28", + "valueSize": 1 + }, + { + "declaration": 9143, + "isOffset": false, + "isSlot": false, + "src": "8616:4:28", + "valueSize": 1 + }, + { + "declaration": 9145, + "isOffset": false, + "isSlot": false, + "src": "8636:3:28", + "valueSize": 1 + }, + { + "declaration": 9145, + "isOffset": false, + "isSlot": false, + "src": "8658:3:28", + "valueSize": 1 + }, + { + "declaration": 9145, + "isOffset": false, + "isSlot": false, + "src": "8669:3:28", + "valueSize": 1 + }, + { + "declaration": 9180, + "isOffset": false, + "isSlot": false, + "src": "8484:9:28", + "valueSize": 1 + }, + { + "declaration": 9180, + "isOffset": false, + "isSlot": false, + "src": "8625:9:28", + "valueSize": 1 + }, + { + "declaration": 9180, + "isOffset": false, + "isSlot": false, + "src": "8674:9:28", + "valueSize": 1 + }, + { + "declaration": 9133, + "isOffset": false, + "isSlot": false, + "src": "8504:1:28", + "valueSize": 1 + }, + { + "declaration": 9135, + "isOffset": false, + "isSlot": false, + "src": "8507:1:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 9182, + "nodeType": "InlineAssembly", + "src": "8390:308:28" + }, + { + "assignments": [ + 9184 + ], + "declarations": [ + { + "constant": false, + "id": 9184, + "mutability": "mutable", + "name": "twos", + "nameLocation": "8910:4:28", + "nodeType": "VariableDeclaration", + "scope": 9264, + "src": "8902:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9183, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8902:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9191, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9185, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9137, + "src": "8917:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "30", + "id": 9186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8932:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 9187, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9137, + "src": "8936:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8932:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9189, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8931:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8917:31:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8902:46:28" + }, + { + "AST": { + "nativeSrc": "8987:359:28", + "nodeType": "YulBlock", + "src": "8987:359:28", + "statements": [ + { + "nativeSrc": "9052:37:28", + "nodeType": "YulAssignment", + "src": "9052:37:28", + "value": { + "arguments": [ + { + "name": "denominator", + "nativeSrc": "9071:11:28", + "nodeType": "YulIdentifier", + "src": "9071:11:28" + }, + { + "name": "twos", + "nativeSrc": "9084:4:28", + "nodeType": "YulIdentifier", + "src": "9084:4:28" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "9067:3:28", + "nodeType": "YulIdentifier", + "src": "9067:3:28" + }, + "nativeSrc": "9067:22:28", + "nodeType": "YulFunctionCall", + "src": "9067:22:28" + }, + "variableNames": [ + { + "name": "denominator", + "nativeSrc": "9052:11:28", + "nodeType": "YulIdentifier", + "src": "9052:11:28" + } + ] + }, + { + "nativeSrc": "9153:21:28", + "nodeType": "YulAssignment", + "src": "9153:21:28", + "value": { + "arguments": [ + { + "name": "low", + "nativeSrc": "9164:3:28", + "nodeType": "YulIdentifier", + "src": "9164:3:28" + }, + { + "name": "twos", + "nativeSrc": "9169:4:28", + "nodeType": "YulIdentifier", + "src": "9169:4:28" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "9160:3:28", + "nodeType": "YulIdentifier", + "src": "9160:3:28" + }, + "nativeSrc": "9160:14:28", + "nodeType": "YulFunctionCall", + "src": "9160:14:28" + }, + "variableNames": [ + { + "name": "low", + "nativeSrc": "9153:3:28", + "nodeType": "YulIdentifier", + "src": "9153:3:28" + } + ] + }, + { + "nativeSrc": "9293:39:28", + "nodeType": "YulAssignment", + "src": "9293:39:28", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9313:1:28", + "nodeType": "YulLiteral", + "src": "9313:1:28", + "type": "", + "value": "0" + }, + { + "name": "twos", + "nativeSrc": "9316:4:28", + "nodeType": "YulIdentifier", + "src": "9316:4:28" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9309:3:28", + "nodeType": "YulIdentifier", + "src": "9309:3:28" + }, + "nativeSrc": "9309:12:28", + "nodeType": "YulFunctionCall", + "src": "9309:12:28" + }, + { + "name": "twos", + "nativeSrc": "9323:4:28", + "nodeType": "YulIdentifier", + "src": "9323:4:28" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "9305:3:28", + "nodeType": "YulIdentifier", + "src": "9305:3:28" + }, + "nativeSrc": "9305:23:28", + "nodeType": "YulFunctionCall", + "src": "9305:23:28" + }, + { + "kind": "number", + "nativeSrc": "9330:1:28", + "nodeType": "YulLiteral", + "src": "9330:1:28", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9301:3:28", + "nodeType": "YulIdentifier", + "src": "9301:3:28" + }, + "nativeSrc": "9301:31:28", + "nodeType": "YulFunctionCall", + "src": "9301:31:28" + }, + "variableNames": [ + { + "name": "twos", + "nativeSrc": "9293:4:28", + "nodeType": "YulIdentifier", + "src": "9293:4:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 9137, + "isOffset": false, + "isSlot": false, + "src": "9052:11:28", + "valueSize": 1 + }, + { + "declaration": 9137, + "isOffset": false, + "isSlot": false, + "src": "9071:11:28", + "valueSize": 1 + }, + { + "declaration": 9145, + "isOffset": false, + "isSlot": false, + "src": "9153:3:28", + "valueSize": 1 + }, + { + "declaration": 9145, + "isOffset": false, + "isSlot": false, + "src": "9164:3:28", + "valueSize": 1 + }, + { + "declaration": 9184, + "isOffset": false, + "isSlot": false, + "src": "9084:4:28", + "valueSize": 1 + }, + { + "declaration": 9184, + "isOffset": false, + "isSlot": false, + "src": "9169:4:28", + "valueSize": 1 + }, + { + "declaration": 9184, + "isOffset": false, + "isSlot": false, + "src": "9293:4:28", + "valueSize": 1 + }, + { + "declaration": 9184, + "isOffset": false, + "isSlot": false, + "src": "9316:4:28", + "valueSize": 1 + }, + { + "declaration": 9184, + "isOffset": false, + "isSlot": false, + "src": "9323:4:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 9192, + "nodeType": "InlineAssembly", + "src": "8962:384:28" + }, + { + "expression": { + "id": 9197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9193, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9145, + "src": "9409:3:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9194, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9143, + "src": "9416:4:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 9195, + "name": "twos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9184, + "src": "9423:4:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9416:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9409:18:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9198, + "nodeType": "ExpressionStatement", + "src": "9409:18:28" + }, + { + "assignments": [ + 9200 + ], + "declarations": [ + { + "constant": false, + "id": 9200, + "mutability": "mutable", + "name": "inverse", + "nameLocation": "9770:7:28", + "nodeType": "VariableDeclaration", + "scope": 9264, + "src": "9762:15:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9762:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9207, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 9201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9781:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 9202, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9137, + "src": "9785:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9781:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9204, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9780:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "hexValue": "32", + "id": 9205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9800:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "9780:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9762:39:28" + }, + { + "expression": { + "id": 9214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9208, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9200, + "src": "10018:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 9209, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10029:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9210, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9137, + "src": "10033:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 9211, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9200, + "src": "10047:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10033:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10029:25:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10018:36:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9215, + "nodeType": "ExpressionStatement", + "src": "10018:36:28" + }, + { + "expression": { + "id": 9222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9216, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9200, + "src": "10088:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 9217, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10099:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9218, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9137, + "src": "10103:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 9219, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9200, + "src": "10117:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10103:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10099:25:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10088:36:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9223, + "nodeType": "ExpressionStatement", + "src": "10088:36:28" + }, + { + "expression": { + "id": 9230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9224, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9200, + "src": "10160:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 9225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10171:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9226, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9137, + "src": "10175:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 9227, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9200, + "src": "10189:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10175:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10171:25:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10160:36:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9231, + "nodeType": "ExpressionStatement", + "src": "10160:36:28" + }, + { + "expression": { + "id": 9238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9232, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9200, + "src": "10231:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 9233, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10242:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9234, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9137, + "src": "10246:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 9235, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9200, + "src": "10260:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10246:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10242:25:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10231:36:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9239, + "nodeType": "ExpressionStatement", + "src": "10231:36:28" + }, + { + "expression": { + "id": 9246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9240, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9200, + "src": "10304:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 9241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10315:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9242, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9137, + "src": "10319:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 9243, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9200, + "src": "10333:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10319:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10315:25:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10304:36:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9247, + "nodeType": "ExpressionStatement", + "src": "10304:36:28" + }, + { + "expression": { + "id": 9254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9248, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9200, + "src": "10378:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "*=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 9249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10389:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9250, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9137, + "src": "10393:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 9251, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9200, + "src": "10407:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10393:21:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10389:25:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10378:36:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9255, + "nodeType": "ExpressionStatement", + "src": "10378:36:28" + }, + { + "expression": { + "id": 9260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9256, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9140, + "src": "10859:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9257, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9145, + "src": "10868:3:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 9258, + "name": "inverse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9200, + "src": "10874:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10868:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10859:22:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9261, + "nodeType": "ExpressionStatement", + "src": "10859:22:28" + }, + { + "expression": { + "id": 9262, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9140, + "src": "10902:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9141, + "id": 9263, + "nodeType": "Return", + "src": "10895:13:28" + } + ] + } + ] + }, + "documentation": { + "id": 9131, + "nodeType": "StructuredDocumentation", + "src": "6925:312:28", + "text": " @dev Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license." + }, + "id": 9266, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "7251:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9138, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9133, + "mutability": "mutable", + "name": "x", + "nameLocation": "7266:1:28", + "nodeType": "VariableDeclaration", + "scope": 9266, + "src": "7258:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7258:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9135, + "mutability": "mutable", + "name": "y", + "nameLocation": "7277:1:28", + "nodeType": "VariableDeclaration", + "scope": 9266, + "src": "7269:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9134, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7269:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9137, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "7288:11:28", + "nodeType": "VariableDeclaration", + "scope": 9266, + "src": "7280:19:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9136, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7280:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7257:43:28" + }, + "returnParameters": { + "id": 9141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9140, + "mutability": "mutable", + "name": "result", + "nameLocation": "7332:6:28", + "nodeType": "VariableDeclaration", + "scope": 9266, + "src": "7324:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9139, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7324:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7323:16:28" + }, + "scope": 10360, + "src": "7242:3683:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9302, + "nodeType": "Block", + "src": "11164:128:28", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 9282, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9269, + "src": "11188:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9283, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9271, + "src": "11191:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9284, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9273, + "src": "11194:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9281, + "name": "mulDiv", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 9266, + 9303 + ], + "referencedDeclaration": 9266, + "src": "11181:6:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 9285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11181:25:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 9298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 9289, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9276, + "src": "11242:8:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + ], + "id": 9288, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10359, + "src": "11225:16:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8751_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 9290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11225:26:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 9292, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9269, + "src": "11262:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9293, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9271, + "src": "11265:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9294, + "name": "denominator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9273, + "src": "11268:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9291, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "11255:6:28", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 9295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11255:25:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 9296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11283:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "11255:29:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11225:59:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9286, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "11209:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11218:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "11209:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11209:76:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11181:104:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9280, + "id": 9301, + "nodeType": "Return", + "src": "11174:111:28" + } + ] + }, + "documentation": { + "id": 9267, + "nodeType": "StructuredDocumentation", + "src": "10931:118:28", + "text": " @dev Calculates x * y / denominator with full precision, following the selected rounding direction." + }, + "id": 9303, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulDiv", + "nameLocation": "11063:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9277, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9269, + "mutability": "mutable", + "name": "x", + "nameLocation": "11078:1:28", + "nodeType": "VariableDeclaration", + "scope": 9303, + "src": "11070:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11070:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9271, + "mutability": "mutable", + "name": "y", + "nameLocation": "11089:1:28", + "nodeType": "VariableDeclaration", + "scope": 9303, + "src": "11081:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9270, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11081:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9273, + "mutability": "mutable", + "name": "denominator", + "nameLocation": "11100:11:28", + "nodeType": "VariableDeclaration", + "scope": 9303, + "src": "11092:19:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9272, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11092:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9276, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "11122:8:28", + "nodeType": "VariableDeclaration", + "scope": 9303, + "src": "11113:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 9275, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9274, + "name": "Rounding", + "nameLocations": [ + "11113:8:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8751, + "src": "11113:8:28" + }, + "referencedDeclaration": 8751, + "src": "11113:8:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "11069:62:28" + }, + "returnParameters": { + "id": 9280, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9279, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9303, + "src": "11155:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11155:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11154:9:28" + }, + "scope": 10360, + "src": "11054:238:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9352, + "nodeType": "Block", + "src": "11500:245:28", + "statements": [ + { + "id": 9351, + "nodeType": "UncheckedBlock", + "src": "11510:229:28", + "statements": [ + { + "assignments": [ + 9316, + 9318 + ], + "declarations": [ + { + "constant": false, + "id": 9316, + "mutability": "mutable", + "name": "high", + "nameLocation": "11543:4:28", + "nodeType": "VariableDeclaration", + "scope": 9351, + "src": "11535:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9315, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11535:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9318, + "mutability": "mutable", + "name": "low", + "nameLocation": "11557:3:28", + "nodeType": "VariableDeclaration", + "scope": 9351, + "src": "11549:11:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9317, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11549:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9323, + "initialValue": { + "arguments": [ + { + "id": 9320, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9306, + "src": "11571:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9321, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9308, + "src": "11574:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9319, + "name": "mul512", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8779, + "src": "11564:6:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256,uint256)" + } + }, + "id": 9322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11564:12:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11534:42:28" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9324, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9316, + "src": "11594:4:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11602:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 9326, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9310, + "src": "11607:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11602:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11594:14:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9337, + "nodeType": "IfStatement", + "src": "11590:86:28", + "trueBody": { + "id": 9336, + "nodeType": "Block", + "src": "11610:66:28", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 9332, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6613, + "src": "11640:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$", + "typeString": "type(library Panic)" + } + }, + "id": 9333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11646:14:28", + "memberName": "UNDER_OVERFLOW", + "nodeType": "MemberAccess", + "referencedDeclaration": 6576, + "src": "11640:20:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 9329, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6613, + "src": "11628:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$", + "typeString": "type(library Panic)" + } + }, + "id": 9331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11634:5:28", + "memberName": "panic", + "nodeType": "MemberAccess", + "referencedDeclaration": 6612, + "src": "11628:11:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 9334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11628:33:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9335, + "nodeType": "ExpressionStatement", + "src": "11628:33:28" + } + ] + } + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9338, + "name": "high", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9316, + "src": "11697:4:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 9341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "323536", + "id": 9339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11706:3:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "value": "256" + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 9340, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9310, + "src": "11712:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11706:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "id": 9342, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11705:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "11697:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9344, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11696:19:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9345, + "name": "low", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9318, + "src": "11719:3:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 9346, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9310, + "src": "11726:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "11719:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9348, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11718:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11696:32:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9314, + "id": 9350, + "nodeType": "Return", + "src": "11689:39:28" + } + ] + } + ] + }, + "documentation": { + "id": 9304, + "nodeType": "StructuredDocumentation", + "src": "11298:111:28", + "text": " @dev Calculates floor(x * y >> n) with full precision. Throws if result overflows a uint256." + }, + "id": 9353, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulShr", + "nameLocation": "11423:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9311, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9306, + "mutability": "mutable", + "name": "x", + "nameLocation": "11438:1:28", + "nodeType": "VariableDeclaration", + "scope": 9353, + "src": "11430:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11430:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9308, + "mutability": "mutable", + "name": "y", + "nameLocation": "11449:1:28", + "nodeType": "VariableDeclaration", + "scope": 9353, + "src": "11441:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9307, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11441:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9310, + "mutability": "mutable", + "name": "n", + "nameLocation": "11458:1:28", + "nodeType": "VariableDeclaration", + "scope": 9353, + "src": "11452:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9309, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "11452:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "11429:31:28" + }, + "returnParameters": { + "id": 9314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9313, + "mutability": "mutable", + "name": "result", + "nameLocation": "11492:6:28", + "nodeType": "VariableDeclaration", + "scope": 9353, + "src": "11484:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11484:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11483:16:28" + }, + "scope": 10360, + "src": "11414:331:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9391, + "nodeType": "Block", + "src": "11963:113:28", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 9369, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9356, + "src": "11987:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9370, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9358, + "src": "11990:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9371, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9360, + "src": "11993:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 9368, + "name": "mulShr", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 9353, + 9392 + ], + "referencedDeclaration": 9353, + "src": "11980:6:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint8_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint8) pure returns (uint256)" + } + }, + "id": 9372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11980:15:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 9387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 9376, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9363, + "src": "12031:8:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + ], + "id": 9375, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10359, + "src": "12014:16:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8751_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 9377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12014:26:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 9379, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9356, + "src": "12051:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9380, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9358, + "src": "12054:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9381, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12057:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 9382, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9360, + "src": "12062:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "12057:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9378, + "name": "mulmod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -16, + "src": "12044:6:28", + "typeDescriptions": { + "typeIdentifier": "t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 9384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12044:20:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 9385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12067:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12044:24:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "12014:54:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9373, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "11998:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12007:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "11998:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11998:71:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11980:89:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9367, + "id": 9390, + "nodeType": "Return", + "src": "11973:96:28" + } + ] + }, + "documentation": { + "id": 9354, + "nodeType": "StructuredDocumentation", + "src": "11751:109:28", + "text": " @dev Calculates x * y >> n with full precision, following the selected rounding direction." + }, + "id": 9392, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mulShr", + "nameLocation": "11874:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9364, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9356, + "mutability": "mutable", + "name": "x", + "nameLocation": "11889:1:28", + "nodeType": "VariableDeclaration", + "scope": 9392, + "src": "11881:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9355, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11881:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9358, + "mutability": "mutable", + "name": "y", + "nameLocation": "11900:1:28", + "nodeType": "VariableDeclaration", + "scope": 9392, + "src": "11892:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9357, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11892:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9360, + "mutability": "mutable", + "name": "n", + "nameLocation": "11909:1:28", + "nodeType": "VariableDeclaration", + "scope": 9392, + "src": "11903:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9359, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "11903:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9363, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "11921:8:28", + "nodeType": "VariableDeclaration", + "scope": 9392, + "src": "11912:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 9362, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9361, + "name": "Rounding", + "nameLocations": [ + "11912:8:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8751, + "src": "11912:8:28" + }, + "referencedDeclaration": 8751, + "src": "11912:8:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "11880:50:28" + }, + "returnParameters": { + "id": 9367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9366, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9392, + "src": "11954:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11954:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11953:9:28" + }, + "scope": 10360, + "src": "11865:211:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9488, + "nodeType": "Block", + "src": "12710:1849:28", + "statements": [ + { + "id": 9487, + "nodeType": "UncheckedBlock", + "src": "12720:1833:28", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9402, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9397, + "src": "12748:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 9403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12753:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12748:6:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9407, + "nodeType": "IfStatement", + "src": "12744:20:28", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 9405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12763:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 9401, + "id": 9406, + "nodeType": "Return", + "src": "12756:8:28" + } + }, + { + "assignments": [ + 9409 + ], + "declarations": [ + { + "constant": false, + "id": 9409, + "mutability": "mutable", + "name": "remainder", + "nameLocation": "13243:9:28", + "nodeType": "VariableDeclaration", + "scope": 9487, + "src": "13235:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9408, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13235:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9413, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9410, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9395, + "src": "13255:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 9411, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9397, + "src": "13259:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13255:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13235:25:28" + }, + { + "assignments": [ + 9415 + ], + "declarations": [ + { + "constant": false, + "id": 9415, + "mutability": "mutable", + "name": "gcd", + "nameLocation": "13282:3:28", + "nodeType": "VariableDeclaration", + "scope": 9487, + "src": "13274:11:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9414, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13274:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9417, + "initialValue": { + "id": 9416, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9397, + "src": "13288:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13274:15:28" + }, + { + "assignments": [ + 9419 + ], + "declarations": [ + { + "constant": false, + "id": 9419, + "mutability": "mutable", + "name": "x", + "nameLocation": "13432:1:28", + "nodeType": "VariableDeclaration", + "scope": 9487, + "src": "13425:8:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 9418, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "13425:6:28", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 9421, + "initialValue": { + "hexValue": "30", + "id": 9420, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13436:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13425:12:28" + }, + { + "assignments": [ + 9423 + ], + "declarations": [ + { + "constant": false, + "id": 9423, + "mutability": "mutable", + "name": "y", + "nameLocation": "13458:1:28", + "nodeType": "VariableDeclaration", + "scope": 9487, + "src": "13451:8:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 9422, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "13451:6:28", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 9425, + "initialValue": { + "hexValue": "31", + "id": 9424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13462:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13451:12:28" + }, + { + "body": { + "id": 9462, + "nodeType": "Block", + "src": "13501:882:28", + "statements": [ + { + "assignments": [ + 9430 + ], + "declarations": [ + { + "constant": false, + "id": 9430, + "mutability": "mutable", + "name": "quotient", + "nameLocation": "13527:8:28", + "nodeType": "VariableDeclaration", + "scope": 9462, + "src": "13519:16:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9429, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13519:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9434, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9431, + "name": "gcd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9415, + "src": "13538:3:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9432, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9409, + "src": "13544:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13538:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13519:34:28" + }, + { + "expression": { + "id": 9445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 9435, + "name": "gcd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9415, + "src": "13573:3:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9436, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9409, + "src": "13578:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9437, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "13572:16:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 9438, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9409, + "src": "13678:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9439, + "name": "gcd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9415, + "src": "13923:3:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9440, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9409, + "src": "13929:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 9441, + "name": "quotient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9430, + "src": "13941:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13929:20:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13923:26:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9444, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13591:376:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256)" + } + }, + "src": "13572:395:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9446, + "nodeType": "ExpressionStatement", + "src": "13572:395:28" + }, + { + "expression": { + "id": 9460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 9447, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9419, + "src": "13987:1:28", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "id": 9448, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9423, + "src": "13990:1:28", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 9449, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "13986:6:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_int256_$_t_int256_$", + "typeString": "tuple(int256,int256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "components": [ + { + "id": 9450, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9423, + "src": "14072:1:28", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9451, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9419, + "src": "14326:1:28", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9452, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9423, + "src": "14330:1:28", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 9455, + "name": "quotient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9430, + "src": "14341:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14334:6:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 9453, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "14334:6:28", + "typeDescriptions": {} + } + }, + "id": 9456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14334:16:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "14330:20:28", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "14326:24:28", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 9459, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13995:373:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_int256_$_t_int256_$", + "typeString": "tuple(int256,int256)" + } + }, + "src": "13986:382:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9461, + "nodeType": "ExpressionStatement", + "src": "13986:382:28" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9426, + "name": "remainder", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9409, + "src": "13485:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 9427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13498:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13485:14:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9463, + "nodeType": "WhileStatement", + "src": "13478:905:28" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9464, + "name": "gcd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9415, + "src": "14401:3:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "31", + "id": 9465, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14408:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14401:8:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9469, + "nodeType": "IfStatement", + "src": "14397:22:28", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 9467, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14418:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 9401, + "id": 9468, + "nodeType": "Return", + "src": "14411:8:28" + } + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 9473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9471, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9419, + "src": "14470:1:28", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 9472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14474:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14470:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9474, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9397, + "src": "14477:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "id": 9478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "-", + "prefix": true, + "src": "14489:2:28", + "subExpression": { + "id": 9477, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9419, + "src": "14490:1:28", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 9476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14481:7:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 9475, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14481:7:28", + "typeDescriptions": {} + } + }, + "id": 9479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14481:11:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14477:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "id": 9483, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9419, + "src": "14502:1:28", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 9482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14494:7:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 9481, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14494:7:28", + "typeDescriptions": {} + } + }, + "id": 9484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14494:10:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9470, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9028, + "src": "14462:7:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bool,uint256,uint256) pure returns (uint256)" + } + }, + "id": 9485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14462:43:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9401, + "id": 9486, + "nodeType": "Return", + "src": "14455:50:28" + } + ] + } + ] + }, + "documentation": { + "id": 9393, + "nodeType": "StructuredDocumentation", + "src": "12082:553:28", + "text": " @dev Calculate the modular multiplicative inverse of a number in Z/nZ.\n If n is a prime, then Z/nZ is a field. In that case all elements are inversible, except 0.\n If n is not a prime, then Z/nZ is not a field, and some elements might not be inversible.\n If the input value is not inversible, 0 is returned.\n NOTE: If you know for sure that n is (big) a prime, it may be cheaper to use Fermat's little theorem and get the\n inverse using `Math.modExp(a, n - 2, n)`. See {invModPrime}." + }, + "id": 9489, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "invMod", + "nameLocation": "12649:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9398, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9395, + "mutability": "mutable", + "name": "a", + "nameLocation": "12664:1:28", + "nodeType": "VariableDeclaration", + "scope": 9489, + "src": "12656:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9394, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12656:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9397, + "mutability": "mutable", + "name": "n", + "nameLocation": "12675:1:28", + "nodeType": "VariableDeclaration", + "scope": 9489, + "src": "12667:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9396, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12667:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12655:22:28" + }, + "returnParameters": { + "id": 9401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9400, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9489, + "src": "12701:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9399, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12701:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12700:9:28" + }, + "scope": 10360, + "src": "12640:1919:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9509, + "nodeType": "Block", + "src": "15159:82:28", + "statements": [ + { + "id": 9508, + "nodeType": "UncheckedBlock", + "src": "15169:66:28", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 9501, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9492, + "src": "15212:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9502, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9494, + "src": "15215:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "32", + "id": 9503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15219:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "15215:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9505, + "name": "p", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9494, + "src": "15222:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 9499, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10360, + "src": "15200:4:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$10360_$", + "typeString": "type(library Math)" + } + }, + "id": 9500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15205:6:28", + "memberName": "modExp", + "nodeType": "MemberAccess", + "referencedDeclaration": 9546, + "src": "15200:11:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (uint256)" + } + }, + "id": 9506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15200:24:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9498, + "id": 9507, + "nodeType": "Return", + "src": "15193:31:28" + } + ] + } + ] + }, + "documentation": { + "id": 9490, + "nodeType": "StructuredDocumentation", + "src": "14565:514:28", + "text": " @dev Variant of {invMod}. More efficient, but only works if `p` is known to be a prime greater than `2`.\n From https://en.wikipedia.org/wiki/Fermat%27s_little_theorem[Fermat's little theorem], we know that if p is\n prime, then `a**(p-1) ≡ 1 mod p`. As a consequence, we have `a * a**(p-2) ≡ 1 mod p`, which means that\n `a**(p-2)` is the modular multiplicative inverse of a in Fp.\n NOTE: this function does NOT check that `p` is a prime greater than `2`." + }, + "id": 9510, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "invModPrime", + "nameLocation": "15093:11:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9495, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9492, + "mutability": "mutable", + "name": "a", + "nameLocation": "15113:1:28", + "nodeType": "VariableDeclaration", + "scope": 9510, + "src": "15105:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15105:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9494, + "mutability": "mutable", + "name": "p", + "nameLocation": "15124:1:28", + "nodeType": "VariableDeclaration", + "scope": 9510, + "src": "15116:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9493, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15116:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15104:22:28" + }, + "returnParameters": { + "id": 9498, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9497, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9510, + "src": "15150:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9496, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15150:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15149:9:28" + }, + "scope": 10360, + "src": "15084:157:28", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9545, + "nodeType": "Block", + "src": "16011:174:28", + "statements": [ + { + "assignments": [ + 9523, + 9525 + ], + "declarations": [ + { + "constant": false, + "id": 9523, + "mutability": "mutable", + "name": "success", + "nameLocation": "16027:7:28", + "nodeType": "VariableDeclaration", + "scope": 9545, + "src": "16022:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9522, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16022:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9525, + "mutability": "mutable", + "name": "result", + "nameLocation": "16044:6:28", + "nodeType": "VariableDeclaration", + "scope": 9545, + "src": "16036:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9524, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16036:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9531, + "initialValue": { + "arguments": [ + { + "id": 9527, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9513, + "src": "16064:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9528, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9515, + "src": "16067:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9529, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9517, + "src": "16070:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9526, + "name": "tryModExp", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 9570, + 9652 + ], + "referencedDeclaration": 9570, + "src": "16054:9:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) view returns (bool,uint256)" + } + }, + "id": 9530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16054:18:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16021:51:28" + }, + { + "condition": { + "id": 9533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "16086:8:28", + "subExpression": { + "id": 9532, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9523, + "src": "16087:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9542, + "nodeType": "IfStatement", + "src": "16082:74:28", + "trueBody": { + "id": 9541, + "nodeType": "Block", + "src": "16096:60:28", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 9537, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6613, + "src": "16122:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$", + "typeString": "type(library Panic)" + } + }, + "id": 9538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16128:16:28", + "memberName": "DIVISION_BY_ZERO", + "nodeType": "MemberAccess", + "referencedDeclaration": 6580, + "src": "16122:22:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 9534, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6613, + "src": "16110:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$", + "typeString": "type(library Panic)" + } + }, + "id": 9536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16116:5:28", + "memberName": "panic", + "nodeType": "MemberAccess", + "referencedDeclaration": 6612, + "src": "16110:11:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 9539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16110:35:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9540, + "nodeType": "ExpressionStatement", + "src": "16110:35:28" + } + ] + } + }, + { + "expression": { + "id": 9543, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9525, + "src": "16172:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9521, + "id": 9544, + "nodeType": "Return", + "src": "16165:13:28" + } + ] + }, + "documentation": { + "id": 9511, + "nodeType": "StructuredDocumentation", + "src": "15247:678:28", + "text": " @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m)\n Requirements:\n - modulus can't be zero\n - underlying staticcall to precompile must succeed\n IMPORTANT: The result is only valid if the underlying call succeeds. When using this function, make\n sure the chain you're using it on supports the precompiled contract for modular exponentiation\n at address 0x05 as specified in https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise,\n the underlying function will succeed given the lack of a revert, but the result may be incorrectly\n interpreted as 0." + }, + "id": 9546, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "modExp", + "nameLocation": "15939:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9518, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9513, + "mutability": "mutable", + "name": "b", + "nameLocation": "15954:1:28", + "nodeType": "VariableDeclaration", + "scope": 9546, + "src": "15946:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9512, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15946:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9515, + "mutability": "mutable", + "name": "e", + "nameLocation": "15965:1:28", + "nodeType": "VariableDeclaration", + "scope": 9546, + "src": "15957:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9514, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15957:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9517, + "mutability": "mutable", + "name": "m", + "nameLocation": "15976:1:28", + "nodeType": "VariableDeclaration", + "scope": 9546, + "src": "15968:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15968:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15945:33:28" + }, + "returnParameters": { + "id": 9521, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9520, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9546, + "src": "16002:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9519, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16002:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16001:9:28" + }, + "scope": 10360, + "src": "15930:255:28", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9569, + "nodeType": "Block", + "src": "17039:1493:28", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9560, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9553, + "src": "17053:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 9561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17058:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17053:6:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9567, + "nodeType": "IfStatement", + "src": "17049:29:28", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 9563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17069:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 9564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17076:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 9565, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "17068:10:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 9559, + "id": 9566, + "nodeType": "Return", + "src": "17061:17:28" + } + }, + { + "AST": { + "nativeSrc": "17113:1413:28", + "nodeType": "YulBlock", + "src": "17113:1413:28", + "statements": [ + { + "nativeSrc": "17127:22:28", + "nodeType": "YulVariableDeclaration", + "src": "17127:22:28", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17144:4:28", + "nodeType": "YulLiteral", + "src": "17144:4:28", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17138:5:28", + "nodeType": "YulIdentifier", + "src": "17138:5:28" + }, + "nativeSrc": "17138:11:28", + "nodeType": "YulFunctionCall", + "src": "17138:11:28" + }, + "variables": [ + { + "name": "ptr", + "nativeSrc": "17131:3:28", + "nodeType": "YulTypedName", + "src": "17131:3:28", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18057:3:28", + "nodeType": "YulIdentifier", + "src": "18057:3:28" + }, + { + "kind": "number", + "nativeSrc": "18062:4:28", + "nodeType": "YulLiteral", + "src": "18062:4:28", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18050:6:28", + "nodeType": "YulIdentifier", + "src": "18050:6:28" + }, + "nativeSrc": "18050:17:28", + "nodeType": "YulFunctionCall", + "src": "18050:17:28" + }, + "nativeSrc": "18050:17:28", + "nodeType": "YulExpressionStatement", + "src": "18050:17:28" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18091:3:28", + "nodeType": "YulIdentifier", + "src": "18091:3:28" + }, + { + "kind": "number", + "nativeSrc": "18096:4:28", + "nodeType": "YulLiteral", + "src": "18096:4:28", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18087:3:28", + "nodeType": "YulIdentifier", + "src": "18087:3:28" + }, + "nativeSrc": "18087:14:28", + "nodeType": "YulFunctionCall", + "src": "18087:14:28" + }, + { + "kind": "number", + "nativeSrc": "18103:4:28", + "nodeType": "YulLiteral", + "src": "18103:4:28", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18080:6:28", + "nodeType": "YulIdentifier", + "src": "18080:6:28" + }, + "nativeSrc": "18080:28:28", + "nodeType": "YulFunctionCall", + "src": "18080:28:28" + }, + "nativeSrc": "18080:28:28", + "nodeType": "YulExpressionStatement", + "src": "18080:28:28" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18132:3:28", + "nodeType": "YulIdentifier", + "src": "18132:3:28" + }, + { + "kind": "number", + "nativeSrc": "18137:4:28", + "nodeType": "YulLiteral", + "src": "18137:4:28", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18128:3:28", + "nodeType": "YulIdentifier", + "src": "18128:3:28" + }, + "nativeSrc": "18128:14:28", + "nodeType": "YulFunctionCall", + "src": "18128:14:28" + }, + { + "kind": "number", + "nativeSrc": "18144:4:28", + "nodeType": "YulLiteral", + "src": "18144:4:28", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18121:6:28", + "nodeType": "YulIdentifier", + "src": "18121:6:28" + }, + "nativeSrc": "18121:28:28", + "nodeType": "YulFunctionCall", + "src": "18121:28:28" + }, + "nativeSrc": "18121:28:28", + "nodeType": "YulExpressionStatement", + "src": "18121:28:28" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18173:3:28", + "nodeType": "YulIdentifier", + "src": "18173:3:28" + }, + { + "kind": "number", + "nativeSrc": "18178:4:28", + "nodeType": "YulLiteral", + "src": "18178:4:28", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18169:3:28", + "nodeType": "YulIdentifier", + "src": "18169:3:28" + }, + "nativeSrc": "18169:14:28", + "nodeType": "YulFunctionCall", + "src": "18169:14:28" + }, + { + "name": "b", + "nativeSrc": "18185:1:28", + "nodeType": "YulIdentifier", + "src": "18185:1:28" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18162:6:28", + "nodeType": "YulIdentifier", + "src": "18162:6:28" + }, + "nativeSrc": "18162:25:28", + "nodeType": "YulFunctionCall", + "src": "18162:25:28" + }, + "nativeSrc": "18162:25:28", + "nodeType": "YulExpressionStatement", + "src": "18162:25:28" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18211:3:28", + "nodeType": "YulIdentifier", + "src": "18211:3:28" + }, + { + "kind": "number", + "nativeSrc": "18216:4:28", + "nodeType": "YulLiteral", + "src": "18216:4:28", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18207:3:28", + "nodeType": "YulIdentifier", + "src": "18207:3:28" + }, + "nativeSrc": "18207:14:28", + "nodeType": "YulFunctionCall", + "src": "18207:14:28" + }, + { + "name": "e", + "nativeSrc": "18223:1:28", + "nodeType": "YulIdentifier", + "src": "18223:1:28" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18200:6:28", + "nodeType": "YulIdentifier", + "src": "18200:6:28" + }, + "nativeSrc": "18200:25:28", + "nodeType": "YulFunctionCall", + "src": "18200:25:28" + }, + "nativeSrc": "18200:25:28", + "nodeType": "YulExpressionStatement", + "src": "18200:25:28" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "ptr", + "nativeSrc": "18249:3:28", + "nodeType": "YulIdentifier", + "src": "18249:3:28" + }, + { + "kind": "number", + "nativeSrc": "18254:4:28", + "nodeType": "YulLiteral", + "src": "18254:4:28", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18245:3:28", + "nodeType": "YulIdentifier", + "src": "18245:3:28" + }, + "nativeSrc": "18245:14:28", + "nodeType": "YulFunctionCall", + "src": "18245:14:28" + }, + { + "name": "m", + "nativeSrc": "18261:1:28", + "nodeType": "YulIdentifier", + "src": "18261:1:28" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18238:6:28", + "nodeType": "YulIdentifier", + "src": "18238:6:28" + }, + "nativeSrc": "18238:25:28", + "nodeType": "YulFunctionCall", + "src": "18238:25:28" + }, + "nativeSrc": "18238:25:28", + "nodeType": "YulExpressionStatement", + "src": "18238:25:28" + }, + { + "nativeSrc": "18425:57:28", + "nodeType": "YulAssignment", + "src": "18425:57:28", + "value": { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "18447:3:28", + "nodeType": "YulIdentifier", + "src": "18447:3:28" + }, + "nativeSrc": "18447:5:28", + "nodeType": "YulFunctionCall", + "src": "18447:5:28" + }, + { + "kind": "number", + "nativeSrc": "18454:4:28", + "nodeType": "YulLiteral", + "src": "18454:4:28", + "type": "", + "value": "0x05" + }, + { + "name": "ptr", + "nativeSrc": "18460:3:28", + "nodeType": "YulIdentifier", + "src": "18460:3:28" + }, + { + "kind": "number", + "nativeSrc": "18465:4:28", + "nodeType": "YulLiteral", + "src": "18465:4:28", + "type": "", + "value": "0xc0" + }, + { + "kind": "number", + "nativeSrc": "18471:4:28", + "nodeType": "YulLiteral", + "src": "18471:4:28", + "type": "", + "value": "0x00" + }, + { + "kind": "number", + "nativeSrc": "18477:4:28", + "nodeType": "YulLiteral", + "src": "18477:4:28", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "18436:10:28", + "nodeType": "YulIdentifier", + "src": "18436:10:28" + }, + "nativeSrc": "18436:46:28", + "nodeType": "YulFunctionCall", + "src": "18436:46:28" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "18425:7:28", + "nodeType": "YulIdentifier", + "src": "18425:7:28" + } + ] + }, + { + "nativeSrc": "18495:21:28", + "nodeType": "YulAssignment", + "src": "18495:21:28", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18511:4:28", + "nodeType": "YulLiteral", + "src": "18511:4:28", + "type": "", + "value": "0x00" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18505:5:28", + "nodeType": "YulIdentifier", + "src": "18505:5:28" + }, + "nativeSrc": "18505:11:28", + "nodeType": "YulFunctionCall", + "src": "18505:11:28" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "18495:6:28", + "nodeType": "YulIdentifier", + "src": "18495:6:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 9549, + "isOffset": false, + "isSlot": false, + "src": "18185:1:28", + "valueSize": 1 + }, + { + "declaration": 9551, + "isOffset": false, + "isSlot": false, + "src": "18223:1:28", + "valueSize": 1 + }, + { + "declaration": 9553, + "isOffset": false, + "isSlot": false, + "src": "18261:1:28", + "valueSize": 1 + }, + { + "declaration": 9558, + "isOffset": false, + "isSlot": false, + "src": "18495:6:28", + "valueSize": 1 + }, + { + "declaration": 9556, + "isOffset": false, + "isSlot": false, + "src": "18425:7:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 9568, + "nodeType": "InlineAssembly", + "src": "17088:1438:28" + } + ] + }, + "documentation": { + "id": 9547, + "nodeType": "StructuredDocumentation", + "src": "16191:738:28", + "text": " @dev Returns the modular exponentiation of the specified base, exponent and modulus (b ** e % m).\n It includes a success flag indicating if the operation succeeded. Operation will be marked as failed if trying\n to operate modulo 0 or if the underlying precompile reverted.\n IMPORTANT: The result is only valid if the success flag is true. When using this function, make sure the chain\n you're using it on supports the precompiled contract for modular exponentiation at address 0x05 as specified in\n https://eips.ethereum.org/EIPS/eip-198[EIP-198]. Otherwise, the underlying function will succeed given the lack\n of a revert, but the result may be incorrectly interpreted as 0." + }, + "id": 9570, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryModExp", + "nameLocation": "16943:9:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9549, + "mutability": "mutable", + "name": "b", + "nameLocation": "16961:1:28", + "nodeType": "VariableDeclaration", + "scope": 9570, + "src": "16953:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9548, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16953:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9551, + "mutability": "mutable", + "name": "e", + "nameLocation": "16972:1:28", + "nodeType": "VariableDeclaration", + "scope": 9570, + "src": "16964:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9550, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16964:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9553, + "mutability": "mutable", + "name": "m", + "nameLocation": "16983:1:28", + "nodeType": "VariableDeclaration", + "scope": 9570, + "src": "16975:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9552, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16975:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16952:33:28" + }, + "returnParameters": { + "id": 9559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9556, + "mutability": "mutable", + "name": "success", + "nameLocation": "17014:7:28", + "nodeType": "VariableDeclaration", + "scope": 9570, + "src": "17009:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9555, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17009:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9558, + "mutability": "mutable", + "name": "result", + "nameLocation": "17031:6:28", + "nodeType": "VariableDeclaration", + "scope": 9570, + "src": "17023:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9557, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17023:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17008:30:28" + }, + "scope": 10360, + "src": "16934:1598:28", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9605, + "nodeType": "Block", + "src": "18729:179:28", + "statements": [ + { + "assignments": [ + 9583, + 9585 + ], + "declarations": [ + { + "constant": false, + "id": 9583, + "mutability": "mutable", + "name": "success", + "nameLocation": "18745:7:28", + "nodeType": "VariableDeclaration", + "scope": 9605, + "src": "18740:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9582, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18740:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9585, + "mutability": "mutable", + "name": "result", + "nameLocation": "18767:6:28", + "nodeType": "VariableDeclaration", + "scope": 9605, + "src": "18754:19:28", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9584, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18754:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 9591, + "initialValue": { + "arguments": [ + { + "id": 9587, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9573, + "src": "18787:1:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 9588, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9575, + "src": "18790:1:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 9589, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9577, + "src": "18793:1:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 9586, + "name": "tryModExp", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 9570, + 9652 + ], + "referencedDeclaration": 9652, + "src": "18777:9:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory,bytes memory,bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 9590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18777:18:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18739:56:28" + }, + { + "condition": { + "id": 9593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18809:8:28", + "subExpression": { + "id": 9592, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9583, + "src": "18810:7:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9602, + "nodeType": "IfStatement", + "src": "18805:74:28", + "trueBody": { + "id": 9601, + "nodeType": "Block", + "src": "18819:60:28", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 9597, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6613, + "src": "18845:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$", + "typeString": "type(library Panic)" + } + }, + "id": 9598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "18851:16:28", + "memberName": "DIVISION_BY_ZERO", + "nodeType": "MemberAccess", + "referencedDeclaration": 6580, + "src": "18845:22:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 9594, + "name": "Panic", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6613, + "src": "18833:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Panic_$6613_$", + "typeString": "type(library Panic)" + } + }, + "id": 9596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18839:5:28", + "memberName": "panic", + "nodeType": "MemberAccess", + "referencedDeclaration": 6612, + "src": "18833:11:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$__$", + "typeString": "function (uint256) pure" + } + }, + "id": 9599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18833:35:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9600, + "nodeType": "ExpressionStatement", + "src": "18833:35:28" + } + ] + } + }, + { + "expression": { + "id": 9603, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9585, + "src": "18895:6:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 9581, + "id": 9604, + "nodeType": "Return", + "src": "18888:13:28" + } + ] + }, + "documentation": { + "id": 9571, + "nodeType": "StructuredDocumentation", + "src": "18538:85:28", + "text": " @dev Variant of {modExp} that supports inputs of arbitrary length." + }, + "id": 9606, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "modExp", + "nameLocation": "18637:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9573, + "mutability": "mutable", + "name": "b", + "nameLocation": "18657:1:28", + "nodeType": "VariableDeclaration", + "scope": 9606, + "src": "18644:14:28", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9572, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18644:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9575, + "mutability": "mutable", + "name": "e", + "nameLocation": "18673:1:28", + "nodeType": "VariableDeclaration", + "scope": 9606, + "src": "18660:14:28", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9574, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18660:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9577, + "mutability": "mutable", + "name": "m", + "nameLocation": "18689:1:28", + "nodeType": "VariableDeclaration", + "scope": 9606, + "src": "18676:14:28", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9576, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18676:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "18643:48:28" + }, + "returnParameters": { + "id": 9581, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9580, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9606, + "src": "18715:12:28", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9579, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18715:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "18714:14:28" + }, + "scope": 10360, + "src": "18628:280:28", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9651, + "nodeType": "Block", + "src": "19162:771:28", + "statements": [ + { + "condition": { + "arguments": [ + { + "id": 9621, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9613, + "src": "19187:1:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 9620, + "name": "_zeroBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9685, + "src": "19176:10:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (bytes memory) pure returns (bool)" + } + }, + "id": 9622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19176:13:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9630, + "nodeType": "IfStatement", + "src": "19172:47:28", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 9623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19199:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 9626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19216:1:28", + "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" + } + ], + "id": 9625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "19206:9:28", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 9624, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19210:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 9627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19206:12:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "id": 9628, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19198:21:28", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "functionReturnParameters": 9619, + "id": 9629, + "nodeType": "Return", + "src": "19191:28:28" + } + }, + { + "assignments": [ + 9632 + ], + "declarations": [ + { + "constant": false, + "id": 9632, + "mutability": "mutable", + "name": "mLen", + "nameLocation": "19238:4:28", + "nodeType": "VariableDeclaration", + "scope": 9651, + "src": "19230:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9631, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19230:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9635, + "initialValue": { + "expression": { + "id": 9633, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9613, + "src": "19245:1:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 9634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19247:6:28", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "19245:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19230:23:28" + }, + { + "expression": { + "id": 9648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9636, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9618, + "src": "19335:6:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "expression": { + "id": 9639, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9609, + "src": "19361:1:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 9640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19363:6:28", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "19361:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 9641, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9611, + "src": "19371:1:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 9642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19373:6:28", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "19371:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9643, + "name": "mLen", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9632, + "src": "19381:4:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 9644, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9609, + "src": "19387:1:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 9645, + "name": "e", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9611, + "src": "19390:1:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 9646, + "name": "m", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9613, + "src": "19393:1:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 9637, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "19344:3:28", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 9638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "19348:12:28", + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "19344:16:28", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 9647, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19344:51:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "src": "19335:60:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 9649, + "nodeType": "ExpressionStatement", + "src": "19335:60:28" + }, + { + "AST": { + "nativeSrc": "19431:496:28", + "nodeType": "YulBlock", + "src": "19431:496:28", + "statements": [ + { + "nativeSrc": "19445:32:28", + "nodeType": "YulVariableDeclaration", + "src": "19445:32:28", + "value": { + "arguments": [ + { + "name": "result", + "nativeSrc": "19464:6:28", + "nodeType": "YulIdentifier", + "src": "19464:6:28" + }, + { + "kind": "number", + "nativeSrc": "19472:4:28", + "nodeType": "YulLiteral", + "src": "19472:4:28", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19460:3:28", + "nodeType": "YulIdentifier", + "src": "19460:3:28" + }, + "nativeSrc": "19460:17:28", + "nodeType": "YulFunctionCall", + "src": "19460:17:28" + }, + "variables": [ + { + "name": "dataPtr", + "nativeSrc": "19449:7:28", + "nodeType": "YulTypedName", + "src": "19449:7:28", + "type": "" + } + ] + }, + { + "nativeSrc": "19567:73:28", + "nodeType": "YulAssignment", + "src": "19567:73:28", + "value": { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "19589:3:28", + "nodeType": "YulIdentifier", + "src": "19589:3:28" + }, + "nativeSrc": "19589:5:28", + "nodeType": "YulFunctionCall", + "src": "19589:5:28" + }, + { + "kind": "number", + "nativeSrc": "19596:4:28", + "nodeType": "YulLiteral", + "src": "19596:4:28", + "type": "", + "value": "0x05" + }, + { + "name": "dataPtr", + "nativeSrc": "19602:7:28", + "nodeType": "YulIdentifier", + "src": "19602:7:28" + }, + { + "arguments": [ + { + "name": "result", + "nativeSrc": "19617:6:28", + "nodeType": "YulIdentifier", + "src": "19617:6:28" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19611:5:28", + "nodeType": "YulIdentifier", + "src": "19611:5:28" + }, + "nativeSrc": "19611:13:28", + "nodeType": "YulFunctionCall", + "src": "19611:13:28" + }, + { + "name": "dataPtr", + "nativeSrc": "19626:7:28", + "nodeType": "YulIdentifier", + "src": "19626:7:28" + }, + { + "name": "mLen", + "nativeSrc": "19635:4:28", + "nodeType": "YulIdentifier", + "src": "19635:4:28" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "19578:10:28", + "nodeType": "YulIdentifier", + "src": "19578:10:28" + }, + "nativeSrc": "19578:62:28", + "nodeType": "YulFunctionCall", + "src": "19578:62:28" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "19567:7:28", + "nodeType": "YulIdentifier", + "src": "19567:7:28" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "result", + "nativeSrc": "19796:6:28", + "nodeType": "YulIdentifier", + "src": "19796:6:28" + }, + { + "name": "mLen", + "nativeSrc": "19804:4:28", + "nodeType": "YulIdentifier", + "src": "19804:4:28" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19789:6:28", + "nodeType": "YulIdentifier", + "src": "19789:6:28" + }, + "nativeSrc": "19789:20:28", + "nodeType": "YulFunctionCall", + "src": "19789:20:28" + }, + "nativeSrc": "19789:20:28", + "nodeType": "YulExpressionStatement", + "src": "19789:20:28" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19892:4:28", + "nodeType": "YulLiteral", + "src": "19892:4:28", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "name": "dataPtr", + "nativeSrc": "19902:7:28", + "nodeType": "YulIdentifier", + "src": "19902:7:28" + }, + { + "name": "mLen", + "nativeSrc": "19911:4:28", + "nodeType": "YulIdentifier", + "src": "19911:4:28" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19898:3:28", + "nodeType": "YulIdentifier", + "src": "19898:3:28" + }, + "nativeSrc": "19898:18:28", + "nodeType": "YulFunctionCall", + "src": "19898:18:28" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19885:6:28", + "nodeType": "YulIdentifier", + "src": "19885:6:28" + }, + "nativeSrc": "19885:32:28", + "nodeType": "YulFunctionCall", + "src": "19885:32:28" + }, + "nativeSrc": "19885:32:28", + "nodeType": "YulExpressionStatement", + "src": "19885:32:28" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 9632, + "isOffset": false, + "isSlot": false, + "src": "19635:4:28", + "valueSize": 1 + }, + { + "declaration": 9632, + "isOffset": false, + "isSlot": false, + "src": "19804:4:28", + "valueSize": 1 + }, + { + "declaration": 9632, + "isOffset": false, + "isSlot": false, + "src": "19911:4:28", + "valueSize": 1 + }, + { + "declaration": 9618, + "isOffset": false, + "isSlot": false, + "src": "19464:6:28", + "valueSize": 1 + }, + { + "declaration": 9618, + "isOffset": false, + "isSlot": false, + "src": "19617:6:28", + "valueSize": 1 + }, + { + "declaration": 9618, + "isOffset": false, + "isSlot": false, + "src": "19796:6:28", + "valueSize": 1 + }, + { + "declaration": 9616, + "isOffset": false, + "isSlot": false, + "src": "19567:7:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 9650, + "nodeType": "InlineAssembly", + "src": "19406:521:28" + } + ] + }, + "documentation": { + "id": 9607, + "nodeType": "StructuredDocumentation", + "src": "18914:88:28", + "text": " @dev Variant of {tryModExp} that supports inputs of arbitrary length." + }, + "id": 9652, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryModExp", + "nameLocation": "19016:9:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9609, + "mutability": "mutable", + "name": "b", + "nameLocation": "19048:1:28", + "nodeType": "VariableDeclaration", + "scope": 9652, + "src": "19035:14:28", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9608, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19035:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9611, + "mutability": "mutable", + "name": "e", + "nameLocation": "19072:1:28", + "nodeType": "VariableDeclaration", + "scope": 9652, + "src": "19059:14:28", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9610, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19059:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9613, + "mutability": "mutable", + "name": "m", + "nameLocation": "19096:1:28", + "nodeType": "VariableDeclaration", + "scope": 9652, + "src": "19083:14:28", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9612, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19083:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "19025:78:28" + }, + "returnParameters": { + "id": 9619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9616, + "mutability": "mutable", + "name": "success", + "nameLocation": "19132:7:28", + "nodeType": "VariableDeclaration", + "scope": 9652, + "src": "19127:12:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9615, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "19127:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9618, + "mutability": "mutable", + "name": "result", + "nameLocation": "19154:6:28", + "nodeType": "VariableDeclaration", + "scope": 9652, + "src": "19141:19:28", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9617, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19141:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "19126:35:28" + }, + "scope": 10360, + "src": "19007:926:28", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9684, + "nodeType": "Block", + "src": "20088:176:28", + "statements": [ + { + "body": { + "id": 9680, + "nodeType": "Block", + "src": "20145:92:28", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + }, + "id": 9675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 9671, + "name": "byteArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9655, + "src": "20163:9:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 9673, + "indexExpression": { + "id": 9672, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9661, + "src": "20173:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20163:12:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 9674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20179:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20163:17:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9679, + "nodeType": "IfStatement", + "src": "20159:68:28", + "trueBody": { + "id": 9678, + "nodeType": "Block", + "src": "20182:45:28", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 9676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20207:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 9659, + "id": 9677, + "nodeType": "Return", + "src": "20200:12:28" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9664, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9661, + "src": "20118:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 9665, + "name": "byteArray", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9655, + "src": "20122:9:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 9666, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20132:6:28", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "20122:16:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20118:20:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9681, + "initializationExpression": { + "assignments": [ + 9661 + ], + "declarations": [ + { + "constant": false, + "id": 9661, + "mutability": "mutable", + "name": "i", + "nameLocation": "20111:1:28", + "nodeType": "VariableDeclaration", + "scope": 9681, + "src": "20103:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9660, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20103:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9663, + "initialValue": { + "hexValue": "30", + "id": 9662, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20115:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "20103:13:28" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 9669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "20140:3:28", + "subExpression": { + "id": 9668, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9661, + "src": "20142:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9670, + "nodeType": "ExpressionStatement", + "src": "20140:3:28" + }, + "nodeType": "ForStatement", + "src": "20098:139:28" + }, + { + "expression": { + "hexValue": "74727565", + "id": 9682, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20253:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 9659, + "id": 9683, + "nodeType": "Return", + "src": "20246:11:28" + } + ] + }, + "documentation": { + "id": 9653, + "nodeType": "StructuredDocumentation", + "src": "19939:72:28", + "text": " @dev Returns whether the provided byte array is zero." + }, + "id": 9685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_zeroBytes", + "nameLocation": "20025:10:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9656, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9655, + "mutability": "mutable", + "name": "byteArray", + "nameLocation": "20049:9:28", + "nodeType": "VariableDeclaration", + "scope": 9685, + "src": "20036:22:28", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 9654, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "20036:5:28", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "20035:24:28" + }, + "returnParameters": { + "id": 9659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9658, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9685, + "src": "20082:4:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9657, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20082:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "20081:6:28" + }, + "scope": 10360, + "src": "20016:248:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 9903, + "nodeType": "Block", + "src": "20624:5124:28", + "statements": [ + { + "id": 9902, + "nodeType": "UncheckedBlock", + "src": "20634:5108:28", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9695, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9693, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9688, + "src": "20728:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "31", + "id": 9694, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20733:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "20728:6:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9699, + "nodeType": "IfStatement", + "src": "20724:53:28", + "trueBody": { + "id": 9698, + "nodeType": "Block", + "src": "20736:41:28", + "statements": [ + { + "expression": { + "id": 9696, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9688, + "src": "20761:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9692, + "id": 9697, + "nodeType": "Return", + "src": "20754:8:28" + } + ] + } + }, + { + "assignments": [ + 9701 + ], + "declarations": [ + { + "constant": false, + "id": 9701, + "mutability": "mutable", + "name": "aa", + "nameLocation": "21712:2:28", + "nodeType": "VariableDeclaration", + "scope": 9902, + "src": "21704:10:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21704:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9703, + "initialValue": { + "id": 9702, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9688, + "src": "21717:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21704:14:28" + }, + { + "assignments": [ + 9705 + ], + "declarations": [ + { + "constant": false, + "id": 9705, + "mutability": "mutable", + "name": "xn", + "nameLocation": "21740:2:28", + "nodeType": "VariableDeclaration", + "scope": 9902, + "src": "21732:10:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9704, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21732:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9707, + "initialValue": { + "hexValue": "31", + "id": 9706, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21745:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "VariableDeclarationStatement", + "src": "21732:14:28" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9708, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9701, + "src": "21765:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1456" + }, + "id": 9711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9709, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21772:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "313238", + "id": 9710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21777:3:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "21772:8:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1456" + } + } + ], + "id": 9712, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "21771:10:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211456_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1456" + } + }, + "src": "21765:16:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9723, + "nodeType": "IfStatement", + "src": "21761:92:28", + "trueBody": { + "id": 9722, + "nodeType": "Block", + "src": "21783:70:28", + "statements": [ + { + "expression": { + "id": 9716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9714, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9701, + "src": "21801:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "313238", + "id": 9715, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21808:3:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "src": "21801:10:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9717, + "nodeType": "ExpressionStatement", + "src": "21801:10:28" + }, + { + "expression": { + "id": 9720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9718, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "21829:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "3634", + "id": 9719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21836:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "21829:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9721, + "nodeType": "ExpressionStatement", + "src": "21829:9:28" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9724, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9701, + "src": "21870:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_18446744073709551616_by_1", + "typeString": "int_const 18446744073709551616" + }, + "id": 9727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21877:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "3634", + "id": 9726, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21882:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "21877:7:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_18446744073709551616_by_1", + "typeString": "int_const 18446744073709551616" + } + } + ], + "id": 9728, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "21876:9:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_18446744073709551616_by_1", + "typeString": "int_const 18446744073709551616" + } + }, + "src": "21870:15:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9739, + "nodeType": "IfStatement", + "src": "21866:90:28", + "trueBody": { + "id": 9738, + "nodeType": "Block", + "src": "21887:69:28", + "statements": [ + { + "expression": { + "id": 9732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9730, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9701, + "src": "21905:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3634", + "id": 9731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21912:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "21905:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9733, + "nodeType": "ExpressionStatement", + "src": "21905:9:28" + }, + { + "expression": { + "id": 9736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9734, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "21932:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "3332", + "id": 9735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21939:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "21932:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9737, + "nodeType": "ExpressionStatement", + "src": "21932:9:28" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9740, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9701, + "src": "21973:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + }, + "id": 9743, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9741, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21980:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "3332", + "id": 9742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21985:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "21980:7:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + } + ], + "id": 9744, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "21979:9:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967296_by_1", + "typeString": "int_const 4294967296" + } + }, + "src": "21973:15:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9755, + "nodeType": "IfStatement", + "src": "21969:90:28", + "trueBody": { + "id": 9754, + "nodeType": "Block", + "src": "21990:69:28", + "statements": [ + { + "expression": { + "id": 9748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9746, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9701, + "src": "22008:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3332", + "id": 9747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22015:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "22008:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9749, + "nodeType": "ExpressionStatement", + "src": "22008:9:28" + }, + { + "expression": { + "id": 9752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9750, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "22035:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "3136", + "id": 9751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22042:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "22035:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9753, + "nodeType": "ExpressionStatement", + "src": "22035:9:28" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9756, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9701, + "src": "22076:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_65536_by_1", + "typeString": "int_const 65536" + }, + "id": 9759, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22083:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "3136", + "id": 9758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22088:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "22083:7:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_65536_by_1", + "typeString": "int_const 65536" + } + } + ], + "id": 9760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22082:9:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_65536_by_1", + "typeString": "int_const 65536" + } + }, + "src": "22076:15:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9771, + "nodeType": "IfStatement", + "src": "22072:89:28", + "trueBody": { + "id": 9770, + "nodeType": "Block", + "src": "22093:68:28", + "statements": [ + { + "expression": { + "id": 9764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9762, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9701, + "src": "22111:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "3136", + "id": 9763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22118:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "22111:9:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9765, + "nodeType": "ExpressionStatement", + "src": "22111:9:28" + }, + { + "expression": { + "id": 9768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9766, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "22138:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "38", + "id": 9767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22145:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "22138:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9769, + "nodeType": "ExpressionStatement", + "src": "22138:8:28" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9772, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9701, + "src": "22178:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + }, + "id": 9775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22185:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "38", + "id": 9774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22190:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "22185:6:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + } + } + ], + "id": 9776, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22184:8:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_256_by_1", + "typeString": "int_const 256" + } + }, + "src": "22178:14:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9787, + "nodeType": "IfStatement", + "src": "22174:87:28", + "trueBody": { + "id": 9786, + "nodeType": "Block", + "src": "22194:67:28", + "statements": [ + { + "expression": { + "id": 9780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9778, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9701, + "src": "22212:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "38", + "id": 9779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22219:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "22212:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9781, + "nodeType": "ExpressionStatement", + "src": "22212:8:28" + }, + { + "expression": { + "id": 9784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9782, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "22238:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "34", + "id": 9783, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22245:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "22238:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9785, + "nodeType": "ExpressionStatement", + "src": "22238:8:28" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9788, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9701, + "src": "22278:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "id": 9791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9789, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22285:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "34", + "id": 9790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22290:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "22285:6:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + } + } + ], + "id": 9792, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22284:8:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + } + }, + "src": "22278:14:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9803, + "nodeType": "IfStatement", + "src": "22274:87:28", + "trueBody": { + "id": 9802, + "nodeType": "Block", + "src": "22294:67:28", + "statements": [ + { + "expression": { + "id": 9796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9794, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9701, + "src": "22312:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": ">>=", + "rightHandSide": { + "hexValue": "34", + "id": 9795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22319:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "22312:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9797, + "nodeType": "ExpressionStatement", + "src": "22312:8:28" + }, + { + "expression": { + "id": 9800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9798, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "22338:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "32", + "id": 9799, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22345:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "22338:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9801, + "nodeType": "ExpressionStatement", + "src": "22338:8:28" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9804, + "name": "aa", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9701, + "src": "22378:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "id": 9807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 9805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22385:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "32", + "id": 9806, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22390:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "22385:6:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + } + } + ], + "id": 9808, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22384:8:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + } + }, + "src": "22378:14:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9815, + "nodeType": "IfStatement", + "src": "22374:61:28", + "trueBody": { + "id": 9814, + "nodeType": "Block", + "src": "22394:41:28", + "statements": [ + { + "expression": { + "id": 9812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9810, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "22412:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "<<=", + "rightHandSide": { + "hexValue": "31", + "id": 9811, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22419:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "22412:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9813, + "nodeType": "ExpressionStatement", + "src": "22412:8:28" + } + ] + } + }, + { + "expression": { + "id": 9823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9816, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "22855:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 9817, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22861:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 9818, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "22865:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22861:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9820, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22860:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 9821, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22872:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "22860:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22855:18:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9824, + "nodeType": "ExpressionStatement", + "src": "22855:18:28" + }, + { + "expression": { + "id": 9834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9825, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "24760:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9826, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "24766:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9827, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9688, + "src": "24771:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9828, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "24775:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24771:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24766:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9831, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "24765:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 9832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24782:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "24765:18:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24760:23:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9835, + "nodeType": "ExpressionStatement", + "src": "24760:23:28" + }, + { + "expression": { + "id": 9845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9836, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "24869:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9837, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "24875:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9838, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9688, + "src": "24880:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9839, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "24884:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24880:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24875:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9842, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "24874:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 9843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24891:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "24874:18:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24869:23:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9846, + "nodeType": "ExpressionStatement", + "src": "24869:23:28" + }, + { + "expression": { + "id": 9856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9847, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "24980:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9848, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "24986:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9849, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9688, + "src": "24991:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9850, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "24995:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24991:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24986:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9853, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "24985:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 9854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25002:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "24985:18:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24980:23:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9857, + "nodeType": "ExpressionStatement", + "src": "24980:23:28" + }, + { + "expression": { + "id": 9867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9858, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "25089:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9859, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "25095:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9860, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9688, + "src": "25100:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9861, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "25104:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25100:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25095:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9864, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "25094:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 9865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25111:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "25094:18:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25089:23:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9868, + "nodeType": "ExpressionStatement", + "src": "25089:23:28" + }, + { + "expression": { + "id": 9878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9869, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "25199:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9870, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "25205:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9871, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9688, + "src": "25210:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9872, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "25214:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25210:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25205:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9875, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "25204:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 9876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25221:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "25204:18:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25199:23:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9879, + "nodeType": "ExpressionStatement", + "src": "25199:23:28" + }, + { + "expression": { + "id": 9889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9880, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "25309:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9881, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "25315:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9882, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9688, + "src": "25320:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9883, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "25324:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25320:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25315:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9886, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "25314:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 9887, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25331:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "25314:18:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25309:23:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9890, + "nodeType": "ExpressionStatement", + "src": "25309:23:28" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9891, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "25698:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9894, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "25719:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9895, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9688, + "src": "25724:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 9896, + "name": "xn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9705, + "src": "25728:2:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25724:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25719:11:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9892, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "25703:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "25712:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "25703:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25703:28:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25698:33:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9692, + "id": 9901, + "nodeType": "Return", + "src": "25691:40:28" + } + ] + } + ] + }, + "documentation": { + "id": 9686, + "nodeType": "StructuredDocumentation", + "src": "20270:292:28", + "text": " @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n This method is based on Newton's method for computing square roots; the algorithm is restricted to only\n using integer operations." + }, + "id": 9904, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "20576:4:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9688, + "mutability": "mutable", + "name": "a", + "nameLocation": "20589:1:28", + "nodeType": "VariableDeclaration", + "scope": 9904, + "src": "20581:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20581:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "20580:11:28" + }, + "returnParameters": { + "id": 9692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9691, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9904, + "src": "20615:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20615:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "20614:9:28" + }, + "scope": 10360, + "src": "20567:5181:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 9937, + "nodeType": "Block", + "src": "25921:171:28", + "statements": [ + { + "id": 9936, + "nodeType": "UncheckedBlock", + "src": "25931:155:28", + "statements": [ + { + "assignments": [ + 9916 + ], + "declarations": [ + { + "constant": false, + "id": 9916, + "mutability": "mutable", + "name": "result", + "nameLocation": "25963:6:28", + "nodeType": "VariableDeclaration", + "scope": 9936, + "src": "25955:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9915, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25955:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 9920, + "initialValue": { + "arguments": [ + { + "id": 9918, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9907, + "src": "25977:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9917, + "name": "sqrt", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 9904, + 9938 + ], + "referencedDeclaration": 9904, + "src": "25972:4:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 9919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25972:7:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "25955:24:28" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9921, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9916, + "src": "26000:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 9932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 9925, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9910, + "src": "26042:8:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + ], + "id": 9924, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10359, + "src": "26025:16:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8751_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 9926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26025:26:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9927, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9916, + "src": "26055:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 9928, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9916, + "src": "26064:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26055:15:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 9930, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9907, + "src": "26073:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26055:19:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "26025:49:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9922, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "26009:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26018:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "26009:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26009:66:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26000:75:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9914, + "id": 9935, + "nodeType": "Return", + "src": "25993:82:28" + } + ] + } + ] + }, + "documentation": { + "id": 9905, + "nodeType": "StructuredDocumentation", + "src": "25754:86:28", + "text": " @dev Calculates sqrt(a), following the selected rounding direction." + }, + "id": 9938, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sqrt", + "nameLocation": "25854:4:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9911, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9907, + "mutability": "mutable", + "name": "a", + "nameLocation": "25867:1:28", + "nodeType": "VariableDeclaration", + "scope": 9938, + "src": "25859:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9906, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25859:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9910, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "25879:8:28", + "nodeType": "VariableDeclaration", + "scope": 9938, + "src": "25870:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 9909, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 9908, + "name": "Rounding", + "nameLocations": [ + "25870:8:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8751, + "src": "25870:8:28" + }, + "referencedDeclaration": 8751, + "src": "25870:8:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "25858:30:28" + }, + "returnParameters": { + "id": 9914, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9913, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 9938, + "src": "25912:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9912, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25912:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "25911:9:28" + }, + "scope": 10360, + "src": "25845:247:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10028, + "nodeType": "Block", + "src": "26281:2334:28", + "statements": [ + { + "expression": { + "id": 9955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9946, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9944, + "src": "26363:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9949, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9941, + "src": "26383:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666666666666666666666666666666666666666666666666666666666666666", + "id": 9950, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26387:34:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1455" + }, + "value": "0xffffffffffffffffffffffffffffffff" + }, + "src": "26383:38:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9947, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "26367:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9948, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26376:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "26367:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26367:55:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "37", + "id": 9953, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26426:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "src": "26367:60:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26363:64:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9956, + "nodeType": "ExpressionStatement", + "src": "26363:64:28" + }, + { + "expression": { + "id": 9969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9957, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9944, + "src": "26503:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9968, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9960, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9941, + "src": "26525:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 9961, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9944, + "src": "26530:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26525:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9963, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26524:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307866666666666666666666666666666666", + "id": 9964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26535:18:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_18446744073709551615_by_1", + "typeString": "int_const 18446744073709551615" + }, + "value": "0xffffffffffffffff" + }, + "src": "26524:29:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9958, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "26508:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26517:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "26508:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26508:46:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "36", + "id": 9967, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26558:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "src": "26508:51:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26503:56:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9970, + "nodeType": "ExpressionStatement", + "src": "26503:56:28" + }, + { + "expression": { + "id": 9983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9971, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9944, + "src": "26634:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9974, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9941, + "src": "26656:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 9975, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9944, + "src": "26661:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26656:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9977, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26655:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 9978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26666:10:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "26655:21:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9972, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "26639:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26648:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "26639:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26639:38:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "35", + "id": 9981, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26681:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "26639:43:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26634:48:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9984, + "nodeType": "ExpressionStatement", + "src": "26634:48:28" + }, + { + "expression": { + "id": 9997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9985, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9944, + "src": "26757:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 9988, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9941, + "src": "26779:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 9989, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9944, + "src": "26784:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26779:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 9991, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26778:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307866666666", + "id": 9992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26789:6:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_65535_by_1", + "typeString": "int_const 65535" + }, + "value": "0xffff" + }, + "src": "26778:17:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 9986, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "26762:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 9987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26771:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "26762:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 9994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26762:34:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "34", + "id": 9995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26800:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "26762:39:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26757:44:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9998, + "nodeType": "ExpressionStatement", + "src": "26757:44:28" + }, + { + "expression": { + "id": 10011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 9999, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9944, + "src": "26874:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10010, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10002, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9941, + "src": "26896:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 10003, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9944, + "src": "26901:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26896:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10005, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "26895:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666", + "id": 10006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26906:4:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "0xff" + }, + "src": "26895:15:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 10000, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "26879:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 10001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "26888:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "26879:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 10008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26879:32:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "33", + "id": 10009, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26915:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "26879:37:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26874:42:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10012, + "nodeType": "ExpressionStatement", + "src": "26874:42:28" + }, + { + "expression": { + "id": 10025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10013, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9944, + "src": "26988:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10016, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9941, + "src": "27010:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 10017, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9944, + "src": "27015:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27010:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10019, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "27009:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307866", + "id": 10020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27020:3:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_15_by_1", + "typeString": "int_const 15" + }, + "value": "0xf" + }, + "src": "27009:14:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 10014, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "26993:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 10015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "27002:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "26993:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 10022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26993:31:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "32", + "id": 10023, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27028:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "26993:36:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26988:41:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10026, + "nodeType": "ExpressionStatement", + "src": "26988:41:28" + }, + { + "AST": { + "nativeSrc": "28490:119:28", + "nodeType": "YulBlock", + "src": "28490:119:28", + "statements": [ + { + "nativeSrc": "28504:95:28", + "nodeType": "YulAssignment", + "src": "28504:95:28", + "value": { + "arguments": [ + { + "name": "r", + "nativeSrc": "28512:1:28", + "nodeType": "YulIdentifier", + "src": "28512:1:28" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "r", + "nativeSrc": "28524:1:28", + "nodeType": "YulIdentifier", + "src": "28524:1:28" + }, + { + "name": "x", + "nativeSrc": "28527:1:28", + "nodeType": "YulIdentifier", + "src": "28527:1:28" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "28520:3:28", + "nodeType": "YulIdentifier", + "src": "28520:3:28" + }, + "nativeSrc": "28520:9:28", + "nodeType": "YulFunctionCall", + "src": "28520:9:28" + }, + { + "kind": "number", + "nativeSrc": "28531:66:28", + "nodeType": "YulLiteral", + "src": "28531:66:28", + "type": "", + "value": "0x0000010102020202030303030303030300000000000000000000000000000000" + } + ], + "functionName": { + "name": "byte", + "nativeSrc": "28515:4:28", + "nodeType": "YulIdentifier", + "src": "28515:4:28" + }, + "nativeSrc": "28515:83:28", + "nodeType": "YulFunctionCall", + "src": "28515:83:28" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "28509:2:28", + "nodeType": "YulIdentifier", + "src": "28509:2:28" + }, + "nativeSrc": "28509:90:28", + "nodeType": "YulFunctionCall", + "src": "28509:90:28" + }, + "variableNames": [ + { + "name": "r", + "nativeSrc": "28504:1:28", + "nodeType": "YulIdentifier", + "src": "28504:1:28" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 9944, + "isOffset": false, + "isSlot": false, + "src": "28504:1:28", + "valueSize": 1 + }, + { + "declaration": 9944, + "isOffset": false, + "isSlot": false, + "src": "28512:1:28", + "valueSize": 1 + }, + { + "declaration": 9944, + "isOffset": false, + "isSlot": false, + "src": "28524:1:28", + "valueSize": 1 + }, + { + "declaration": 9941, + "isOffset": false, + "isSlot": false, + "src": "28527:1:28", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 10027, + "nodeType": "InlineAssembly", + "src": "28465:144:28" + } + ] + }, + "documentation": { + "id": 9939, + "nodeType": "StructuredDocumentation", + "src": "26098:119:28", + "text": " @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 10029, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "26231:4:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9941, + "mutability": "mutable", + "name": "x", + "nameLocation": "26244:1:28", + "nodeType": "VariableDeclaration", + "scope": 10029, + "src": "26236:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26236:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "26235:11:28" + }, + "returnParameters": { + "id": 9945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9944, + "mutability": "mutable", + "name": "r", + "nameLocation": "26278:1:28", + "nodeType": "VariableDeclaration", + "scope": 10029, + "src": "26270:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26270:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "26269:11:28" + }, + "scope": 10360, + "src": "26222:2393:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10062, + "nodeType": "Block", + "src": "28848:175:28", + "statements": [ + { + "id": 10061, + "nodeType": "UncheckedBlock", + "src": "28858:159:28", + "statements": [ + { + "assignments": [ + 10041 + ], + "declarations": [ + { + "constant": false, + "id": 10041, + "mutability": "mutable", + "name": "result", + "nameLocation": "28890:6:28", + "nodeType": "VariableDeclaration", + "scope": 10061, + "src": "28882:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10040, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28882:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 10045, + "initialValue": { + "arguments": [ + { + "id": 10043, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10032, + "src": "28904:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10042, + "name": "log2", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10029, + 10063 + ], + "referencedDeclaration": 10029, + "src": "28899:4:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 10044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28899:11:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28882:28:28" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10046, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10041, + "src": "28931:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 10057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 10050, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10035, + "src": "28973:8:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + ], + "id": 10049, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10359, + "src": "28956:16:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8751_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 10051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28956:26:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 10052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28986:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "id": 10053, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10041, + "src": "28991:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28986:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 10055, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10032, + "src": "29000:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28986:19:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "28956:49:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 10047, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "28940:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 10048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "28949:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "28940:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 10058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28940:66:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28931:75:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10039, + "id": 10060, + "nodeType": "Return", + "src": "28924:82:28" + } + ] + } + ] + }, + "documentation": { + "id": 10030, + "nodeType": "StructuredDocumentation", + "src": "28621:142:28", + "text": " @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 10063, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log2", + "nameLocation": "28777:4:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10036, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10032, + "mutability": "mutable", + "name": "value", + "nameLocation": "28790:5:28", + "nodeType": "VariableDeclaration", + "scope": 10063, + "src": "28782:13:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10031, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28782:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10035, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "28806:8:28", + "nodeType": "VariableDeclaration", + "scope": 10063, + "src": "28797:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 10034, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10033, + "name": "Rounding", + "nameLocations": [ + "28797:8:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8751, + "src": "28797:8:28" + }, + "referencedDeclaration": 8751, + "src": "28797:8:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "28781:34:28" + }, + "returnParameters": { + "id": 10039, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10038, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10063, + "src": "28839:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10037, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28839:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "28838:9:28" + }, + "scope": 10360, + "src": "28768:255:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10191, + "nodeType": "Block", + "src": "29216:854:28", + "statements": [ + { + "assignments": [ + 10072 + ], + "declarations": [ + { + "constant": false, + "id": 10072, + "mutability": "mutable", + "name": "result", + "nameLocation": "29234:6:28", + "nodeType": "VariableDeclaration", + "scope": 10191, + "src": "29226:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29226:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 10074, + "initialValue": { + "hexValue": "30", + "id": 10073, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29243:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "29226:18:28" + }, + { + "id": 10188, + "nodeType": "UncheckedBlock", + "src": "29254:787:28", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10075, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10066, + "src": "29282:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 10078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 10076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29291:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 10077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29297:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "29291:8:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "29282:17:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10091, + "nodeType": "IfStatement", + "src": "29278:103:28", + "trueBody": { + "id": 10090, + "nodeType": "Block", + "src": "29301:80:28", + "statements": [ + { + "expression": { + "id": 10084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10080, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10066, + "src": "29319:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + }, + "id": 10083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 10081, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29328:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3634", + "id": 10082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29334:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "29328:8:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(57 digits omitted)...0000" + } + }, + "src": "29319:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10085, + "nodeType": "ExpressionStatement", + "src": "29319:17:28" + }, + { + "expression": { + "id": 10088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10086, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10072, + "src": "29354:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3634", + "id": 10087, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29364:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + "src": "29354:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10089, + "nodeType": "ExpressionStatement", + "src": "29354:12:28" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10092, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10066, + "src": "29398:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 10095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 10093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29407:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 10094, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29413:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "29407:8:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "29398:17:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10108, + "nodeType": "IfStatement", + "src": "29394:103:28", + "trueBody": { + "id": 10107, + "nodeType": "Block", + "src": "29417:80:28", + "statements": [ + { + "expression": { + "id": 10101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10097, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10066, + "src": "29435:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + }, + "id": 10100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 10098, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29444:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3332", + "id": 10099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29450:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "29444:8:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000000000000000000000000000_by_1", + "typeString": "int_const 1000...(25 digits omitted)...0000" + } + }, + "src": "29435:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10102, + "nodeType": "ExpressionStatement", + "src": "29435:17:28" + }, + { + "expression": { + "id": 10105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10103, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10072, + "src": "29470:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3332", + "id": 10104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29480:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "29470:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10106, + "nodeType": "ExpressionStatement", + "src": "29470:12:28" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10109, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10066, + "src": "29514:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 10112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 10110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29523:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 10111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29529:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "29523:8:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "29514:17:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10125, + "nodeType": "IfStatement", + "src": "29510:103:28", + "trueBody": { + "id": 10124, + "nodeType": "Block", + "src": "29533:80:28", + "statements": [ + { + "expression": { + "id": 10118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10114, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10066, + "src": "29551:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + }, + "id": 10117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 10115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29560:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "3136", + "id": 10116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29566:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "29560:8:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000000000000000_by_1", + "typeString": "int_const 10000000000000000" + } + }, + "src": "29551:17:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10119, + "nodeType": "ExpressionStatement", + "src": "29551:17:28" + }, + { + "expression": { + "id": 10122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10120, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10072, + "src": "29586:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "3136", + "id": 10121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29596:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "29586:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10123, + "nodeType": "ExpressionStatement", + "src": "29586:12:28" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10126, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10066, + "src": "29630:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 10129, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 10127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29639:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 10128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29645:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "29639:7:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "29630:16:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10142, + "nodeType": "IfStatement", + "src": "29626:100:28", + "trueBody": { + "id": 10141, + "nodeType": "Block", + "src": "29648:78:28", + "statements": [ + { + "expression": { + "id": 10135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10131, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10066, + "src": "29666:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + }, + "id": 10134, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 10132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29675:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "38", + "id": 10133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29681:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "29675:7:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_100000000_by_1", + "typeString": "int_const 100000000" + } + }, + "src": "29666:16:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10136, + "nodeType": "ExpressionStatement", + "src": "29666:16:28" + }, + { + "expression": { + "id": 10139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10137, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10072, + "src": "29700:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "38", + "id": 10138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29710:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "29700:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10140, + "nodeType": "ExpressionStatement", + "src": "29700:11:28" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10143, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10066, + "src": "29743:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 10146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 10144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29752:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 10145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29758:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "29752:7:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "29743:16:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10159, + "nodeType": "IfStatement", + "src": "29739:100:28", + "trueBody": { + "id": 10158, + "nodeType": "Block", + "src": "29761:78:28", + "statements": [ + { + "expression": { + "id": 10152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10148, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10066, + "src": "29779:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "id": 10151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 10149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29788:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "34", + "id": 10150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29794:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "29788:7:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + } + }, + "src": "29779:16:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10153, + "nodeType": "ExpressionStatement", + "src": "29779:16:28" + }, + { + "expression": { + "id": 10156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10154, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10072, + "src": "29813:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "34", + "id": 10155, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29823:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "29813:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10157, + "nodeType": "ExpressionStatement", + "src": "29813:11:28" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10160, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10066, + "src": "29856:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 10163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 10161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29865:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 10162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29871:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "29865:7:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "29856:16:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10176, + "nodeType": "IfStatement", + "src": "29852:100:28", + "trueBody": { + "id": 10175, + "nodeType": "Block", + "src": "29874:78:28", + "statements": [ + { + "expression": { + "id": 10169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10165, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10066, + "src": "29892:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "id": 10168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 10166, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29901:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "32", + "id": 10167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29907:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "29901:7:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + } + }, + "src": "29892:16:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10170, + "nodeType": "ExpressionStatement", + "src": "29892:16:28" + }, + { + "expression": { + "id": 10173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10171, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10072, + "src": "29926:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "32", + "id": 10172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29936:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "29926:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10174, + "nodeType": "ExpressionStatement", + "src": "29926:11:28" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10177, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10066, + "src": "29969:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "id": 10180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 10178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29978:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "hexValue": "31", + "id": 10179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29984:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29978:7:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + } + }, + "src": "29969:16:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10187, + "nodeType": "IfStatement", + "src": "29965:66:28", + "trueBody": { + "id": 10186, + "nodeType": "Block", + "src": "29987:44:28", + "statements": [ + { + "expression": { + "id": 10184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10182, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10072, + "src": "30005:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 10183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30015:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "30005:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10185, + "nodeType": "ExpressionStatement", + "src": "30005:11:28" + } + ] + } + } + ] + }, + { + "expression": { + "id": 10189, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10072, + "src": "30057:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10070, + "id": 10190, + "nodeType": "Return", + "src": "30050:13:28" + } + ] + }, + "documentation": { + "id": 10064, + "nodeType": "StructuredDocumentation", + "src": "29029:120:28", + "text": " @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0." + }, + "id": 10192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "29163:5:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10067, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10066, + "mutability": "mutable", + "name": "value", + "nameLocation": "29177:5:28", + "nodeType": "VariableDeclaration", + "scope": 10192, + "src": "29169:13:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10065, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29169:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29168:15:28" + }, + "returnParameters": { + "id": 10070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10069, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10192, + "src": "29207:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10068, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29207:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29206:9:28" + }, + "scope": 10360, + "src": "29154:916:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10225, + "nodeType": "Block", + "src": "30305:177:28", + "statements": [ + { + "id": 10224, + "nodeType": "UncheckedBlock", + "src": "30315:161:28", + "statements": [ + { + "assignments": [ + 10204 + ], + "declarations": [ + { + "constant": false, + "id": 10204, + "mutability": "mutable", + "name": "result", + "nameLocation": "30347:6:28", + "nodeType": "VariableDeclaration", + "scope": 10224, + "src": "30339:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30339:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 10208, + "initialValue": { + "arguments": [ + { + "id": 10206, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10195, + "src": "30362:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10205, + "name": "log10", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10192, + 10226 + ], + "referencedDeclaration": 10192, + "src": "30356:5:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 10207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30356:12:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "30339:29:28" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10209, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10204, + "src": "30389:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 10220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 10213, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "30431:8:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + ], + "id": 10212, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10359, + "src": "30414:16:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8751_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 10214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30414:26:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 10215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30444:2:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "id": 10216, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10204, + "src": "30450:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30444:12:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 10218, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10195, + "src": "30459:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30444:20:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "30414:50:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 10210, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "30398:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 10211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "30407:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "30398:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 10221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30398:67:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30389:76:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10202, + "id": 10223, + "nodeType": "Return", + "src": "30382:83:28" + } + ] + } + ] + }, + "documentation": { + "id": 10193, + "nodeType": "StructuredDocumentation", + "src": "30076:143:28", + "text": " @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 10226, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log10", + "nameLocation": "30233:5:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10199, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10195, + "mutability": "mutable", + "name": "value", + "nameLocation": "30247:5:28", + "nodeType": "VariableDeclaration", + "scope": 10226, + "src": "30239:13:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10194, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30239:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10198, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "30263:8:28", + "nodeType": "VariableDeclaration", + "scope": 10226, + "src": "30254:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 10197, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10196, + "name": "Rounding", + "nameLocations": [ + "30254:8:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8751, + "src": "30254:8:28" + }, + "referencedDeclaration": 8751, + "src": "30254:8:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "30238:34:28" + }, + "returnParameters": { + "id": 10202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10201, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10226, + "src": "30296:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30296:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30295:9:28" + }, + "scope": 10360, + "src": "30224:258:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10302, + "nodeType": "Block", + "src": "30800:675:28", + "statements": [ + { + "expression": { + "id": 10243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10234, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10232, + "src": "30882:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10237, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10229, + "src": "30902:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666666666666666666666666666666666666666666666666666666666666666", + "id": 10238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30906:34:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_340282366920938463463374607431768211455_by_1", + "typeString": "int_const 3402...(31 digits omitted)...1455" + }, + "value": "0xffffffffffffffffffffffffffffffff" + }, + "src": "30902:38:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 10235, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "30886:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 10236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "30895:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "30886:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 10240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30886:55:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "37", + "id": 10241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30945:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "src": "30886:60:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30882:64:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10244, + "nodeType": "ExpressionStatement", + "src": "30882:64:28" + }, + { + "expression": { + "id": 10257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10245, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10232, + "src": "31022:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10248, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10229, + "src": "31044:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 10249, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10232, + "src": "31049:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31044:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10251, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31043:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307866666666666666666666666666666666", + "id": 10252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31054:18:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_18446744073709551615_by_1", + "typeString": "int_const 18446744073709551615" + }, + "value": "0xffffffffffffffff" + }, + "src": "31043:29:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 10246, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "31027:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 10247, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "31036:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "31027:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 10254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31027:46:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "36", + "id": 10255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31077:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "src": "31027:51:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31022:56:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10258, + "nodeType": "ExpressionStatement", + "src": "31022:56:28" + }, + { + "expression": { + "id": 10271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10259, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10232, + "src": "31153:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10267, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10262, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10229, + "src": "31175:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 10263, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10232, + "src": "31180:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31175:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10265, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31174:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 10266, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31185:10:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "31174:21:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 10260, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "31158:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 10261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "31167:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "31158:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 10268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31158:38:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "35", + "id": 10269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31200:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "31158:43:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31153:48:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10272, + "nodeType": "ExpressionStatement", + "src": "31153:48:28" + }, + { + "expression": { + "id": 10285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 10273, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10232, + "src": "31276:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "|=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10276, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10229, + "src": "31298:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 10277, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10232, + "src": "31303:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31298:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10279, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31297:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "307866666666", + "id": 10280, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31308:6:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_65535_by_1", + "typeString": "int_const 65535" + }, + "value": "0xffff" + }, + "src": "31297:17:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 10274, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "31281:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 10275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "31290:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "31281:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 10282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31281:34:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "34", + "id": 10283, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31319:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "31281:39:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31276:44:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10286, + "nodeType": "ExpressionStatement", + "src": "31276:44:28" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10287, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10232, + "src": "31426:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "33", + "id": 10288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31431:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "31426:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10290, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31425:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "|", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10293, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10229, + "src": "31453:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "id": 10294, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10232, + "src": "31458:1:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31453:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10296, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31452:8:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30786666", + "id": 10297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31463:4:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "0xff" + }, + "src": "31452:15:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 10291, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "31436:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 10292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "31445:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "31436:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 10299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31436:32:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31425:43:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10233, + "id": 10301, + "nodeType": "Return", + "src": "31418:50:28" + } + ] + }, + "documentation": { + "id": 10227, + "nodeType": "StructuredDocumentation", + "src": "30488:246:28", + "text": " @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string." + }, + "id": 10303, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "30748:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10230, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10229, + "mutability": "mutable", + "name": "x", + "nameLocation": "30763:1:28", + "nodeType": "VariableDeclaration", + "scope": 10303, + "src": "30755:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30755:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30754:11:28" + }, + "returnParameters": { + "id": 10233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10232, + "mutability": "mutable", + "name": "r", + "nameLocation": "30797:1:28", + "nodeType": "VariableDeclaration", + "scope": 10303, + "src": "30789:9:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30789:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30788:11:28" + }, + "scope": 10360, + "src": "30739:736:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10339, + "nodeType": "Block", + "src": "31712:184:28", + "statements": [ + { + "id": 10338, + "nodeType": "UncheckedBlock", + "src": "31722:168:28", + "statements": [ + { + "assignments": [ + 10315 + ], + "declarations": [ + { + "constant": false, + "id": 10315, + "mutability": "mutable", + "name": "result", + "nameLocation": "31754:6:28", + "nodeType": "VariableDeclaration", + "scope": 10338, + "src": "31746:14:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10314, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31746:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 10319, + "initialValue": { + "arguments": [ + { + "id": 10317, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10306, + "src": "31770:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10316, + "name": "log256", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10303, + 10340 + ], + "referencedDeclaration": 10303, + "src": "31763:6:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 10318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31763:13:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "31746:30:28" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10320, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10315, + "src": "31797:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 10334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 10324, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10309, + "src": "31839:8:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + ], + "id": 10323, + "name": "unsignedRoundsUp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10359, + "src": "31822:16:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_enum$_Rounding_$8751_$returns$_t_bool_$", + "typeString": "function (enum Math.Rounding) pure returns (bool)" + } + }, + "id": 10325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31822:26:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31", + "id": 10326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31852:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10327, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10315, + "src": "31858:6:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<<", + "rightExpression": { + "hexValue": "33", + "id": 10328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31868:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "31858:11:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10330, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "31857:13:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31852:18:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 10332, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10306, + "src": "31873:5:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31852:26:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "31822:56:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 10321, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "31806:8:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 10322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "31815:6:28", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "31806:15:28", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 10335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31806:73:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31797:82:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10313, + "id": 10337, + "nodeType": "Return", + "src": "31790:89:28" + } + ] + } + ] + }, + "documentation": { + "id": 10304, + "nodeType": "StructuredDocumentation", + "src": "31481:144:28", + "text": " @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0." + }, + "id": 10340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "log256", + "nameLocation": "31639:6:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10310, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10306, + "mutability": "mutable", + "name": "value", + "nameLocation": "31654:5:28", + "nodeType": "VariableDeclaration", + "scope": 10340, + "src": "31646:13:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31646:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10309, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "31670:8:28", + "nodeType": "VariableDeclaration", + "scope": 10340, + "src": "31661:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 10308, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10307, + "name": "Rounding", + "nameLocations": [ + "31661:8:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8751, + "src": "31661:8:28" + }, + "referencedDeclaration": 8751, + "src": "31661:8:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "31645:34:28" + }, + "returnParameters": { + "id": 10313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10312, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10340, + "src": "31703:7:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10311, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31703:7:28", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31702:9:28" + }, + "scope": 10360, + "src": "31630:266:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10358, + "nodeType": "Block", + "src": "32094:48:28", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 10356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 10354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 10351, + "name": "rounding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10344, + "src": "32117:8:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + ], + "id": 10350, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32111:5:28", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 10349, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "32111:5:28", + "typeDescriptions": {} + } + }, + "id": 10352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "32111:15:28", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "32", + "id": 10353, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32129:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "32111:19:28", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 10355, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32134:1:28", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "32111:24:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10348, + "id": 10357, + "nodeType": "Return", + "src": "32104:31:28" + } + ] + }, + "documentation": { + "id": 10341, + "nodeType": "StructuredDocumentation", + "src": "31902:113:28", + "text": " @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers." + }, + "id": 10359, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "unsignedRoundsUp", + "nameLocation": "32029:16:28", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10345, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10344, + "mutability": "mutable", + "name": "rounding", + "nameLocation": "32055:8:28", + "nodeType": "VariableDeclaration", + "scope": 10359, + "src": "32046:17:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + }, + "typeName": { + "id": 10343, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 10342, + "name": "Rounding", + "nameLocations": [ + "32046:8:28" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8751, + "src": "32046:8:28" + }, + "referencedDeclaration": 8751, + "src": "32046:8:28", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Rounding_$8751", + "typeString": "enum Math.Rounding" + } + }, + "visibility": "internal" + } + ], + "src": "32045:19:28" + }, + "returnParameters": { + "id": 10348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10347, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10359, + "src": "32088:4:28", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10346, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32088:4:28", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32087:6:28" + }, + "scope": 10360, + "src": "32020:122:28", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 10361, + "src": "281:31863:28", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "103:32042:28" + }, + "id": 28 + }, + "@openzeppelin/contracts/utils/math/SafeCast.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", + "exportedSymbols": { + "SafeCast": [ + 12125 + ] + }, + "id": 12126, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10362, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "192:24:29" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SafeCast", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 10363, + "nodeType": "StructuredDocumentation", + "src": "218:550:29", + "text": " @dev Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow\n checks.\n Downcasting from uint256/int256 in Solidity does not revert on overflow. This can\n easily result in undesired exploitation or bugs, since developers usually\n assume that overflows raise errors. `SafeCast` restores this intuition by\n reverting the transaction when such an operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 12125, + "linearizedBaseContracts": [ + 12125 + ], + "name": "SafeCast", + "nameLocation": "777:8:29", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 10364, + "nodeType": "StructuredDocumentation", + "src": "792:68:29", + "text": " @dev Value doesn't fit in an uint of `bits` size." + }, + "errorSelector": "6dfcc650", + "id": 10370, + "name": "SafeCastOverflowedUintDowncast", + "nameLocation": "871:30:29", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 10369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10366, + "mutability": "mutable", + "name": "bits", + "nameLocation": "908:4:29", + "nodeType": "VariableDeclaration", + "scope": 10370, + "src": "902:10:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 10365, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "902:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10368, + "mutability": "mutable", + "name": "value", + "nameLocation": "922:5:29", + "nodeType": "VariableDeclaration", + "scope": 10370, + "src": "914:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10367, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "914:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "901:27:29" + }, + "src": "865:64:29" + }, + { + "documentation": { + "id": 10371, + "nodeType": "StructuredDocumentation", + "src": "935:75:29", + "text": " @dev An int value doesn't fit in an uint of `bits` size." + }, + "errorSelector": "a8ce4432", + "id": 10375, + "name": "SafeCastOverflowedIntToUint", + "nameLocation": "1021:27:29", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 10374, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10373, + "mutability": "mutable", + "name": "value", + "nameLocation": "1056:5:29", + "nodeType": "VariableDeclaration", + "scope": 10375, + "src": "1049:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 10372, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1049:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1048:14:29" + }, + "src": "1015:48:29" + }, + { + "documentation": { + "id": 10376, + "nodeType": "StructuredDocumentation", + "src": "1069:67:29", + "text": " @dev Value doesn't fit in an int of `bits` size." + }, + "errorSelector": "327269a7", + "id": 10382, + "name": "SafeCastOverflowedIntDowncast", + "nameLocation": "1147:29:29", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 10381, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10378, + "mutability": "mutable", + "name": "bits", + "nameLocation": "1183:4:29", + "nodeType": "VariableDeclaration", + "scope": 10382, + "src": "1177:10:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 10377, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1177:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10380, + "mutability": "mutable", + "name": "value", + "nameLocation": "1196:5:29", + "nodeType": "VariableDeclaration", + "scope": 10382, + "src": "1189:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 10379, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1189:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1176:26:29" + }, + "src": "1141:62:29" + }, + { + "documentation": { + "id": 10383, + "nodeType": "StructuredDocumentation", + "src": "1209:75:29", + "text": " @dev An uint value doesn't fit in an int of `bits` size." + }, + "errorSelector": "24775e06", + "id": 10387, + "name": "SafeCastOverflowedUintToInt", + "nameLocation": "1295:27:29", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 10386, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10385, + "mutability": "mutable", + "name": "value", + "nameLocation": "1331:5:29", + "nodeType": "VariableDeclaration", + "scope": 10387, + "src": "1323:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10384, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1323:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1322:15:29" + }, + "src": "1289:49:29" + }, + { + "body": { + "id": 10414, + "nodeType": "Block", + "src": "1695:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10395, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10390, + "src": "1709:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1722:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint248_$", + "typeString": "type(uint248)" + }, + "typeName": { + "id": 10397, + "name": "uint248", + "nodeType": "ElementaryTypeName", + "src": "1722:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint248_$", + "typeString": "type(uint248)" + } + ], + "id": 10396, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "1717:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1717:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint248", + "typeString": "type(uint248)" + } + }, + "id": 10400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "1731:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "1717:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + }, + "src": "1709:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10408, + "nodeType": "IfStatement", + "src": "1705:105:29", + "trueBody": { + "id": 10407, + "nodeType": "Block", + "src": "1736:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323438", + "id": 10403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1788:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + "value": "248" + }, + { + "id": 10404, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10390, + "src": "1793:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10402, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "1757:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1757:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10406, + "nodeType": "RevertStatement", + "src": "1750:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10411, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10390, + "src": "1834:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1826:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint248_$", + "typeString": "type(uint248)" + }, + "typeName": { + "id": 10409, + "name": "uint248", + "nodeType": "ElementaryTypeName", + "src": "1826:7:29", + "typeDescriptions": {} + } + }, + "id": 10412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1826:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + }, + "functionReturnParameters": 10394, + "id": 10413, + "nodeType": "Return", + "src": "1819:21:29" + } + ] + }, + "documentation": { + "id": 10388, + "nodeType": "StructuredDocumentation", + "src": "1344:280:29", + "text": " @dev Returns the downcasted uint248 from uint256, reverting on\n overflow (when the input is greater than largest uint248).\n Counterpart to Solidity's `uint248` operator.\n Requirements:\n - input must fit into 248 bits" + }, + "id": 10415, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint248", + "nameLocation": "1638:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10391, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10390, + "mutability": "mutable", + "name": "value", + "nameLocation": "1656:5:29", + "nodeType": "VariableDeclaration", + "scope": 10415, + "src": "1648:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10389, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1648:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1647:15:29" + }, + "returnParameters": { + "id": 10394, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10393, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10415, + "src": "1686:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + }, + "typeName": { + "id": 10392, + "name": "uint248", + "nodeType": "ElementaryTypeName", + "src": "1686:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint248", + "typeString": "uint248" + } + }, + "visibility": "internal" + } + ], + "src": "1685:9:29" + }, + "scope": 12125, + "src": "1629:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10442, + "nodeType": "Block", + "src": "2204:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10423, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10418, + "src": "2218:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2231:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint240_$", + "typeString": "type(uint240)" + }, + "typeName": { + "id": 10425, + "name": "uint240", + "nodeType": "ElementaryTypeName", + "src": "2231:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint240_$", + "typeString": "type(uint240)" + } + ], + "id": 10424, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2226:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2226:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint240", + "typeString": "type(uint240)" + } + }, + "id": 10428, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2240:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "2226:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + } + }, + "src": "2218:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10436, + "nodeType": "IfStatement", + "src": "2214:105:29", + "trueBody": { + "id": 10435, + "nodeType": "Block", + "src": "2245:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323430", + "id": 10431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2297:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + "value": "240" + }, + { + "id": 10432, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10418, + "src": "2302:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10430, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "2266:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2266:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10434, + "nodeType": "RevertStatement", + "src": "2259:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10439, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10418, + "src": "2343:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2335:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint240_$", + "typeString": "type(uint240)" + }, + "typeName": { + "id": 10437, + "name": "uint240", + "nodeType": "ElementaryTypeName", + "src": "2335:7:29", + "typeDescriptions": {} + } + }, + "id": 10440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2335:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + } + }, + "functionReturnParameters": 10422, + "id": 10441, + "nodeType": "Return", + "src": "2328:21:29" + } + ] + }, + "documentation": { + "id": 10416, + "nodeType": "StructuredDocumentation", + "src": "1853:280:29", + "text": " @dev Returns the downcasted uint240 from uint256, reverting on\n overflow (when the input is greater than largest uint240).\n Counterpart to Solidity's `uint240` operator.\n Requirements:\n - input must fit into 240 bits" + }, + "id": 10443, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint240", + "nameLocation": "2147:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10419, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10418, + "mutability": "mutable", + "name": "value", + "nameLocation": "2165:5:29", + "nodeType": "VariableDeclaration", + "scope": 10443, + "src": "2157:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10417, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2157:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2156:15:29" + }, + "returnParameters": { + "id": 10422, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10421, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10443, + "src": "2195:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + }, + "typeName": { + "id": 10420, + "name": "uint240", + "nodeType": "ElementaryTypeName", + "src": "2195:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint240", + "typeString": "uint240" + } + }, + "visibility": "internal" + } + ], + "src": "2194:9:29" + }, + "scope": 12125, + "src": "2138:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10470, + "nodeType": "Block", + "src": "2713:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10451, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10446, + "src": "2727:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10454, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2740:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint232_$", + "typeString": "type(uint232)" + }, + "typeName": { + "id": 10453, + "name": "uint232", + "nodeType": "ElementaryTypeName", + "src": "2740:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint232_$", + "typeString": "type(uint232)" + } + ], + "id": 10452, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "2735:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2735:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint232", + "typeString": "type(uint232)" + } + }, + "id": 10456, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "2749:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "2735:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + } + }, + "src": "2727:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10464, + "nodeType": "IfStatement", + "src": "2723:105:29", + "trueBody": { + "id": 10463, + "nodeType": "Block", + "src": "2754:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323332", + "id": 10459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2806:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + "value": "232" + }, + { + "id": 10460, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10446, + "src": "2811:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10458, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "2775:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2775:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10462, + "nodeType": "RevertStatement", + "src": "2768:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10467, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10446, + "src": "2852:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10466, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2844:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint232_$", + "typeString": "type(uint232)" + }, + "typeName": { + "id": 10465, + "name": "uint232", + "nodeType": "ElementaryTypeName", + "src": "2844:7:29", + "typeDescriptions": {} + } + }, + "id": 10468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2844:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + } + }, + "functionReturnParameters": 10450, + "id": 10469, + "nodeType": "Return", + "src": "2837:21:29" + } + ] + }, + "documentation": { + "id": 10444, + "nodeType": "StructuredDocumentation", + "src": "2362:280:29", + "text": " @dev Returns the downcasted uint232 from uint256, reverting on\n overflow (when the input is greater than largest uint232).\n Counterpart to Solidity's `uint232` operator.\n Requirements:\n - input must fit into 232 bits" + }, + "id": 10471, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint232", + "nameLocation": "2656:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10447, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10446, + "mutability": "mutable", + "name": "value", + "nameLocation": "2674:5:29", + "nodeType": "VariableDeclaration", + "scope": 10471, + "src": "2666:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10445, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2666:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2665:15:29" + }, + "returnParameters": { + "id": 10450, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10449, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10471, + "src": "2704:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + }, + "typeName": { + "id": 10448, + "name": "uint232", + "nodeType": "ElementaryTypeName", + "src": "2704:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint232", + "typeString": "uint232" + } + }, + "visibility": "internal" + } + ], + "src": "2703:9:29" + }, + "scope": 12125, + "src": "2647:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10498, + "nodeType": "Block", + "src": "3222:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10479, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10474, + "src": "3236:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3249:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 10481, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "3249:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + } + ], + "id": 10480, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "3244:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3244:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint224", + "typeString": "type(uint224)" + } + }, + "id": 10484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3258:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "3244:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "src": "3236:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10492, + "nodeType": "IfStatement", + "src": "3232:105:29", + "trueBody": { + "id": 10491, + "nodeType": "Block", + "src": "3263:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323234", + "id": 10487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3315:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + "value": "224" + }, + { + "id": 10488, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10474, + "src": "3320:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10486, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "3284:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3284:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10490, + "nodeType": "RevertStatement", + "src": "3277:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10495, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10474, + "src": "3361:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3353:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint224_$", + "typeString": "type(uint224)" + }, + "typeName": { + "id": 10493, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "3353:7:29", + "typeDescriptions": {} + } + }, + "id": 10496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3353:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "functionReturnParameters": 10478, + "id": 10497, + "nodeType": "Return", + "src": "3346:21:29" + } + ] + }, + "documentation": { + "id": 10472, + "nodeType": "StructuredDocumentation", + "src": "2871:280:29", + "text": " @dev Returns the downcasted uint224 from uint256, reverting on\n overflow (when the input is greater than largest uint224).\n Counterpart to Solidity's `uint224` operator.\n Requirements:\n - input must fit into 224 bits" + }, + "id": 10499, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint224", + "nameLocation": "3165:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10475, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10474, + "mutability": "mutable", + "name": "value", + "nameLocation": "3183:5:29", + "nodeType": "VariableDeclaration", + "scope": 10499, + "src": "3175:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10473, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3175:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3174:15:29" + }, + "returnParameters": { + "id": 10478, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10477, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10499, + "src": "3213:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + }, + "typeName": { + "id": 10476, + "name": "uint224", + "nodeType": "ElementaryTypeName", + "src": "3213:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint224", + "typeString": "uint224" + } + }, + "visibility": "internal" + } + ], + "src": "3212:9:29" + }, + "scope": 12125, + "src": "3156:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10526, + "nodeType": "Block", + "src": "3731:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10507, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10502, + "src": "3745:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10510, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3758:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint216_$", + "typeString": "type(uint216)" + }, + "typeName": { + "id": 10509, + "name": "uint216", + "nodeType": "ElementaryTypeName", + "src": "3758:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint216_$", + "typeString": "type(uint216)" + } + ], + "id": 10508, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "3753:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3753:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint216", + "typeString": "type(uint216)" + } + }, + "id": 10512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "3767:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "3753:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + } + }, + "src": "3745:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10520, + "nodeType": "IfStatement", + "src": "3741:105:29", + "trueBody": { + "id": 10519, + "nodeType": "Block", + "src": "3772:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323136", + "id": 10515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3824:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + "value": "216" + }, + { + "id": 10516, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10502, + "src": "3829:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10514, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "3793:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3793:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10518, + "nodeType": "RevertStatement", + "src": "3786:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10523, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10502, + "src": "3870:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3862:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint216_$", + "typeString": "type(uint216)" + }, + "typeName": { + "id": 10521, + "name": "uint216", + "nodeType": "ElementaryTypeName", + "src": "3862:7:29", + "typeDescriptions": {} + } + }, + "id": 10524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3862:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + } + }, + "functionReturnParameters": 10506, + "id": 10525, + "nodeType": "Return", + "src": "3855:21:29" + } + ] + }, + "documentation": { + "id": 10500, + "nodeType": "StructuredDocumentation", + "src": "3380:280:29", + "text": " @dev Returns the downcasted uint216 from uint256, reverting on\n overflow (when the input is greater than largest uint216).\n Counterpart to Solidity's `uint216` operator.\n Requirements:\n - input must fit into 216 bits" + }, + "id": 10527, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint216", + "nameLocation": "3674:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10503, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10502, + "mutability": "mutable", + "name": "value", + "nameLocation": "3692:5:29", + "nodeType": "VariableDeclaration", + "scope": 10527, + "src": "3684:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3684:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3683:15:29" + }, + "returnParameters": { + "id": 10506, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10505, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10527, + "src": "3722:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + }, + "typeName": { + "id": 10504, + "name": "uint216", + "nodeType": "ElementaryTypeName", + "src": "3722:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint216", + "typeString": "uint216" + } + }, + "visibility": "internal" + } + ], + "src": "3721:9:29" + }, + "scope": 12125, + "src": "3665:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10554, + "nodeType": "Block", + "src": "4240:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10535, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10530, + "src": "4254:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4267:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint208_$", + "typeString": "type(uint208)" + }, + "typeName": { + "id": 10537, + "name": "uint208", + "nodeType": "ElementaryTypeName", + "src": "4267:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint208_$", + "typeString": "type(uint208)" + } + ], + "id": 10536, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4262:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4262:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint208", + "typeString": "type(uint208)" + } + }, + "id": 10540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4276:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4262:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + } + }, + "src": "4254:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10548, + "nodeType": "IfStatement", + "src": "4250:105:29", + "trueBody": { + "id": 10547, + "nodeType": "Block", + "src": "4281:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323038", + "id": 10543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4333:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + "value": "208" + }, + { + "id": 10544, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10530, + "src": "4338:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10542, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "4302:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4302:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10546, + "nodeType": "RevertStatement", + "src": "4295:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10551, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10530, + "src": "4379:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4371:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint208_$", + "typeString": "type(uint208)" + }, + "typeName": { + "id": 10549, + "name": "uint208", + "nodeType": "ElementaryTypeName", + "src": "4371:7:29", + "typeDescriptions": {} + } + }, + "id": 10552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4371:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + } + }, + "functionReturnParameters": 10534, + "id": 10553, + "nodeType": "Return", + "src": "4364:21:29" + } + ] + }, + "documentation": { + "id": 10528, + "nodeType": "StructuredDocumentation", + "src": "3889:280:29", + "text": " @dev Returns the downcasted uint208 from uint256, reverting on\n overflow (when the input is greater than largest uint208).\n Counterpart to Solidity's `uint208` operator.\n Requirements:\n - input must fit into 208 bits" + }, + "id": 10555, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint208", + "nameLocation": "4183:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10531, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10530, + "mutability": "mutable", + "name": "value", + "nameLocation": "4201:5:29", + "nodeType": "VariableDeclaration", + "scope": 10555, + "src": "4193:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10529, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4193:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4192:15:29" + }, + "returnParameters": { + "id": 10534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10533, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10555, + "src": "4231:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + }, + "typeName": { + "id": 10532, + "name": "uint208", + "nodeType": "ElementaryTypeName", + "src": "4231:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint208", + "typeString": "uint208" + } + }, + "visibility": "internal" + } + ], + "src": "4230:9:29" + }, + "scope": 12125, + "src": "4174:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10582, + "nodeType": "Block", + "src": "4749:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10563, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10558, + "src": "4763:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4776:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint200_$", + "typeString": "type(uint200)" + }, + "typeName": { + "id": 10565, + "name": "uint200", + "nodeType": "ElementaryTypeName", + "src": "4776:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint200_$", + "typeString": "type(uint200)" + } + ], + "id": 10564, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "4771:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4771:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint200", + "typeString": "type(uint200)" + } + }, + "id": 10568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "4785:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "4771:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + } + }, + "src": "4763:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10576, + "nodeType": "IfStatement", + "src": "4759:105:29", + "trueBody": { + "id": 10575, + "nodeType": "Block", + "src": "4790:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323030", + "id": 10571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4842:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + "value": "200" + }, + { + "id": 10572, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10558, + "src": "4847:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10570, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "4811:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4811:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10574, + "nodeType": "RevertStatement", + "src": "4804:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10579, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10558, + "src": "4888:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4880:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint200_$", + "typeString": "type(uint200)" + }, + "typeName": { + "id": 10577, + "name": "uint200", + "nodeType": "ElementaryTypeName", + "src": "4880:7:29", + "typeDescriptions": {} + } + }, + "id": 10580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4880:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + } + }, + "functionReturnParameters": 10562, + "id": 10581, + "nodeType": "Return", + "src": "4873:21:29" + } + ] + }, + "documentation": { + "id": 10556, + "nodeType": "StructuredDocumentation", + "src": "4398:280:29", + "text": " @dev Returns the downcasted uint200 from uint256, reverting on\n overflow (when the input is greater than largest uint200).\n Counterpart to Solidity's `uint200` operator.\n Requirements:\n - input must fit into 200 bits" + }, + "id": 10583, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint200", + "nameLocation": "4692:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10559, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10558, + "mutability": "mutable", + "name": "value", + "nameLocation": "4710:5:29", + "nodeType": "VariableDeclaration", + "scope": 10583, + "src": "4702:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10557, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4702:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4701:15:29" + }, + "returnParameters": { + "id": 10562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10561, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10583, + "src": "4740:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + }, + "typeName": { + "id": 10560, + "name": "uint200", + "nodeType": "ElementaryTypeName", + "src": "4740:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint200", + "typeString": "uint200" + } + }, + "visibility": "internal" + } + ], + "src": "4739:9:29" + }, + "scope": 12125, + "src": "4683:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10610, + "nodeType": "Block", + "src": "5258:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10591, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10586, + "src": "5272:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5285:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint192_$", + "typeString": "type(uint192)" + }, + "typeName": { + "id": 10593, + "name": "uint192", + "nodeType": "ElementaryTypeName", + "src": "5285:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint192_$", + "typeString": "type(uint192)" + } + ], + "id": 10592, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "5280:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5280:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint192", + "typeString": "type(uint192)" + } + }, + "id": 10596, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5294:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "5280:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + } + }, + "src": "5272:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10604, + "nodeType": "IfStatement", + "src": "5268:105:29", + "trueBody": { + "id": 10603, + "nodeType": "Block", + "src": "5299:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313932", + "id": 10599, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5351:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + "value": "192" + }, + { + "id": 10600, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10586, + "src": "5356:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10598, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "5320:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5320:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10602, + "nodeType": "RevertStatement", + "src": "5313:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10607, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10586, + "src": "5397:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5389:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint192_$", + "typeString": "type(uint192)" + }, + "typeName": { + "id": 10605, + "name": "uint192", + "nodeType": "ElementaryTypeName", + "src": "5389:7:29", + "typeDescriptions": {} + } + }, + "id": 10608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5389:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + } + }, + "functionReturnParameters": 10590, + "id": 10609, + "nodeType": "Return", + "src": "5382:21:29" + } + ] + }, + "documentation": { + "id": 10584, + "nodeType": "StructuredDocumentation", + "src": "4907:280:29", + "text": " @dev Returns the downcasted uint192 from uint256, reverting on\n overflow (when the input is greater than largest uint192).\n Counterpart to Solidity's `uint192` operator.\n Requirements:\n - input must fit into 192 bits" + }, + "id": 10611, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint192", + "nameLocation": "5201:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10586, + "mutability": "mutable", + "name": "value", + "nameLocation": "5219:5:29", + "nodeType": "VariableDeclaration", + "scope": 10611, + "src": "5211:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10585, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5211:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5210:15:29" + }, + "returnParameters": { + "id": 10590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10589, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10611, + "src": "5249:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + }, + "typeName": { + "id": 10588, + "name": "uint192", + "nodeType": "ElementaryTypeName", + "src": "5249:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint192", + "typeString": "uint192" + } + }, + "visibility": "internal" + } + ], + "src": "5248:9:29" + }, + "scope": 12125, + "src": "5192:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10638, + "nodeType": "Block", + "src": "5767:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10619, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10614, + "src": "5781:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5794:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint184_$", + "typeString": "type(uint184)" + }, + "typeName": { + "id": 10621, + "name": "uint184", + "nodeType": "ElementaryTypeName", + "src": "5794:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint184_$", + "typeString": "type(uint184)" + } + ], + "id": 10620, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "5789:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10623, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5789:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint184", + "typeString": "type(uint184)" + } + }, + "id": 10624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "5803:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "5789:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + } + }, + "src": "5781:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10632, + "nodeType": "IfStatement", + "src": "5777:105:29", + "trueBody": { + "id": 10631, + "nodeType": "Block", + "src": "5808:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313834", + "id": 10627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5860:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + "value": "184" + }, + { + "id": 10628, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10614, + "src": "5865:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10626, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "5829:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5829:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10630, + "nodeType": "RevertStatement", + "src": "5822:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10635, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10614, + "src": "5906:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5898:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint184_$", + "typeString": "type(uint184)" + }, + "typeName": { + "id": 10633, + "name": "uint184", + "nodeType": "ElementaryTypeName", + "src": "5898:7:29", + "typeDescriptions": {} + } + }, + "id": 10636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5898:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + } + }, + "functionReturnParameters": 10618, + "id": 10637, + "nodeType": "Return", + "src": "5891:21:29" + } + ] + }, + "documentation": { + "id": 10612, + "nodeType": "StructuredDocumentation", + "src": "5416:280:29", + "text": " @dev Returns the downcasted uint184 from uint256, reverting on\n overflow (when the input is greater than largest uint184).\n Counterpart to Solidity's `uint184` operator.\n Requirements:\n - input must fit into 184 bits" + }, + "id": 10639, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint184", + "nameLocation": "5710:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10614, + "mutability": "mutable", + "name": "value", + "nameLocation": "5728:5:29", + "nodeType": "VariableDeclaration", + "scope": 10639, + "src": "5720:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10613, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5720:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5719:15:29" + }, + "returnParameters": { + "id": 10618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10617, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10639, + "src": "5758:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + }, + "typeName": { + "id": 10616, + "name": "uint184", + "nodeType": "ElementaryTypeName", + "src": "5758:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint184", + "typeString": "uint184" + } + }, + "visibility": "internal" + } + ], + "src": "5757:9:29" + }, + "scope": 12125, + "src": "5701:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10666, + "nodeType": "Block", + "src": "6276:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10647, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10642, + "src": "6290:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6303:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint176_$", + "typeString": "type(uint176)" + }, + "typeName": { + "id": 10649, + "name": "uint176", + "nodeType": "ElementaryTypeName", + "src": "6303:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint176_$", + "typeString": "type(uint176)" + } + ], + "id": 10648, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "6298:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10651, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6298:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint176", + "typeString": "type(uint176)" + } + }, + "id": 10652, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6312:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "6298:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + } + }, + "src": "6290:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10660, + "nodeType": "IfStatement", + "src": "6286:105:29", + "trueBody": { + "id": 10659, + "nodeType": "Block", + "src": "6317:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313736", + "id": 10655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6369:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + "value": "176" + }, + { + "id": 10656, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10642, + "src": "6374:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10654, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "6338:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6338:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10658, + "nodeType": "RevertStatement", + "src": "6331:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10663, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10642, + "src": "6415:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10662, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6407:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint176_$", + "typeString": "type(uint176)" + }, + "typeName": { + "id": 10661, + "name": "uint176", + "nodeType": "ElementaryTypeName", + "src": "6407:7:29", + "typeDescriptions": {} + } + }, + "id": 10664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6407:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + } + }, + "functionReturnParameters": 10646, + "id": 10665, + "nodeType": "Return", + "src": "6400:21:29" + } + ] + }, + "documentation": { + "id": 10640, + "nodeType": "StructuredDocumentation", + "src": "5925:280:29", + "text": " @dev Returns the downcasted uint176 from uint256, reverting on\n overflow (when the input is greater than largest uint176).\n Counterpart to Solidity's `uint176` operator.\n Requirements:\n - input must fit into 176 bits" + }, + "id": 10667, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint176", + "nameLocation": "6219:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10642, + "mutability": "mutable", + "name": "value", + "nameLocation": "6237:5:29", + "nodeType": "VariableDeclaration", + "scope": 10667, + "src": "6229:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10641, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6229:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6228:15:29" + }, + "returnParameters": { + "id": 10646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10645, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10667, + "src": "6267:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + }, + "typeName": { + "id": 10644, + "name": "uint176", + "nodeType": "ElementaryTypeName", + "src": "6267:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint176", + "typeString": "uint176" + } + }, + "visibility": "internal" + } + ], + "src": "6266:9:29" + }, + "scope": 12125, + "src": "6210:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10694, + "nodeType": "Block", + "src": "6785:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10675, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10670, + "src": "6799:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6812:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint168_$", + "typeString": "type(uint168)" + }, + "typeName": { + "id": 10677, + "name": "uint168", + "nodeType": "ElementaryTypeName", + "src": "6812:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint168_$", + "typeString": "type(uint168)" + } + ], + "id": 10676, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "6807:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10679, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6807:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint168", + "typeString": "type(uint168)" + } + }, + "id": 10680, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "6821:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "6807:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + } + }, + "src": "6799:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10688, + "nodeType": "IfStatement", + "src": "6795:105:29", + "trueBody": { + "id": 10687, + "nodeType": "Block", + "src": "6826:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313638", + "id": 10683, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6878:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + "value": "168" + }, + { + "id": 10684, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10670, + "src": "6883:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10682, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "6847:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6847:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10686, + "nodeType": "RevertStatement", + "src": "6840:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10691, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10670, + "src": "6924:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6916:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint168_$", + "typeString": "type(uint168)" + }, + "typeName": { + "id": 10689, + "name": "uint168", + "nodeType": "ElementaryTypeName", + "src": "6916:7:29", + "typeDescriptions": {} + } + }, + "id": 10692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6916:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + } + }, + "functionReturnParameters": 10674, + "id": 10693, + "nodeType": "Return", + "src": "6909:21:29" + } + ] + }, + "documentation": { + "id": 10668, + "nodeType": "StructuredDocumentation", + "src": "6434:280:29", + "text": " @dev Returns the downcasted uint168 from uint256, reverting on\n overflow (when the input is greater than largest uint168).\n Counterpart to Solidity's `uint168` operator.\n Requirements:\n - input must fit into 168 bits" + }, + "id": 10695, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint168", + "nameLocation": "6728:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10671, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10670, + "mutability": "mutable", + "name": "value", + "nameLocation": "6746:5:29", + "nodeType": "VariableDeclaration", + "scope": 10695, + "src": "6738:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6738:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6737:15:29" + }, + "returnParameters": { + "id": 10674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10673, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10695, + "src": "6776:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + }, + "typeName": { + "id": 10672, + "name": "uint168", + "nodeType": "ElementaryTypeName", + "src": "6776:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint168", + "typeString": "uint168" + } + }, + "visibility": "internal" + } + ], + "src": "6775:9:29" + }, + "scope": 12125, + "src": "6719:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10722, + "nodeType": "Block", + "src": "7294:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10703, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10698, + "src": "7308:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10706, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7321:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 10705, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "7321:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + } + ], + "id": 10704, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "7316:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10707, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7316:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint160", + "typeString": "type(uint160)" + } + }, + "id": 10708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7330:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "7316:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + }, + "src": "7308:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10716, + "nodeType": "IfStatement", + "src": "7304:105:29", + "trueBody": { + "id": 10715, + "nodeType": "Block", + "src": "7335:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313630", + "id": 10711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7387:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + }, + { + "id": 10712, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10698, + "src": "7392:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10710, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "7356:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7356:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10714, + "nodeType": "RevertStatement", + "src": "7349:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10719, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10698, + "src": "7433:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7425:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 10717, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "7425:7:29", + "typeDescriptions": {} + } + }, + "id": 10720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7425:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + }, + "functionReturnParameters": 10702, + "id": 10721, + "nodeType": "Return", + "src": "7418:21:29" + } + ] + }, + "documentation": { + "id": 10696, + "nodeType": "StructuredDocumentation", + "src": "6943:280:29", + "text": " @dev Returns the downcasted uint160 from uint256, reverting on\n overflow (when the input is greater than largest uint160).\n Counterpart to Solidity's `uint160` operator.\n Requirements:\n - input must fit into 160 bits" + }, + "id": 10723, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint160", + "nameLocation": "7237:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10698, + "mutability": "mutable", + "name": "value", + "nameLocation": "7255:5:29", + "nodeType": "VariableDeclaration", + "scope": 10723, + "src": "7247:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7247:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7246:15:29" + }, + "returnParameters": { + "id": 10702, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10701, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10723, + "src": "7285:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + }, + "typeName": { + "id": 10700, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "7285:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + }, + "visibility": "internal" + } + ], + "src": "7284:9:29" + }, + "scope": 12125, + "src": "7228:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10750, + "nodeType": "Block", + "src": "7803:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10731, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10726, + "src": "7817:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7830:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint152_$", + "typeString": "type(uint152)" + }, + "typeName": { + "id": 10733, + "name": "uint152", + "nodeType": "ElementaryTypeName", + "src": "7830:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint152_$", + "typeString": "type(uint152)" + } + ], + "id": 10732, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "7825:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7825:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint152", + "typeString": "type(uint152)" + } + }, + "id": 10736, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "7839:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "7825:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + } + }, + "src": "7817:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10744, + "nodeType": "IfStatement", + "src": "7813:105:29", + "trueBody": { + "id": 10743, + "nodeType": "Block", + "src": "7844:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313532", + "id": 10739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7896:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + "value": "152" + }, + { + "id": 10740, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10726, + "src": "7901:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10738, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "7865:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7865:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10742, + "nodeType": "RevertStatement", + "src": "7858:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10747, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10726, + "src": "7942:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7934:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint152_$", + "typeString": "type(uint152)" + }, + "typeName": { + "id": 10745, + "name": "uint152", + "nodeType": "ElementaryTypeName", + "src": "7934:7:29", + "typeDescriptions": {} + } + }, + "id": 10748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7934:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + } + }, + "functionReturnParameters": 10730, + "id": 10749, + "nodeType": "Return", + "src": "7927:21:29" + } + ] + }, + "documentation": { + "id": 10724, + "nodeType": "StructuredDocumentation", + "src": "7452:280:29", + "text": " @dev Returns the downcasted uint152 from uint256, reverting on\n overflow (when the input is greater than largest uint152).\n Counterpart to Solidity's `uint152` operator.\n Requirements:\n - input must fit into 152 bits" + }, + "id": 10751, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint152", + "nameLocation": "7746:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10726, + "mutability": "mutable", + "name": "value", + "nameLocation": "7764:5:29", + "nodeType": "VariableDeclaration", + "scope": 10751, + "src": "7756:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10725, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7756:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7755:15:29" + }, + "returnParameters": { + "id": 10730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10729, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10751, + "src": "7794:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + }, + "typeName": { + "id": 10728, + "name": "uint152", + "nodeType": "ElementaryTypeName", + "src": "7794:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint152", + "typeString": "uint152" + } + }, + "visibility": "internal" + } + ], + "src": "7793:9:29" + }, + "scope": 12125, + "src": "7737:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10778, + "nodeType": "Block", + "src": "8312:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10759, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10754, + "src": "8326:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10762, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8339:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint144_$", + "typeString": "type(uint144)" + }, + "typeName": { + "id": 10761, + "name": "uint144", + "nodeType": "ElementaryTypeName", + "src": "8339:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint144_$", + "typeString": "type(uint144)" + } + ], + "id": 10760, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8334:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8334:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint144", + "typeString": "type(uint144)" + } + }, + "id": 10764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8348:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8334:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + } + }, + "src": "8326:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10772, + "nodeType": "IfStatement", + "src": "8322:105:29", + "trueBody": { + "id": 10771, + "nodeType": "Block", + "src": "8353:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313434", + "id": 10767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8405:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + "value": "144" + }, + { + "id": 10768, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10754, + "src": "8410:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10766, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "8374:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8374:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10770, + "nodeType": "RevertStatement", + "src": "8367:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10775, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10754, + "src": "8451:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8443:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint144_$", + "typeString": "type(uint144)" + }, + "typeName": { + "id": 10773, + "name": "uint144", + "nodeType": "ElementaryTypeName", + "src": "8443:7:29", + "typeDescriptions": {} + } + }, + "id": 10776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8443:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + } + }, + "functionReturnParameters": 10758, + "id": 10777, + "nodeType": "Return", + "src": "8436:21:29" + } + ] + }, + "documentation": { + "id": 10752, + "nodeType": "StructuredDocumentation", + "src": "7961:280:29", + "text": " @dev Returns the downcasted uint144 from uint256, reverting on\n overflow (when the input is greater than largest uint144).\n Counterpart to Solidity's `uint144` operator.\n Requirements:\n - input must fit into 144 bits" + }, + "id": 10779, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint144", + "nameLocation": "8255:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10754, + "mutability": "mutable", + "name": "value", + "nameLocation": "8273:5:29", + "nodeType": "VariableDeclaration", + "scope": 10779, + "src": "8265:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8265:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8264:15:29" + }, + "returnParameters": { + "id": 10758, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10757, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10779, + "src": "8303:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + }, + "typeName": { + "id": 10756, + "name": "uint144", + "nodeType": "ElementaryTypeName", + "src": "8303:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint144", + "typeString": "uint144" + } + }, + "visibility": "internal" + } + ], + "src": "8302:9:29" + }, + "scope": 12125, + "src": "8246:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10806, + "nodeType": "Block", + "src": "8821:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10787, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10782, + "src": "8835:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10790, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8848:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint136_$", + "typeString": "type(uint136)" + }, + "typeName": { + "id": 10789, + "name": "uint136", + "nodeType": "ElementaryTypeName", + "src": "8848:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint136_$", + "typeString": "type(uint136)" + } + ], + "id": 10788, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "8843:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8843:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint136", + "typeString": "type(uint136)" + } + }, + "id": 10792, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8857:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "8843:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + } + }, + "src": "8835:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10800, + "nodeType": "IfStatement", + "src": "8831:105:29", + "trueBody": { + "id": 10799, + "nodeType": "Block", + "src": "8862:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313336", + "id": 10795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8914:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + "value": "136" + }, + { + "id": 10796, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10782, + "src": "8919:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10794, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "8883:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8883:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10798, + "nodeType": "RevertStatement", + "src": "8876:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10803, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10782, + "src": "8960:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10802, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8952:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint136_$", + "typeString": "type(uint136)" + }, + "typeName": { + "id": 10801, + "name": "uint136", + "nodeType": "ElementaryTypeName", + "src": "8952:7:29", + "typeDescriptions": {} + } + }, + "id": 10804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8952:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + } + }, + "functionReturnParameters": 10786, + "id": 10805, + "nodeType": "Return", + "src": "8945:21:29" + } + ] + }, + "documentation": { + "id": 10780, + "nodeType": "StructuredDocumentation", + "src": "8470:280:29", + "text": " @dev Returns the downcasted uint136 from uint256, reverting on\n overflow (when the input is greater than largest uint136).\n Counterpart to Solidity's `uint136` operator.\n Requirements:\n - input must fit into 136 bits" + }, + "id": 10807, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint136", + "nameLocation": "8764:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10783, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10782, + "mutability": "mutable", + "name": "value", + "nameLocation": "8782:5:29", + "nodeType": "VariableDeclaration", + "scope": 10807, + "src": "8774:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10781, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8774:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8773:15:29" + }, + "returnParameters": { + "id": 10786, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10785, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10807, + "src": "8812:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + }, + "typeName": { + "id": 10784, + "name": "uint136", + "nodeType": "ElementaryTypeName", + "src": "8812:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint136", + "typeString": "uint136" + } + }, + "visibility": "internal" + } + ], + "src": "8811:9:29" + }, + "scope": 12125, + "src": "8755:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10834, + "nodeType": "Block", + "src": "9330:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10815, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10810, + "src": "9344:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10818, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9357:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint128_$", + "typeString": "type(uint128)" + }, + "typeName": { + "id": 10817, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "9357:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint128_$", + "typeString": "type(uint128)" + } + ], + "id": 10816, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "9352:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10819, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9352:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint128", + "typeString": "type(uint128)" + } + }, + "id": 10820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "9366:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "9352:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "src": "9344:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10828, + "nodeType": "IfStatement", + "src": "9340:105:29", + "trueBody": { + "id": 10827, + "nodeType": "Block", + "src": "9371:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313238", + "id": 10823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9423:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + { + "id": 10824, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10810, + "src": "9428:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10822, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "9392:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9392:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10826, + "nodeType": "RevertStatement", + "src": "9385:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10831, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10810, + "src": "9469:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9461:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint128_$", + "typeString": "type(uint128)" + }, + "typeName": { + "id": 10829, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "9461:7:29", + "typeDescriptions": {} + } + }, + "id": 10832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9461:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "functionReturnParameters": 10814, + "id": 10833, + "nodeType": "Return", + "src": "9454:21:29" + } + ] + }, + "documentation": { + "id": 10808, + "nodeType": "StructuredDocumentation", + "src": "8979:280:29", + "text": " @dev Returns the downcasted uint128 from uint256, reverting on\n overflow (when the input is greater than largest uint128).\n Counterpart to Solidity's `uint128` operator.\n Requirements:\n - input must fit into 128 bits" + }, + "id": 10835, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint128", + "nameLocation": "9273:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10810, + "mutability": "mutable", + "name": "value", + "nameLocation": "9291:5:29", + "nodeType": "VariableDeclaration", + "scope": 10835, + "src": "9283:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10809, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9283:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9282:15:29" + }, + "returnParameters": { + "id": 10814, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10813, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10835, + "src": "9321:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 10812, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "9321:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "src": "9320:9:29" + }, + "scope": 12125, + "src": "9264:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10862, + "nodeType": "Block", + "src": "9839:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10843, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10838, + "src": "9853:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9866:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint120_$", + "typeString": "type(uint120)" + }, + "typeName": { + "id": 10845, + "name": "uint120", + "nodeType": "ElementaryTypeName", + "src": "9866:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint120_$", + "typeString": "type(uint120)" + } + ], + "id": 10844, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "9861:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9861:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint120", + "typeString": "type(uint120)" + } + }, + "id": 10848, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "9875:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "9861:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + } + }, + "src": "9853:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10856, + "nodeType": "IfStatement", + "src": "9849:105:29", + "trueBody": { + "id": 10855, + "nodeType": "Block", + "src": "9880:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313230", + "id": 10851, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9932:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + "value": "120" + }, + { + "id": 10852, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10838, + "src": "9937:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10850, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "9901:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9901:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10854, + "nodeType": "RevertStatement", + "src": "9894:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10859, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10838, + "src": "9978:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10858, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9970:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint120_$", + "typeString": "type(uint120)" + }, + "typeName": { + "id": 10857, + "name": "uint120", + "nodeType": "ElementaryTypeName", + "src": "9970:7:29", + "typeDescriptions": {} + } + }, + "id": 10860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9970:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + } + }, + "functionReturnParameters": 10842, + "id": 10861, + "nodeType": "Return", + "src": "9963:21:29" + } + ] + }, + "documentation": { + "id": 10836, + "nodeType": "StructuredDocumentation", + "src": "9488:280:29", + "text": " @dev Returns the downcasted uint120 from uint256, reverting on\n overflow (when the input is greater than largest uint120).\n Counterpart to Solidity's `uint120` operator.\n Requirements:\n - input must fit into 120 bits" + }, + "id": 10863, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint120", + "nameLocation": "9782:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10839, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10838, + "mutability": "mutable", + "name": "value", + "nameLocation": "9800:5:29", + "nodeType": "VariableDeclaration", + "scope": 10863, + "src": "9792:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10837, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9792:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9791:15:29" + }, + "returnParameters": { + "id": 10842, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10841, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10863, + "src": "9830:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + }, + "typeName": { + "id": 10840, + "name": "uint120", + "nodeType": "ElementaryTypeName", + "src": "9830:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint120", + "typeString": "uint120" + } + }, + "visibility": "internal" + } + ], + "src": "9829:9:29" + }, + "scope": 12125, + "src": "9773:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10890, + "nodeType": "Block", + "src": "10348:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10871, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10866, + "src": "10362:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10874, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10375:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 10873, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "10375:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + } + ], + "id": 10872, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10370:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10875, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10370:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint112", + "typeString": "type(uint112)" + } + }, + "id": 10876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10384:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10370:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "src": "10362:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10884, + "nodeType": "IfStatement", + "src": "10358:105:29", + "trueBody": { + "id": 10883, + "nodeType": "Block", + "src": "10389:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313132", + "id": 10879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10441:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + { + "id": 10880, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10866, + "src": "10446:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10878, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "10410:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10410:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10882, + "nodeType": "RevertStatement", + "src": "10403:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10887, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10866, + "src": "10487:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10479:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint112_$", + "typeString": "type(uint112)" + }, + "typeName": { + "id": 10885, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "10479:7:29", + "typeDescriptions": {} + } + }, + "id": 10888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10479:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "functionReturnParameters": 10870, + "id": 10889, + "nodeType": "Return", + "src": "10472:21:29" + } + ] + }, + "documentation": { + "id": 10864, + "nodeType": "StructuredDocumentation", + "src": "9997:280:29", + "text": " @dev Returns the downcasted uint112 from uint256, reverting on\n overflow (when the input is greater than largest uint112).\n Counterpart to Solidity's `uint112` operator.\n Requirements:\n - input must fit into 112 bits" + }, + "id": 10891, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint112", + "nameLocation": "10291:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10867, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10866, + "mutability": "mutable", + "name": "value", + "nameLocation": "10309:5:29", + "nodeType": "VariableDeclaration", + "scope": 10891, + "src": "10301:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10865, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10301:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10300:15:29" + }, + "returnParameters": { + "id": 10870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10869, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10891, + "src": "10339:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + }, + "typeName": { + "id": 10868, + "name": "uint112", + "nodeType": "ElementaryTypeName", + "src": "10339:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint112", + "typeString": "uint112" + } + }, + "visibility": "internal" + } + ], + "src": "10338:9:29" + }, + "scope": 12125, + "src": "10282:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10918, + "nodeType": "Block", + "src": "10857:152:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10899, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10894, + "src": "10871:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10884:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint104_$", + "typeString": "type(uint104)" + }, + "typeName": { + "id": 10901, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "10884:7:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint104_$", + "typeString": "type(uint104)" + } + ], + "id": 10900, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "10879:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10879:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint104", + "typeString": "type(uint104)" + } + }, + "id": 10904, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "10893:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "10879:17:29", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "src": "10871:25:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10912, + "nodeType": "IfStatement", + "src": "10867:105:29", + "trueBody": { + "id": 10911, + "nodeType": "Block", + "src": "10898:74:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313034", + "id": 10907, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10950:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + "value": "104" + }, + { + "id": 10908, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10894, + "src": "10955:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10906, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "10919:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10919:42:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10910, + "nodeType": "RevertStatement", + "src": "10912:49:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10915, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10894, + "src": "10996:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10988:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint104_$", + "typeString": "type(uint104)" + }, + "typeName": { + "id": 10913, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "10988:7:29", + "typeDescriptions": {} + } + }, + "id": 10916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10988:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "functionReturnParameters": 10898, + "id": 10917, + "nodeType": "Return", + "src": "10981:21:29" + } + ] + }, + "documentation": { + "id": 10892, + "nodeType": "StructuredDocumentation", + "src": "10506:280:29", + "text": " @dev Returns the downcasted uint104 from uint256, reverting on\n overflow (when the input is greater than largest uint104).\n Counterpart to Solidity's `uint104` operator.\n Requirements:\n - input must fit into 104 bits" + }, + "id": 10919, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint104", + "nameLocation": "10800:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10894, + "mutability": "mutable", + "name": "value", + "nameLocation": "10818:5:29", + "nodeType": "VariableDeclaration", + "scope": 10919, + "src": "10810:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10893, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10810:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10809:15:29" + }, + "returnParameters": { + "id": 10898, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10897, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10919, + "src": "10848:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + }, + "typeName": { + "id": 10896, + "name": "uint104", + "nodeType": "ElementaryTypeName", + "src": "10848:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint104", + "typeString": "uint104" + } + }, + "visibility": "internal" + } + ], + "src": "10847:9:29" + }, + "scope": 12125, + "src": "10791:218:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10946, + "nodeType": "Block", + "src": "11360:149:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10927, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10922, + "src": "11374:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11387:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": { + "id": 10929, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11387:6:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + } + ], + "id": 10928, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "11382:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10931, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11382:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint96", + "typeString": "type(uint96)" + } + }, + "id": 10932, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11395:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "11382:16:29", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "src": "11374:24:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10940, + "nodeType": "IfStatement", + "src": "11370:103:29", + "trueBody": { + "id": 10939, + "nodeType": "Block", + "src": "11400:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3936", + "id": 10935, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11452:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + { + "id": 10936, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10922, + "src": "11456:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10934, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "11421:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11421:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10938, + "nodeType": "RevertStatement", + "src": "11414:48:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10943, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10922, + "src": "11496:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10942, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11489:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint96_$", + "typeString": "type(uint96)" + }, + "typeName": { + "id": 10941, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11489:6:29", + "typeDescriptions": {} + } + }, + "id": 10944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11489:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 10926, + "id": 10945, + "nodeType": "Return", + "src": "11482:20:29" + } + ] + }, + "documentation": { + "id": 10920, + "nodeType": "StructuredDocumentation", + "src": "11015:276:29", + "text": " @dev Returns the downcasted uint96 from uint256, reverting on\n overflow (when the input is greater than largest uint96).\n Counterpart to Solidity's `uint96` operator.\n Requirements:\n - input must fit into 96 bits" + }, + "id": 10947, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint96", + "nameLocation": "11305:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10923, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10922, + "mutability": "mutable", + "name": "value", + "nameLocation": "11322:5:29", + "nodeType": "VariableDeclaration", + "scope": 10947, + "src": "11314:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10921, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11314:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11313:15:29" + }, + "returnParameters": { + "id": 10926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10925, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10947, + "src": "11352:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 10924, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "11352:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "11351:8:29" + }, + "scope": 12125, + "src": "11296:213:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 10974, + "nodeType": "Block", + "src": "11860:149:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10955, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10950, + "src": "11874:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11887:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint88_$", + "typeString": "type(uint88)" + }, + "typeName": { + "id": 10957, + "name": "uint88", + "nodeType": "ElementaryTypeName", + "src": "11887:6:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint88_$", + "typeString": "type(uint88)" + } + ], + "id": 10956, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "11882:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10959, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11882:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint88", + "typeString": "type(uint88)" + } + }, + "id": 10960, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "11895:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "11882:16:29", + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + } + }, + "src": "11874:24:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10968, + "nodeType": "IfStatement", + "src": "11870:103:29", + "trueBody": { + "id": 10967, + "nodeType": "Block", + "src": "11900:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3838", + "id": 10963, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11952:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + "value": "88" + }, + { + "id": 10964, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10950, + "src": "11956:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10962, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "11921:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11921:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10966, + "nodeType": "RevertStatement", + "src": "11914:48:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10971, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10950, + "src": "11996:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11989:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint88_$", + "typeString": "type(uint88)" + }, + "typeName": { + "id": 10969, + "name": "uint88", + "nodeType": "ElementaryTypeName", + "src": "11989:6:29", + "typeDescriptions": {} + } + }, + "id": 10972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11989:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + } + }, + "functionReturnParameters": 10954, + "id": 10973, + "nodeType": "Return", + "src": "11982:20:29" + } + ] + }, + "documentation": { + "id": 10948, + "nodeType": "StructuredDocumentation", + "src": "11515:276:29", + "text": " @dev Returns the downcasted uint88 from uint256, reverting on\n overflow (when the input is greater than largest uint88).\n Counterpart to Solidity's `uint88` operator.\n Requirements:\n - input must fit into 88 bits" + }, + "id": 10975, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint88", + "nameLocation": "11805:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10951, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10950, + "mutability": "mutable", + "name": "value", + "nameLocation": "11822:5:29", + "nodeType": "VariableDeclaration", + "scope": 10975, + "src": "11814:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10949, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11814:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11813:15:29" + }, + "returnParameters": { + "id": 10954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10953, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 10975, + "src": "11852:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + }, + "typeName": { + "id": 10952, + "name": "uint88", + "nodeType": "ElementaryTypeName", + "src": "11852:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint88", + "typeString": "uint88" + } + }, + "visibility": "internal" + } + ], + "src": "11851:8:29" + }, + "scope": 12125, + "src": "11796:213:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11002, + "nodeType": "Block", + "src": "12360:149:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 10983, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10978, + "src": "12374:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 10986, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12387:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint80_$", + "typeString": "type(uint80)" + }, + "typeName": { + "id": 10985, + "name": "uint80", + "nodeType": "ElementaryTypeName", + "src": "12387:6:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint80_$", + "typeString": "type(uint80)" + } + ], + "id": 10984, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "12382:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 10987, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12382:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint80", + "typeString": "type(uint80)" + } + }, + "id": 10988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12395:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "12382:16:29", + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + } + }, + "src": "12374:24:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10996, + "nodeType": "IfStatement", + "src": "12370:103:29", + "trueBody": { + "id": 10995, + "nodeType": "Block", + "src": "12400:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3830", + "id": 10991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12452:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + "value": "80" + }, + { + "id": 10992, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10978, + "src": "12456:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10990, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "12421:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 10993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12421:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 10994, + "nodeType": "RevertStatement", + "src": "12414:48:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 10999, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10978, + "src": "12496:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12489:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint80_$", + "typeString": "type(uint80)" + }, + "typeName": { + "id": 10997, + "name": "uint80", + "nodeType": "ElementaryTypeName", + "src": "12489:6:29", + "typeDescriptions": {} + } + }, + "id": 11000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12489:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + } + }, + "functionReturnParameters": 10982, + "id": 11001, + "nodeType": "Return", + "src": "12482:20:29" + } + ] + }, + "documentation": { + "id": 10976, + "nodeType": "StructuredDocumentation", + "src": "12015:276:29", + "text": " @dev Returns the downcasted uint80 from uint256, reverting on\n overflow (when the input is greater than largest uint80).\n Counterpart to Solidity's `uint80` operator.\n Requirements:\n - input must fit into 80 bits" + }, + "id": 11003, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint80", + "nameLocation": "12305:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10979, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10978, + "mutability": "mutable", + "name": "value", + "nameLocation": "12322:5:29", + "nodeType": "VariableDeclaration", + "scope": 11003, + "src": "12314:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10977, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12314:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12313:15:29" + }, + "returnParameters": { + "id": 10982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10981, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11003, + "src": "12352:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + }, + "typeName": { + "id": 10980, + "name": "uint80", + "nodeType": "ElementaryTypeName", + "src": "12352:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint80", + "typeString": "uint80" + } + }, + "visibility": "internal" + } + ], + "src": "12351:8:29" + }, + "scope": 12125, + "src": "12296:213:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11030, + "nodeType": "Block", + "src": "12860:149:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11011, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11006, + "src": "12874:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 11014, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12887:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint72_$", + "typeString": "type(uint72)" + }, + "typeName": { + "id": 11013, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "12887:6:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint72_$", + "typeString": "type(uint72)" + } + ], + "id": 11012, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "12882:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 11015, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12882:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint72", + "typeString": "type(uint72)" + } + }, + "id": 11016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "12895:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "12882:16:29", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "src": "12874:24:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11024, + "nodeType": "IfStatement", + "src": "12870:103:29", + "trueBody": { + "id": 11023, + "nodeType": "Block", + "src": "12900:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3732", + "id": 11019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12952:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + "value": "72" + }, + { + "id": 11020, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11006, + "src": "12956:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11018, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "12921:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 11021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12921:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11022, + "nodeType": "RevertStatement", + "src": "12914:48:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 11027, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11006, + "src": "12996:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11026, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12989:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint72_$", + "typeString": "type(uint72)" + }, + "typeName": { + "id": 11025, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "12989:6:29", + "typeDescriptions": {} + } + }, + "id": 11028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12989:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "functionReturnParameters": 11010, + "id": 11029, + "nodeType": "Return", + "src": "12982:20:29" + } + ] + }, + "documentation": { + "id": 11004, + "nodeType": "StructuredDocumentation", + "src": "12515:276:29", + "text": " @dev Returns the downcasted uint72 from uint256, reverting on\n overflow (when the input is greater than largest uint72).\n Counterpart to Solidity's `uint72` operator.\n Requirements:\n - input must fit into 72 bits" + }, + "id": 11031, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint72", + "nameLocation": "12805:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11006, + "mutability": "mutable", + "name": "value", + "nameLocation": "12822:5:29", + "nodeType": "VariableDeclaration", + "scope": 11031, + "src": "12814:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12814:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12813:15:29" + }, + "returnParameters": { + "id": 11010, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11009, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11031, + "src": "12852:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + }, + "typeName": { + "id": 11008, + "name": "uint72", + "nodeType": "ElementaryTypeName", + "src": "12852:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint72", + "typeString": "uint72" + } + }, + "visibility": "internal" + } + ], + "src": "12851:8:29" + }, + "scope": 12125, + "src": "12796:213:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11058, + "nodeType": "Block", + "src": "13360:149:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11039, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11034, + "src": "13374:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 11042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13387:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 11041, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13387:6:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + } + ], + "id": 11040, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "13382:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 11043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13382:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint64", + "typeString": "type(uint64)" + } + }, + "id": 11044, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "13395:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "13382:16:29", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "13374:24:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11052, + "nodeType": "IfStatement", + "src": "13370:103:29", + "trueBody": { + "id": 11051, + "nodeType": "Block", + "src": "13400:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3634", + "id": 11047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13452:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + { + "id": 11048, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11034, + "src": "13456:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11046, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "13421:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 11049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13421:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11050, + "nodeType": "RevertStatement", + "src": "13414:48:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 11055, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11034, + "src": "13496:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13489:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 11053, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13489:6:29", + "typeDescriptions": {} + } + }, + "id": 11056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13489:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 11038, + "id": 11057, + "nodeType": "Return", + "src": "13482:20:29" + } + ] + }, + "documentation": { + "id": 11032, + "nodeType": "StructuredDocumentation", + "src": "13015:276:29", + "text": " @dev Returns the downcasted uint64 from uint256, reverting on\n overflow (when the input is greater than largest uint64).\n Counterpart to Solidity's `uint64` operator.\n Requirements:\n - input must fit into 64 bits" + }, + "id": 11059, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint64", + "nameLocation": "13305:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11035, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11034, + "mutability": "mutable", + "name": "value", + "nameLocation": "13322:5:29", + "nodeType": "VariableDeclaration", + "scope": 11059, + "src": "13314:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11033, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13314:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13313:15:29" + }, + "returnParameters": { + "id": 11038, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11037, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11059, + "src": "13352:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 11036, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13352:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "13351:8:29" + }, + "scope": 12125, + "src": "13296:213:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11086, + "nodeType": "Block", + "src": "13860:149:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11067, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11062, + "src": "13874:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 11070, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13887:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint56_$", + "typeString": "type(uint56)" + }, + "typeName": { + "id": 11069, + "name": "uint56", + "nodeType": "ElementaryTypeName", + "src": "13887:6:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint56_$", + "typeString": "type(uint56)" + } + ], + "id": 11068, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "13882:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 11071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13882:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint56", + "typeString": "type(uint56)" + } + }, + "id": 11072, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "13895:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "13882:16:29", + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + } + }, + "src": "13874:24:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11080, + "nodeType": "IfStatement", + "src": "13870:103:29", + "trueBody": { + "id": 11079, + "nodeType": "Block", + "src": "13900:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3536", + "id": 11075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13952:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + "value": "56" + }, + { + "id": 11076, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11062, + "src": "13956:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11074, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "13921:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 11077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13921:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11078, + "nodeType": "RevertStatement", + "src": "13914:48:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 11083, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11062, + "src": "13996:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13989:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint56_$", + "typeString": "type(uint56)" + }, + "typeName": { + "id": 11081, + "name": "uint56", + "nodeType": "ElementaryTypeName", + "src": "13989:6:29", + "typeDescriptions": {} + } + }, + "id": 11084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13989:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + } + }, + "functionReturnParameters": 11066, + "id": 11085, + "nodeType": "Return", + "src": "13982:20:29" + } + ] + }, + "documentation": { + "id": 11060, + "nodeType": "StructuredDocumentation", + "src": "13515:276:29", + "text": " @dev Returns the downcasted uint56 from uint256, reverting on\n overflow (when the input is greater than largest uint56).\n Counterpart to Solidity's `uint56` operator.\n Requirements:\n - input must fit into 56 bits" + }, + "id": 11087, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint56", + "nameLocation": "13805:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11063, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11062, + "mutability": "mutable", + "name": "value", + "nameLocation": "13822:5:29", + "nodeType": "VariableDeclaration", + "scope": 11087, + "src": "13814:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11061, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13814:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13813:15:29" + }, + "returnParameters": { + "id": 11066, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11065, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11087, + "src": "13852:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + }, + "typeName": { + "id": 11064, + "name": "uint56", + "nodeType": "ElementaryTypeName", + "src": "13852:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint56", + "typeString": "uint56" + } + }, + "visibility": "internal" + } + ], + "src": "13851:8:29" + }, + "scope": 12125, + "src": "13796:213:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11114, + "nodeType": "Block", + "src": "14360:149:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11095, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11090, + "src": "14374:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 11098, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14387:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + }, + "typeName": { + "id": 11097, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14387:6:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + } + ], + "id": 11096, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "14382:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 11099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14382:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint48", + "typeString": "type(uint48)" + } + }, + "id": 11100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14395:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "14382:16:29", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "src": "14374:24:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11108, + "nodeType": "IfStatement", + "src": "14370:103:29", + "trueBody": { + "id": 11107, + "nodeType": "Block", + "src": "14400:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3438", + "id": 11103, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14452:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + { + "id": 11104, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11090, + "src": "14456:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11102, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "14421:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 11105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14421:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11106, + "nodeType": "RevertStatement", + "src": "14414:48:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 11111, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11090, + "src": "14496:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14489:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint48_$", + "typeString": "type(uint48)" + }, + "typeName": { + "id": 11109, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14489:6:29", + "typeDescriptions": {} + } + }, + "id": 11112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14489:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "functionReturnParameters": 11094, + "id": 11113, + "nodeType": "Return", + "src": "14482:20:29" + } + ] + }, + "documentation": { + "id": 11088, + "nodeType": "StructuredDocumentation", + "src": "14015:276:29", + "text": " @dev Returns the downcasted uint48 from uint256, reverting on\n overflow (when the input is greater than largest uint48).\n Counterpart to Solidity's `uint48` operator.\n Requirements:\n - input must fit into 48 bits" + }, + "id": 11115, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint48", + "nameLocation": "14305:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11090, + "mutability": "mutable", + "name": "value", + "nameLocation": "14322:5:29", + "nodeType": "VariableDeclaration", + "scope": 11115, + "src": "14314:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14314:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14313:15:29" + }, + "returnParameters": { + "id": 11094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11093, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11115, + "src": "14352:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + }, + "typeName": { + "id": 11092, + "name": "uint48", + "nodeType": "ElementaryTypeName", + "src": "14352:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint48", + "typeString": "uint48" + } + }, + "visibility": "internal" + } + ], + "src": "14351:8:29" + }, + "scope": 12125, + "src": "14296:213:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11142, + "nodeType": "Block", + "src": "14860:149:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11123, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11118, + "src": "14874:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 11126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14887:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint40_$", + "typeString": "type(uint40)" + }, + "typeName": { + "id": 11125, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "14887:6:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint40_$", + "typeString": "type(uint40)" + } + ], + "id": 11124, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "14882:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 11127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14882:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint40", + "typeString": "type(uint40)" + } + }, + "id": 11128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14895:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "14882:16:29", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "src": "14874:24:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11136, + "nodeType": "IfStatement", + "src": "14870:103:29", + "trueBody": { + "id": 11135, + "nodeType": "Block", + "src": "14900:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3430", + "id": 11131, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14952:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + "value": "40" + }, + { + "id": 11132, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11118, + "src": "14956:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11130, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "14921:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 11133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14921:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11134, + "nodeType": "RevertStatement", + "src": "14914:48:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 11139, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11118, + "src": "14996:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14989:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint40_$", + "typeString": "type(uint40)" + }, + "typeName": { + "id": 11137, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "14989:6:29", + "typeDescriptions": {} + } + }, + "id": 11140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14989:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "functionReturnParameters": 11122, + "id": 11141, + "nodeType": "Return", + "src": "14982:20:29" + } + ] + }, + "documentation": { + "id": 11116, + "nodeType": "StructuredDocumentation", + "src": "14515:276:29", + "text": " @dev Returns the downcasted uint40 from uint256, reverting on\n overflow (when the input is greater than largest uint40).\n Counterpart to Solidity's `uint40` operator.\n Requirements:\n - input must fit into 40 bits" + }, + "id": 11143, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint40", + "nameLocation": "14805:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11118, + "mutability": "mutable", + "name": "value", + "nameLocation": "14822:5:29", + "nodeType": "VariableDeclaration", + "scope": 11143, + "src": "14814:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11117, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14814:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14813:15:29" + }, + "returnParameters": { + "id": 11122, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11121, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11143, + "src": "14852:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + }, + "typeName": { + "id": 11120, + "name": "uint40", + "nodeType": "ElementaryTypeName", + "src": "14852:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint40", + "typeString": "uint40" + } + }, + "visibility": "internal" + } + ], + "src": "14851:8:29" + }, + "scope": 12125, + "src": "14796:213:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11170, + "nodeType": "Block", + "src": "15360:149:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11151, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11146, + "src": "15374:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 11154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15387:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 11153, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15387:6:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + } + ], + "id": 11152, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "15382:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 11155, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15382:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint32", + "typeString": "type(uint32)" + } + }, + "id": 11156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15395:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "15382:16:29", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "15374:24:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11164, + "nodeType": "IfStatement", + "src": "15370:103:29", + "trueBody": { + "id": 11163, + "nodeType": "Block", + "src": "15400:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3332", + "id": 11159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15452:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + { + "id": 11160, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11146, + "src": "15456:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11158, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "15421:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 11161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15421:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11162, + "nodeType": "RevertStatement", + "src": "15414:48:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 11167, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11146, + "src": "15496:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11166, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15489:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 11165, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15489:6:29", + "typeDescriptions": {} + } + }, + "id": 11168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15489:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 11150, + "id": 11169, + "nodeType": "Return", + "src": "15482:20:29" + } + ] + }, + "documentation": { + "id": 11144, + "nodeType": "StructuredDocumentation", + "src": "15015:276:29", + "text": " @dev Returns the downcasted uint32 from uint256, reverting on\n overflow (when the input is greater than largest uint32).\n Counterpart to Solidity's `uint32` operator.\n Requirements:\n - input must fit into 32 bits" + }, + "id": 11171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint32", + "nameLocation": "15305:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11146, + "mutability": "mutable", + "name": "value", + "nameLocation": "15322:5:29", + "nodeType": "VariableDeclaration", + "scope": 11171, + "src": "15314:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15314:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15313:15:29" + }, + "returnParameters": { + "id": 11150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11149, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11171, + "src": "15352:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 11148, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "15352:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "15351:8:29" + }, + "scope": 12125, + "src": "15296:213:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11198, + "nodeType": "Block", + "src": "15860:149:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11179, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11174, + "src": "15874:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 11182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15887:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint24_$", + "typeString": "type(uint24)" + }, + "typeName": { + "id": 11181, + "name": "uint24", + "nodeType": "ElementaryTypeName", + "src": "15887:6:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint24_$", + "typeString": "type(uint24)" + } + ], + "id": 11180, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "15882:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 11183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15882:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint24", + "typeString": "type(uint24)" + } + }, + "id": 11184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "15895:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "15882:16:29", + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + } + }, + "src": "15874:24:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11192, + "nodeType": "IfStatement", + "src": "15870:103:29", + "trueBody": { + "id": 11191, + "nodeType": "Block", + "src": "15900:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3234", + "id": 11187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15952:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + { + "id": 11188, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11174, + "src": "15956:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11186, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "15921:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 11189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15921:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11190, + "nodeType": "RevertStatement", + "src": "15914:48:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 11195, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11174, + "src": "15996:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15989:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint24_$", + "typeString": "type(uint24)" + }, + "typeName": { + "id": 11193, + "name": "uint24", + "nodeType": "ElementaryTypeName", + "src": "15989:6:29", + "typeDescriptions": {} + } + }, + "id": 11196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15989:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + } + }, + "functionReturnParameters": 11178, + "id": 11197, + "nodeType": "Return", + "src": "15982:20:29" + } + ] + }, + "documentation": { + "id": 11172, + "nodeType": "StructuredDocumentation", + "src": "15515:276:29", + "text": " @dev Returns the downcasted uint24 from uint256, reverting on\n overflow (when the input is greater than largest uint24).\n Counterpart to Solidity's `uint24` operator.\n Requirements:\n - input must fit into 24 bits" + }, + "id": 11199, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint24", + "nameLocation": "15805:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11175, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11174, + "mutability": "mutable", + "name": "value", + "nameLocation": "15822:5:29", + "nodeType": "VariableDeclaration", + "scope": 11199, + "src": "15814:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15814:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15813:15:29" + }, + "returnParameters": { + "id": 11178, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11177, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11199, + "src": "15852:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + }, + "typeName": { + "id": 11176, + "name": "uint24", + "nodeType": "ElementaryTypeName", + "src": "15852:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint24", + "typeString": "uint24" + } + }, + "visibility": "internal" + } + ], + "src": "15851:8:29" + }, + "scope": 12125, + "src": "15796:213:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11226, + "nodeType": "Block", + "src": "16360:149:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11207, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11202, + "src": "16374:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 11210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16387:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 11209, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "16387:6:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + } + ], + "id": 11208, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "16382:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 11211, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16382:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint16", + "typeString": "type(uint16)" + } + }, + "id": 11212, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16395:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "16382:16:29", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "16374:24:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11220, + "nodeType": "IfStatement", + "src": "16370:103:29", + "trueBody": { + "id": 11219, + "nodeType": "Block", + "src": "16400:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3136", + "id": 11215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16452:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + { + "id": 11216, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11202, + "src": "16456:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11214, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "16421:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 11217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16421:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11218, + "nodeType": "RevertStatement", + "src": "16414:48:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 11223, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11202, + "src": "16496:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16489:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 11221, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "16489:6:29", + "typeDescriptions": {} + } + }, + "id": 11224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16489:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 11206, + "id": 11225, + "nodeType": "Return", + "src": "16482:20:29" + } + ] + }, + "documentation": { + "id": 11200, + "nodeType": "StructuredDocumentation", + "src": "16015:276:29", + "text": " @dev Returns the downcasted uint16 from uint256, reverting on\n overflow (when the input is greater than largest uint16).\n Counterpart to Solidity's `uint16` operator.\n Requirements:\n - input must fit into 16 bits" + }, + "id": 11227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint16", + "nameLocation": "16305:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11203, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11202, + "mutability": "mutable", + "name": "value", + "nameLocation": "16322:5:29", + "nodeType": "VariableDeclaration", + "scope": 11227, + "src": "16314:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16314:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16313:15:29" + }, + "returnParameters": { + "id": 11206, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11205, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11227, + "src": "16352:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 11204, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "16352:6:29", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "src": "16351:8:29" + }, + "scope": 12125, + "src": "16296:213:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11254, + "nodeType": "Block", + "src": "16854:146:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 11241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11235, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11230, + "src": "16868:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "expression": { + "arguments": [ + { + "id": 11238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16881:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 11237, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16881:5:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + } + ], + "id": 11236, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "16876:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 11239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16876:11:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_uint8", + "typeString": "type(uint8)" + } + }, + "id": 11240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "16888:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "16876:15:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "16868:23:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11248, + "nodeType": "IfStatement", + "src": "16864:101:29", + "trueBody": { + "id": 11247, + "nodeType": "Block", + "src": "16893:72:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "38", + "id": 11243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16945:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + { + "id": 11244, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11230, + "src": "16948:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11242, + "name": "SafeCastOverflowedUintDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10370, + "src": "16914:30:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint8,uint256) pure returns (error)" + } + }, + "id": 11245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16914:40:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11246, + "nodeType": "RevertStatement", + "src": "16907:47:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 11251, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11230, + "src": "16987:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 11250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16981:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 11249, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16981:5:29", + "typeDescriptions": {} + } + }, + "id": 11252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16981:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 11234, + "id": 11253, + "nodeType": "Return", + "src": "16974:19:29" + } + ] + }, + "documentation": { + "id": 11228, + "nodeType": "StructuredDocumentation", + "src": "16515:272:29", + "text": " @dev Returns the downcasted uint8 from uint256, reverting on\n overflow (when the input is greater than largest uint8).\n Counterpart to Solidity's `uint8` operator.\n Requirements:\n - input must fit into 8 bits" + }, + "id": 11255, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint8", + "nameLocation": "16801:7:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11230, + "mutability": "mutable", + "name": "value", + "nameLocation": "16817:5:29", + "nodeType": "VariableDeclaration", + "scope": 11255, + "src": "16809:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11229, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16809:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16808:15:29" + }, + "returnParameters": { + "id": 11234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11233, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11255, + "src": "16847:5:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 11232, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "16847:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "16846:7:29" + }, + "scope": 12125, + "src": "16792:208:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11277, + "nodeType": "Block", + "src": "17236:128:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11263, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11258, + "src": "17250:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "30", + "id": 11264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17258:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17250:9:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11271, + "nodeType": "IfStatement", + "src": "17246:81:29", + "trueBody": { + "id": 11270, + "nodeType": "Block", + "src": "17261:66:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 11267, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11258, + "src": "17310:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11266, + "name": "SafeCastOverflowedIntToUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10375, + "src": "17282:27:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_int256_$returns$_t_error_$", + "typeString": "function (int256) pure returns (error)" + } + }, + "id": 11268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17282:34:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11269, + "nodeType": "RevertStatement", + "src": "17275:41:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 11274, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11258, + "src": "17351:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17343:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 11272, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17343:7:29", + "typeDescriptions": {} + } + }, + "id": 11275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17343:14:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 11262, + "id": 11276, + "nodeType": "Return", + "src": "17336:21:29" + } + ] + }, + "documentation": { + "id": 11256, + "nodeType": "StructuredDocumentation", + "src": "17006:160:29", + "text": " @dev Converts a signed int256 into an unsigned uint256.\n Requirements:\n - input must be greater than or equal to 0." + }, + "id": 11278, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint256", + "nameLocation": "17180:9:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11258, + "mutability": "mutable", + "name": "value", + "nameLocation": "17197:5:29", + "nodeType": "VariableDeclaration", + "scope": 11278, + "src": "17190:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11257, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "17190:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "17189:14:29" + }, + "returnParameters": { + "id": 11262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11261, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 11278, + "src": "17227:7:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 11260, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17227:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17226:9:29" + }, + "scope": 12125, + "src": "17171:193:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11303, + "nodeType": "Block", + "src": "17761:150:29", + "statements": [ + { + "expression": { + "id": 11291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11286, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11284, + "src": "17771:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11289, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11281, + "src": "17791:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17784:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int248_$", + "typeString": "type(int248)" + }, + "typeName": { + "id": 11287, + "name": "int248", + "nodeType": "ElementaryTypeName", + "src": "17784:6:29", + "typeDescriptions": {} + } + }, + "id": 11290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17784:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "src": "17771:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "id": 11292, + "nodeType": "ExpressionStatement", + "src": "17771:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11293, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11284, + "src": "17811:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11294, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11281, + "src": "17825:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "17811:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11302, + "nodeType": "IfStatement", + "src": "17807:98:29", + "trueBody": { + "id": 11301, + "nodeType": "Block", + "src": "17832:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323438", + "id": 11297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17883:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + "value": "248" + }, + { + "id": 11298, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11281, + "src": "17888:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_248_by_1", + "typeString": "int_const 248" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11296, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "17853:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17853:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11300, + "nodeType": "RevertStatement", + "src": "17846:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11279, + "nodeType": "StructuredDocumentation", + "src": "17370:312:29", + "text": " @dev Returns the downcasted int248 from int256, reverting on\n overflow (when the input is less than smallest int248 or\n greater than largest int248).\n Counterpart to Solidity's `int248` operator.\n Requirements:\n - input must fit into 248 bits" + }, + "id": 11304, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt248", + "nameLocation": "17696:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11282, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11281, + "mutability": "mutable", + "name": "value", + "nameLocation": "17712:5:29", + "nodeType": "VariableDeclaration", + "scope": 11304, + "src": "17705:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11280, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "17705:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "17704:14:29" + }, + "returnParameters": { + "id": 11285, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11284, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "17749:10:29", + "nodeType": "VariableDeclaration", + "scope": 11304, + "src": "17742:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + }, + "typeName": { + "id": 11283, + "name": "int248", + "nodeType": "ElementaryTypeName", + "src": "17742:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int248", + "typeString": "int248" + } + }, + "visibility": "internal" + } + ], + "src": "17741:19:29" + }, + "scope": 12125, + "src": "17687:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11329, + "nodeType": "Block", + "src": "18308:150:29", + "statements": [ + { + "expression": { + "id": 11317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11312, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11310, + "src": "18318:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11315, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11307, + "src": "18338:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18331:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int240_$", + "typeString": "type(int240)" + }, + "typeName": { + "id": 11313, + "name": "int240", + "nodeType": "ElementaryTypeName", + "src": "18331:6:29", + "typeDescriptions": {} + } + }, + "id": 11316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18331:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "src": "18318:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "id": 11318, + "nodeType": "ExpressionStatement", + "src": "18318:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11319, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11310, + "src": "18358:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11320, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11307, + "src": "18372:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "18358:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11328, + "nodeType": "IfStatement", + "src": "18354:98:29", + "trueBody": { + "id": 11327, + "nodeType": "Block", + "src": "18379:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323430", + "id": 11323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18430:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + "value": "240" + }, + { + "id": 11324, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11307, + "src": "18435:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_240_by_1", + "typeString": "int_const 240" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11322, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "18400:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18400:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11326, + "nodeType": "RevertStatement", + "src": "18393:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11305, + "nodeType": "StructuredDocumentation", + "src": "17917:312:29", + "text": " @dev Returns the downcasted int240 from int256, reverting on\n overflow (when the input is less than smallest int240 or\n greater than largest int240).\n Counterpart to Solidity's `int240` operator.\n Requirements:\n - input must fit into 240 bits" + }, + "id": 11330, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt240", + "nameLocation": "18243:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11308, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11307, + "mutability": "mutable", + "name": "value", + "nameLocation": "18259:5:29", + "nodeType": "VariableDeclaration", + "scope": 11330, + "src": "18252:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11306, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "18252:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "18251:14:29" + }, + "returnParameters": { + "id": 11311, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11310, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "18296:10:29", + "nodeType": "VariableDeclaration", + "scope": 11330, + "src": "18289:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + }, + "typeName": { + "id": 11309, + "name": "int240", + "nodeType": "ElementaryTypeName", + "src": "18289:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int240", + "typeString": "int240" + } + }, + "visibility": "internal" + } + ], + "src": "18288:19:29" + }, + "scope": 12125, + "src": "18234:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11355, + "nodeType": "Block", + "src": "18855:150:29", + "statements": [ + { + "expression": { + "id": 11343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11338, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11336, + "src": "18865:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11341, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11333, + "src": "18885:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18878:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int232_$", + "typeString": "type(int232)" + }, + "typeName": { + "id": 11339, + "name": "int232", + "nodeType": "ElementaryTypeName", + "src": "18878:6:29", + "typeDescriptions": {} + } + }, + "id": 11342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18878:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "src": "18865:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "id": 11344, + "nodeType": "ExpressionStatement", + "src": "18865:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11345, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11336, + "src": "18905:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11346, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11333, + "src": "18919:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "18905:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11354, + "nodeType": "IfStatement", + "src": "18901:98:29", + "trueBody": { + "id": 11353, + "nodeType": "Block", + "src": "18926:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323332", + "id": 11349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18977:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + "value": "232" + }, + { + "id": 11350, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11333, + "src": "18982:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_232_by_1", + "typeString": "int_const 232" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11348, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "18947:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18947:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11352, + "nodeType": "RevertStatement", + "src": "18940:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11331, + "nodeType": "StructuredDocumentation", + "src": "18464:312:29", + "text": " @dev Returns the downcasted int232 from int256, reverting on\n overflow (when the input is less than smallest int232 or\n greater than largest int232).\n Counterpart to Solidity's `int232` operator.\n Requirements:\n - input must fit into 232 bits" + }, + "id": 11356, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt232", + "nameLocation": "18790:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11333, + "mutability": "mutable", + "name": "value", + "nameLocation": "18806:5:29", + "nodeType": "VariableDeclaration", + "scope": 11356, + "src": "18799:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11332, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "18799:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "18798:14:29" + }, + "returnParameters": { + "id": 11337, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11336, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "18843:10:29", + "nodeType": "VariableDeclaration", + "scope": 11356, + "src": "18836:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + }, + "typeName": { + "id": 11335, + "name": "int232", + "nodeType": "ElementaryTypeName", + "src": "18836:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int232", + "typeString": "int232" + } + }, + "visibility": "internal" + } + ], + "src": "18835:19:29" + }, + "scope": 12125, + "src": "18781:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11381, + "nodeType": "Block", + "src": "19402:150:29", + "statements": [ + { + "expression": { + "id": 11369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11364, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11362, + "src": "19412:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11367, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11359, + "src": "19432:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11366, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19425:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int224_$", + "typeString": "type(int224)" + }, + "typeName": { + "id": 11365, + "name": "int224", + "nodeType": "ElementaryTypeName", + "src": "19425:6:29", + "typeDescriptions": {} + } + }, + "id": 11368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19425:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "src": "19412:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "id": 11370, + "nodeType": "ExpressionStatement", + "src": "19412:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11371, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11362, + "src": "19452:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11359, + "src": "19466:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "19452:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11380, + "nodeType": "IfStatement", + "src": "19448:98:29", + "trueBody": { + "id": 11379, + "nodeType": "Block", + "src": "19473:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323234", + "id": 11375, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19524:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + "value": "224" + }, + { + "id": 11376, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11359, + "src": "19529:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_224_by_1", + "typeString": "int_const 224" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11374, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "19494:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19494:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11378, + "nodeType": "RevertStatement", + "src": "19487:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11357, + "nodeType": "StructuredDocumentation", + "src": "19011:312:29", + "text": " @dev Returns the downcasted int224 from int256, reverting on\n overflow (when the input is less than smallest int224 or\n greater than largest int224).\n Counterpart to Solidity's `int224` operator.\n Requirements:\n - input must fit into 224 bits" + }, + "id": 11382, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt224", + "nameLocation": "19337:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11359, + "mutability": "mutable", + "name": "value", + "nameLocation": "19353:5:29", + "nodeType": "VariableDeclaration", + "scope": 11382, + "src": "19346:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11358, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "19346:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "19345:14:29" + }, + "returnParameters": { + "id": 11363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11362, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "19390:10:29", + "nodeType": "VariableDeclaration", + "scope": 11382, + "src": "19383:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + }, + "typeName": { + "id": 11361, + "name": "int224", + "nodeType": "ElementaryTypeName", + "src": "19383:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int224", + "typeString": "int224" + } + }, + "visibility": "internal" + } + ], + "src": "19382:19:29" + }, + "scope": 12125, + "src": "19328:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11407, + "nodeType": "Block", + "src": "19949:150:29", + "statements": [ + { + "expression": { + "id": 11395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11390, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11388, + "src": "19959:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11393, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11385, + "src": "19979:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11392, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19972:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int216_$", + "typeString": "type(int216)" + }, + "typeName": { + "id": 11391, + "name": "int216", + "nodeType": "ElementaryTypeName", + "src": "19972:6:29", + "typeDescriptions": {} + } + }, + "id": 11394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19972:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "src": "19959:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "id": 11396, + "nodeType": "ExpressionStatement", + "src": "19959:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11397, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11388, + "src": "19999:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11398, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11385, + "src": "20013:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "19999:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11406, + "nodeType": "IfStatement", + "src": "19995:98:29", + "trueBody": { + "id": 11405, + "nodeType": "Block", + "src": "20020:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323136", + "id": 11401, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20071:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + "value": "216" + }, + { + "id": 11402, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11385, + "src": "20076:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_216_by_1", + "typeString": "int_const 216" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11400, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "20041:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20041:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11404, + "nodeType": "RevertStatement", + "src": "20034:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11383, + "nodeType": "StructuredDocumentation", + "src": "19558:312:29", + "text": " @dev Returns the downcasted int216 from int256, reverting on\n overflow (when the input is less than smallest int216 or\n greater than largest int216).\n Counterpart to Solidity's `int216` operator.\n Requirements:\n - input must fit into 216 bits" + }, + "id": 11408, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt216", + "nameLocation": "19884:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11386, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11385, + "mutability": "mutable", + "name": "value", + "nameLocation": "19900:5:29", + "nodeType": "VariableDeclaration", + "scope": 11408, + "src": "19893:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11384, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "19893:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "19892:14:29" + }, + "returnParameters": { + "id": 11389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11388, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "19937:10:29", + "nodeType": "VariableDeclaration", + "scope": 11408, + "src": "19930:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + }, + "typeName": { + "id": 11387, + "name": "int216", + "nodeType": "ElementaryTypeName", + "src": "19930:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int216", + "typeString": "int216" + } + }, + "visibility": "internal" + } + ], + "src": "19929:19:29" + }, + "scope": 12125, + "src": "19875:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11433, + "nodeType": "Block", + "src": "20496:150:29", + "statements": [ + { + "expression": { + "id": 11421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11416, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11414, + "src": "20506:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11419, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11411, + "src": "20526:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11418, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20519:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int208_$", + "typeString": "type(int208)" + }, + "typeName": { + "id": 11417, + "name": "int208", + "nodeType": "ElementaryTypeName", + "src": "20519:6:29", + "typeDescriptions": {} + } + }, + "id": 11420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20519:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "src": "20506:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "id": 11422, + "nodeType": "ExpressionStatement", + "src": "20506:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11423, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11414, + "src": "20546:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11424, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11411, + "src": "20560:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "20546:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11432, + "nodeType": "IfStatement", + "src": "20542:98:29", + "trueBody": { + "id": 11431, + "nodeType": "Block", + "src": "20567:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323038", + "id": 11427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20618:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + "value": "208" + }, + { + "id": 11428, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11411, + "src": "20623:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_208_by_1", + "typeString": "int_const 208" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11426, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "20588:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20588:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11430, + "nodeType": "RevertStatement", + "src": "20581:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11409, + "nodeType": "StructuredDocumentation", + "src": "20105:312:29", + "text": " @dev Returns the downcasted int208 from int256, reverting on\n overflow (when the input is less than smallest int208 or\n greater than largest int208).\n Counterpart to Solidity's `int208` operator.\n Requirements:\n - input must fit into 208 bits" + }, + "id": 11434, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt208", + "nameLocation": "20431:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11412, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11411, + "mutability": "mutable", + "name": "value", + "nameLocation": "20447:5:29", + "nodeType": "VariableDeclaration", + "scope": 11434, + "src": "20440:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11410, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "20440:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "20439:14:29" + }, + "returnParameters": { + "id": 11415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11414, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "20484:10:29", + "nodeType": "VariableDeclaration", + "scope": 11434, + "src": "20477:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + }, + "typeName": { + "id": 11413, + "name": "int208", + "nodeType": "ElementaryTypeName", + "src": "20477:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int208", + "typeString": "int208" + } + }, + "visibility": "internal" + } + ], + "src": "20476:19:29" + }, + "scope": 12125, + "src": "20422:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11459, + "nodeType": "Block", + "src": "21043:150:29", + "statements": [ + { + "expression": { + "id": 11447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11442, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11440, + "src": "21053:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11445, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11437, + "src": "21073:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21066:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int200_$", + "typeString": "type(int200)" + }, + "typeName": { + "id": 11443, + "name": "int200", + "nodeType": "ElementaryTypeName", + "src": "21066:6:29", + "typeDescriptions": {} + } + }, + "id": 11446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21066:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "src": "21053:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "id": 11448, + "nodeType": "ExpressionStatement", + "src": "21053:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11449, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11440, + "src": "21093:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11450, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11437, + "src": "21107:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "21093:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11458, + "nodeType": "IfStatement", + "src": "21089:98:29", + "trueBody": { + "id": 11457, + "nodeType": "Block", + "src": "21114:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "323030", + "id": 11453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21165:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + "value": "200" + }, + { + "id": 11454, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11437, + "src": "21170:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_200_by_1", + "typeString": "int_const 200" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11452, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "21135:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21135:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11456, + "nodeType": "RevertStatement", + "src": "21128:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11435, + "nodeType": "StructuredDocumentation", + "src": "20652:312:29", + "text": " @dev Returns the downcasted int200 from int256, reverting on\n overflow (when the input is less than smallest int200 or\n greater than largest int200).\n Counterpart to Solidity's `int200` operator.\n Requirements:\n - input must fit into 200 bits" + }, + "id": 11460, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt200", + "nameLocation": "20978:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11438, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11437, + "mutability": "mutable", + "name": "value", + "nameLocation": "20994:5:29", + "nodeType": "VariableDeclaration", + "scope": 11460, + "src": "20987:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11436, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "20987:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "20986:14:29" + }, + "returnParameters": { + "id": 11441, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11440, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "21031:10:29", + "nodeType": "VariableDeclaration", + "scope": 11460, + "src": "21024:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + }, + "typeName": { + "id": 11439, + "name": "int200", + "nodeType": "ElementaryTypeName", + "src": "21024:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int200", + "typeString": "int200" + } + }, + "visibility": "internal" + } + ], + "src": "21023:19:29" + }, + "scope": 12125, + "src": "20969:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11485, + "nodeType": "Block", + "src": "21590:150:29", + "statements": [ + { + "expression": { + "id": 11473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11468, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11466, + "src": "21600:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11471, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11463, + "src": "21620:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21613:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int192_$", + "typeString": "type(int192)" + }, + "typeName": { + "id": 11469, + "name": "int192", + "nodeType": "ElementaryTypeName", + "src": "21613:6:29", + "typeDescriptions": {} + } + }, + "id": 11472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21613:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "src": "21600:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "id": 11474, + "nodeType": "ExpressionStatement", + "src": "21600:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11475, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11466, + "src": "21640:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11476, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11463, + "src": "21654:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "21640:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11484, + "nodeType": "IfStatement", + "src": "21636:98:29", + "trueBody": { + "id": 11483, + "nodeType": "Block", + "src": "21661:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313932", + "id": 11479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21712:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + "value": "192" + }, + { + "id": 11480, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11463, + "src": "21717:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_192_by_1", + "typeString": "int_const 192" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11478, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "21682:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21682:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11482, + "nodeType": "RevertStatement", + "src": "21675:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11461, + "nodeType": "StructuredDocumentation", + "src": "21199:312:29", + "text": " @dev Returns the downcasted int192 from int256, reverting on\n overflow (when the input is less than smallest int192 or\n greater than largest int192).\n Counterpart to Solidity's `int192` operator.\n Requirements:\n - input must fit into 192 bits" + }, + "id": 11486, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt192", + "nameLocation": "21525:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11463, + "mutability": "mutable", + "name": "value", + "nameLocation": "21541:5:29", + "nodeType": "VariableDeclaration", + "scope": 11486, + "src": "21534:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11462, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "21534:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "21533:14:29" + }, + "returnParameters": { + "id": 11467, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11466, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "21578:10:29", + "nodeType": "VariableDeclaration", + "scope": 11486, + "src": "21571:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + }, + "typeName": { + "id": 11465, + "name": "int192", + "nodeType": "ElementaryTypeName", + "src": "21571:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int192", + "typeString": "int192" + } + }, + "visibility": "internal" + } + ], + "src": "21570:19:29" + }, + "scope": 12125, + "src": "21516:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11511, + "nodeType": "Block", + "src": "22137:150:29", + "statements": [ + { + "expression": { + "id": 11499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11494, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11492, + "src": "22147:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11497, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11489, + "src": "22167:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11496, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22160:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int184_$", + "typeString": "type(int184)" + }, + "typeName": { + "id": 11495, + "name": "int184", + "nodeType": "ElementaryTypeName", + "src": "22160:6:29", + "typeDescriptions": {} + } + }, + "id": 11498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22160:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "src": "22147:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "id": 11500, + "nodeType": "ExpressionStatement", + "src": "22147:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11501, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11492, + "src": "22187:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11502, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11489, + "src": "22201:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "22187:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11510, + "nodeType": "IfStatement", + "src": "22183:98:29", + "trueBody": { + "id": 11509, + "nodeType": "Block", + "src": "22208:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313834", + "id": 11505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22259:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + "value": "184" + }, + { + "id": 11506, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11489, + "src": "22264:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_184_by_1", + "typeString": "int_const 184" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11504, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "22229:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22229:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11508, + "nodeType": "RevertStatement", + "src": "22222:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11487, + "nodeType": "StructuredDocumentation", + "src": "21746:312:29", + "text": " @dev Returns the downcasted int184 from int256, reverting on\n overflow (when the input is less than smallest int184 or\n greater than largest int184).\n Counterpart to Solidity's `int184` operator.\n Requirements:\n - input must fit into 184 bits" + }, + "id": 11512, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt184", + "nameLocation": "22072:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11489, + "mutability": "mutable", + "name": "value", + "nameLocation": "22088:5:29", + "nodeType": "VariableDeclaration", + "scope": 11512, + "src": "22081:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11488, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "22081:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:14:29" + }, + "returnParameters": { + "id": 11493, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11492, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "22125:10:29", + "nodeType": "VariableDeclaration", + "scope": 11512, + "src": "22118:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + }, + "typeName": { + "id": 11491, + "name": "int184", + "nodeType": "ElementaryTypeName", + "src": "22118:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int184", + "typeString": "int184" + } + }, + "visibility": "internal" + } + ], + "src": "22117:19:29" + }, + "scope": 12125, + "src": "22063:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11537, + "nodeType": "Block", + "src": "22684:150:29", + "statements": [ + { + "expression": { + "id": 11525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11520, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11518, + "src": "22694:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11523, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11515, + "src": "22714:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22707:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int176_$", + "typeString": "type(int176)" + }, + "typeName": { + "id": 11521, + "name": "int176", + "nodeType": "ElementaryTypeName", + "src": "22707:6:29", + "typeDescriptions": {} + } + }, + "id": 11524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22707:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "src": "22694:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "id": 11526, + "nodeType": "ExpressionStatement", + "src": "22694:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11529, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11527, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11518, + "src": "22734:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11528, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11515, + "src": "22748:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "22734:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11536, + "nodeType": "IfStatement", + "src": "22730:98:29", + "trueBody": { + "id": 11535, + "nodeType": "Block", + "src": "22755:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313736", + "id": 11531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22806:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + "value": "176" + }, + { + "id": 11532, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11515, + "src": "22811:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_176_by_1", + "typeString": "int_const 176" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11530, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "22776:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22776:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11534, + "nodeType": "RevertStatement", + "src": "22769:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11513, + "nodeType": "StructuredDocumentation", + "src": "22293:312:29", + "text": " @dev Returns the downcasted int176 from int256, reverting on\n overflow (when the input is less than smallest int176 or\n greater than largest int176).\n Counterpart to Solidity's `int176` operator.\n Requirements:\n - input must fit into 176 bits" + }, + "id": 11538, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt176", + "nameLocation": "22619:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11516, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11515, + "mutability": "mutable", + "name": "value", + "nameLocation": "22635:5:29", + "nodeType": "VariableDeclaration", + "scope": 11538, + "src": "22628:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11514, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "22628:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "22627:14:29" + }, + "returnParameters": { + "id": 11519, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11518, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "22672:10:29", + "nodeType": "VariableDeclaration", + "scope": 11538, + "src": "22665:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + }, + "typeName": { + "id": 11517, + "name": "int176", + "nodeType": "ElementaryTypeName", + "src": "22665:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int176", + "typeString": "int176" + } + }, + "visibility": "internal" + } + ], + "src": "22664:19:29" + }, + "scope": 12125, + "src": "22610:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11563, + "nodeType": "Block", + "src": "23231:150:29", + "statements": [ + { + "expression": { + "id": 11551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11546, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11544, + "src": "23241:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11549, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11541, + "src": "23261:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "23254:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int168_$", + "typeString": "type(int168)" + }, + "typeName": { + "id": 11547, + "name": "int168", + "nodeType": "ElementaryTypeName", + "src": "23254:6:29", + "typeDescriptions": {} + } + }, + "id": 11550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23254:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "src": "23241:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "id": 11552, + "nodeType": "ExpressionStatement", + "src": "23241:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11553, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11544, + "src": "23281:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11554, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11541, + "src": "23295:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "23281:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11562, + "nodeType": "IfStatement", + "src": "23277:98:29", + "trueBody": { + "id": 11561, + "nodeType": "Block", + "src": "23302:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313638", + "id": 11557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23353:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + "value": "168" + }, + { + "id": 11558, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11541, + "src": "23358:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_168_by_1", + "typeString": "int_const 168" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11556, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "23323:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23323:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11560, + "nodeType": "RevertStatement", + "src": "23316:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11539, + "nodeType": "StructuredDocumentation", + "src": "22840:312:29", + "text": " @dev Returns the downcasted int168 from int256, reverting on\n overflow (when the input is less than smallest int168 or\n greater than largest int168).\n Counterpart to Solidity's `int168` operator.\n Requirements:\n - input must fit into 168 bits" + }, + "id": 11564, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt168", + "nameLocation": "23166:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11542, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11541, + "mutability": "mutable", + "name": "value", + "nameLocation": "23182:5:29", + "nodeType": "VariableDeclaration", + "scope": 11564, + "src": "23175:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11540, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "23175:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "23174:14:29" + }, + "returnParameters": { + "id": 11545, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11544, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "23219:10:29", + "nodeType": "VariableDeclaration", + "scope": 11564, + "src": "23212:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + }, + "typeName": { + "id": 11543, + "name": "int168", + "nodeType": "ElementaryTypeName", + "src": "23212:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int168", + "typeString": "int168" + } + }, + "visibility": "internal" + } + ], + "src": "23211:19:29" + }, + "scope": 12125, + "src": "23157:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11589, + "nodeType": "Block", + "src": "23778:150:29", + "statements": [ + { + "expression": { + "id": 11577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11572, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11570, + "src": "23788:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11575, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11567, + "src": "23808:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "23801:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int160_$", + "typeString": "type(int160)" + }, + "typeName": { + "id": 11573, + "name": "int160", + "nodeType": "ElementaryTypeName", + "src": "23801:6:29", + "typeDescriptions": {} + } + }, + "id": 11576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23801:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "src": "23788:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "id": 11578, + "nodeType": "ExpressionStatement", + "src": "23788:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11579, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11570, + "src": "23828:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11580, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11567, + "src": "23842:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "23828:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11588, + "nodeType": "IfStatement", + "src": "23824:98:29", + "trueBody": { + "id": 11587, + "nodeType": "Block", + "src": "23849:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313630", + "id": 11583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23900:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + "value": "160" + }, + { + "id": 11584, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11567, + "src": "23905:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_160_by_1", + "typeString": "int_const 160" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11582, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "23870:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23870:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11586, + "nodeType": "RevertStatement", + "src": "23863:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11565, + "nodeType": "StructuredDocumentation", + "src": "23387:312:29", + "text": " @dev Returns the downcasted int160 from int256, reverting on\n overflow (when the input is less than smallest int160 or\n greater than largest int160).\n Counterpart to Solidity's `int160` operator.\n Requirements:\n - input must fit into 160 bits" + }, + "id": 11590, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt160", + "nameLocation": "23713:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11567, + "mutability": "mutable", + "name": "value", + "nameLocation": "23729:5:29", + "nodeType": "VariableDeclaration", + "scope": 11590, + "src": "23722:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11566, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "23722:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "23721:14:29" + }, + "returnParameters": { + "id": 11571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11570, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "23766:10:29", + "nodeType": "VariableDeclaration", + "scope": 11590, + "src": "23759:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + }, + "typeName": { + "id": 11569, + "name": "int160", + "nodeType": "ElementaryTypeName", + "src": "23759:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int160", + "typeString": "int160" + } + }, + "visibility": "internal" + } + ], + "src": "23758:19:29" + }, + "scope": 12125, + "src": "23704:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11615, + "nodeType": "Block", + "src": "24325:150:29", + "statements": [ + { + "expression": { + "id": 11603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11598, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11596, + "src": "24335:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11601, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11593, + "src": "24355:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11600, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "24348:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int152_$", + "typeString": "type(int152)" + }, + "typeName": { + "id": 11599, + "name": "int152", + "nodeType": "ElementaryTypeName", + "src": "24348:6:29", + "typeDescriptions": {} + } + }, + "id": 11602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24348:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "src": "24335:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "id": 11604, + "nodeType": "ExpressionStatement", + "src": "24335:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11605, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11596, + "src": "24375:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11606, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11593, + "src": "24389:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "24375:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11614, + "nodeType": "IfStatement", + "src": "24371:98:29", + "trueBody": { + "id": 11613, + "nodeType": "Block", + "src": "24396:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313532", + "id": 11609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24447:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + "value": "152" + }, + { + "id": 11610, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11593, + "src": "24452:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_152_by_1", + "typeString": "int_const 152" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11608, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "24417:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24417:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11612, + "nodeType": "RevertStatement", + "src": "24410:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11591, + "nodeType": "StructuredDocumentation", + "src": "23934:312:29", + "text": " @dev Returns the downcasted int152 from int256, reverting on\n overflow (when the input is less than smallest int152 or\n greater than largest int152).\n Counterpart to Solidity's `int152` operator.\n Requirements:\n - input must fit into 152 bits" + }, + "id": 11616, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt152", + "nameLocation": "24260:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11594, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11593, + "mutability": "mutable", + "name": "value", + "nameLocation": "24276:5:29", + "nodeType": "VariableDeclaration", + "scope": 11616, + "src": "24269:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11592, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "24269:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "24268:14:29" + }, + "returnParameters": { + "id": 11597, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11596, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "24313:10:29", + "nodeType": "VariableDeclaration", + "scope": 11616, + "src": "24306:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + }, + "typeName": { + "id": 11595, + "name": "int152", + "nodeType": "ElementaryTypeName", + "src": "24306:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int152", + "typeString": "int152" + } + }, + "visibility": "internal" + } + ], + "src": "24305:19:29" + }, + "scope": 12125, + "src": "24251:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11641, + "nodeType": "Block", + "src": "24872:150:29", + "statements": [ + { + "expression": { + "id": 11629, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11624, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11622, + "src": "24882:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11627, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11619, + "src": "24902:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "24895:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int144_$", + "typeString": "type(int144)" + }, + "typeName": { + "id": 11625, + "name": "int144", + "nodeType": "ElementaryTypeName", + "src": "24895:6:29", + "typeDescriptions": {} + } + }, + "id": 11628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24895:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "src": "24882:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "id": 11630, + "nodeType": "ExpressionStatement", + "src": "24882:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11633, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11631, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11622, + "src": "24922:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11632, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11619, + "src": "24936:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "24922:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11640, + "nodeType": "IfStatement", + "src": "24918:98:29", + "trueBody": { + "id": 11639, + "nodeType": "Block", + "src": "24943:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313434", + "id": 11635, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24994:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + "value": "144" + }, + { + "id": 11636, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11619, + "src": "24999:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_144_by_1", + "typeString": "int_const 144" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11634, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "24964:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "24964:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11638, + "nodeType": "RevertStatement", + "src": "24957:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11617, + "nodeType": "StructuredDocumentation", + "src": "24481:312:29", + "text": " @dev Returns the downcasted int144 from int256, reverting on\n overflow (when the input is less than smallest int144 or\n greater than largest int144).\n Counterpart to Solidity's `int144` operator.\n Requirements:\n - input must fit into 144 bits" + }, + "id": 11642, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt144", + "nameLocation": "24807:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11619, + "mutability": "mutable", + "name": "value", + "nameLocation": "24823:5:29", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "24816:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11618, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "24816:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "24815:14:29" + }, + "returnParameters": { + "id": 11623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11622, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "24860:10:29", + "nodeType": "VariableDeclaration", + "scope": 11642, + "src": "24853:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + }, + "typeName": { + "id": 11621, + "name": "int144", + "nodeType": "ElementaryTypeName", + "src": "24853:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int144", + "typeString": "int144" + } + }, + "visibility": "internal" + } + ], + "src": "24852:19:29" + }, + "scope": 12125, + "src": "24798:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11667, + "nodeType": "Block", + "src": "25419:150:29", + "statements": [ + { + "expression": { + "id": 11655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11650, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11648, + "src": "25429:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11653, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11645, + "src": "25449:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11652, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "25442:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int136_$", + "typeString": "type(int136)" + }, + "typeName": { + "id": 11651, + "name": "int136", + "nodeType": "ElementaryTypeName", + "src": "25442:6:29", + "typeDescriptions": {} + } + }, + "id": 11654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25442:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "src": "25429:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "id": 11656, + "nodeType": "ExpressionStatement", + "src": "25429:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11657, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11648, + "src": "25469:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11658, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11645, + "src": "25483:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "25469:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11666, + "nodeType": "IfStatement", + "src": "25465:98:29", + "trueBody": { + "id": 11665, + "nodeType": "Block", + "src": "25490:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313336", + "id": 11661, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25541:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + "value": "136" + }, + { + "id": 11662, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11645, + "src": "25546:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_136_by_1", + "typeString": "int_const 136" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11660, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "25511:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25511:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11664, + "nodeType": "RevertStatement", + "src": "25504:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11643, + "nodeType": "StructuredDocumentation", + "src": "25028:312:29", + "text": " @dev Returns the downcasted int136 from int256, reverting on\n overflow (when the input is less than smallest int136 or\n greater than largest int136).\n Counterpart to Solidity's `int136` operator.\n Requirements:\n - input must fit into 136 bits" + }, + "id": 11668, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt136", + "nameLocation": "25354:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11645, + "mutability": "mutable", + "name": "value", + "nameLocation": "25370:5:29", + "nodeType": "VariableDeclaration", + "scope": 11668, + "src": "25363:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11644, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "25363:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "25362:14:29" + }, + "returnParameters": { + "id": 11649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11648, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "25407:10:29", + "nodeType": "VariableDeclaration", + "scope": 11668, + "src": "25400:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + }, + "typeName": { + "id": 11647, + "name": "int136", + "nodeType": "ElementaryTypeName", + "src": "25400:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int136", + "typeString": "int136" + } + }, + "visibility": "internal" + } + ], + "src": "25399:19:29" + }, + "scope": 12125, + "src": "25345:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11693, + "nodeType": "Block", + "src": "25966:150:29", + "statements": [ + { + "expression": { + "id": 11681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11676, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11674, + "src": "25976:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11679, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11671, + "src": "25996:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "25989:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int128_$", + "typeString": "type(int128)" + }, + "typeName": { + "id": 11677, + "name": "int128", + "nodeType": "ElementaryTypeName", + "src": "25989:6:29", + "typeDescriptions": {} + } + }, + "id": 11680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25989:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "src": "25976:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "id": 11682, + "nodeType": "ExpressionStatement", + "src": "25976:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11683, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11674, + "src": "26016:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11684, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11671, + "src": "26030:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "26016:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11692, + "nodeType": "IfStatement", + "src": "26012:98:29", + "trueBody": { + "id": 11691, + "nodeType": "Block", + "src": "26037:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313238", + "id": 11687, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26088:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + { + "id": 11688, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11671, + "src": "26093:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11686, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "26058:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26058:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11690, + "nodeType": "RevertStatement", + "src": "26051:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11669, + "nodeType": "StructuredDocumentation", + "src": "25575:312:29", + "text": " @dev Returns the downcasted int128 from int256, reverting on\n overflow (when the input is less than smallest int128 or\n greater than largest int128).\n Counterpart to Solidity's `int128` operator.\n Requirements:\n - input must fit into 128 bits" + }, + "id": 11694, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt128", + "nameLocation": "25901:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11672, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11671, + "mutability": "mutable", + "name": "value", + "nameLocation": "25917:5:29", + "nodeType": "VariableDeclaration", + "scope": 11694, + "src": "25910:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11670, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "25910:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "25909:14:29" + }, + "returnParameters": { + "id": 11675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11674, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "25954:10:29", + "nodeType": "VariableDeclaration", + "scope": 11694, + "src": "25947:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + }, + "typeName": { + "id": 11673, + "name": "int128", + "nodeType": "ElementaryTypeName", + "src": "25947:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int128", + "typeString": "int128" + } + }, + "visibility": "internal" + } + ], + "src": "25946:19:29" + }, + "scope": 12125, + "src": "25892:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11719, + "nodeType": "Block", + "src": "26513:150:29", + "statements": [ + { + "expression": { + "id": 11707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11702, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11700, + "src": "26523:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11705, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11697, + "src": "26543:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "26536:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int120_$", + "typeString": "type(int120)" + }, + "typeName": { + "id": 11703, + "name": "int120", + "nodeType": "ElementaryTypeName", + "src": "26536:6:29", + "typeDescriptions": {} + } + }, + "id": 11706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26536:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "src": "26523:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "id": 11708, + "nodeType": "ExpressionStatement", + "src": "26523:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11709, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11700, + "src": "26563:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11710, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11697, + "src": "26577:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "26563:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11718, + "nodeType": "IfStatement", + "src": "26559:98:29", + "trueBody": { + "id": 11717, + "nodeType": "Block", + "src": "26584:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313230", + "id": 11713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26635:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + "value": "120" + }, + { + "id": 11714, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11697, + "src": "26640:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_120_by_1", + "typeString": "int_const 120" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11712, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "26605:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11715, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "26605:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11716, + "nodeType": "RevertStatement", + "src": "26598:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11695, + "nodeType": "StructuredDocumentation", + "src": "26122:312:29", + "text": " @dev Returns the downcasted int120 from int256, reverting on\n overflow (when the input is less than smallest int120 or\n greater than largest int120).\n Counterpart to Solidity's `int120` operator.\n Requirements:\n - input must fit into 120 bits" + }, + "id": 11720, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt120", + "nameLocation": "26448:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11697, + "mutability": "mutable", + "name": "value", + "nameLocation": "26464:5:29", + "nodeType": "VariableDeclaration", + "scope": 11720, + "src": "26457:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11696, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "26457:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "26456:14:29" + }, + "returnParameters": { + "id": 11701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11700, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "26501:10:29", + "nodeType": "VariableDeclaration", + "scope": 11720, + "src": "26494:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + }, + "typeName": { + "id": 11699, + "name": "int120", + "nodeType": "ElementaryTypeName", + "src": "26494:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int120", + "typeString": "int120" + } + }, + "visibility": "internal" + } + ], + "src": "26493:19:29" + }, + "scope": 12125, + "src": "26439:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11745, + "nodeType": "Block", + "src": "27060:150:29", + "statements": [ + { + "expression": { + "id": 11733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11728, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11726, + "src": "27070:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11731, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11723, + "src": "27090:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11730, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "27083:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int112_$", + "typeString": "type(int112)" + }, + "typeName": { + "id": 11729, + "name": "int112", + "nodeType": "ElementaryTypeName", + "src": "27083:6:29", + "typeDescriptions": {} + } + }, + "id": 11732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27083:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "src": "27070:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "id": 11734, + "nodeType": "ExpressionStatement", + "src": "27070:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11735, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11726, + "src": "27110:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11736, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11723, + "src": "27124:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "27110:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11744, + "nodeType": "IfStatement", + "src": "27106:98:29", + "trueBody": { + "id": 11743, + "nodeType": "Block", + "src": "27131:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313132", + "id": 11739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27182:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + "value": "112" + }, + { + "id": 11740, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11723, + "src": "27187:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_112_by_1", + "typeString": "int_const 112" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11738, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "27152:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27152:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11742, + "nodeType": "RevertStatement", + "src": "27145:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11721, + "nodeType": "StructuredDocumentation", + "src": "26669:312:29", + "text": " @dev Returns the downcasted int112 from int256, reverting on\n overflow (when the input is less than smallest int112 or\n greater than largest int112).\n Counterpart to Solidity's `int112` operator.\n Requirements:\n - input must fit into 112 bits" + }, + "id": 11746, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt112", + "nameLocation": "26995:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11723, + "mutability": "mutable", + "name": "value", + "nameLocation": "27011:5:29", + "nodeType": "VariableDeclaration", + "scope": 11746, + "src": "27004:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11722, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "27004:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "27003:14:29" + }, + "returnParameters": { + "id": 11727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11726, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "27048:10:29", + "nodeType": "VariableDeclaration", + "scope": 11746, + "src": "27041:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + }, + "typeName": { + "id": 11725, + "name": "int112", + "nodeType": "ElementaryTypeName", + "src": "27041:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int112", + "typeString": "int112" + } + }, + "visibility": "internal" + } + ], + "src": "27040:19:29" + }, + "scope": 12125, + "src": "26986:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11771, + "nodeType": "Block", + "src": "27607:150:29", + "statements": [ + { + "expression": { + "id": 11759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11754, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11752, + "src": "27617:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11757, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11749, + "src": "27637:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11756, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "27630:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int104_$", + "typeString": "type(int104)" + }, + "typeName": { + "id": 11755, + "name": "int104", + "nodeType": "ElementaryTypeName", + "src": "27630:6:29", + "typeDescriptions": {} + } + }, + "id": 11758, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27630:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "src": "27617:26:29", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "id": 11760, + "nodeType": "ExpressionStatement", + "src": "27617:26:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11761, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11752, + "src": "27657:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11762, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11749, + "src": "27671:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "27657:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11770, + "nodeType": "IfStatement", + "src": "27653:98:29", + "trueBody": { + "id": 11769, + "nodeType": "Block", + "src": "27678:73:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "313034", + "id": 11765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27729:3:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + "value": "104" + }, + { + "id": 11766, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11749, + "src": "27734:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_104_by_1", + "typeString": "int_const 104" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11764, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "27699:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "27699:41:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11768, + "nodeType": "RevertStatement", + "src": "27692:48:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11747, + "nodeType": "StructuredDocumentation", + "src": "27216:312:29", + "text": " @dev Returns the downcasted int104 from int256, reverting on\n overflow (when the input is less than smallest int104 or\n greater than largest int104).\n Counterpart to Solidity's `int104` operator.\n Requirements:\n - input must fit into 104 bits" + }, + "id": 11772, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt104", + "nameLocation": "27542:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11749, + "mutability": "mutable", + "name": "value", + "nameLocation": "27558:5:29", + "nodeType": "VariableDeclaration", + "scope": 11772, + "src": "27551:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11748, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "27551:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "27550:14:29" + }, + "returnParameters": { + "id": 11753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11752, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "27595:10:29", + "nodeType": "VariableDeclaration", + "scope": 11772, + "src": "27588:17:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + }, + "typeName": { + "id": 11751, + "name": "int104", + "nodeType": "ElementaryTypeName", + "src": "27588:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int104", + "typeString": "int104" + } + }, + "visibility": "internal" + } + ], + "src": "27587:19:29" + }, + "scope": 12125, + "src": "27533:224:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11797, + "nodeType": "Block", + "src": "28147:148:29", + "statements": [ + { + "expression": { + "id": 11785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11780, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11778, + "src": "28157:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11783, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11775, + "src": "28176:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "28170:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int96_$", + "typeString": "type(int96)" + }, + "typeName": { + "id": 11781, + "name": "int96", + "nodeType": "ElementaryTypeName", + "src": "28170:5:29", + "typeDescriptions": {} + } + }, + "id": 11784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28170:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "src": "28157:25:29", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "id": 11786, + "nodeType": "ExpressionStatement", + "src": "28157:25:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11787, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11778, + "src": "28196:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11788, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11775, + "src": "28210:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "28196:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11796, + "nodeType": "IfStatement", + "src": "28192:97:29", + "trueBody": { + "id": 11795, + "nodeType": "Block", + "src": "28217:72:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3936", + "id": 11791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28268:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + "value": "96" + }, + { + "id": 11792, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11775, + "src": "28272:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_96_by_1", + "typeString": "int_const 96" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11790, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "28238:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28238:40:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11794, + "nodeType": "RevertStatement", + "src": "28231:47:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11773, + "nodeType": "StructuredDocumentation", + "src": "27763:307:29", + "text": " @dev Returns the downcasted int96 from int256, reverting on\n overflow (when the input is less than smallest int96 or\n greater than largest int96).\n Counterpart to Solidity's `int96` operator.\n Requirements:\n - input must fit into 96 bits" + }, + "id": 11798, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt96", + "nameLocation": "28084:7:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11775, + "mutability": "mutable", + "name": "value", + "nameLocation": "28099:5:29", + "nodeType": "VariableDeclaration", + "scope": 11798, + "src": "28092:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11774, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "28092:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "28091:14:29" + }, + "returnParameters": { + "id": 11779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11778, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "28135:10:29", + "nodeType": "VariableDeclaration", + "scope": 11798, + "src": "28129:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + }, + "typeName": { + "id": 11777, + "name": "int96", + "nodeType": "ElementaryTypeName", + "src": "28129:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int96", + "typeString": "int96" + } + }, + "visibility": "internal" + } + ], + "src": "28128:18:29" + }, + "scope": 12125, + "src": "28075:220:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11823, + "nodeType": "Block", + "src": "28685:148:29", + "statements": [ + { + "expression": { + "id": 11811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11806, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11804, + "src": "28695:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11809, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11801, + "src": "28714:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "28708:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int88_$", + "typeString": "type(int88)" + }, + "typeName": { + "id": 11807, + "name": "int88", + "nodeType": "ElementaryTypeName", + "src": "28708:5:29", + "typeDescriptions": {} + } + }, + "id": 11810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28708:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "src": "28695:25:29", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "id": 11812, + "nodeType": "ExpressionStatement", + "src": "28695:25:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11813, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11804, + "src": "28734:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11814, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11801, + "src": "28748:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "28734:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11822, + "nodeType": "IfStatement", + "src": "28730:97:29", + "trueBody": { + "id": 11821, + "nodeType": "Block", + "src": "28755:72:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3838", + "id": 11817, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28806:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + "value": "88" + }, + { + "id": 11818, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11801, + "src": "28810:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_88_by_1", + "typeString": "int_const 88" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11816, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "28776:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "28776:40:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11820, + "nodeType": "RevertStatement", + "src": "28769:47:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11799, + "nodeType": "StructuredDocumentation", + "src": "28301:307:29", + "text": " @dev Returns the downcasted int88 from int256, reverting on\n overflow (when the input is less than smallest int88 or\n greater than largest int88).\n Counterpart to Solidity's `int88` operator.\n Requirements:\n - input must fit into 88 bits" + }, + "id": 11824, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt88", + "nameLocation": "28622:7:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11802, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11801, + "mutability": "mutable", + "name": "value", + "nameLocation": "28637:5:29", + "nodeType": "VariableDeclaration", + "scope": 11824, + "src": "28630:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11800, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "28630:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "28629:14:29" + }, + "returnParameters": { + "id": 11805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11804, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "28673:10:29", + "nodeType": "VariableDeclaration", + "scope": 11824, + "src": "28667:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + }, + "typeName": { + "id": 11803, + "name": "int88", + "nodeType": "ElementaryTypeName", + "src": "28667:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int88", + "typeString": "int88" + } + }, + "visibility": "internal" + } + ], + "src": "28666:18:29" + }, + "scope": 12125, + "src": "28613:220:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11849, + "nodeType": "Block", + "src": "29223:148:29", + "statements": [ + { + "expression": { + "id": 11837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11832, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11830, + "src": "29233:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11835, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11827, + "src": "29252:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "29246:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int80_$", + "typeString": "type(int80)" + }, + "typeName": { + "id": 11833, + "name": "int80", + "nodeType": "ElementaryTypeName", + "src": "29246:5:29", + "typeDescriptions": {} + } + }, + "id": 11836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29246:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "src": "29233:25:29", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "id": 11838, + "nodeType": "ExpressionStatement", + "src": "29233:25:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11839, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11830, + "src": "29272:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11840, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11827, + "src": "29286:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "29272:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11848, + "nodeType": "IfStatement", + "src": "29268:97:29", + "trueBody": { + "id": 11847, + "nodeType": "Block", + "src": "29293:72:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3830", + "id": 11843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29344:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + "value": "80" + }, + { + "id": 11844, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11827, + "src": "29348:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11842, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "29314:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29314:40:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11846, + "nodeType": "RevertStatement", + "src": "29307:47:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11825, + "nodeType": "StructuredDocumentation", + "src": "28839:307:29", + "text": " @dev Returns the downcasted int80 from int256, reverting on\n overflow (when the input is less than smallest int80 or\n greater than largest int80).\n Counterpart to Solidity's `int80` operator.\n Requirements:\n - input must fit into 80 bits" + }, + "id": 11850, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt80", + "nameLocation": "29160:7:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11828, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11827, + "mutability": "mutable", + "name": "value", + "nameLocation": "29175:5:29", + "nodeType": "VariableDeclaration", + "scope": 11850, + "src": "29168:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11826, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "29168:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "29167:14:29" + }, + "returnParameters": { + "id": 11831, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11830, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "29211:10:29", + "nodeType": "VariableDeclaration", + "scope": 11850, + "src": "29205:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + }, + "typeName": { + "id": 11829, + "name": "int80", + "nodeType": "ElementaryTypeName", + "src": "29205:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int80", + "typeString": "int80" + } + }, + "visibility": "internal" + } + ], + "src": "29204:18:29" + }, + "scope": 12125, + "src": "29151:220:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11875, + "nodeType": "Block", + "src": "29761:148:29", + "statements": [ + { + "expression": { + "id": 11863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11858, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11856, + "src": "29771:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11853, + "src": "29790:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "29784:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int72_$", + "typeString": "type(int72)" + }, + "typeName": { + "id": 11859, + "name": "int72", + "nodeType": "ElementaryTypeName", + "src": "29784:5:29", + "typeDescriptions": {} + } + }, + "id": 11862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29784:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "src": "29771:25:29", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "id": 11864, + "nodeType": "ExpressionStatement", + "src": "29771:25:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11865, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11856, + "src": "29810:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11866, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11853, + "src": "29824:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "29810:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11874, + "nodeType": "IfStatement", + "src": "29806:97:29", + "trueBody": { + "id": 11873, + "nodeType": "Block", + "src": "29831:72:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3732", + "id": 11869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29882:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + "value": "72" + }, + { + "id": 11870, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11853, + "src": "29886:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_72_by_1", + "typeString": "int_const 72" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11868, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "29852:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "29852:40:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11872, + "nodeType": "RevertStatement", + "src": "29845:47:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11851, + "nodeType": "StructuredDocumentation", + "src": "29377:307:29", + "text": " @dev Returns the downcasted int72 from int256, reverting on\n overflow (when the input is less than smallest int72 or\n greater than largest int72).\n Counterpart to Solidity's `int72` operator.\n Requirements:\n - input must fit into 72 bits" + }, + "id": 11876, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt72", + "nameLocation": "29698:7:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11854, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11853, + "mutability": "mutable", + "name": "value", + "nameLocation": "29713:5:29", + "nodeType": "VariableDeclaration", + "scope": 11876, + "src": "29706:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11852, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "29706:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "29705:14:29" + }, + "returnParameters": { + "id": 11857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11856, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "29749:10:29", + "nodeType": "VariableDeclaration", + "scope": 11876, + "src": "29743:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + }, + "typeName": { + "id": 11855, + "name": "int72", + "nodeType": "ElementaryTypeName", + "src": "29743:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int72", + "typeString": "int72" + } + }, + "visibility": "internal" + } + ], + "src": "29742:18:29" + }, + "scope": 12125, + "src": "29689:220:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11901, + "nodeType": "Block", + "src": "30299:148:29", + "statements": [ + { + "expression": { + "id": 11889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11884, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11882, + "src": "30309:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11887, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11879, + "src": "30328:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11886, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "30322:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int64_$", + "typeString": "type(int64)" + }, + "typeName": { + "id": 11885, + "name": "int64", + "nodeType": "ElementaryTypeName", + "src": "30322:5:29", + "typeDescriptions": {} + } + }, + "id": 11888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30322:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "src": "30309:25:29", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "id": 11890, + "nodeType": "ExpressionStatement", + "src": "30309:25:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11891, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11882, + "src": "30348:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11892, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11879, + "src": "30362:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "30348:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11900, + "nodeType": "IfStatement", + "src": "30344:97:29", + "trueBody": { + "id": 11899, + "nodeType": "Block", + "src": "30369:72:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3634", + "id": 11895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30420:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + "value": "64" + }, + { + "id": 11896, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11879, + "src": "30424:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_64_by_1", + "typeString": "int_const 64" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11894, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "30390:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30390:40:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11898, + "nodeType": "RevertStatement", + "src": "30383:47:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11877, + "nodeType": "StructuredDocumentation", + "src": "29915:307:29", + "text": " @dev Returns the downcasted int64 from int256, reverting on\n overflow (when the input is less than smallest int64 or\n greater than largest int64).\n Counterpart to Solidity's `int64` operator.\n Requirements:\n - input must fit into 64 bits" + }, + "id": 11902, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt64", + "nameLocation": "30236:7:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11880, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11879, + "mutability": "mutable", + "name": "value", + "nameLocation": "30251:5:29", + "nodeType": "VariableDeclaration", + "scope": 11902, + "src": "30244:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11878, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "30244:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "30243:14:29" + }, + "returnParameters": { + "id": 11883, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11882, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "30287:10:29", + "nodeType": "VariableDeclaration", + "scope": 11902, + "src": "30281:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + }, + "typeName": { + "id": 11881, + "name": "int64", + "nodeType": "ElementaryTypeName", + "src": "30281:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int64", + "typeString": "int64" + } + }, + "visibility": "internal" + } + ], + "src": "30280:18:29" + }, + "scope": 12125, + "src": "30227:220:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11927, + "nodeType": "Block", + "src": "30837:148:29", + "statements": [ + { + "expression": { + "id": 11915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11910, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11908, + "src": "30847:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11913, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11905, + "src": "30866:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "30860:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int56_$", + "typeString": "type(int56)" + }, + "typeName": { + "id": 11911, + "name": "int56", + "nodeType": "ElementaryTypeName", + "src": "30860:5:29", + "typeDescriptions": {} + } + }, + "id": 11914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30860:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "src": "30847:25:29", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "id": 11916, + "nodeType": "ExpressionStatement", + "src": "30847:25:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11917, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11908, + "src": "30886:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11918, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11905, + "src": "30900:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "30886:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11926, + "nodeType": "IfStatement", + "src": "30882:97:29", + "trueBody": { + "id": 11925, + "nodeType": "Block", + "src": "30907:72:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3536", + "id": 11921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30958:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + "value": "56" + }, + { + "id": 11922, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11905, + "src": "30962:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_56_by_1", + "typeString": "int_const 56" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11920, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "30928:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "30928:40:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11924, + "nodeType": "RevertStatement", + "src": "30921:47:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11903, + "nodeType": "StructuredDocumentation", + "src": "30453:307:29", + "text": " @dev Returns the downcasted int56 from int256, reverting on\n overflow (when the input is less than smallest int56 or\n greater than largest int56).\n Counterpart to Solidity's `int56` operator.\n Requirements:\n - input must fit into 56 bits" + }, + "id": 11928, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt56", + "nameLocation": "30774:7:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11905, + "mutability": "mutable", + "name": "value", + "nameLocation": "30789:5:29", + "nodeType": "VariableDeclaration", + "scope": 11928, + "src": "30782:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11904, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "30782:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "30781:14:29" + }, + "returnParameters": { + "id": 11909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11908, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "30825:10:29", + "nodeType": "VariableDeclaration", + "scope": 11928, + "src": "30819:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + }, + "typeName": { + "id": 11907, + "name": "int56", + "nodeType": "ElementaryTypeName", + "src": "30819:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int56", + "typeString": "int56" + } + }, + "visibility": "internal" + } + ], + "src": "30818:18:29" + }, + "scope": 12125, + "src": "30765:220:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11953, + "nodeType": "Block", + "src": "31375:148:29", + "statements": [ + { + "expression": { + "id": 11941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11936, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11934, + "src": "31385:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11939, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11931, + "src": "31404:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "31398:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int48_$", + "typeString": "type(int48)" + }, + "typeName": { + "id": 11937, + "name": "int48", + "nodeType": "ElementaryTypeName", + "src": "31398:5:29", + "typeDescriptions": {} + } + }, + "id": 11940, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31398:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "src": "31385:25:29", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "id": 11942, + "nodeType": "ExpressionStatement", + "src": "31385:25:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11943, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11934, + "src": "31424:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11944, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11931, + "src": "31438:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "31424:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11952, + "nodeType": "IfStatement", + "src": "31420:97:29", + "trueBody": { + "id": 11951, + "nodeType": "Block", + "src": "31445:72:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3438", + "id": 11947, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31496:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + { + "id": 11948, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11931, + "src": "31500:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11946, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "31466:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31466:40:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11950, + "nodeType": "RevertStatement", + "src": "31459:47:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11929, + "nodeType": "StructuredDocumentation", + "src": "30991:307:29", + "text": " @dev Returns the downcasted int48 from int256, reverting on\n overflow (when the input is less than smallest int48 or\n greater than largest int48).\n Counterpart to Solidity's `int48` operator.\n Requirements:\n - input must fit into 48 bits" + }, + "id": 11954, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt48", + "nameLocation": "31312:7:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11932, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11931, + "mutability": "mutable", + "name": "value", + "nameLocation": "31327:5:29", + "nodeType": "VariableDeclaration", + "scope": 11954, + "src": "31320:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11930, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "31320:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "31319:14:29" + }, + "returnParameters": { + "id": 11935, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11934, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "31363:10:29", + "nodeType": "VariableDeclaration", + "scope": 11954, + "src": "31357:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + }, + "typeName": { + "id": 11933, + "name": "int48", + "nodeType": "ElementaryTypeName", + "src": "31357:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int48", + "typeString": "int48" + } + }, + "visibility": "internal" + } + ], + "src": "31356:18:29" + }, + "scope": 12125, + "src": "31303:220:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 11979, + "nodeType": "Block", + "src": "31913:148:29", + "statements": [ + { + "expression": { + "id": 11967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11962, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11960, + "src": "31923:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11965, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11957, + "src": "31942:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "31936:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int40_$", + "typeString": "type(int40)" + }, + "typeName": { + "id": 11963, + "name": "int40", + "nodeType": "ElementaryTypeName", + "src": "31936:5:29", + "typeDescriptions": {} + } + }, + "id": 11966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "31936:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "src": "31923:25:29", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "id": 11968, + "nodeType": "ExpressionStatement", + "src": "31923:25:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11969, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11960, + "src": "31962:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11970, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11957, + "src": "31976:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "31962:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 11978, + "nodeType": "IfStatement", + "src": "31958:97:29", + "trueBody": { + "id": 11977, + "nodeType": "Block", + "src": "31983:72:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3430", + "id": 11973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32034:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + "value": "40" + }, + { + "id": 11974, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11957, + "src": "32038:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_40_by_1", + "typeString": "int_const 40" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11972, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "32004:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 11975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "32004:40:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 11976, + "nodeType": "RevertStatement", + "src": "31997:47:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11955, + "nodeType": "StructuredDocumentation", + "src": "31529:307:29", + "text": " @dev Returns the downcasted int40 from int256, reverting on\n overflow (when the input is less than smallest int40 or\n greater than largest int40).\n Counterpart to Solidity's `int40` operator.\n Requirements:\n - input must fit into 40 bits" + }, + "id": 11980, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt40", + "nameLocation": "31850:7:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11957, + "mutability": "mutable", + "name": "value", + "nameLocation": "31865:5:29", + "nodeType": "VariableDeclaration", + "scope": 11980, + "src": "31858:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11956, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "31858:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "31857:14:29" + }, + "returnParameters": { + "id": 11961, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11960, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "31901:10:29", + "nodeType": "VariableDeclaration", + "scope": 11980, + "src": "31895:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + }, + "typeName": { + "id": 11959, + "name": "int40", + "nodeType": "ElementaryTypeName", + "src": "31895:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int40", + "typeString": "int40" + } + }, + "visibility": "internal" + } + ], + "src": "31894:18:29" + }, + "scope": 12125, + "src": "31841:220:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12005, + "nodeType": "Block", + "src": "32451:148:29", + "statements": [ + { + "expression": { + "id": 11993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 11988, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11986, + "src": "32461:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 11991, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11983, + "src": "32480:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11990, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32474:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int32_$", + "typeString": "type(int32)" + }, + "typeName": { + "id": 11989, + "name": "int32", + "nodeType": "ElementaryTypeName", + "src": "32474:5:29", + "typeDescriptions": {} + } + }, + "id": 11992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "32474:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "src": "32461:25:29", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "id": 11994, + "nodeType": "ExpressionStatement", + "src": "32461:25:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 11997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 11995, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11986, + "src": "32500:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 11996, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11983, + "src": "32514:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "32500:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12004, + "nodeType": "IfStatement", + "src": "32496:97:29", + "trueBody": { + "id": 12003, + "nodeType": "Block", + "src": "32521:72:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3332", + "id": 11999, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32572:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + { + "id": 12000, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11983, + "src": "32576:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 11998, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "32542:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 12001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "32542:40:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 12002, + "nodeType": "RevertStatement", + "src": "32535:47:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 11981, + "nodeType": "StructuredDocumentation", + "src": "32067:307:29", + "text": " @dev Returns the downcasted int32 from int256, reverting on\n overflow (when the input is less than smallest int32 or\n greater than largest int32).\n Counterpart to Solidity's `int32` operator.\n Requirements:\n - input must fit into 32 bits" + }, + "id": 12006, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt32", + "nameLocation": "32388:7:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 11984, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11983, + "mutability": "mutable", + "name": "value", + "nameLocation": "32403:5:29", + "nodeType": "VariableDeclaration", + "scope": 12006, + "src": "32396:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 11982, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "32396:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "32395:14:29" + }, + "returnParameters": { + "id": 11987, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 11986, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "32439:10:29", + "nodeType": "VariableDeclaration", + "scope": 12006, + "src": "32433:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + }, + "typeName": { + "id": 11985, + "name": "int32", + "nodeType": "ElementaryTypeName", + "src": "32433:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int32", + "typeString": "int32" + } + }, + "visibility": "internal" + } + ], + "src": "32432:18:29" + }, + "scope": 12125, + "src": "32379:220:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12031, + "nodeType": "Block", + "src": "32989:148:29", + "statements": [ + { + "expression": { + "id": 12019, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 12014, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12012, + "src": "32999:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 12017, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12009, + "src": "33018:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 12016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33012:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int24_$", + "typeString": "type(int24)" + }, + "typeName": { + "id": 12015, + "name": "int24", + "nodeType": "ElementaryTypeName", + "src": "33012:5:29", + "typeDescriptions": {} + } + }, + "id": 12018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33012:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "src": "32999:25:29", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "id": 12020, + "nodeType": "ExpressionStatement", + "src": "32999:25:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12021, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12012, + "src": "33038:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 12022, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12009, + "src": "33052:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "33038:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12030, + "nodeType": "IfStatement", + "src": "33034:97:29", + "trueBody": { + "id": 12029, + "nodeType": "Block", + "src": "33059:72:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3234", + "id": 12025, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33110:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + { + "id": 12026, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12009, + "src": "33114:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 12024, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "33080:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 12027, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33080:40:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 12028, + "nodeType": "RevertStatement", + "src": "33073:47:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 12007, + "nodeType": "StructuredDocumentation", + "src": "32605:307:29", + "text": " @dev Returns the downcasted int24 from int256, reverting on\n overflow (when the input is less than smallest int24 or\n greater than largest int24).\n Counterpart to Solidity's `int24` operator.\n Requirements:\n - input must fit into 24 bits" + }, + "id": 12032, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt24", + "nameLocation": "32926:7:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12010, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12009, + "mutability": "mutable", + "name": "value", + "nameLocation": "32941:5:29", + "nodeType": "VariableDeclaration", + "scope": 12032, + "src": "32934:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12008, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "32934:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "32933:14:29" + }, + "returnParameters": { + "id": 12013, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12012, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "32977:10:29", + "nodeType": "VariableDeclaration", + "scope": 12032, + "src": "32971:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + }, + "typeName": { + "id": 12011, + "name": "int24", + "nodeType": "ElementaryTypeName", + "src": "32971:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int24", + "typeString": "int24" + } + }, + "visibility": "internal" + } + ], + "src": "32970:18:29" + }, + "scope": 12125, + "src": "32917:220:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12057, + "nodeType": "Block", + "src": "33527:148:29", + "statements": [ + { + "expression": { + "id": 12045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 12040, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12038, + "src": "33537:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 12043, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12035, + "src": "33556:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 12042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33550:5:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int16_$", + "typeString": "type(int16)" + }, + "typeName": { + "id": 12041, + "name": "int16", + "nodeType": "ElementaryTypeName", + "src": "33550:5:29", + "typeDescriptions": {} + } + }, + "id": 12044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33550:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "src": "33537:25:29", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "id": 12046, + "nodeType": "ExpressionStatement", + "src": "33537:25:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12047, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12038, + "src": "33576:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 12048, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12035, + "src": "33590:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "33576:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12056, + "nodeType": "IfStatement", + "src": "33572:97:29", + "trueBody": { + "id": 12055, + "nodeType": "Block", + "src": "33597:72:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "3136", + "id": 12051, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33648:2:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + { + "id": 12052, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12035, + "src": "33652:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 12050, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "33618:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 12053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "33618:40:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 12054, + "nodeType": "RevertStatement", + "src": "33611:47:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 12033, + "nodeType": "StructuredDocumentation", + "src": "33143:307:29", + "text": " @dev Returns the downcasted int16 from int256, reverting on\n overflow (when the input is less than smallest int16 or\n greater than largest int16).\n Counterpart to Solidity's `int16` operator.\n Requirements:\n - input must fit into 16 bits" + }, + "id": 12058, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt16", + "nameLocation": "33464:7:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12036, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12035, + "mutability": "mutable", + "name": "value", + "nameLocation": "33479:5:29", + "nodeType": "VariableDeclaration", + "scope": 12058, + "src": "33472:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12034, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "33472:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "33471:14:29" + }, + "returnParameters": { + "id": 12039, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12038, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "33515:10:29", + "nodeType": "VariableDeclaration", + "scope": 12058, + "src": "33509:16:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + }, + "typeName": { + "id": 12037, + "name": "int16", + "nodeType": "ElementaryTypeName", + "src": "33509:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int16", + "typeString": "int16" + } + }, + "visibility": "internal" + } + ], + "src": "33508:18:29" + }, + "scope": 12125, + "src": "33455:220:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12083, + "nodeType": "Block", + "src": "34058:146:29", + "statements": [ + { + "expression": { + "id": 12071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 12066, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12064, + "src": "34068:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 12069, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12061, + "src": "34086:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 12068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34081:4:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int8_$", + "typeString": "type(int8)" + }, + "typeName": { + "id": 12067, + "name": "int8", + "nodeType": "ElementaryTypeName", + "src": "34081:4:29", + "typeDescriptions": {} + } + }, + "id": 12070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34081:11:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "src": "34068:24:29", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "id": 12072, + "nodeType": "ExpressionStatement", + "src": "34068:24:29" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12073, + "name": "downcasted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12064, + "src": "34106:10:29", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 12074, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12061, + "src": "34120:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "34106:19:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12082, + "nodeType": "IfStatement", + "src": "34102:96:29", + "trueBody": { + "id": 12081, + "nodeType": "Block", + "src": "34127:71:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "hexValue": "38", + "id": 12077, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34178:1:29", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + { + "id": 12078, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12061, + "src": "34181:5:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 12076, + "name": "SafeCastOverflowedIntDowncast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10382, + "src": "34148:29:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint8_$_t_int256_$returns$_t_error_$", + "typeString": "function (uint8,int256) pure returns (error)" + } + }, + "id": 12079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34148:39:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 12080, + "nodeType": "RevertStatement", + "src": "34141:46:29" + } + ] + } + } + ] + }, + "documentation": { + "id": 12059, + "nodeType": "StructuredDocumentation", + "src": "33681:302:29", + "text": " @dev Returns the downcasted int8 from int256, reverting on\n overflow (when the input is less than smallest int8 or\n greater than largest int8).\n Counterpart to Solidity's `int8` operator.\n Requirements:\n - input must fit into 8 bits" + }, + "id": 12084, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt8", + "nameLocation": "33997:6:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12062, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12061, + "mutability": "mutable", + "name": "value", + "nameLocation": "34011:5:29", + "nodeType": "VariableDeclaration", + "scope": 12084, + "src": "34004:12:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12060, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "34004:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "34003:14:29" + }, + "returnParameters": { + "id": 12065, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12064, + "mutability": "mutable", + "name": "downcasted", + "nameLocation": "34046:10:29", + "nodeType": "VariableDeclaration", + "scope": 12084, + "src": "34041:15:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + }, + "typeName": { + "id": 12063, + "name": "int8", + "nodeType": "ElementaryTypeName", + "src": "34041:4:29", + "typeDescriptions": { + "typeIdentifier": "t_int8", + "typeString": "int8" + } + }, + "visibility": "internal" + } + ], + "src": "34040:17:29" + }, + "scope": 12125, + "src": "33988:216:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12113, + "nodeType": "Block", + "src": "34444:250:29", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12092, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12087, + "src": "34557:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "arguments": [ + { + "expression": { + "arguments": [ + { + "id": 12097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34578:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 12096, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "34578:6:29", + "typeDescriptions": {} + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + } + ], + "id": 12095, + "name": "type", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -27, + "src": "34573:4:29", + "typeDescriptions": { + "typeIdentifier": "t_function_metatype_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 12098, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34573:12:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_magic_meta_type_t_int256", + "typeString": "type(int256)" + } + }, + "id": 12099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "34586:3:29", + "memberName": "max", + "nodeType": "MemberAccess", + "src": "34573:16:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 12094, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34565:7:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 12093, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34565:7:29", + "typeDescriptions": {} + } + }, + "id": 12100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34565:25:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "34557:33:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12107, + "nodeType": "IfStatement", + "src": "34553:105:29", + "trueBody": { + "id": 12106, + "nodeType": "Block", + "src": "34592:66:29", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 12103, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12087, + "src": "34641:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12102, + "name": "SafeCastOverflowedUintToInt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10387, + "src": "34613:27:29", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 12104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34613:34:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 12105, + "nodeType": "RevertStatement", + "src": "34606:41:29" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 12110, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12087, + "src": "34681:5:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34674:6:29", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 12108, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "34674:6:29", + "typeDescriptions": {} + } + }, + "id": 12111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "34674:13:29", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 12091, + "id": 12112, + "nodeType": "Return", + "src": "34667:20:29" + } + ] + }, + "documentation": { + "id": 12085, + "nodeType": "StructuredDocumentation", + "src": "34210:165:29", + "text": " @dev Converts an unsigned uint256 into a signed int256.\n Requirements:\n - input must be less than or equal to maxInt256." + }, + "id": 12114, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toInt256", + "nameLocation": "34389:8:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12087, + "mutability": "mutable", + "name": "value", + "nameLocation": "34406:5:29", + "nodeType": "VariableDeclaration", + "scope": 12114, + "src": "34398:13:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12086, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34398:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34397:15:29" + }, + "returnParameters": { + "id": 12091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12090, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12114, + "src": "34436:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12089, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "34436:6:29", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "34435:8:29" + }, + "scope": 12125, + "src": "34380:314:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12123, + "nodeType": "Block", + "src": "34853:87:29", + "statements": [ + { + "AST": { + "nativeSrc": "34888:46:29", + "nodeType": "YulBlock", + "src": "34888:46:29", + "statements": [ + { + "nativeSrc": "34902:22:29", + "nodeType": "YulAssignment", + "src": "34902:22:29", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "b", + "nativeSrc": "34921:1:29", + "nodeType": "YulIdentifier", + "src": "34921:1:29" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "34914:6:29", + "nodeType": "YulIdentifier", + "src": "34914:6:29" + }, + "nativeSrc": "34914:9:29", + "nodeType": "YulFunctionCall", + "src": "34914:9:29" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "34907:6:29", + "nodeType": "YulIdentifier", + "src": "34907:6:29" + }, + "nativeSrc": "34907:17:29", + "nodeType": "YulFunctionCall", + "src": "34907:17:29" + }, + "variableNames": [ + { + "name": "u", + "nativeSrc": "34902:1:29", + "nodeType": "YulIdentifier", + "src": "34902:1:29" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 12117, + "isOffset": false, + "isSlot": false, + "src": "34921:1:29", + "valueSize": 1 + }, + { + "declaration": 12120, + "isOffset": false, + "isSlot": false, + "src": "34902:1:29", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 12122, + "nodeType": "InlineAssembly", + "src": "34863:71:29" + } + ] + }, + "documentation": { + "id": 12115, + "nodeType": "StructuredDocumentation", + "src": "34700:90:29", + "text": " @dev Cast a boolean (false or true) to a uint256 (0 or 1) with no jump." + }, + "id": 12124, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint", + "nameLocation": "34804:6:29", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12117, + "mutability": "mutable", + "name": "b", + "nameLocation": "34816:1:29", + "nodeType": "VariableDeclaration", + "scope": 12124, + "src": "34811:6:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12116, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34811:4:29", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34810:8:29" + }, + "returnParameters": { + "id": 12121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12120, + "mutability": "mutable", + "name": "u", + "nameLocation": "34850:1:29", + "nodeType": "VariableDeclaration", + "scope": 12124, + "src": "34842:9:29", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34842:7:29", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34841:11:29" + }, + "scope": 12125, + "src": "34795:145:29", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 12126, + "src": "769:34173:29", + "usedErrors": [ + 10370, + 10375, + 10382, + 10387 + ], + "usedEvents": [] + } + ], + "src": "192:34751:29" + }, + "id": 29 + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "exportedSymbols": { + "SafeCast": [ + 12125 + ], + "SignedMath": [ + 12269 + ] + }, + "id": 12270, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12127, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "109:24:30" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/SafeCast.sol", + "file": "./SafeCast.sol", + "id": 12129, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 12270, + "sourceUnit": 12126, + "src": "135:40:30", + "symbolAliases": [ + { + "foreign": { + "id": 12128, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "143:8:30", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "SignedMath", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 12130, + "nodeType": "StructuredDocumentation", + "src": "177:80:30", + "text": " @dev Standard signed math utilities missing in the Solidity language." + }, + "fullyImplemented": true, + "id": 12269, + "linearizedBaseContracts": [ + 12269 + ], + "name": "SignedMath", + "nameLocation": "266:10:30", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 12159, + "nodeType": "Block", + "src": "746:215:30", + "statements": [ + { + "id": 12158, + "nodeType": "UncheckedBlock", + "src": "756:199:30", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12142, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12137, + "src": "894:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12143, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12135, + "src": "900:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 12144, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12137, + "src": "904:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "900:5:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 12146, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "899:7:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 12151, + "name": "condition", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12133, + "src": "932:9:30", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "expression": { + "id": 12149, + "name": "SafeCast", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12125, + "src": "916:8:30", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_SafeCast_$12125_$", + "typeString": "type(library SafeCast)" + } + }, + "id": 12150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "925:6:30", + "memberName": "toUint", + "nodeType": "MemberAccess", + "referencedDeclaration": 12124, + "src": "916:15:30", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$returns$_t_uint256_$", + "typeString": "function (bool) pure returns (uint256)" + } + }, + "id": 12152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "916:26:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "909:6:30", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 12147, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "909:6:30", + "typeDescriptions": {} + } + }, + "id": 12153, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "909:34:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "899:44:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 12155, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "898:46:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "894:50:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 12141, + "id": 12157, + "nodeType": "Return", + "src": "887:57:30" + } + ] + } + ] + }, + "documentation": { + "id": 12131, + "nodeType": "StructuredDocumentation", + "src": "283:374:30", + "text": " @dev Branchless ternary evaluation for `a ? b : c`. Gas costs are constant.\n IMPORTANT: This function may reduce bytecode size and consume less gas when used standalone.\n However, the compiler may optimize Solidity ternary operations (i.e. `a ? b : c`) to only compute\n one branch when needed, making this function more expensive." + }, + "id": 12160, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ternary", + "nameLocation": "671:7:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12138, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12133, + "mutability": "mutable", + "name": "condition", + "nameLocation": "684:9:30", + "nodeType": "VariableDeclaration", + "scope": 12160, + "src": "679:14:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12132, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "679:4:30", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12135, + "mutability": "mutable", + "name": "a", + "nameLocation": "702:1:30", + "nodeType": "VariableDeclaration", + "scope": 12160, + "src": "695:8:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12134, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "695:6:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12137, + "mutability": "mutable", + "name": "b", + "nameLocation": "712:1:30", + "nodeType": "VariableDeclaration", + "scope": 12160, + "src": "705:8:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12136, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "705:6:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "678:36:30" + }, + "returnParameters": { + "id": 12141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12140, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12160, + "src": "738:6:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12139, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "738:6:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "737:8:30" + }, + "scope": 12269, + "src": "662:299:30", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12178, + "nodeType": "Block", + "src": "1102:44:30", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12171, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12163, + "src": "1127:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 12172, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12165, + "src": "1131:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1127:5:30", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 12174, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12163, + "src": "1134:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "id": 12175, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12165, + "src": "1137:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 12170, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12160, + "src": "1119:7:30", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_int256_$_t_int256_$returns$_t_int256_$", + "typeString": "function (bool,int256,int256) pure returns (int256)" + } + }, + "id": 12176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1119:20:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 12169, + "id": 12177, + "nodeType": "Return", + "src": "1112:27:30" + } + ] + }, + "documentation": { + "id": 12161, + "nodeType": "StructuredDocumentation", + "src": "967:66:30", + "text": " @dev Returns the largest of two signed numbers." + }, + "id": 12179, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "1047:3:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12166, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12163, + "mutability": "mutable", + "name": "a", + "nameLocation": "1058:1:30", + "nodeType": "VariableDeclaration", + "scope": 12179, + "src": "1051:8:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12162, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1051:6:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12165, + "mutability": "mutable", + "name": "b", + "nameLocation": "1068:1:30", + "nodeType": "VariableDeclaration", + "scope": 12179, + "src": "1061:8:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12164, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1061:6:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1050:20:30" + }, + "returnParameters": { + "id": 12169, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12168, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12179, + "src": "1094:6:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12167, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1094:6:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1093:8:30" + }, + "scope": 12269, + "src": "1038:108:30", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12197, + "nodeType": "Block", + "src": "1288:44:30", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12190, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12182, + "src": "1313:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 12191, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12184, + "src": "1317:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1313:5:30", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 12193, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12182, + "src": "1320:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + { + "id": 12194, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12184, + "src": "1323:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 12189, + "name": "ternary", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12160, + "src": "1305:7:30", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_int256_$_t_int256_$returns$_t_int256_$", + "typeString": "function (bool,int256,int256) pure returns (int256)" + } + }, + "id": 12195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1305:20:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 12188, + "id": 12196, + "nodeType": "Return", + "src": "1298:27:30" + } + ] + }, + "documentation": { + "id": 12180, + "nodeType": "StructuredDocumentation", + "src": "1152:67:30", + "text": " @dev Returns the smallest of two signed numbers." + }, + "id": 12198, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "1233:3:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12185, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12182, + "mutability": "mutable", + "name": "a", + "nameLocation": "1244:1:30", + "nodeType": "VariableDeclaration", + "scope": 12198, + "src": "1237:8:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12181, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1237:6:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12184, + "mutability": "mutable", + "name": "b", + "nameLocation": "1254:1:30", + "nodeType": "VariableDeclaration", + "scope": 12198, + "src": "1247:8:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12183, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1247:6:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1236:20:30" + }, + "returnParameters": { + "id": 12188, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12187, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12198, + "src": "1280:6:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12186, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1280:6:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1279:8:30" + }, + "scope": 12269, + "src": "1224:108:30", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12241, + "nodeType": "Block", + "src": "1537:162:30", + "statements": [ + { + "assignments": [ + 12209 + ], + "declarations": [ + { + "constant": false, + "id": 12209, + "mutability": "mutable", + "name": "x", + "nameLocation": "1606:1:30", + "nodeType": "VariableDeclaration", + "scope": 12241, + "src": "1599:8:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12208, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1599:6:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 12222, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12210, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12201, + "src": "1611:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "id": 12211, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12203, + "src": "1615:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1611:5:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 12213, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1610:7:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12214, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12201, + "src": "1622:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 12215, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12203, + "src": "1626:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1622:5:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 12217, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1621:7:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "31", + "id": 12218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1632:1:30", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1621:12:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 12220, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1620:14:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1610:24:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1599:35:30" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12223, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12209, + "src": "1651:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 12228, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12209, + "src": "1671:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 12227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1663:7:30", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 12226, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1663:7:30", + "typeDescriptions": {} + } + }, + "id": 12229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1663:10:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 12230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1677:3:30", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "1663:17:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1656:6:30", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 12224, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1656:6:30", + "typeDescriptions": {} + } + }, + "id": 12232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "1656:25:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12233, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12201, + "src": "1685:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 12234, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12203, + "src": "1689:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1685:5:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 12236, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1684:7:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1656:35:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 12238, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1655:37:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "1651:41:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "functionReturnParameters": 12207, + "id": 12240, + "nodeType": "Return", + "src": "1644:48:30" + } + ] + }, + "documentation": { + "id": 12199, + "nodeType": "StructuredDocumentation", + "src": "1338:126:30", + "text": " @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero." + }, + "id": 12242, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "average", + "nameLocation": "1478:7:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12204, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12201, + "mutability": "mutable", + "name": "a", + "nameLocation": "1493:1:30", + "nodeType": "VariableDeclaration", + "scope": 12242, + "src": "1486:8:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12200, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1486:6:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12203, + "mutability": "mutable", + "name": "b", + "nameLocation": "1503:1:30", + "nodeType": "VariableDeclaration", + "scope": 12242, + "src": "1496:8:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12202, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1496:6:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1485:20:30" + }, + "returnParameters": { + "id": 12207, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12206, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12242, + "src": "1529:6:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12205, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1529:6:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1528:8:30" + }, + "scope": 12269, + "src": "1469:230:30", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12267, + "nodeType": "Block", + "src": "1843:767:30", + "statements": [ + { + "id": 12266, + "nodeType": "UncheckedBlock", + "src": "1853:751:30", + "statements": [ + { + "assignments": [ + 12251 + ], + "declarations": [ + { + "constant": false, + "id": 12251, + "mutability": "mutable", + "name": "mask", + "nameLocation": "2424:4:30", + "nodeType": "VariableDeclaration", + "scope": 12266, + "src": "2417:11:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12250, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "2417:6:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 12255, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12252, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12245, + "src": "2431:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">>", + "rightExpression": { + "hexValue": "323535", + "id": 12253, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2436:3:30", + "typeDescriptions": { + "typeIdentifier": "t_rational_255_by_1", + "typeString": "int_const 255" + }, + "value": "255" + }, + "src": "2431:8:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2417:22:30" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 12260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12258, + "name": "n", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12245, + "src": "2576:1:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 12259, + "name": "mask", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12251, + "src": "2580:4:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2576:8:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 12261, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2575:10:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "^", + "rightExpression": { + "id": 12262, + "name": "mask", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12251, + "src": "2588:4:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2575:17:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 12257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2567:7:30", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 12256, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2567:7:30", + "typeDescriptions": {} + } + }, + "id": 12264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2567:26:30", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12249, + "id": 12265, + "nodeType": "Return", + "src": "2560:33:30" + } + ] + } + ] + }, + "documentation": { + "id": 12243, + "nodeType": "StructuredDocumentation", + "src": "1705:78:30", + "text": " @dev Returns the absolute unsigned value of a signed value." + }, + "id": 12268, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "abs", + "nameLocation": "1797:3:30", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12245, + "mutability": "mutable", + "name": "n", + "nameLocation": "1808:1:30", + "nodeType": "VariableDeclaration", + "scope": 12268, + "src": "1801:8:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12244, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1801:6:30", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "src": "1800:10:30" + }, + "returnParameters": { + "id": 12249, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12248, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12268, + "src": "1834:7:30", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12247, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1834:7:30", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1833:9:30" + }, + "scope": 12269, + "src": "1788:822:30", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 12270, + "src": "258:2354:30", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "109:2504:30" + }, + "id": 30 + }, + "@openzeppelin/contracts/utils/structs/EnumerableSet.sol": { + "ast": { + "absolutePath": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", + "exportedSymbols": { + "Arrays": [ + 6529 + ], + "EnumerableSet": [ + 12966 + ] + }, + "id": 12967, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12271, + "literals": [ + "solidity", + "^", + "0.8", + ".20" + ], + "nodeType": "PragmaDirective", + "src": "205:24:31" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/Arrays.sol", + "file": "../Arrays.sol", + "id": 12273, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 12967, + "sourceUnit": 6530, + "src": "231:37:31", + "symbolAliases": [ + { + "foreign": { + "id": 12272, + "name": "Arrays", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6529, + "src": "239:6:31", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "EnumerableSet", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 12274, + "nodeType": "StructuredDocumentation", + "src": "270:1154:31", + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n - Set can be cleared (all elements removed) in O(n).\n ```solidity\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported.\n [WARNING]\n ====\n Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\n unusable.\n See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\n array of EnumerableSet.\n ====" + }, + "fullyImplemented": true, + "id": 12966, + "linearizedBaseContracts": [ + 12966 + ], + "name": "EnumerableSet", + "nameLocation": "1433:13:31", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableSet.Set", + "id": 12282, + "members": [ + { + "constant": false, + "id": 12277, + "mutability": "mutable", + "name": "_values", + "nameLocation": "1957:7:31", + "nodeType": "VariableDeclaration", + "scope": 12282, + "src": "1947:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 12275, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1947:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 12276, + "nodeType": "ArrayTypeName", + "src": "1947:9:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12281, + "mutability": "mutable", + "name": "_positions", + "nameLocation": "2149:10:31", + "nodeType": "VariableDeclaration", + "scope": 12282, + "src": "2115:44:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 12280, + "keyName": "value", + "keyNameLocation": "2131:5:31", + "keyType": { + "id": 12278, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2123:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "2115:33:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 12279, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2140:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Set", + "nameLocation": "1900:3:31", + "nodeType": "StructDefinition", + "scope": 12966, + "src": "1893:273:31", + "visibility": "public" + }, + { + "body": { + "id": 12323, + "nodeType": "Block", + "src": "2405:337:31", + "statements": [ + { + "condition": { + "id": 12297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "2419:22:31", + "subExpression": { + "arguments": [ + { + "id": 12294, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12286, + "src": "2430:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + { + "id": 12295, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12288, + "src": "2435:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12293, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12470, + "src": "2420:9:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 12296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2420:21:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 12321, + "nodeType": "Block", + "src": "2699:37:31", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 12319, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2720:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 12292, + "id": 12320, + "nodeType": "Return", + "src": "2713:12:31" + } + ] + }, + "id": 12322, + "nodeType": "IfStatement", + "src": "2415:321:31", + "trueBody": { + "id": 12318, + "nodeType": "Block", + "src": "2443:250:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 12303, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12288, + "src": "2474:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 12298, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12286, + "src": "2457:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12301, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2461:7:31", + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 12277, + "src": "2457:11:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 12302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2469:4:31", + "memberName": "push", + "nodeType": "MemberAccess", + "src": "2457:16:31", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$", + "typeString": "function (bytes32[] storage pointer,bytes32)" + } + }, + "id": 12304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2457:23:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12305, + "nodeType": "ExpressionStatement", + "src": "2457:23:31" + }, + { + "expression": { + "id": 12314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 12306, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12286, + "src": "2615:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12309, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2619:10:31", + "memberName": "_positions", + "nodeType": "MemberAccess", + "referencedDeclaration": 12281, + "src": "2615:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 12310, + "indexExpression": { + "id": 12308, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12288, + "src": "2630:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2615:21:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 12311, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12286, + "src": "2639:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12312, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2643:7:31", + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 12277, + "src": "2639:11:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 12313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "2651:6:31", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "2639:18:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2615:42:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12315, + "nodeType": "ExpressionStatement", + "src": "2615:42:31" + }, + { + "expression": { + "hexValue": "74727565", + "id": 12316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2678:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 12292, + "id": 12317, + "nodeType": "Return", + "src": "2671:11:31" + } + ] + } + } + ] + }, + "documentation": { + "id": 12283, + "nodeType": "StructuredDocumentation", + "src": "2172:159:31", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 12324, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_add", + "nameLocation": "2345:4:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12289, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12286, + "mutability": "mutable", + "name": "set", + "nameLocation": "2362:3:31", + "nodeType": "VariableDeclaration", + "scope": 12324, + "src": "2350:15:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 12285, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12284, + "name": "Set", + "nameLocations": [ + "2350:3:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12282, + "src": "2350:3:31" + }, + "referencedDeclaration": 12282, + "src": "2350:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12288, + "mutability": "mutable", + "name": "value", + "nameLocation": "2375:5:31", + "nodeType": "VariableDeclaration", + "scope": 12324, + "src": "2367:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12287, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2367:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2349:32:31" + }, + "returnParameters": { + "id": 12292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12291, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12324, + "src": "2399:4:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12290, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2399:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2398:6:31" + }, + "scope": 12966, + "src": "2336:406:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 12407, + "nodeType": "Block", + "src": "2982:1296:31", + "statements": [ + { + "assignments": [ + 12336 + ], + "declarations": [ + { + "constant": false, + "id": 12336, + "mutability": "mutable", + "name": "position", + "nameLocation": "3094:8:31", + "nodeType": "VariableDeclaration", + "scope": 12407, + "src": "3086:16:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3086:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 12341, + "initialValue": { + "baseExpression": { + "expression": { + "id": 12337, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12328, + "src": "3105:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12338, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3109:10:31", + "memberName": "_positions", + "nodeType": "MemberAccess", + "referencedDeclaration": 12281, + "src": "3105:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 12340, + "indexExpression": { + "id": 12339, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12330, + "src": "3120:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3105:21:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3086:40:31" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12342, + "name": "position", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12336, + "src": "3141:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 12343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3153:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3141:13:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 12405, + "nodeType": "Block", + "src": "4235:37:31", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 12403, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4256:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 12334, + "id": 12404, + "nodeType": "Return", + "src": "4249:12:31" + } + ] + }, + "id": 12406, + "nodeType": "IfStatement", + "src": "3137:1135:31", + "trueBody": { + "id": 12402, + "nodeType": "Block", + "src": "3156:1073:31", + "statements": [ + { + "assignments": [ + 12346 + ], + "declarations": [ + { + "constant": false, + "id": 12346, + "mutability": "mutable", + "name": "valueIndex", + "nameLocation": "3516:10:31", + "nodeType": "VariableDeclaration", + "scope": 12402, + "src": "3508:18:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12345, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3508:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 12350, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12347, + "name": "position", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12336, + "src": "3529:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 12348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3540:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3529:12:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3508:33:31" + }, + { + "assignments": [ + 12352 + ], + "declarations": [ + { + "constant": false, + "id": 12352, + "mutability": "mutable", + "name": "lastIndex", + "nameLocation": "3563:9:31", + "nodeType": "VariableDeclaration", + "scope": 12402, + "src": "3555:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12351, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3555:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 12358, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 12353, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12328, + "src": "3575:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12354, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3579:7:31", + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 12277, + "src": "3575:11:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 12355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3587:6:31", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "3575:18:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 12356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3596:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3575:22:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3555:42:31" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12359, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12346, + "src": "3616:10:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 12360, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12352, + "src": "3630:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3616:23:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12386, + "nodeType": "IfStatement", + "src": "3612:378:31", + "trueBody": { + "id": 12385, + "nodeType": "Block", + "src": "3641:349:31", + "statements": [ + { + "assignments": [ + 12363 + ], + "declarations": [ + { + "constant": false, + "id": 12363, + "mutability": "mutable", + "name": "lastValue", + "nameLocation": "3667:9:31", + "nodeType": "VariableDeclaration", + "scope": 12385, + "src": "3659:17:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12362, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3659:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 12368, + "initialValue": { + "baseExpression": { + "expression": { + "id": 12364, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12328, + "src": "3679:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12365, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3683:7:31", + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 12277, + "src": "3679:11:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 12367, + "indexExpression": { + "id": 12366, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12352, + "src": "3691:9:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3679:22:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3659:42:31" + }, + { + "expression": { + "id": 12375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 12369, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12328, + "src": "3800:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12372, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3804:7:31", + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 12277, + "src": "3800:11:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 12373, + "indexExpression": { + "id": 12371, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12346, + "src": "3812:10:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3800:23:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 12374, + "name": "lastValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12363, + "src": "3826:9:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "3800:35:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 12376, + "nodeType": "ExpressionStatement", + "src": "3800:35:31" + }, + { + "expression": { + "id": 12383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 12377, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12328, + "src": "3939:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12380, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3943:10:31", + "memberName": "_positions", + "nodeType": "MemberAccess", + "referencedDeclaration": 12281, + "src": "3939:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 12381, + "indexExpression": { + "id": 12379, + "name": "lastValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12363, + "src": "3954:9:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3939:25:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 12382, + "name": "position", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12336, + "src": "3967:8:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3939:36:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12384, + "nodeType": "ExpressionStatement", + "src": "3939:36:31" + } + ] + } + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 12387, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12328, + "src": "4068:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12390, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4072:7:31", + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 12277, + "src": "4068:11:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 12391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4080:3:31", + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "4068:15:31", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$", + "typeString": "function (bytes32[] storage pointer)" + } + }, + "id": 12392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4068:17:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12393, + "nodeType": "ExpressionStatement", + "src": "4068:17:31" + }, + { + "expression": { + "id": 12398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "4164:28:31", + "subExpression": { + "baseExpression": { + "expression": { + "id": 12394, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12328, + "src": "4171:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12395, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4175:10:31", + "memberName": "_positions", + "nodeType": "MemberAccess", + "referencedDeclaration": 12281, + "src": "4171:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 12397, + "indexExpression": { + "id": 12396, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12330, + "src": "4186:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4171:21:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12399, + "nodeType": "ExpressionStatement", + "src": "4164:28:31" + }, + { + "expression": { + "hexValue": "74727565", + "id": 12400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4214:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 12334, + "id": 12401, + "nodeType": "Return", + "src": "4207:11:31" + } + ] + } + } + ] + }, + "documentation": { + "id": 12325, + "nodeType": "StructuredDocumentation", + "src": "2748:157:31", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 12408, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nameLocation": "2919:7:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12331, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12328, + "mutability": "mutable", + "name": "set", + "nameLocation": "2939:3:31", + "nodeType": "VariableDeclaration", + "scope": 12408, + "src": "2927:15:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 12327, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12326, + "name": "Set", + "nameLocations": [ + "2927:3:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12282, + "src": "2927:3:31" + }, + "referencedDeclaration": 12282, + "src": "2927:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12330, + "mutability": "mutable", + "name": "value", + "nameLocation": "2952:5:31", + "nodeType": "VariableDeclaration", + "scope": 12408, + "src": "2944:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12329, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2944:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "2926:32:31" + }, + "returnParameters": { + "id": 12334, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12333, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12408, + "src": "2976:4:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12332, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2976:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2975:6:31" + }, + "scope": 12966, + "src": "2910:1368:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 12450, + "nodeType": "Block", + "src": "4633:196:31", + "statements": [ + { + "assignments": [ + 12416 + ], + "declarations": [ + { + "constant": false, + "id": 12416, + "mutability": "mutable", + "name": "len", + "nameLocation": "4651:3:31", + "nodeType": "VariableDeclaration", + "scope": 12450, + "src": "4643:11:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12415, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4643:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 12420, + "initialValue": { + "arguments": [ + { + "id": 12418, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12412, + "src": "4665:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + ], + "id": 12417, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12484, + "src": "4657:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 12419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4657:12:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4643:26:31" + }, + { + "body": { + "id": 12440, + "nodeType": "Block", + "src": "4713:62:31", + "statements": [ + { + "expression": { + "id": 12438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "4727:37:31", + "subExpression": { + "baseExpression": { + "expression": { + "id": 12431, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12412, + "src": "4734:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12432, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4738:10:31", + "memberName": "_positions", + "nodeType": "MemberAccess", + "referencedDeclaration": 12281, + "src": "4734:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 12437, + "indexExpression": { + "baseExpression": { + "expression": { + "id": 12433, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12412, + "src": "4749:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12434, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4753:7:31", + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 12277, + "src": "4749:11:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 12436, + "indexExpression": { + "id": 12435, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12422, + "src": "4761:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4749:14:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4734:30:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12439, + "nodeType": "ExpressionStatement", + "src": "4727:37:31" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 12425, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12422, + "src": "4699:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 12426, + "name": "len", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12416, + "src": "4703:3:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4699:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 12441, + "initializationExpression": { + "assignments": [ + 12422 + ], + "declarations": [ + { + "constant": false, + "id": 12422, + "mutability": "mutable", + "name": "i", + "nameLocation": "4692:1:31", + "nodeType": "VariableDeclaration", + "scope": 12441, + "src": "4684:9:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12421, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4684:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 12424, + "initialValue": { + "hexValue": "30", + "id": 12423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4696:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "4684:13:31" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 12429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": true, + "src": "4708:3:31", + "subExpression": { + "id": 12428, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12422, + "src": "4710:1:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12430, + "nodeType": "ExpressionStatement", + "src": "4708:3:31" + }, + "nodeType": "ForStatement", + "src": "4679:96:31" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12445, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12412, + "src": "4807:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12446, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4811:7:31", + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 12277, + "src": "4807:11:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + { + "hexValue": "30", + "id": 12447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4820:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "expression": { + "id": 12442, + "name": "Arrays", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6529, + "src": "4784:6:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Arrays_$6529_$", + "typeString": "type(library Arrays)" + } + }, + "id": 12444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4791:15:31", + "memberName": "unsafeSetLength", + "nodeType": "MemberAccess", + "referencedDeclaration": 6517, + "src": "4784:22:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_uint256_$returns$__$", + "typeString": "function (bytes32[] storage pointer,uint256)" + } + }, + "id": 12448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4784:38:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12449, + "nodeType": "ExpressionStatement", + "src": "4784:38:31" + } + ] + }, + "documentation": { + "id": 12409, + "nodeType": "StructuredDocumentation", + "src": "4284:303:31", + "text": " @dev Removes all the values from a set. O(n).\n WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block." + }, + "id": 12451, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_clear", + "nameLocation": "4601:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12412, + "mutability": "mutable", + "name": "set", + "nameLocation": "4620:3:31", + "nodeType": "VariableDeclaration", + "scope": 12451, + "src": "4608:15:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 12411, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12410, + "name": "Set", + "nameLocations": [ + "4608:3:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12282, + "src": "4608:3:31" + }, + "referencedDeclaration": 12282, + "src": "4608:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "4607:17:31" + }, + "returnParameters": { + "id": 12414, + "nodeType": "ParameterList", + "parameters": [], + "src": "4633:0:31" + }, + "scope": 12966, + "src": "4592:237:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 12469, + "nodeType": "Block", + "src": "4989:50:31", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 12467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 12462, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12455, + "src": "5006:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12463, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5010:10:31", + "memberName": "_positions", + "nodeType": "MemberAccess", + "referencedDeclaration": 12281, + "src": "5006:14:31", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 12465, + "indexExpression": { + "id": 12464, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12457, + "src": "5021:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5006:21:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 12466, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5031:1:31", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5006:26:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12461, + "id": 12468, + "nodeType": "Return", + "src": "4999:33:31" + } + ] + }, + "documentation": { + "id": 12452, + "nodeType": "StructuredDocumentation", + "src": "4835:70:31", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 12470, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nameLocation": "4919:9:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12455, + "mutability": "mutable", + "name": "set", + "nameLocation": "4941:3:31", + "nodeType": "VariableDeclaration", + "scope": 12470, + "src": "4929:15:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 12454, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12453, + "name": "Set", + "nameLocations": [ + "4929:3:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12282, + "src": "4929:3:31" + }, + "referencedDeclaration": 12282, + "src": "4929:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12457, + "mutability": "mutable", + "name": "value", + "nameLocation": "4954:5:31", + "nodeType": "VariableDeclaration", + "scope": 12470, + "src": "4946:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12456, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4946:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "4928:32:31" + }, + "returnParameters": { + "id": 12461, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12460, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12470, + "src": "4983:4:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12459, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4983:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4982:6:31" + }, + "scope": 12966, + "src": "4910:129:31", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 12483, + "nodeType": "Block", + "src": "5185:42:31", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 12479, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12474, + "src": "5202:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12480, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5206:7:31", + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 12277, + "src": "5202:11:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 12481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5214:6:31", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "5202:18:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12478, + "id": 12482, + "nodeType": "Return", + "src": "5195:25:31" + } + ] + }, + "documentation": { + "id": 12471, + "nodeType": "StructuredDocumentation", + "src": "5045:70:31", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 12484, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nameLocation": "5129:7:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12475, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12474, + "mutability": "mutable", + "name": "set", + "nameLocation": "5149:3:31", + "nodeType": "VariableDeclaration", + "scope": 12484, + "src": "5137:15:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 12473, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12472, + "name": "Set", + "nameLocations": [ + "5137:3:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12282, + "src": "5137:3:31" + }, + "referencedDeclaration": 12282, + "src": "5137:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "5136:17:31" + }, + "returnParameters": { + "id": 12478, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12477, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12484, + "src": "5176:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12476, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5176:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5175:9:31" + }, + "scope": 12966, + "src": "5120:107:31", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 12500, + "nodeType": "Block", + "src": "5645:42:31", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "id": 12495, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12488, + "src": "5662:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12496, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5666:7:31", + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 12277, + "src": "5662:11:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 12498, + "indexExpression": { + "id": 12497, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12490, + "src": "5674:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5662:18:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 12494, + "id": 12499, + "nodeType": "Return", + "src": "5655:25:31" + } + ] + }, + "documentation": { + "id": 12485, + "nodeType": "StructuredDocumentation", + "src": "5233:331:31", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 12501, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nameLocation": "5578:3:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12488, + "mutability": "mutable", + "name": "set", + "nameLocation": "5594:3:31", + "nodeType": "VariableDeclaration", + "scope": 12501, + "src": "5582:15:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 12487, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12486, + "name": "Set", + "nameLocations": [ + "5582:3:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12282, + "src": "5582:3:31" + }, + "referencedDeclaration": 12282, + "src": "5582:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12490, + "mutability": "mutable", + "name": "index", + "nameLocation": "5607:5:31", + "nodeType": "VariableDeclaration", + "scope": 12501, + "src": "5599:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12489, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5599:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5581:32:31" + }, + "returnParameters": { + "id": 12494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12493, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12501, + "src": "5636:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12492, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5636:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "5635:9:31" + }, + "scope": 12966, + "src": "5569:118:31", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 12514, + "nodeType": "Block", + "src": "6301:35:31", + "statements": [ + { + "expression": { + "expression": { + "id": 12511, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12505, + "src": "6318:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 12512, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6322:7:31", + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 12277, + "src": "6318:11:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "functionReturnParameters": 12510, + "id": 12513, + "nodeType": "Return", + "src": "6311:18:31" + } + ] + }, + "documentation": { + "id": 12502, + "nodeType": "StructuredDocumentation", + "src": "5693:529:31", + "text": " @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block." + }, + "id": 12515, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_values", + "nameLocation": "6236:7:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12506, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12505, + "mutability": "mutable", + "name": "set", + "nameLocation": "6256:3:31", + "nodeType": "VariableDeclaration", + "scope": 12515, + "src": "6244:15:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 12504, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12503, + "name": "Set", + "nameLocations": [ + "6244:3:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12282, + "src": "6244:3:31" + }, + "referencedDeclaration": 12282, + "src": "6244:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "6243:17:31" + }, + "returnParameters": { + "id": 12510, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12509, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12515, + "src": "6283:16:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 12507, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6283:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 12508, + "nodeType": "ArrayTypeName", + "src": "6283:9:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + } + ], + "src": "6282:18:31" + }, + "scope": 12966, + "src": "6227:109:31", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableSet.Bytes32Set", + "id": 12519, + "members": [ + { + "constant": false, + "id": 12518, + "mutability": "mutable", + "name": "_inner", + "nameLocation": "6393:6:31", + "nodeType": "VariableDeclaration", + "scope": 12519, + "src": "6389:10:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 12517, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12516, + "name": "Set", + "nameLocations": [ + "6389:3:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12282, + "src": "6389:3:31" + }, + "referencedDeclaration": 12282, + "src": "6389:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Set", + "nameLocation": "6368:10:31", + "nodeType": "StructDefinition", + "scope": 12966, + "src": "6361:45:31", + "visibility": "public" + }, + { + "body": { + "id": 12536, + "nodeType": "Block", + "src": "6652:47:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12531, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12523, + "src": "6674:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 12532, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6678:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12518, + "src": "6674:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 12533, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12525, + "src": "6686:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12530, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12324, + "src": "6669:4:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 12534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6669:23:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12529, + "id": 12535, + "nodeType": "Return", + "src": "6662:30:31" + } + ] + }, + "documentation": { + "id": 12520, + "nodeType": "StructuredDocumentation", + "src": "6412:159:31", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 12537, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nameLocation": "6585:3:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12526, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12523, + "mutability": "mutable", + "name": "set", + "nameLocation": "6608:3:31", + "nodeType": "VariableDeclaration", + "scope": 12537, + "src": "6589:22:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 12522, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12521, + "name": "Bytes32Set", + "nameLocations": [ + "6589:10:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12519, + "src": "6589:10:31" + }, + "referencedDeclaration": 12519, + "src": "6589:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12525, + "mutability": "mutable", + "name": "value", + "nameLocation": "6621:5:31", + "nodeType": "VariableDeclaration", + "scope": 12537, + "src": "6613:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12524, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6613:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "6588:39:31" + }, + "returnParameters": { + "id": 12529, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12528, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12537, + "src": "6646:4:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12527, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6646:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6645:6:31" + }, + "scope": 12966, + "src": "6576:123:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12554, + "nodeType": "Block", + "src": "6946:50:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12549, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12541, + "src": "6971:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 12550, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6975:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12518, + "src": "6971:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 12551, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12543, + "src": "6983:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12548, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12408, + "src": "6963:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 12552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6963:26:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12547, + "id": 12553, + "nodeType": "Return", + "src": "6956:33:31" + } + ] + }, + "documentation": { + "id": 12538, + "nodeType": "StructuredDocumentation", + "src": "6705:157:31", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 12555, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nameLocation": "6876:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12541, + "mutability": "mutable", + "name": "set", + "nameLocation": "6902:3:31", + "nodeType": "VariableDeclaration", + "scope": 12555, + "src": "6883:22:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 12540, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12539, + "name": "Bytes32Set", + "nameLocations": [ + "6883:10:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12519, + "src": "6883:10:31" + }, + "referencedDeclaration": 12519, + "src": "6883:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12543, + "mutability": "mutable", + "name": "value", + "nameLocation": "6915:5:31", + "nodeType": "VariableDeclaration", + "scope": 12555, + "src": "6907:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12542, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6907:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "6882:39:31" + }, + "returnParameters": { + "id": 12547, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12546, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12555, + "src": "6940:4:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12545, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6940:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6939:6:31" + }, + "scope": 12966, + "src": "6867:129:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12567, + "nodeType": "Block", + "src": "7358:35:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12563, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12559, + "src": "7375:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 12564, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7379:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12518, + "src": "7375:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 12562, + "name": "_clear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12451, + "src": "7368:6:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$returns$__$", + "typeString": "function (struct EnumerableSet.Set storage pointer)" + } + }, + "id": 12565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7368:18:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12566, + "nodeType": "ExpressionStatement", + "src": "7368:18:31" + } + ] + }, + "documentation": { + "id": 12556, + "nodeType": "StructuredDocumentation", + "src": "7002:303:31", + "text": " @dev Removes all the values from a set. O(n).\n WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block." + }, + "id": 12568, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clear", + "nameLocation": "7319:5:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12560, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12559, + "mutability": "mutable", + "name": "set", + "nameLocation": "7344:3:31", + "nodeType": "VariableDeclaration", + "scope": 12568, + "src": "7325:22:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 12558, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12557, + "name": "Bytes32Set", + "nameLocations": [ + "7325:10:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12519, + "src": "7325:10:31" + }, + "referencedDeclaration": 12519, + "src": "7325:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "7324:24:31" + }, + "returnParameters": { + "id": 12561, + "nodeType": "ParameterList", + "parameters": [], + "src": "7358:0:31" + }, + "scope": 12966, + "src": "7310:83:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12585, + "nodeType": "Block", + "src": "7560:52:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12580, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12572, + "src": "7587:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 12581, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7591:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12518, + "src": "7587:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 12582, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12574, + "src": "7599:5:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12579, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12470, + "src": "7577:9:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 12583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7577:28:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12578, + "id": 12584, + "nodeType": "Return", + "src": "7570:35:31" + } + ] + }, + "documentation": { + "id": 12569, + "nodeType": "StructuredDocumentation", + "src": "7399:70:31", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 12586, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nameLocation": "7483:8:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12575, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12572, + "mutability": "mutable", + "name": "set", + "nameLocation": "7511:3:31", + "nodeType": "VariableDeclaration", + "scope": 12586, + "src": "7492:22:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 12571, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12570, + "name": "Bytes32Set", + "nameLocations": [ + "7492:10:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12519, + "src": "7492:10:31" + }, + "referencedDeclaration": 12519, + "src": "7492:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12574, + "mutability": "mutable", + "name": "value", + "nameLocation": "7524:5:31", + "nodeType": "VariableDeclaration", + "scope": 12586, + "src": "7516:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12573, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7516:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "7491:39:31" + }, + "returnParameters": { + "id": 12578, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12577, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12586, + "src": "7554:4:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12576, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7554:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "7553:6:31" + }, + "scope": 12966, + "src": "7474:138:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12600, + "nodeType": "Block", + "src": "7765:43:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12596, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12590, + "src": "7790:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 12597, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7794:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12518, + "src": "7790:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 12595, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12484, + "src": "7782:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 12598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7782:19:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12594, + "id": 12599, + "nodeType": "Return", + "src": "7775:26:31" + } + ] + }, + "documentation": { + "id": 12587, + "nodeType": "StructuredDocumentation", + "src": "7618:70:31", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 12601, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nameLocation": "7702:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12591, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12590, + "mutability": "mutable", + "name": "set", + "nameLocation": "7728:3:31", + "nodeType": "VariableDeclaration", + "scope": 12601, + "src": "7709:22:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 12589, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12588, + "name": "Bytes32Set", + "nameLocations": [ + "7709:10:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12519, + "src": "7709:10:31" + }, + "referencedDeclaration": 12519, + "src": "7709:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "7708:24:31" + }, + "returnParameters": { + "id": 12594, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12593, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12601, + "src": "7756:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7756:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7755:9:31" + }, + "scope": 12966, + "src": "7693:115:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12618, + "nodeType": "Block", + "src": "8233:46:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12613, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12605, + "src": "8254:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 12614, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8258:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12518, + "src": "8254:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 12615, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12607, + "src": "8266:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12612, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12501, + "src": "8250:3:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 12616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8250:22:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 12611, + "id": 12617, + "nodeType": "Return", + "src": "8243:29:31" + } + ] + }, + "documentation": { + "id": 12602, + "nodeType": "StructuredDocumentation", + "src": "7814:331:31", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 12619, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nameLocation": "8159:2:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12605, + "mutability": "mutable", + "name": "set", + "nameLocation": "8181:3:31", + "nodeType": "VariableDeclaration", + "scope": 12619, + "src": "8162:22:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 12604, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12603, + "name": "Bytes32Set", + "nameLocations": [ + "8162:10:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12519, + "src": "8162:10:31" + }, + "referencedDeclaration": 12519, + "src": "8162:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12607, + "mutability": "mutable", + "name": "index", + "nameLocation": "8194:5:31", + "nodeType": "VariableDeclaration", + "scope": 12619, + "src": "8186:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12606, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8186:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8161:39:31" + }, + "returnParameters": { + "id": 12611, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12610, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12619, + "src": "8224:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 12609, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8224:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "8223:9:31" + }, + "scope": 12966, + "src": "8150:129:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12648, + "nodeType": "Block", + "src": "8900:192:31", + "statements": [ + { + "assignments": [ + 12633 + ], + "declarations": [ + { + "constant": false, + "id": 12633, + "mutability": "mutable", + "name": "store", + "nameLocation": "8927:5:31", + "nodeType": "VariableDeclaration", + "scope": 12648, + "src": "8910:22:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 12631, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8910:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 12632, + "nodeType": "ArrayTypeName", + "src": "8910:9:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + } + ], + "id": 12638, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 12635, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12623, + "src": "8943:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 12636, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8947:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12518, + "src": "8943:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 12634, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12515, + "src": "8935:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 12637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8935:19:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8910:44:31" + }, + { + "assignments": [ + 12643 + ], + "declarations": [ + { + "constant": false, + "id": 12643, + "mutability": "mutable", + "name": "result", + "nameLocation": "8981:6:31", + "nodeType": "VariableDeclaration", + "scope": 12648, + "src": "8964:23:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 12641, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8964:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 12642, + "nodeType": "ArrayTypeName", + "src": "8964:9:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + } + ], + "id": 12644, + "nodeType": "VariableDeclarationStatement", + "src": "8964:23:31" + }, + { + "AST": { + "nativeSrc": "9023:39:31", + "nodeType": "YulBlock", + "src": "9023:39:31", + "statements": [ + { + "nativeSrc": "9037:15:31", + "nodeType": "YulAssignment", + "src": "9037:15:31", + "value": { + "name": "store", + "nativeSrc": "9047:5:31", + "nodeType": "YulIdentifier", + "src": "9047:5:31" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "9037:6:31", + "nodeType": "YulIdentifier", + "src": "9037:6:31" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 12643, + "isOffset": false, + "isSlot": false, + "src": "9037:6:31", + "valueSize": 1 + }, + { + "declaration": 12633, + "isOffset": false, + "isSlot": false, + "src": "9047:5:31", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 12645, + "nodeType": "InlineAssembly", + "src": "8998:64:31" + }, + { + "expression": { + "id": 12646, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12643, + "src": "9079:6:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "functionReturnParameters": 12628, + "id": 12647, + "nodeType": "Return", + "src": "9072:13:31" + } + ] + }, + "documentation": { + "id": 12620, + "nodeType": "StructuredDocumentation", + "src": "8285:529:31", + "text": " @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block." + }, + "id": 12649, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "values", + "nameLocation": "8828:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12623, + "mutability": "mutable", + "name": "set", + "nameLocation": "8854:3:31", + "nodeType": "VariableDeclaration", + "scope": 12649, + "src": "8835:22:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 12622, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12621, + "name": "Bytes32Set", + "nameLocations": [ + "8835:10:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12519, + "src": "8835:10:31" + }, + "referencedDeclaration": 12519, + "src": "8835:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$12519_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "8834:24:31" + }, + "returnParameters": { + "id": 12628, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12627, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12649, + "src": "8882:16:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 12625, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8882:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 12626, + "nodeType": "ArrayTypeName", + "src": "8882:9:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + } + ], + "src": "8881:18:31" + }, + "scope": 12966, + "src": "8819:273:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.AddressSet", + "id": 12653, + "members": [ + { + "constant": false, + "id": 12652, + "mutability": "mutable", + "name": "_inner", + "nameLocation": "9149:6:31", + "nodeType": "VariableDeclaration", + "scope": 12653, + "src": "9145:10:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 12651, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12650, + "name": "Set", + "nameLocations": [ + "9145:3:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12282, + "src": "9145:3:31" + }, + "referencedDeclaration": 12282, + "src": "9145:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSet", + "nameLocation": "9124:10:31", + "nodeType": "StructDefinition", + "scope": 12966, + "src": "9117:45:31", + "visibility": "public" + }, + { + "body": { + "id": 12679, + "nodeType": "Block", + "src": "9408:74:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12665, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12657, + "src": "9430:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 12666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9434:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12652, + "src": "9430:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 12673, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12659, + "src": "9466:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9458:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 12671, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "9458:7:31", + "typeDescriptions": {} + } + }, + "id": 12674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9458:14:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 12670, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9450:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 12669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9450:7:31", + "typeDescriptions": {} + } + }, + "id": 12675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9450:23:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9442:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 12667, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9442:7:31", + "typeDescriptions": {} + } + }, + "id": 12676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9442:32:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12664, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12324, + "src": "9425:4:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 12677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9425:50:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12663, + "id": 12678, + "nodeType": "Return", + "src": "9418:57:31" + } + ] + }, + "documentation": { + "id": 12654, + "nodeType": "StructuredDocumentation", + "src": "9168:159:31", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 12680, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nameLocation": "9341:3:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12657, + "mutability": "mutable", + "name": "set", + "nameLocation": "9364:3:31", + "nodeType": "VariableDeclaration", + "scope": 12680, + "src": "9345:22:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 12656, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12655, + "name": "AddressSet", + "nameLocations": [ + "9345:10:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12653, + "src": "9345:10:31" + }, + "referencedDeclaration": 12653, + "src": "9345:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12659, + "mutability": "mutable", + "name": "value", + "nameLocation": "9377:5:31", + "nodeType": "VariableDeclaration", + "scope": 12680, + "src": "9369:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12658, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9369:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "9344:39:31" + }, + "returnParameters": { + "id": 12663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12662, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12680, + "src": "9402:4:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9402:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9401:6:31" + }, + "scope": 12966, + "src": "9332:150:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12706, + "nodeType": "Block", + "src": "9729:77:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12692, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12684, + "src": "9754:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 12693, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9758:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12652, + "src": "9754:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 12700, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12686, + "src": "9790:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9782:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 12698, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "9782:7:31", + "typeDescriptions": {} + } + }, + "id": 12701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9782:14:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 12697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9774:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 12696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9774:7:31", + "typeDescriptions": {} + } + }, + "id": 12702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9774:23:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9766:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 12694, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9766:7:31", + "typeDescriptions": {} + } + }, + "id": 12703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9766:32:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12691, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12408, + "src": "9746:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 12704, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9746:53:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12690, + "id": 12705, + "nodeType": "Return", + "src": "9739:60:31" + } + ] + }, + "documentation": { + "id": 12681, + "nodeType": "StructuredDocumentation", + "src": "9488:157:31", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 12707, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nameLocation": "9659:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12687, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12684, + "mutability": "mutable", + "name": "set", + "nameLocation": "9685:3:31", + "nodeType": "VariableDeclaration", + "scope": 12707, + "src": "9666:22:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 12683, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12682, + "name": "AddressSet", + "nameLocations": [ + "9666:10:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12653, + "src": "9666:10:31" + }, + "referencedDeclaration": 12653, + "src": "9666:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12686, + "mutability": "mutable", + "name": "value", + "nameLocation": "9698:5:31", + "nodeType": "VariableDeclaration", + "scope": 12707, + "src": "9690:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12685, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9690:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "9665:39:31" + }, + "returnParameters": { + "id": 12690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12689, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12707, + "src": "9723:4:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12688, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9723:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9722:6:31" + }, + "scope": 12966, + "src": "9650:156:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12719, + "nodeType": "Block", + "src": "10168:35:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12715, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12711, + "src": "10185:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 12716, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10189:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12652, + "src": "10185:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 12714, + "name": "_clear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12451, + "src": "10178:6:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$returns$__$", + "typeString": "function (struct EnumerableSet.Set storage pointer)" + } + }, + "id": 12717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10178:18:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12718, + "nodeType": "ExpressionStatement", + "src": "10178:18:31" + } + ] + }, + "documentation": { + "id": 12708, + "nodeType": "StructuredDocumentation", + "src": "9812:303:31", + "text": " @dev Removes all the values from a set. O(n).\n WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block." + }, + "id": 12720, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clear", + "nameLocation": "10129:5:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12711, + "mutability": "mutable", + "name": "set", + "nameLocation": "10154:3:31", + "nodeType": "VariableDeclaration", + "scope": 12720, + "src": "10135:22:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 12710, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12709, + "name": "AddressSet", + "nameLocations": [ + "10135:10:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12653, + "src": "10135:10:31" + }, + "referencedDeclaration": 12653, + "src": "10135:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "10134:24:31" + }, + "returnParameters": { + "id": 12713, + "nodeType": "ParameterList", + "parameters": [], + "src": "10168:0:31" + }, + "scope": 12966, + "src": "10120:83:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12746, + "nodeType": "Block", + "src": "10370:79:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12732, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12724, + "src": "10397:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 12733, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10401:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12652, + "src": "10397:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 12740, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12726, + "src": "10433:5:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 12739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10425:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 12738, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "10425:7:31", + "typeDescriptions": {} + } + }, + "id": 12741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10425:14:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 12737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10417:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 12736, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10417:7:31", + "typeDescriptions": {} + } + }, + "id": 12742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10417:23:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10409:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 12734, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10409:7:31", + "typeDescriptions": {} + } + }, + "id": 12743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10409:32:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12731, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12470, + "src": "10387:9:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 12744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10387:55:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12730, + "id": 12745, + "nodeType": "Return", + "src": "10380:62:31" + } + ] + }, + "documentation": { + "id": 12721, + "nodeType": "StructuredDocumentation", + "src": "10209:70:31", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 12747, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nameLocation": "10293:8:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12724, + "mutability": "mutable", + "name": "set", + "nameLocation": "10321:3:31", + "nodeType": "VariableDeclaration", + "scope": 12747, + "src": "10302:22:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 12723, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12722, + "name": "AddressSet", + "nameLocations": [ + "10302:10:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12653, + "src": "10302:10:31" + }, + "referencedDeclaration": 12653, + "src": "10302:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12726, + "mutability": "mutable", + "name": "value", + "nameLocation": "10334:5:31", + "nodeType": "VariableDeclaration", + "scope": 12747, + "src": "10326:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10326:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "10301:39:31" + }, + "returnParameters": { + "id": 12730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12729, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12747, + "src": "10364:4:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12728, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10364:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "10363:6:31" + }, + "scope": 12966, + "src": "10284:165:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12761, + "nodeType": "Block", + "src": "10602:43:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12757, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12751, + "src": "10627:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 12758, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10631:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12652, + "src": "10627:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 12756, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12484, + "src": "10619:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 12759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10619:19:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12755, + "id": 12760, + "nodeType": "Return", + "src": "10612:26:31" + } + ] + }, + "documentation": { + "id": 12748, + "nodeType": "StructuredDocumentation", + "src": "10455:70:31", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 12762, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nameLocation": "10539:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12752, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12751, + "mutability": "mutable", + "name": "set", + "nameLocation": "10565:3:31", + "nodeType": "VariableDeclaration", + "scope": 12762, + "src": "10546:22:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 12750, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12749, + "name": "AddressSet", + "nameLocations": [ + "10546:10:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12653, + "src": "10546:10:31" + }, + "referencedDeclaration": 12653, + "src": "10546:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "10545:24:31" + }, + "returnParameters": { + "id": 12755, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12754, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12762, + "src": "10593:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12753, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10593:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10592:9:31" + }, + "scope": 12966, + "src": "10530:115:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12788, + "nodeType": "Block", + "src": "11070:73:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 12780, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12766, + "src": "11115:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 12781, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11119:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12652, + "src": "11115:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 12782, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12768, + "src": "11127:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12779, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12501, + "src": "11111:3:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 12783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11111:22:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12778, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11103:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 12777, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11103:7:31", + "typeDescriptions": {} + } + }, + "id": 12784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11103:31:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11095:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 12775, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "11095:7:31", + "typeDescriptions": {} + } + }, + "id": 12785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11095:40:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 12774, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11087:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 12773, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11087:7:31", + "typeDescriptions": {} + } + }, + "id": 12786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11087:49:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 12772, + "id": 12787, + "nodeType": "Return", + "src": "11080:56:31" + } + ] + }, + "documentation": { + "id": 12763, + "nodeType": "StructuredDocumentation", + "src": "10651:331:31", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 12789, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nameLocation": "10996:2:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12769, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12766, + "mutability": "mutable", + "name": "set", + "nameLocation": "11018:3:31", + "nodeType": "VariableDeclaration", + "scope": 12789, + "src": "10999:22:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 12765, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12764, + "name": "AddressSet", + "nameLocations": [ + "10999:10:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12653, + "src": "10999:10:31" + }, + "referencedDeclaration": 12653, + "src": "10999:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12768, + "mutability": "mutable", + "name": "index", + "nameLocation": "11031:5:31", + "nodeType": "VariableDeclaration", + "scope": 12789, + "src": "11023:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12767, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11023:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10998:39:31" + }, + "returnParameters": { + "id": 12772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12771, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12789, + "src": "11061:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 12770, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11061:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "11060:9:31" + }, + "scope": 12966, + "src": "10987:156:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12818, + "nodeType": "Block", + "src": "11764:192:31", + "statements": [ + { + "assignments": [ + 12803 + ], + "declarations": [ + { + "constant": false, + "id": 12803, + "mutability": "mutable", + "name": "store", + "nameLocation": "11791:5:31", + "nodeType": "VariableDeclaration", + "scope": 12818, + "src": "11774:22:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 12801, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11774:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 12802, + "nodeType": "ArrayTypeName", + "src": "11774:9:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + } + ], + "id": 12808, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 12805, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12793, + "src": "11807:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 12806, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11811:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12652, + "src": "11807:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 12804, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12515, + "src": "11799:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 12807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11799:19:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11774:44:31" + }, + { + "assignments": [ + 12813 + ], + "declarations": [ + { + "constant": false, + "id": 12813, + "mutability": "mutable", + "name": "result", + "nameLocation": "11845:6:31", + "nodeType": "VariableDeclaration", + "scope": 12818, + "src": "11828:23:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 12811, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11828:7:31", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 12812, + "nodeType": "ArrayTypeName", + "src": "11828:9:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "id": 12814, + "nodeType": "VariableDeclarationStatement", + "src": "11828:23:31" + }, + { + "AST": { + "nativeSrc": "11887:39:31", + "nodeType": "YulBlock", + "src": "11887:39:31", + "statements": [ + { + "nativeSrc": "11901:15:31", + "nodeType": "YulAssignment", + "src": "11901:15:31", + "value": { + "name": "store", + "nativeSrc": "11911:5:31", + "nodeType": "YulIdentifier", + "src": "11911:5:31" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "11901:6:31", + "nodeType": "YulIdentifier", + "src": "11901:6:31" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 12813, + "isOffset": false, + "isSlot": false, + "src": "11901:6:31", + "valueSize": 1 + }, + { + "declaration": 12803, + "isOffset": false, + "isSlot": false, + "src": "11911:5:31", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 12815, + "nodeType": "InlineAssembly", + "src": "11862:64:31" + }, + { + "expression": { + "id": 12816, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12813, + "src": "11943:6:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 12798, + "id": 12817, + "nodeType": "Return", + "src": "11936:13:31" + } + ] + }, + "documentation": { + "id": 12790, + "nodeType": "StructuredDocumentation", + "src": "11149:529:31", + "text": " @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block." + }, + "id": 12819, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "values", + "nameLocation": "11692:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12793, + "mutability": "mutable", + "name": "set", + "nameLocation": "11718:3:31", + "nodeType": "VariableDeclaration", + "scope": 12819, + "src": "11699:22:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 12792, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12791, + "name": "AddressSet", + "nameLocations": [ + "11699:10:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12653, + "src": "11699:10:31" + }, + "referencedDeclaration": 12653, + "src": "11699:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "11698:24:31" + }, + "returnParameters": { + "id": 12798, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12797, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12819, + "src": "11746:16:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 12795, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11746:7:31", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 12796, + "nodeType": "ArrayTypeName", + "src": "11746:9:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "11745:18:31" + }, + "scope": 12966, + "src": "11683:273:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.UintSet", + "id": 12823, + "members": [ + { + "constant": false, + "id": 12822, + "mutability": "mutable", + "name": "_inner", + "nameLocation": "12007:6:31", + "nodeType": "VariableDeclaration", + "scope": 12823, + "src": "12003:10:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 12821, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12820, + "name": "Set", + "nameLocations": [ + "12003:3:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12282, + "src": "12003:3:31" + }, + "referencedDeclaration": 12282, + "src": "12003:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "UintSet", + "nameLocation": "11985:7:31", + "nodeType": "StructDefinition", + "scope": 12966, + "src": "11978:42:31", + "visibility": "public" + }, + { + "body": { + "id": 12843, + "nodeType": "Block", + "src": "12263:56:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12835, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12827, + "src": "12285:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 12836, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12289:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12822, + "src": "12285:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 12839, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12829, + "src": "12305:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12297:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 12837, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12297:7:31", + "typeDescriptions": {} + } + }, + "id": 12840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12297:14:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12834, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12324, + "src": "12280:4:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 12841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12280:32:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12833, + "id": 12842, + "nodeType": "Return", + "src": "12273:39:31" + } + ] + }, + "documentation": { + "id": 12824, + "nodeType": "StructuredDocumentation", + "src": "12026:159:31", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 12844, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nameLocation": "12199:3:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12827, + "mutability": "mutable", + "name": "set", + "nameLocation": "12219:3:31", + "nodeType": "VariableDeclaration", + "scope": 12844, + "src": "12203:19:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 12826, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12825, + "name": "UintSet", + "nameLocations": [ + "12203:7:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12823, + "src": "12203:7:31" + }, + "referencedDeclaration": 12823, + "src": "12203:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12829, + "mutability": "mutable", + "name": "value", + "nameLocation": "12232:5:31", + "nodeType": "VariableDeclaration", + "scope": 12844, + "src": "12224:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12224:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12202:36:31" + }, + "returnParameters": { + "id": 12833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12832, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12844, + "src": "12257:4:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12831, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12257:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "12256:6:31" + }, + "scope": 12966, + "src": "12190:129:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12864, + "nodeType": "Block", + "src": "12563:59:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12856, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12848, + "src": "12588:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 12857, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12592:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12822, + "src": "12588:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 12860, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12850, + "src": "12608:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12600:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 12858, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12600:7:31", + "typeDescriptions": {} + } + }, + "id": 12861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12600:14:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12855, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12408, + "src": "12580:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 12862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12580:35:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12854, + "id": 12863, + "nodeType": "Return", + "src": "12573:42:31" + } + ] + }, + "documentation": { + "id": 12845, + "nodeType": "StructuredDocumentation", + "src": "12325:157:31", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 12865, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nameLocation": "12496:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12848, + "mutability": "mutable", + "name": "set", + "nameLocation": "12519:3:31", + "nodeType": "VariableDeclaration", + "scope": 12865, + "src": "12503:19:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 12847, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12846, + "name": "UintSet", + "nameLocations": [ + "12503:7:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12823, + "src": "12503:7:31" + }, + "referencedDeclaration": 12823, + "src": "12503:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12850, + "mutability": "mutable", + "name": "value", + "nameLocation": "12532:5:31", + "nodeType": "VariableDeclaration", + "scope": 12865, + "src": "12524:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12849, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12524:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12502:36:31" + }, + "returnParameters": { + "id": 12854, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12853, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12865, + "src": "12557:4:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12852, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12557:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "12556:6:31" + }, + "scope": 12966, + "src": "12487:135:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12877, + "nodeType": "Block", + "src": "12981:35:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12873, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12869, + "src": "12998:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 12874, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13002:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12822, + "src": "12998:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 12872, + "name": "_clear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12451, + "src": "12991:6:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$12282_storage_ptr_$returns$__$", + "typeString": "function (struct EnumerableSet.Set storage pointer)" + } + }, + "id": 12875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12991:18:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 12876, + "nodeType": "ExpressionStatement", + "src": "12991:18:31" + } + ] + }, + "documentation": { + "id": 12866, + "nodeType": "StructuredDocumentation", + "src": "12628:303:31", + "text": " @dev Removes all the values from a set. O(n).\n WARNING: Developers should keep in mind that this function has an unbounded cost and using it may render the\n function uncallable if the set grows to the point where clearing it consumes too much gas to fit in a block." + }, + "id": 12878, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clear", + "nameLocation": "12945:5:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12870, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12869, + "mutability": "mutable", + "name": "set", + "nameLocation": "12967:3:31", + "nodeType": "VariableDeclaration", + "scope": 12878, + "src": "12951:19:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 12868, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12867, + "name": "UintSet", + "nameLocations": [ + "12951:7:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12823, + "src": "12951:7:31" + }, + "referencedDeclaration": 12823, + "src": "12951:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "12950:21:31" + }, + "returnParameters": { + "id": 12871, + "nodeType": "ParameterList", + "parameters": [], + "src": "12981:0:31" + }, + "scope": 12966, + "src": "12936:80:31", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12898, + "nodeType": "Block", + "src": "13180:61:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12890, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12882, + "src": "13207:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 12891, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13211:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12822, + "src": "13207:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 12894, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12884, + "src": "13227:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12893, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13219:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 12892, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "13219:7:31", + "typeDescriptions": {} + } + }, + "id": 12895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13219:14:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12889, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12470, + "src": "13197:9:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 12896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13197:37:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 12888, + "id": 12897, + "nodeType": "Return", + "src": "13190:44:31" + } + ] + }, + "documentation": { + "id": 12879, + "nodeType": "StructuredDocumentation", + "src": "13022:70:31", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 12899, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nameLocation": "13106:8:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12885, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12882, + "mutability": "mutable", + "name": "set", + "nameLocation": "13131:3:31", + "nodeType": "VariableDeclaration", + "scope": 12899, + "src": "13115:19:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 12881, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12880, + "name": "UintSet", + "nameLocations": [ + "13115:7:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12823, + "src": "13115:7:31" + }, + "referencedDeclaration": 12823, + "src": "13115:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12884, + "mutability": "mutable", + "name": "value", + "nameLocation": "13144:5:31", + "nodeType": "VariableDeclaration", + "scope": 12899, + "src": "13136:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13136:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13114:36:31" + }, + "returnParameters": { + "id": 12888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12887, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12899, + "src": "13174:4:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 12886, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13174:4:31", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "13173:6:31" + }, + "scope": 12966, + "src": "13097:144:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12913, + "nodeType": "Block", + "src": "13391:43:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 12909, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12903, + "src": "13416:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 12910, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13420:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12822, + "src": "13416:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 12908, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12484, + "src": "13408:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 12911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13408:19:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12907, + "id": 12912, + "nodeType": "Return", + "src": "13401:26:31" + } + ] + }, + "documentation": { + "id": 12900, + "nodeType": "StructuredDocumentation", + "src": "13247:70:31", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 12914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nameLocation": "13331:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12904, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12903, + "mutability": "mutable", + "name": "set", + "nameLocation": "13354:3:31", + "nodeType": "VariableDeclaration", + "scope": 12914, + "src": "13338:19:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 12902, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12901, + "name": "UintSet", + "nameLocations": [ + "13338:7:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12823, + "src": "13338:7:31" + }, + "referencedDeclaration": 12823, + "src": "13338:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "13337:21:31" + }, + "returnParameters": { + "id": 12907, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12906, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12914, + "src": "13382:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12905, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13382:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13381:9:31" + }, + "scope": 12966, + "src": "13322:112:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12934, + "nodeType": "Block", + "src": "13856:55:31", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 12928, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12918, + "src": "13885:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 12929, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13889:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12822, + "src": "13885:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 12930, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12920, + "src": "13897:5:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 12927, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12501, + "src": "13881:3:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 12931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13881:22:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 12926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13873:7:31", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 12925, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13873:7:31", + "typeDescriptions": {} + } + }, + "id": 12932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13873:31:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 12924, + "id": 12933, + "nodeType": "Return", + "src": "13866:38:31" + } + ] + }, + "documentation": { + "id": 12915, + "nodeType": "StructuredDocumentation", + "src": "13440:331:31", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 12935, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nameLocation": "13785:2:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12921, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12918, + "mutability": "mutable", + "name": "set", + "nameLocation": "13804:3:31", + "nodeType": "VariableDeclaration", + "scope": 12935, + "src": "13788:19:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 12917, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12916, + "name": "UintSet", + "nameLocations": [ + "13788:7:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12823, + "src": "13788:7:31" + }, + "referencedDeclaration": 12823, + "src": "13788:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 12920, + "mutability": "mutable", + "name": "index", + "nameLocation": "13817:5:31", + "nodeType": "VariableDeclaration", + "scope": 12935, + "src": "13809:13:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12919, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13809:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13787:36:31" + }, + "returnParameters": { + "id": 12924, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12923, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12935, + "src": "13847:7:31", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12922, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13847:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13846:9:31" + }, + "scope": 12966, + "src": "13776:135:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 12964, + "nodeType": "Block", + "src": "14529:192:31", + "statements": [ + { + "assignments": [ + 12949 + ], + "declarations": [ + { + "constant": false, + "id": 12949, + "mutability": "mutable", + "name": "store", + "nameLocation": "14556:5:31", + "nodeType": "VariableDeclaration", + "scope": 12964, + "src": "14539:22:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 12947, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14539:7:31", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 12948, + "nodeType": "ArrayTypeName", + "src": "14539:9:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + } + ], + "id": 12954, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 12951, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12939, + "src": "14572:3:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 12952, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14576:6:31", + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 12822, + "src": "14572:10:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$12282_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 12950, + "name": "_values", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12515, + "src": "14564:7:31", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$12282_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)" + } + }, + "id": 12953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14564:19:31", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", + "typeString": "bytes32[] memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14539:44:31" + }, + { + "assignments": [ + 12959 + ], + "declarations": [ + { + "constant": false, + "id": 12959, + "mutability": "mutable", + "name": "result", + "nameLocation": "14610:6:31", + "nodeType": "VariableDeclaration", + "scope": 12964, + "src": "14593:23:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 12957, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14593:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12958, + "nodeType": "ArrayTypeName", + "src": "14593:9:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "id": 12960, + "nodeType": "VariableDeclarationStatement", + "src": "14593:23:31" + }, + { + "AST": { + "nativeSrc": "14652:39:31", + "nodeType": "YulBlock", + "src": "14652:39:31", + "statements": [ + { + "nativeSrc": "14666:15:31", + "nodeType": "YulAssignment", + "src": "14666:15:31", + "value": { + "name": "store", + "nativeSrc": "14676:5:31", + "nodeType": "YulIdentifier", + "src": "14676:5:31" + }, + "variableNames": [ + { + "name": "result", + "nativeSrc": "14666:6:31", + "nodeType": "YulIdentifier", + "src": "14666:6:31" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 12959, + "isOffset": false, + "isSlot": false, + "src": "14666:6:31", + "valueSize": 1 + }, + { + "declaration": 12949, + "isOffset": false, + "isSlot": false, + "src": "14676:5:31", + "valueSize": 1 + } + ], + "flags": [ + "memory-safe" + ], + "id": 12961, + "nodeType": "InlineAssembly", + "src": "14627:64:31" + }, + { + "expression": { + "id": 12962, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12959, + "src": "14708:6:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "functionReturnParameters": 12944, + "id": 12963, + "nodeType": "Return", + "src": "14701:13:31" + } + ] + }, + "documentation": { + "id": 12936, + "nodeType": "StructuredDocumentation", + "src": "13917:529:31", + "text": " @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block." + }, + "id": 12965, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "values", + "nameLocation": "14460:6:31", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 12940, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12939, + "mutability": "mutable", + "name": "set", + "nameLocation": "14483:3:31", + "nodeType": "VariableDeclaration", + "scope": 12965, + "src": "14467:19:31", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 12938, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 12937, + "name": "UintSet", + "nameLocations": [ + "14467:7:31" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12823, + "src": "14467:7:31" + }, + "referencedDeclaration": 12823, + "src": "14467:7:31", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$12823_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "14466:21:31" + }, + "returnParameters": { + "id": 12944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 12943, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 12965, + "src": "14511:16:31", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 12941, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14511:7:31", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 12942, + "nodeType": "ArrayTypeName", + "src": "14511:9:31", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "14510:18:31" + }, + "scope": 12966, + "src": "14451:270:31", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 12967, + "src": "1425:13298:31", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "205:14519:31" + }, + "id": 31 + }, + "@quant-finance/solidity-datetime/contracts/DateTime.sol": { + "ast": { + "absolutePath": "@quant-finance/solidity-datetime/contracts/DateTime.sol", + "exportedSymbols": { + "DateTime": [ + 14469 + ] + }, + "id": 14470, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 12968, + "literals": [ + "solidity", + "^", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "32:23:32" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "DateTime", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 14469, + "linearizedBaseContracts": [ + 14469 + ], + "name": "DateTime", + "nameLocation": "936:8:32", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 12975, + "mutability": "constant", + "name": "SECONDS_PER_DAY", + "nameLocation": "968:15:32", + "nodeType": "VariableDeclaration", + "scope": 14469, + "src": "951:47:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "951:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "id": 12974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_rational_1440_by_1", + "typeString": "int_const 1440" + }, + "id": 12972, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3234", + "id": 12970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "986:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3630", + "id": 12971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "991:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "986:7:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_1440_by_1", + "typeString": "int_const 1440" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3630", + "id": 12973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "996:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "986:12:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 12980, + "mutability": "constant", + "name": "SECONDS_PER_HOUR", + "nameLocation": "1021:16:32", + "nodeType": "VariableDeclaration", + "scope": 14469, + "src": "1004:43:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12976, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1004:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "commonType": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "id": 12979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3630", + "id": 12977, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1040:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3630", + "id": 12978, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1045:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "1040:7:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 12983, + "mutability": "constant", + "name": "SECONDS_PER_MINUTE", + "nameLocation": "1070:18:32", + "nodeType": "VariableDeclaration", + "scope": 14469, + "src": "1053:40:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1053:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3630", + "id": 12982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1091:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 12986, + "mutability": "constant", + "name": "OFFSET19700101", + "nameLocation": "1115:14:32", + "nodeType": "VariableDeclaration", + "scope": 14469, + "src": "1099:40:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 12984, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "1099:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "value": { + "hexValue": "32343430353838", + "id": 12985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1132:7:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_2440588_by_1", + "typeString": "int_const 2440588" + }, + "value": "2440588" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 12989, + "mutability": "constant", + "name": "DOW_MON", + "nameLocation": "1163:7:32", + "nodeType": "VariableDeclaration", + "scope": 14469, + "src": "1146:28:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1146:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31", + "id": 12988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1173:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 12992, + "mutability": "constant", + "name": "DOW_TUE", + "nameLocation": "1197:7:32", + "nodeType": "VariableDeclaration", + "scope": 14469, + "src": "1180:28:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12990, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1180:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "32", + "id": 12991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1207:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 12995, + "mutability": "constant", + "name": "DOW_WED", + "nameLocation": "1231:7:32", + "nodeType": "VariableDeclaration", + "scope": 14469, + "src": "1214:28:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12993, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1214:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "33", + "id": 12994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1241:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 12998, + "mutability": "constant", + "name": "DOW_THU", + "nameLocation": "1265:7:32", + "nodeType": "VariableDeclaration", + "scope": 14469, + "src": "1248:28:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1248:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34", + "id": 12997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1275:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 13001, + "mutability": "constant", + "name": "DOW_FRI", + "nameLocation": "1299:7:32", + "nodeType": "VariableDeclaration", + "scope": 14469, + "src": "1282:28:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1282:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "35", + "id": 13000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1309:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 13004, + "mutability": "constant", + "name": "DOW_SAT", + "nameLocation": "1333:7:32", + "nodeType": "VariableDeclaration", + "scope": 14469, + "src": "1316:28:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13002, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1316:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "36", + "id": 13003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1343:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 13007, + "mutability": "constant", + "name": "DOW_SUN", + "nameLocation": "1367:7:32", + "nodeType": "VariableDeclaration", + "scope": 14469, + "src": "1350:28:32", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1350:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "37", + "id": 13006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1377:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "visibility": "internal" + }, + { + "body": { + "id": 13117, + "nodeType": "Block", + "src": "2144:426:32", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13019, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13009, + "src": "2162:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "31393730", + "id": 13020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2170:4:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_1970_by_1", + "typeString": "int_const 1970" + }, + "value": "1970" + }, + "src": "2162:12:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13018, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "2154:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 13022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2154:21:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13023, + "nodeType": "ExpressionStatement", + "src": "2154:21:32" + }, + { + "assignments": [ + 13025 + ], + "declarations": [ + { + "constant": false, + "id": 13025, + "mutability": "mutable", + "name": "_year", + "nameLocation": "2192:5:32", + "nodeType": "VariableDeclaration", + "scope": 13117, + "src": "2185:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 13024, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "2185:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 13030, + "initialValue": { + "arguments": [ + { + "id": 13028, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13009, + "src": "2207:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13027, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2200:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 13026, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "2200:6:32", + "typeDescriptions": {} + } + }, + "id": 13029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2200:12:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2185:27:32" + }, + { + "assignments": [ + 13032 + ], + "declarations": [ + { + "constant": false, + "id": 13032, + "mutability": "mutable", + "name": "_month", + "nameLocation": "2229:6:32", + "nodeType": "VariableDeclaration", + "scope": 13117, + "src": "2222:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 13031, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "2222:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 13037, + "initialValue": { + "arguments": [ + { + "id": 13035, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13011, + "src": "2245:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13034, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2238:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 13033, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "2238:6:32", + "typeDescriptions": {} + } + }, + "id": 13036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2238:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2222:29:32" + }, + { + "assignments": [ + 13039 + ], + "declarations": [ + { + "constant": false, + "id": 13039, + "mutability": "mutable", + "name": "_day", + "nameLocation": "2268:4:32", + "nodeType": "VariableDeclaration", + "scope": 13117, + "src": "2261:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 13038, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "2261:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 13044, + "initialValue": { + "arguments": [ + { + "id": 13042, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13013, + "src": "2282:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2275:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 13040, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "2275:6:32", + "typeDescriptions": {} + } + }, + "id": 13043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2275:11:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2261:25:32" + }, + { + "assignments": [ + 13046 + ], + "declarations": [ + { + "constant": false, + "id": 13046, + "mutability": "mutable", + "name": "__days", + "nameLocation": "2304:6:32", + "nodeType": "VariableDeclaration", + "scope": 13117, + "src": "2297:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 13045, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "2297:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 13109, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13047, + "name": "_day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13039, + "src": "2313:4:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "3332303735", + "id": 13048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2320:5:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_32075_by_1", + "typeString": "int_const 32075" + }, + "value": "32075" + }, + "src": "2313:12:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31343631", + "id": 13050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2329:4:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_1461_by_1", + "typeString": "int_const 1461" + }, + "value": "1461" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13051, + "name": "_year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13025, + "src": "2337:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "34383030", + "id": 13052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2345:4:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_4800_by_1", + "typeString": "int_const 4800" + }, + "value": "4800" + }, + "src": "2337:12:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13054, + "name": "_month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13032, + "src": "2353:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "3134", + "id": 13055, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2362:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_14_by_1", + "typeString": "int_const 14" + }, + "value": "14" + }, + "src": "2353:11:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13057, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2352:13:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "3132", + "id": 13058, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2368:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "2352:18:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2337:33:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13061, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2336:35:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2329:42:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13063, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2328:44:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "34", + "id": 13064, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2375:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "2328:48:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2313:63:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "333637", + "id": 13067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2392:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_367_by_1", + "typeString": "int_const 367" + }, + "value": "367" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13068, + "name": "_month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13032, + "src": "2399:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "32", + "id": 13069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2408:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "2399:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13071, + "name": "_month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13032, + "src": "2414:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "3134", + "id": 13072, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2423:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_14_by_1", + "typeString": "int_const 14" + }, + "value": "14" + }, + "src": "2414:11:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13074, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2413:13:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "3132", + "id": 13075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2429:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "2413:18:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13077, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2412:20:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3132", + "id": 13078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2435:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "2412:25:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2399:38:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13081, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2398:40:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2392:46:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13083, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2391:48:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "3132", + "id": 13084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2442:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "2391:53:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2313:131:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "33", + "id": 13087, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2460:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13097, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13088, + "name": "_year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13025, + "src": "2466:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "34393030", + "id": 13089, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2474:4:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_4900_by_1", + "typeString": "int_const 4900" + }, + "value": "4900" + }, + "src": "2466:12:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13091, + "name": "_month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13032, + "src": "2482:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "3134", + "id": 13092, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2491:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_14_by_1", + "typeString": "int_const 14" + }, + "value": "14" + }, + "src": "2482:11:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13094, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2481:13:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "3132", + "id": 13095, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2497:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "2481:18:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2466:33:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13098, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2465:35:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 13099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2503:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "2465:41:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13101, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2464:43:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2460:47:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13103, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2459:49:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "34", + "id": 13104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2511:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "2459:53:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2313:199:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 13107, + "name": "OFFSET19700101", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "2515:14:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "2313:216:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2297:232:32" + }, + { + "expression": { + "id": 13115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13110, + "name": "_days", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13016, + "src": "2540:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 13113, + "name": "__days", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13046, + "src": "2556:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 13112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2548:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 13111, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2548:7:32", + "typeDescriptions": {} + } + }, + "id": 13114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2548:15:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2540:23:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13116, + "nodeType": "ExpressionStatement", + "src": "2540:23:32" + } + ] + }, + "id": 13118, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_daysFromDate", + "nameLocation": "2050:13:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13014, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13009, + "mutability": "mutable", + "name": "year", + "nameLocation": "2072:4:32", + "nodeType": "VariableDeclaration", + "scope": 13118, + "src": "2064:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2064:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13011, + "mutability": "mutable", + "name": "month", + "nameLocation": "2086:5:32", + "nodeType": "VariableDeclaration", + "scope": 13118, + "src": "2078:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13010, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2078:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13013, + "mutability": "mutable", + "name": "day", + "nameLocation": "2101:3:32", + "nodeType": "VariableDeclaration", + "scope": 13118, + "src": "2093:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13012, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2093:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2063:42:32" + }, + "returnParameters": { + "id": 13017, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13016, + "mutability": "mutable", + "name": "_days", + "nameLocation": "2137:5:32", + "nodeType": "VariableDeclaration", + "scope": 13118, + "src": "2129:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2129:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2128:15:32" + }, + "scope": 14469, + "src": "2041:529:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13262, + "nodeType": "Block", + "src": "3424:642:32", + "statements": [ + { + "id": 13261, + "nodeType": "UncheckedBlock", + "src": "3434:626:32", + "statements": [ + { + "assignments": [ + 13130 + ], + "declarations": [ + { + "constant": false, + "id": 13130, + "mutability": "mutable", + "name": "__days", + "nameLocation": "3465:6:32", + "nodeType": "VariableDeclaration", + "scope": 13261, + "src": "3458:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 13129, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "3458:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 13135, + "initialValue": { + "arguments": [ + { + "id": 13133, + "name": "_days", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13120, + "src": "3481:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13132, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3474:6:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_int256_$", + "typeString": "type(int256)" + }, + "typeName": { + "id": 13131, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "3474:6:32", + "typeDescriptions": {} + } + }, + "id": 13134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3474:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3458:29:32" + }, + { + "assignments": [ + 13137 + ], + "declarations": [ + { + "constant": false, + "id": 13137, + "mutability": "mutable", + "name": "L", + "nameLocation": "3509:1:32", + "nodeType": "VariableDeclaration", + "scope": 13261, + "src": "3502:8:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 13136, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "3502:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 13143, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13138, + "name": "__days", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13130, + "src": "3513:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "3638353639", + "id": 13139, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3522:5:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_68569_by_1", + "typeString": "int_const 68569" + }, + "value": "68569" + }, + "src": "3513:14:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 13141, + "name": "OFFSET19700101", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12986, + "src": "3530:14:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3513:31:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3502:42:32" + }, + { + "assignments": [ + 13145 + ], + "declarations": [ + { + "constant": false, + "id": 13145, + "mutability": "mutable", + "name": "N", + "nameLocation": "3565:1:32", + "nodeType": "VariableDeclaration", + "scope": 13261, + "src": "3558:8:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 13144, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "3558:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 13152, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "34", + "id": 13146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3570:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 13147, + "name": "L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13137, + "src": "3574:1:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3570:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13149, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3569:7:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313436303937", + "id": 13150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3579:6:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_146097_by_1", + "typeString": "int_const 146097" + }, + "value": "146097" + }, + "src": "3569:16:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3558:27:32" + }, + { + "expression": { + "id": 13164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13153, + "name": "L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13137, + "src": "3599:1:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13154, + "name": "L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13137, + "src": "3603:1:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "313436303937", + "id": 13155, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3608:6:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_146097_by_1", + "typeString": "int_const 146097" + }, + "value": "146097" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 13156, + "name": "N", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13145, + "src": "3617:1:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3608:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "33", + "id": 13158, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3621:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "3608:14:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13160, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3607:16:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "34", + "id": 13161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3626:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "3607:20:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3603:24:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3599:28:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 13165, + "nodeType": "ExpressionStatement", + "src": "3599:28:32" + }, + { + "assignments": [ + 13167 + ], + "declarations": [ + { + "constant": false, + "id": 13167, + "mutability": "mutable", + "name": "_year", + "nameLocation": "3648:5:32", + "nodeType": "VariableDeclaration", + "scope": 13261, + "src": "3641:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 13166, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "3641:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 13177, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13173, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "34303030", + "id": 13168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3657:4:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_4000_by_1", + "typeString": "int_const 4000" + }, + "value": "4000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13169, + "name": "L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13137, + "src": "3665:1:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 13170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3669:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3665:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13172, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3664:7:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3657:14:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13174, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3656:16:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "31343631303031", + "id": 13175, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3675:7:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_1461001_by_1", + "typeString": "int_const 1461001" + }, + "value": "1461001" + }, + "src": "3656:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3641:41:32" + }, + { + "expression": { + "id": 13189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13178, + "name": "L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13137, + "src": "3696:1:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13179, + "name": "L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13137, + "src": "3700:1:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "31343631", + "id": 13180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3705:4:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_1461_by_1", + "typeString": "int_const 1461" + }, + "value": "1461" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 13181, + "name": "_year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13167, + "src": "3712:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3705:12:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13183, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3704:14:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "34", + "id": 13184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3721:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "3704:18:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3700:22:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "3331", + "id": 13187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3725:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "3700:27:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3696:31:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 13190, + "nodeType": "ExpressionStatement", + "src": "3696:31:32" + }, + { + "assignments": [ + 13192 + ], + "declarations": [ + { + "constant": false, + "id": 13192, + "mutability": "mutable", + "name": "_month", + "nameLocation": "3748:6:32", + "nodeType": "VariableDeclaration", + "scope": 13261, + "src": "3741:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 13191, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "3741:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 13199, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3830", + "id": 13193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3758:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + "value": "80" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 13194, + "name": "L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13137, + "src": "3763:1:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3758:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13196, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3757:8:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "32343437", + "id": 13197, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3768:4:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_2447_by_1", + "typeString": "int_const 2447" + }, + "value": "2447" + }, + "src": "3757:15:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3741:31:32" + }, + { + "assignments": [ + 13201 + ], + "declarations": [ + { + "constant": false, + "id": 13201, + "mutability": "mutable", + "name": "_day", + "nameLocation": "3793:4:32", + "nodeType": "VariableDeclaration", + "scope": 13261, + "src": "3786:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "typeName": { + "id": 13200, + "name": "int256", + "nodeType": "ElementaryTypeName", + "src": "3786:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "visibility": "internal" + } + ], + "id": 13210, + "initialValue": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13202, + "name": "L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13137, + "src": "3800:1:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32343437", + "id": 13203, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3805:4:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_2447_by_1", + "typeString": "int_const 2447" + }, + "value": "2447" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 13204, + "name": "_month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13192, + "src": "3812:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3805:13:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13206, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3804:15:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "3830", + "id": 13207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3822:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_80_by_1", + "typeString": "int_const 80" + }, + "value": "80" + }, + "src": "3804:20:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3800:24:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3786:38:32" + }, + { + "expression": { + "id": 13215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13211, + "name": "L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13137, + "src": "3838:1:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13212, + "name": "_month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13192, + "src": "3842:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "3131", + "id": 13213, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3851:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_11_by_1", + "typeString": "int_const 11" + }, + "value": "11" + }, + "src": "3842:11:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3838:15:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 13216, + "nodeType": "ExpressionStatement", + "src": "3838:15:32" + }, + { + "expression": { + "id": 13225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13217, + "name": "_month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13192, + "src": "3867:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13218, + "name": "_month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13192, + "src": "3876:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 13219, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3885:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "3876:10:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3132", + "id": 13221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3889:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 13222, + "name": "L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13137, + "src": "3894:1:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3889:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3876:19:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3867:28:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 13226, + "nodeType": "ExpressionStatement", + "src": "3867:28:32" + }, + { + "expression": { + "id": 13238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13227, + "name": "_year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13167, + "src": "3909:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "313030", + "id": 13228, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3917:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_int256", + "typeString": "int256" + }, + "id": 13231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13229, + "name": "N", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13145, + "src": "3924:1:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "3439", + "id": 13230, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3928:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_49_by_1", + "typeString": "int_const 49" + }, + "value": "49" + }, + "src": "3924:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "id": 13232, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3923:8:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3917:14:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 13234, + "name": "_year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13167, + "src": "3934:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3917:22:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 13236, + "name": "L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13137, + "src": "3942:1:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3917:26:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "src": "3909:34:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + }, + "id": 13239, + "nodeType": "ExpressionStatement", + "src": "3909:34:32" + }, + { + "expression": { + "id": 13245, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13240, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13123, + "src": "3958:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 13243, + "name": "_year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13167, + "src": "3973:5:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 13242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3965:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 13241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3965:7:32", + "typeDescriptions": {} + } + }, + "id": 13244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3965:14:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3958:21:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13246, + "nodeType": "ExpressionStatement", + "src": "3958:21:32" + }, + { + "expression": { + "id": 13252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13247, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13125, + "src": "3993:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 13250, + "name": "_month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13192, + "src": "4009:6:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 13249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4001:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 13248, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4001:7:32", + "typeDescriptions": {} + } + }, + "id": 13251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4001:15:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3993:23:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13253, + "nodeType": "ExpressionStatement", + "src": "3993:23:32" + }, + { + "expression": { + "id": 13259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13254, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13127, + "src": "4030:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 13257, + "name": "_day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13201, + "src": "4044:4:32", + "typeDescriptions": { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_int256", + "typeString": "int256" + } + ], + "id": 13256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4036:7:32", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 13255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4036:7:32", + "typeDescriptions": {} + } + }, + "id": 13258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4036:13:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4030:19:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13260, + "nodeType": "ExpressionStatement", + "src": "4030:19:32" + } + ] + } + ] + }, + "id": 13263, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_daysToDate", + "nameLocation": "3332:11:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13120, + "mutability": "mutable", + "name": "_days", + "nameLocation": "3352:5:32", + "nodeType": "VariableDeclaration", + "scope": 13263, + "src": "3344:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3344:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3343:15:32" + }, + "returnParameters": { + "id": 13128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13123, + "mutability": "mutable", + "name": "year", + "nameLocation": "3390:4:32", + "nodeType": "VariableDeclaration", + "scope": 13263, + "src": "3382:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13122, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3382:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13125, + "mutability": "mutable", + "name": "month", + "nameLocation": "3404:5:32", + "nodeType": "VariableDeclaration", + "scope": 13263, + "src": "3396:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13124, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3396:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13127, + "mutability": "mutable", + "name": "day", + "nameLocation": "3419:3:32", + "nodeType": "VariableDeclaration", + "scope": 13263, + "src": "3411:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3411:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3381:42:32" + }, + "scope": 14469, + "src": "3323:743:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13284, + "nodeType": "Block", + "src": "4183:78:32", + "statements": [ + { + "expression": { + "id": 13282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13274, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13272, + "src": "4193:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 13276, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13265, + "src": "4219:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13277, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13267, + "src": "4225:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13278, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13269, + "src": "4232:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13275, + "name": "_daysFromDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13118, + "src": "4205:13:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 13279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4205:31:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 13280, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "4239:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4205:49:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4193:61:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13283, + "nodeType": "ExpressionStatement", + "src": "4193:61:32" + } + ] + }, + "id": 13285, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timestampFromDate", + "nameLocation": "4081:17:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13265, + "mutability": "mutable", + "name": "year", + "nameLocation": "4107:4:32", + "nodeType": "VariableDeclaration", + "scope": 13285, + "src": "4099:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13264, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4099:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13267, + "mutability": "mutable", + "name": "month", + "nameLocation": "4121:5:32", + "nodeType": "VariableDeclaration", + "scope": 13285, + "src": "4113:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13266, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4113:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13269, + "mutability": "mutable", + "name": "day", + "nameLocation": "4136:3:32", + "nodeType": "VariableDeclaration", + "scope": 13285, + "src": "4128:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4128:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4098:42:32" + }, + "returnParameters": { + "id": 13273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13272, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "4172:9:32", + "nodeType": "VariableDeclaration", + "scope": 13285, + "src": "4164:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4164:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4163:19:32" + }, + "scope": 14469, + "src": "4072:189:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13322, + "nodeType": "Block", + "src": "4510:155:32", + "statements": [ + { + "expression": { + "id": 13320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13302, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13300, + "src": "4520:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 13304, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13287, + "src": "4546:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13305, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13289, + "src": "4552:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13306, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13291, + "src": "4559:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13303, + "name": "_daysFromDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13118, + "src": "4532:13:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 13307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4532:31:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 13308, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "4566:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4532:49:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13310, + "name": "hour", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13293, + "src": "4584:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 13311, + "name": "SECONDS_PER_HOUR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12980, + "src": "4591:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4584:23:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4532:75:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13314, + "name": "minute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13295, + "src": "4622:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 13315, + "name": "SECONDS_PER_MINUTE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12983, + "src": "4631:18:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4622:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4532:117:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 13318, + "name": "second", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13297, + "src": "4652:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4532:126:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4520:138:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13321, + "nodeType": "ExpressionStatement", + "src": "4520:138:32" + } + ] + }, + "id": 13323, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timestampFromDateTime", + "nameLocation": "4276:21:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13298, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13287, + "mutability": "mutable", + "name": "year", + "nameLocation": "4315:4:32", + "nodeType": "VariableDeclaration", + "scope": 13323, + "src": "4307:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13286, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4307:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13289, + "mutability": "mutable", + "name": "month", + "nameLocation": "4337:5:32", + "nodeType": "VariableDeclaration", + "scope": 13323, + "src": "4329:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4329:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13291, + "mutability": "mutable", + "name": "day", + "nameLocation": "4360:3:32", + "nodeType": "VariableDeclaration", + "scope": 13323, + "src": "4352:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4352:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13293, + "mutability": "mutable", + "name": "hour", + "nameLocation": "4381:4:32", + "nodeType": "VariableDeclaration", + "scope": 13323, + "src": "4373:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13292, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4373:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13295, + "mutability": "mutable", + "name": "minute", + "nameLocation": "4403:6:32", + "nodeType": "VariableDeclaration", + "scope": 13323, + "src": "4395:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13294, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4395:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13297, + "mutability": "mutable", + "name": "second", + "nameLocation": "4427:6:32", + "nodeType": "VariableDeclaration", + "scope": 13323, + "src": "4419:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13296, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4419:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4297:142:32" + }, + "returnParameters": { + "id": 13301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13300, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "4495:9:32", + "nodeType": "VariableDeclaration", + "scope": 13323, + "src": "4487:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13299, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4487:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4486:19:32" + }, + "scope": 14469, + "src": "4267:398:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13346, + "nodeType": "Block", + "src": "4780:112:32", + "statements": [ + { + "id": 13345, + "nodeType": "UncheckedBlock", + "src": "4790:96:32", + "statements": [ + { + "expression": { + "id": 13343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 13334, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13328, + "src": "4815:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13335, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13330, + "src": "4821:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13336, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13332, + "src": "4828:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 13337, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "4814:18:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13339, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13325, + "src": "4847:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 13340, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "4859:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4847:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13338, + "name": "_daysToDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13263, + "src": "4835:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 13342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4835:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "src": "4814:61:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13344, + "nodeType": "ExpressionStatement", + "src": "4814:61:32" + } + ] + } + ] + }, + "id": 13347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timestampToDate", + "nameLocation": "4680:15:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13326, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13325, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "4704:9:32", + "nodeType": "VariableDeclaration", + "scope": 13347, + "src": "4696:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13324, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4696:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4695:19:32" + }, + "returnParameters": { + "id": 13333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13328, + "mutability": "mutable", + "name": "year", + "nameLocation": "4746:4:32", + "nodeType": "VariableDeclaration", + "scope": 13347, + "src": "4738:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13327, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4738:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13330, + "mutability": "mutable", + "name": "month", + "nameLocation": "4760:5:32", + "nodeType": "VariableDeclaration", + "scope": 13347, + "src": "4752:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13329, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4752:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13332, + "mutability": "mutable", + "name": "day", + "nameLocation": "4775:3:32", + "nodeType": "VariableDeclaration", + "scope": 13347, + "src": "4767:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4767:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4737:42:32" + }, + "scope": 14469, + "src": "4671:221:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13406, + "nodeType": "Block", + "src": "5085:352:32", + "statements": [ + { + "id": 13405, + "nodeType": "UncheckedBlock", + "src": "5095:336:32", + "statements": [ + { + "expression": { + "id": 13373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 13364, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13352, + "src": "5120:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13365, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13354, + "src": "5126:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13366, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13356, + "src": "5133:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 13367, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "5119:18:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13369, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13349, + "src": "5152:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 13370, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "5164:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5152:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13368, + "name": "_daysToDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13263, + "src": "5140:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 13372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5140:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "src": "5119:61:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13374, + "nodeType": "ExpressionStatement", + "src": "5119:61:32" + }, + { + "assignments": [ + 13376 + ], + "declarations": [ + { + "constant": false, + "id": 13376, + "mutability": "mutable", + "name": "secs", + "nameLocation": "5202:4:32", + "nodeType": "VariableDeclaration", + "scope": 13405, + "src": "5194:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13375, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5194:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13380, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13377, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13349, + "src": "5209:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 13378, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "5221:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5209:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5194:42:32" + }, + { + "expression": { + "id": 13385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13381, + "name": "hour", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13358, + "src": "5250:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13382, + "name": "secs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13376, + "src": "5257:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 13383, + "name": "SECONDS_PER_HOUR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12980, + "src": "5264:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5257:23:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5250:30:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13386, + "nodeType": "ExpressionStatement", + "src": "5250:30:32" + }, + { + "expression": { + "id": 13391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13387, + "name": "secs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13376, + "src": "5294:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13388, + "name": "secs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13376, + "src": "5301:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 13389, + "name": "SECONDS_PER_HOUR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12980, + "src": "5308:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5301:23:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5294:30:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13392, + "nodeType": "ExpressionStatement", + "src": "5294:30:32" + }, + { + "expression": { + "id": 13397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13393, + "name": "minute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13360, + "src": "5338:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13394, + "name": "secs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13376, + "src": "5347:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 13395, + "name": "SECONDS_PER_MINUTE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12983, + "src": "5354:18:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5347:25:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5338:34:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13398, + "nodeType": "ExpressionStatement", + "src": "5338:34:32" + }, + { + "expression": { + "id": 13403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13399, + "name": "second", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13362, + "src": "5386:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13400, + "name": "secs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13376, + "src": "5395:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 13401, + "name": "SECONDS_PER_MINUTE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12983, + "src": "5402:18:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5395:25:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5386:34:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13404, + "nodeType": "ExpressionStatement", + "src": "5386:34:32" + } + ] + } + ] + }, + "id": 13407, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "timestampToDateTime", + "nameLocation": "4907:19:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13350, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13349, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "4935:9:32", + "nodeType": "VariableDeclaration", + "scope": 13407, + "src": "4927:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13348, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4927:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4926:19:32" + }, + "returnParameters": { + "id": 13363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13352, + "mutability": "mutable", + "name": "year", + "nameLocation": "5001:4:32", + "nodeType": "VariableDeclaration", + "scope": 13407, + "src": "4993:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13351, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4993:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13354, + "mutability": "mutable", + "name": "month", + "nameLocation": "5015:5:32", + "nodeType": "VariableDeclaration", + "scope": 13407, + "src": "5007:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13353, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5007:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13356, + "mutability": "mutable", + "name": "day", + "nameLocation": "5030:3:32", + "nodeType": "VariableDeclaration", + "scope": 13407, + "src": "5022:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13355, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5022:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13358, + "mutability": "mutable", + "name": "hour", + "nameLocation": "5043:4:32", + "nodeType": "VariableDeclaration", + "scope": 13407, + "src": "5035:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13357, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5035:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13360, + "mutability": "mutable", + "name": "minute", + "nameLocation": "5057:6:32", + "nodeType": "VariableDeclaration", + "scope": 13407, + "src": "5049:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13359, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5049:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13362, + "mutability": "mutable", + "name": "second", + "nameLocation": "5073:6:32", + "nodeType": "VariableDeclaration", + "scope": 13407, + "src": "5065:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13361, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5065:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4992:88:32" + }, + "scope": 14469, + "src": "4898:539:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13451, + "nodeType": "Block", + "src": "5541:230:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13418, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13409, + "src": "5555:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "hexValue": "31393730", + "id": 13419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5563:4:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_1970_by_1", + "typeString": "int_const 1970" + }, + "value": "1970" + }, + "src": "5555:12:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13421, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13411, + "src": "5571:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 13422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5579:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5571:9:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5555:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13427, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13425, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13411, + "src": "5584:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "3132", + "id": 13426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5593:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "5584:11:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5555:40:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13450, + "nodeType": "IfStatement", + "src": "5551:214:32", + "trueBody": { + "id": 13449, + "nodeType": "Block", + "src": "5597:168:32", + "statements": [ + { + "assignments": [ + 13430 + ], + "declarations": [ + { + "constant": false, + "id": 13430, + "mutability": "mutable", + "name": "daysInMonth", + "nameLocation": "5619:11:32", + "nodeType": "VariableDeclaration", + "scope": 13449, + "src": "5611:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13429, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5611:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13435, + "initialValue": { + "arguments": [ + { + "id": 13432, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13409, + "src": "5649:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13433, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13411, + "src": "5655:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13431, + "name": "_getDaysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13667, + "src": "5633:15:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5633:28:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5611:50:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13436, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13413, + "src": "5679:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 13437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5685:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5679:7:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13439, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13413, + "src": "5690:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 13440, + "name": "daysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13430, + "src": "5697:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5690:18:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5679:29:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13448, + "nodeType": "IfStatement", + "src": "5675:80:32", + "trueBody": { + "id": 13447, + "nodeType": "Block", + "src": "5710:45:32", + "statements": [ + { + "expression": { + "id": 13445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13443, + "name": "valid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13416, + "src": "5728:5:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 13444, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5736:4:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "5728:12:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13446, + "nodeType": "ExpressionStatement", + "src": "5728:12:32" + } + ] + } + } + ] + } + } + ] + }, + "id": 13452, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isValidDate", + "nameLocation": "5452:11:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13409, + "mutability": "mutable", + "name": "year", + "nameLocation": "5472:4:32", + "nodeType": "VariableDeclaration", + "scope": 13452, + "src": "5464:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13408, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5464:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13411, + "mutability": "mutable", + "name": "month", + "nameLocation": "5486:5:32", + "nodeType": "VariableDeclaration", + "scope": 13452, + "src": "5478:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5478:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13413, + "mutability": "mutable", + "name": "day", + "nameLocation": "5501:3:32", + "nodeType": "VariableDeclaration", + "scope": 13452, + "src": "5493:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13412, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5493:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5463:42:32" + }, + "returnParameters": { + "id": 13417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13416, + "mutability": "mutable", + "name": "valid", + "nameLocation": "5534:5:32", + "nodeType": "VariableDeclaration", + "scope": 13452, + "src": "5529:10:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13415, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5529:4:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5528:12:32" + }, + "scope": 14469, + "src": "5443:328:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13493, + "nodeType": "Block", + "src": "5953:165:32", + "statements": [ + { + "condition": { + "arguments": [ + { + "id": 13470, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13454, + "src": "5979:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13471, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13456, + "src": "5985:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13472, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13458, + "src": "5992:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13469, + "name": "isValidDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13452, + "src": "5967:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256,uint256,uint256) pure returns (bool)" + } + }, + "id": 13473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5967:29:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13492, + "nodeType": "IfStatement", + "src": "5963:149:32", + "trueBody": { + "id": 13491, + "nodeType": "Block", + "src": "5998:114:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13474, + "name": "hour", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13460, + "src": "6016:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3234", + "id": 13475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6023:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + "src": "6016:9:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13477, + "name": "minute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13462, + "src": "6029:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3630", + "id": 13478, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6038:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "6029:11:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6016:24:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13481, + "name": "second", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13464, + "src": "6044:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3630", + "id": 13482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6053:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "6044:11:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6016:39:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13490, + "nodeType": "IfStatement", + "src": "6012:90:32", + "trueBody": { + "id": 13489, + "nodeType": "Block", + "src": "6057:45:32", + "statements": [ + { + "expression": { + "id": 13487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13485, + "name": "valid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13467, + "src": "6075:5:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 13486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6083:4:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6075:12:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13488, + "nodeType": "ExpressionStatement", + "src": "6075:12:32" + } + ] + } + } + ] + } + } + ] + }, + "id": 13494, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isValidDateTime", + "nameLocation": "5786:15:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13465, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13454, + "mutability": "mutable", + "name": "year", + "nameLocation": "5810:4:32", + "nodeType": "VariableDeclaration", + "scope": 13494, + "src": "5802:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13453, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5802:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13456, + "mutability": "mutable", + "name": "month", + "nameLocation": "5824:5:32", + "nodeType": "VariableDeclaration", + "scope": 13494, + "src": "5816:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13455, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5816:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13458, + "mutability": "mutable", + "name": "day", + "nameLocation": "5839:3:32", + "nodeType": "VariableDeclaration", + "scope": 13494, + "src": "5831:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13457, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5831:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13460, + "mutability": "mutable", + "name": "hour", + "nameLocation": "5852:4:32", + "nodeType": "VariableDeclaration", + "scope": 13494, + "src": "5844:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13459, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5844:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13462, + "mutability": "mutable", + "name": "minute", + "nameLocation": "5866:6:32", + "nodeType": "VariableDeclaration", + "scope": 13494, + "src": "5858:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13461, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5858:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13464, + "mutability": "mutable", + "name": "second", + "nameLocation": "5882:6:32", + "nodeType": "VariableDeclaration", + "scope": 13494, + "src": "5874:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5874:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5801:88:32" + }, + "returnParameters": { + "id": 13468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13467, + "mutability": "mutable", + "name": "valid", + "nameLocation": "5942:5:32", + "nodeType": "VariableDeclaration", + "scope": 13494, + "src": "5937:10:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13466, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5937:4:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5936:12:32" + }, + "scope": 14469, + "src": "5777:341:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13515, + "nodeType": "Block", + "src": "6201:114:32", + "statements": [ + { + "assignments": [ + 13502, + null, + null + ], + "declarations": [ + { + "constant": false, + "id": 13502, + "mutability": "mutable", + "name": "year", + "nameLocation": "6220:4:32", + "nodeType": "VariableDeclaration", + "scope": 13515, + "src": "6212:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6212:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null, + null + ], + "id": 13508, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13504, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13496, + "src": "6242:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 13505, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "6254:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6242:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13503, + "name": "_daysToDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13263, + "src": "6230:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 13507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6230:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6211:59:32" + }, + { + "expression": { + "id": 13513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13509, + "name": "leapYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13499, + "src": "6280:8:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 13511, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13502, + "src": "6303:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13510, + "name": "_isLeapYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13548, + "src": "6291:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 13512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6291:17:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6280:28:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13514, + "nodeType": "ExpressionStatement", + "src": "6280:28:32" + } + ] + }, + "id": 13516, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isLeapYear", + "nameLocation": "6133:10:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13497, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13496, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "6152:9:32", + "nodeType": "VariableDeclaration", + "scope": 13516, + "src": "6144:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13495, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6144:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6143:19:32" + }, + "returnParameters": { + "id": 13500, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13499, + "mutability": "mutable", + "name": "leapYear", + "nameLocation": "6191:8:32", + "nodeType": "VariableDeclaration", + "scope": 13516, + "src": "6186:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13498, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6186:4:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6185:15:32" + }, + "scope": 14469, + "src": "6124:191:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13547, + "nodeType": "Block", + "src": "6394:87:32", + "statements": [ + { + "expression": { + "id": 13545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13523, + "name": "leapYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13521, + "src": "6404:8:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13524, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13518, + "src": "6417:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "34", + "id": 13525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6424:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "6417:8:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 13527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6429:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6417:13:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 13529, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6416:15:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13530, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13518, + "src": "6436:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "313030", + "id": 13531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6443:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "6436:10:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 13533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6450:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6436:15:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 13535, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6435:17:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6416:36:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 13537, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6415:38:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13538, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13518, + "src": "6458:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "343030", + "id": 13539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6465:3:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_400_by_1", + "typeString": "int_const 400" + }, + "value": "400" + }, + "src": "6458:10:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 13541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6472:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6458:15:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 13543, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6457:17:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6415:59:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6404:70:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13546, + "nodeType": "ExpressionStatement", + "src": "6404:70:32" + } + ] + }, + "id": 13548, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isLeapYear", + "nameLocation": "6330:11:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13519, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13518, + "mutability": "mutable", + "name": "year", + "nameLocation": "6350:4:32", + "nodeType": "VariableDeclaration", + "scope": 13548, + "src": "6342:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13517, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6342:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6341:14:32" + }, + "returnParameters": { + "id": 13522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13521, + "mutability": "mutable", + "name": "leapYear", + "nameLocation": "6384:8:32", + "nodeType": "VariableDeclaration", + "scope": 13548, + "src": "6379:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13520, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6379:4:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6378:15:32" + }, + "scope": 14469, + "src": "6321:160:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13563, + "nodeType": "Block", + "src": "6562:61:32", + "statements": [ + { + "expression": { + "id": 13561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13555, + "name": "weekDay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13553, + "src": "6572:7:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 13557, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13550, + "src": "6595:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13556, + "name": "getDayOfWeek", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13693, + "src": "6582:12:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 13558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6582:23:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 13559, + "name": "DOW_FRI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13001, + "src": "6609:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6582:34:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6572:44:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13562, + "nodeType": "ExpressionStatement", + "src": "6572:44:32" + } + ] + }, + "id": 13564, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isWeekDay", + "nameLocation": "6496:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13550, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "6514:9:32", + "nodeType": "VariableDeclaration", + "scope": 13564, + "src": "6506:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13549, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6506:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6505:19:32" + }, + "returnParameters": { + "id": 13554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13553, + "mutability": "mutable", + "name": "weekDay", + "nameLocation": "6553:7:32", + "nodeType": "VariableDeclaration", + "scope": 13564, + "src": "6548:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13552, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6548:4:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6547:14:32" + }, + "scope": 14469, + "src": "6487:136:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13579, + "nodeType": "Block", + "src": "6704:61:32", + "statements": [ + { + "expression": { + "id": 13577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13571, + "name": "weekEnd", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13569, + "src": "6714:7:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 13573, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13566, + "src": "6737:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13572, + "name": "getDayOfWeek", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13693, + "src": "6724:12:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 13574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6724:23:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 13575, + "name": "DOW_SAT", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13004, + "src": "6751:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6724:34:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6714:44:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13578, + "nodeType": "ExpressionStatement", + "src": "6714:44:32" + } + ] + }, + "id": 13580, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isWeekEnd", + "nameLocation": "6638:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13566, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "6656:9:32", + "nodeType": "VariableDeclaration", + "scope": 13580, + "src": "6648:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13565, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6648:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6647:19:32" + }, + "returnParameters": { + "id": 13570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13569, + "mutability": "mutable", + "name": "weekEnd", + "nameLocation": "6695:7:32", + "nodeType": "VariableDeclaration", + "scope": 13580, + "src": "6690:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 13568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6690:4:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "6689:14:32" + }, + "scope": 14469, + "src": "6629:136:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13604, + "nodeType": "Block", + "src": "6858:142:32", + "statements": [ + { + "assignments": [ + 13588, + 13590, + null + ], + "declarations": [ + { + "constant": false, + "id": 13588, + "mutability": "mutable", + "name": "year", + "nameLocation": "6877:4:32", + "nodeType": "VariableDeclaration", + "scope": 13604, + "src": "6869:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13587, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6869:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13590, + "mutability": "mutable", + "name": "month", + "nameLocation": "6891:5:32", + "nodeType": "VariableDeclaration", + "scope": 13604, + "src": "6883:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13589, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6883:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 13596, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13592, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13582, + "src": "6913:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 13593, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "6925:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6913:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13591, + "name": "_daysToDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13263, + "src": "6901:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 13595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6901:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6868:73:32" + }, + { + "expression": { + "id": 13602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13597, + "name": "daysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13585, + "src": "6951:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 13599, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13588, + "src": "6981:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13600, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13590, + "src": "6987:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13598, + "name": "_getDaysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13667, + "src": "6965:15:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6965:28:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6951:42:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13603, + "nodeType": "ExpressionStatement", + "src": "6951:42:32" + } + ] + }, + "id": 13605, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDaysInMonth", + "nameLocation": "6780:14:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13582, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "6803:9:32", + "nodeType": "VariableDeclaration", + "scope": 13605, + "src": "6795:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13581, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6795:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6794:19:32" + }, + "returnParameters": { + "id": 13586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13585, + "mutability": "mutable", + "name": "daysInMonth", + "nameLocation": "6845:11:32", + "nodeType": "VariableDeclaration", + "scope": 13605, + "src": "6837:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6837:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6836:21:32" + }, + "scope": 14469, + "src": "6771:229:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13666, + "nodeType": "Block", + "src": "7104:294:32", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 13620, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13614, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13609, + "src": "7118:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 13615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7127:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7118:10:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13617, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13609, + "src": "7132:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "33", + "id": 13618, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7141:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "7132:10:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7118:24:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13621, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13609, + "src": "7146:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "35", + "id": 13622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7155:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "7146:10:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7118:38:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13625, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13609, + "src": "7160:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 13626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7169:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "src": "7160:10:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7118:52:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13629, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13609, + "src": "7174:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "38", + "id": 13630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7183:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "7174:10:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7118:66:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13633, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13609, + "src": "7188:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3130", + "id": 13634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7197:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "7188:11:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7118:81:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13637, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13609, + "src": "7203:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3132", + "id": 13638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7212:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "7203:11:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "7118:96:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13646, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13609, + "src": "7267:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "32", + "id": 13647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7276:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "7267:10:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 13663, + "nodeType": "Block", + "src": "7326:66:32", + "statements": [ + { + "expression": { + "id": 13661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13654, + "name": "daysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13612, + "src": "7340:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "condition": { + "arguments": [ + { + "id": 13656, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13607, + "src": "7366:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13655, + "name": "_isLeapYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13548, + "src": "7354:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) pure returns (bool)" + } + }, + "id": 13657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7354:17:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "3238", + "id": 13659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7379:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_28_by_1", + "typeString": "int_const 28" + }, + "value": "28" + }, + "id": 13660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "7354:27:32", + "trueExpression": { + "hexValue": "3239", + "id": 13658, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7374:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_29_by_1", + "typeString": "int_const 29" + }, + "value": "29" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7340:41:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13662, + "nodeType": "ExpressionStatement", + "src": "7340:41:32" + } + ] + }, + "id": 13664, + "nodeType": "IfStatement", + "src": "7263:129:32", + "trueBody": { + "id": 13653, + "nodeType": "Block", + "src": "7279:41:32", + "statements": [ + { + "expression": { + "id": 13651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13649, + "name": "daysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13612, + "src": "7293:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3330", + "id": 13650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7307:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_30_by_1", + "typeString": "int_const 30" + }, + "value": "30" + }, + "src": "7293:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13652, + "nodeType": "ExpressionStatement", + "src": "7293:16:32" + } + ] + } + }, + "id": 13665, + "nodeType": "IfStatement", + "src": "7114:278:32", + "trueBody": { + "id": 13645, + "nodeType": "Block", + "src": "7216:41:32", + "statements": [ + { + "expression": { + "id": 13643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13641, + "name": "daysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13612, + "src": "7230:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3331", + "id": 13642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7244:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "7230:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13644, + "nodeType": "ExpressionStatement", + "src": "7230:16:32" + } + ] + } + } + ] + }, + "id": 13667, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getDaysInMonth", + "nameLocation": "7015:15:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13610, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13607, + "mutability": "mutable", + "name": "year", + "nameLocation": "7039:4:32", + "nodeType": "VariableDeclaration", + "scope": 13667, + "src": "7031:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13606, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7031:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13609, + "mutability": "mutable", + "name": "month", + "nameLocation": "7053:5:32", + "nodeType": "VariableDeclaration", + "scope": 13667, + "src": "7045:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13608, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7045:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7030:29:32" + }, + "returnParameters": { + "id": 13613, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13612, + "mutability": "mutable", + "name": "daysInMonth", + "nameLocation": "7091:11:32", + "nodeType": "VariableDeclaration", + "scope": 13667, + "src": "7083:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7083:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7082:21:32" + }, + "scope": 14469, + "src": "7006:392:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13692, + "nodeType": "Block", + "src": "7517:103:32", + "statements": [ + { + "assignments": [ + 13675 + ], + "declarations": [ + { + "constant": false, + "id": 13675, + "mutability": "mutable", + "name": "_days", + "nameLocation": "7535:5:32", + "nodeType": "VariableDeclaration", + "scope": 13692, + "src": "7527:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7527:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13679, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13678, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13676, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13669, + "src": "7543:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 13677, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "7555:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7543:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7527:43:32" + }, + { + "expression": { + "id": 13690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13680, + "name": "dayOfWeek", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13672, + "src": "7580:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13681, + "name": "_days", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13675, + "src": "7594:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "33", + "id": 13682, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7602:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "7594:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 13684, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7593:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "37", + "id": 13685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7607:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "src": "7593:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 13687, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7592:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 13688, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7612:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7592:21:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7580:33:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13691, + "nodeType": "ExpressionStatement", + "src": "7580:33:32" + } + ] + }, + "id": 13693, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDayOfWeek", + "nameLocation": "7443:12:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13669, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "7464:9:32", + "nodeType": "VariableDeclaration", + "scope": 13693, + "src": "7456:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13668, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7456:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7455:19:32" + }, + "returnParameters": { + "id": 13673, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13672, + "mutability": "mutable", + "name": "dayOfWeek", + "nameLocation": "7506:9:32", + "nodeType": "VariableDeclaration", + "scope": 13693, + "src": "7498:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7498:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7497:19:32" + }, + "scope": 14469, + "src": "7434:186:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13709, + "nodeType": "Block", + "src": "7699:68:32", + "statements": [ + { + "expression": { + "id": 13707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + { + "id": 13700, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13698, + "src": "7710:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + null, + null + ], + "id": 13701, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "7709:8:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$__$__$", + "typeString": "tuple(uint256,,)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13703, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13695, + "src": "7732:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 13704, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "7744:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7732:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13702, + "name": "_daysToDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13263, + "src": "7720:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 13706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7720:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "src": "7709:51:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13708, + "nodeType": "ExpressionStatement", + "src": "7709:51:32" + } + ] + }, + "id": 13710, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getYear", + "nameLocation": "7635:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13695, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "7651:9:32", + "nodeType": "VariableDeclaration", + "scope": 13710, + "src": "7643:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7643:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7642:19:32" + }, + "returnParameters": { + "id": 13699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13698, + "mutability": "mutable", + "name": "year", + "nameLocation": "7693:4:32", + "nodeType": "VariableDeclaration", + "scope": 13710, + "src": "7685:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7685:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7684:14:32" + }, + "scope": 14469, + "src": "7626:141:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13726, + "nodeType": "Block", + "src": "7848:70:32", + "statements": [ + { + "expression": { + "id": 13724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + null, + { + "id": 13717, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13715, + "src": "7861:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + null + ], + "id": 13718, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "7858:10:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$_t_uint256_$__$", + "typeString": "tuple(,uint256,)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13720, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13712, + "src": "7883:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 13721, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "7895:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7883:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13719, + "name": "_daysToDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13263, + "src": "7871:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 13723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7871:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "src": "7858:53:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13725, + "nodeType": "ExpressionStatement", + "src": "7858:53:32" + } + ] + }, + "id": 13727, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMonth", + "nameLocation": "7782:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13713, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13712, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "7799:9:32", + "nodeType": "VariableDeclaration", + "scope": 13727, + "src": "7791:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13711, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7791:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7790:19:32" + }, + "returnParameters": { + "id": 13716, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13715, + "mutability": "mutable", + "name": "month", + "nameLocation": "7841:5:32", + "nodeType": "VariableDeclaration", + "scope": 13727, + "src": "7833:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13714, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7833:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7832:15:32" + }, + "scope": 14469, + "src": "7773:145:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13743, + "nodeType": "Block", + "src": "7995:68:32", + "statements": [ + { + "expression": { + "id": 13741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "components": [ + null, + null, + { + "id": 13734, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13732, + "src": "8009:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 13735, + "isConstant": false, + "isInlineArray": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "TupleExpression", + "src": "8005:8:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$__$_t_uint256_$", + "typeString": "tuple(,,uint256)" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13737, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13729, + "src": "8028:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 13738, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "8040:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8028:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13736, + "name": "_daysToDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13263, + "src": "8016:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 13740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8016:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "src": "8005:51:32", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13742, + "nodeType": "ExpressionStatement", + "src": "8005:51:32" + } + ] + }, + "id": 13744, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDay", + "nameLocation": "7933:6:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13729, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "7948:9:32", + "nodeType": "VariableDeclaration", + "scope": 13744, + "src": "7940:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13728, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7940:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7939:19:32" + }, + "returnParameters": { + "id": 13733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13732, + "mutability": "mutable", + "name": "day", + "nameLocation": "7990:3:32", + "nodeType": "VariableDeclaration", + "scope": 13744, + "src": "7982:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13731, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7982:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7981:13:32" + }, + "scope": 14469, + "src": "7924:139:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13763, + "nodeType": "Block", + "src": "8142:99:32", + "statements": [ + { + "assignments": [ + 13752 + ], + "declarations": [ + { + "constant": false, + "id": 13752, + "mutability": "mutable", + "name": "secs", + "nameLocation": "8160:4:32", + "nodeType": "VariableDeclaration", + "scope": 13763, + "src": "8152:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8152:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13756, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13753, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13746, + "src": "8167:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 13754, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "8179:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8167:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8152:42:32" + }, + { + "expression": { + "id": 13761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13757, + "name": "hour", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13749, + "src": "8204:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13758, + "name": "secs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13752, + "src": "8211:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 13759, + "name": "SECONDS_PER_HOUR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12980, + "src": "8218:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8211:23:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8204:30:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13762, + "nodeType": "ExpressionStatement", + "src": "8204:30:32" + } + ] + }, + "id": 13764, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getHour", + "nameLocation": "8078:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13746, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "8094:9:32", + "nodeType": "VariableDeclaration", + "scope": 13764, + "src": "8086:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13745, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8086:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8085:19:32" + }, + "returnParameters": { + "id": 13750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13749, + "mutability": "mutable", + "name": "hour", + "nameLocation": "8136:4:32", + "nodeType": "VariableDeclaration", + "scope": 13764, + "src": "8128:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13748, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8128:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8127:14:32" + }, + "scope": 14469, + "src": "8069:172:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13783, + "nodeType": "Block", + "src": "8324:104:32", + "statements": [ + { + "assignments": [ + 13772 + ], + "declarations": [ + { + "constant": false, + "id": 13772, + "mutability": "mutable", + "name": "secs", + "nameLocation": "8342:4:32", + "nodeType": "VariableDeclaration", + "scope": 13783, + "src": "8334:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8334:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13776, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13773, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13766, + "src": "8349:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 13774, + "name": "SECONDS_PER_HOUR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12980, + "src": "8361:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8349:28:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8334:43:32" + }, + { + "expression": { + "id": 13781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13777, + "name": "minute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13769, + "src": "8387:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13778, + "name": "secs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13772, + "src": "8396:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 13779, + "name": "SECONDS_PER_MINUTE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12983, + "src": "8403:18:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8396:25:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8387:34:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13782, + "nodeType": "ExpressionStatement", + "src": "8387:34:32" + } + ] + }, + "id": 13784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMinute", + "nameLocation": "8256:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13766, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "8274:9:32", + "nodeType": "VariableDeclaration", + "scope": 13784, + "src": "8266:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13765, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8266:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8265:19:32" + }, + "returnParameters": { + "id": 13770, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13769, + "mutability": "mutable", + "name": "minute", + "nameLocation": "8316:6:32", + "nodeType": "VariableDeclaration", + "scope": 13784, + "src": "8308:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8308:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8307:16:32" + }, + "scope": 14469, + "src": "8247:181:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13797, + "nodeType": "Block", + "src": "8511:56:32", + "statements": [ + { + "expression": { + "id": 13795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13791, + "name": "second", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13789, + "src": "8521:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13792, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13786, + "src": "8530:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 13793, + "name": "SECONDS_PER_MINUTE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12983, + "src": "8542:18:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8530:30:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8521:39:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13796, + "nodeType": "ExpressionStatement", + "src": "8521:39:32" + } + ] + }, + "id": 13798, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSecond", + "nameLocation": "8443:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13786, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "8461:9:32", + "nodeType": "VariableDeclaration", + "scope": 13798, + "src": "8453:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8453:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8452:19:32" + }, + "returnParameters": { + "id": 13790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13789, + "mutability": "mutable", + "name": "second", + "nameLocation": "8503:6:32", + "nodeType": "VariableDeclaration", + "scope": 13798, + "src": "8495:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8495:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8494:16:32" + }, + "scope": 14469, + "src": "8434:133:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13860, + "nodeType": "Block", + "src": "8671:410:32", + "statements": [ + { + "assignments": [ + 13808, + 13810, + 13812 + ], + "declarations": [ + { + "constant": false, + "id": 13808, + "mutability": "mutable", + "name": "year", + "nameLocation": "8690:4:32", + "nodeType": "VariableDeclaration", + "scope": 13860, + "src": "8682:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8682:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13810, + "mutability": "mutable", + "name": "month", + "nameLocation": "8704:5:32", + "nodeType": "VariableDeclaration", + "scope": 13860, + "src": "8696:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13809, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8696:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13812, + "mutability": "mutable", + "name": "day", + "nameLocation": "8719:3:32", + "nodeType": "VariableDeclaration", + "scope": 13860, + "src": "8711:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8711:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13818, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13814, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13800, + "src": "8738:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 13815, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "8750:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8738:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13813, + "name": "_daysToDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13263, + "src": "8726:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 13817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8726:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8681:85:32" + }, + { + "expression": { + "id": 13821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13819, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13808, + "src": "8776:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 13820, + "name": "_years", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13802, + "src": "8784:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8776:14:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13822, + "nodeType": "ExpressionStatement", + "src": "8776:14:32" + }, + { + "assignments": [ + 13824 + ], + "declarations": [ + { + "constant": false, + "id": 13824, + "mutability": "mutable", + "name": "daysInMonth", + "nameLocation": "8808:11:32", + "nodeType": "VariableDeclaration", + "scope": 13860, + "src": "8800:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8800:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13829, + "initialValue": { + "arguments": [ + { + "id": 13826, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13808, + "src": "8838:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13827, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13810, + "src": "8844:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13825, + "name": "_getDaysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13667, + "src": "8822:15:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8822:28:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8800:50:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13830, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13812, + "src": "8864:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 13831, + "name": "daysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13824, + "src": "8870:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8864:17:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13838, + "nodeType": "IfStatement", + "src": "8860:65:32", + "trueBody": { + "id": 13837, + "nodeType": "Block", + "src": "8883:42:32", + "statements": [ + { + "expression": { + "id": 13835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13833, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13812, + "src": "8897:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 13834, + "name": "daysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13824, + "src": "8903:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8897:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13836, + "nodeType": "ExpressionStatement", + "src": "8897:17:32" + } + ] + } + }, + { + "expression": { + "id": 13852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13839, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13805, + "src": "8934:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13846, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 13841, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13808, + "src": "8963:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13842, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13810, + "src": "8969:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13843, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13812, + "src": "8976:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13840, + "name": "_daysFromDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13118, + "src": "8949:13:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 13844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8949:31:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 13845, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "8983:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8949:49:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13847, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13800, + "src": "9002:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 13848, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "9014:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9002:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 13850, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9001:29:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8949:81:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8934:96:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13853, + "nodeType": "ExpressionStatement", + "src": "8934:96:32" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13855, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13805, + "src": "9048:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 13856, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13800, + "src": "9064:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9048:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13854, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9040:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 13858, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9040:34:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13859, + "nodeType": "ExpressionStatement", + "src": "9040:34:32" + } + ] + }, + "id": 13861, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addYears", + "nameLocation": "8582:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13800, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "8599:9:32", + "nodeType": "VariableDeclaration", + "scope": 13861, + "src": "8591:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13799, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8591:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13802, + "mutability": "mutable", + "name": "_years", + "nameLocation": "8618:6:32", + "nodeType": "VariableDeclaration", + "scope": 13861, + "src": "8610:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8610:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8590:35:32" + }, + "returnParameters": { + "id": 13806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13805, + "mutability": "mutable", + "name": "newTimestamp", + "nameLocation": "8657:12:32", + "nodeType": "VariableDeclaration", + "scope": 13861, + "src": "8649:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13804, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8649:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8648:22:32" + }, + "scope": 14469, + "src": "8573:508:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13944, + "nodeType": "Block", + "src": "9187:486:32", + "statements": [ + { + "assignments": [ + 13871, + 13873, + 13875 + ], + "declarations": [ + { + "constant": false, + "id": 13871, + "mutability": "mutable", + "name": "year", + "nameLocation": "9206:4:32", + "nodeType": "VariableDeclaration", + "scope": 13944, + "src": "9198:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9198:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13873, + "mutability": "mutable", + "name": "month", + "nameLocation": "9220:5:32", + "nodeType": "VariableDeclaration", + "scope": 13944, + "src": "9212:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13872, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9212:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13875, + "mutability": "mutable", + "name": "day", + "nameLocation": "9235:3:32", + "nodeType": "VariableDeclaration", + "scope": 13944, + "src": "9227:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13874, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9227:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13881, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13877, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13863, + "src": "9254:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 13878, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "9266:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9254:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13876, + "name": "_daysToDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13263, + "src": "9242:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 13880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9242:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9197:85:32" + }, + { + "expression": { + "id": 13884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13882, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13873, + "src": "9292:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 13883, + "name": "_months", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13865, + "src": "9301:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9292:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13885, + "nodeType": "ExpressionStatement", + "src": "9292:16:32" + }, + { + "expression": { + "id": 13893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13886, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13871, + "src": "9318:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13887, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13873, + "src": "9327:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 13888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9335:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9327:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 13890, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9326:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "3132", + "id": 13891, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9340:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "9326:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9318:24:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13894, + "nodeType": "ExpressionStatement", + "src": "9318:24:32" + }, + { + "expression": { + "id": 13905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13895, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13873, + "src": "9352:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13896, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13873, + "src": "9362:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 13897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9370:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9362:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 13899, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9361:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3132", + "id": 13900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9375:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "9361:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 13902, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9360:18:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 13903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9381:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9360:22:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9352:30:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13906, + "nodeType": "ExpressionStatement", + "src": "9352:30:32" + }, + { + "assignments": [ + 13908 + ], + "declarations": [ + { + "constant": false, + "id": 13908, + "mutability": "mutable", + "name": "daysInMonth", + "nameLocation": "9400:11:32", + "nodeType": "VariableDeclaration", + "scope": 13944, + "src": "9392:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13907, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9392:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 13913, + "initialValue": { + "arguments": [ + { + "id": 13910, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13871, + "src": "9430:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13911, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13873, + "src": "9436:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13909, + "name": "_getDaysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13667, + "src": "9414:15:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 13912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9414:28:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9392:50:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13914, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13875, + "src": "9456:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 13915, + "name": "daysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13908, + "src": "9462:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9456:17:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 13922, + "nodeType": "IfStatement", + "src": "9452:65:32", + "trueBody": { + "id": 13921, + "nodeType": "Block", + "src": "9475:42:32", + "statements": [ + { + "expression": { + "id": 13919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13917, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13875, + "src": "9489:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 13918, + "name": "daysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13908, + "src": "9495:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9489:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13920, + "nodeType": "ExpressionStatement", + "src": "9489:17:32" + } + ] + } + }, + { + "expression": { + "id": 13936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13923, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13868, + "src": "9526:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 13925, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13871, + "src": "9555:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13926, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13873, + "src": "9561:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 13927, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13875, + "src": "9568:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 13924, + "name": "_daysFromDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13118, + "src": "9541:13:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 13928, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9541:31:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 13929, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "9575:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9541:49:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13931, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13863, + "src": "9594:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 13932, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "9606:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9594:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 13934, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9593:29:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9541:81:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9526:96:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13937, + "nodeType": "ExpressionStatement", + "src": "9526:96:32" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13939, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13868, + "src": "9640:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 13940, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13863, + "src": "9656:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9640:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13938, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9632:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 13942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9632:34:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13943, + "nodeType": "ExpressionStatement", + "src": "9632:34:32" + } + ] + }, + "id": 13945, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addMonths", + "nameLocation": "9096:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13866, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13863, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "9114:9:32", + "nodeType": "VariableDeclaration", + "scope": 13945, + "src": "9106:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13862, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9106:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13865, + "mutability": "mutable", + "name": "_months", + "nameLocation": "9133:7:32", + "nodeType": "VariableDeclaration", + "scope": 13945, + "src": "9125:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13864, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9125:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9105:36:32" + }, + "returnParameters": { + "id": 13869, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13868, + "mutability": "mutable", + "name": "newTimestamp", + "nameLocation": "9173:12:32", + "nodeType": "VariableDeclaration", + "scope": 13945, + "src": "9165:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13867, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9165:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9164:22:32" + }, + "scope": 14469, + "src": "9087:586:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13968, + "nodeType": "Block", + "src": "9775:111:32", + "statements": [ + { + "expression": { + "id": 13960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13954, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13952, + "src": "9785:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13955, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13947, + "src": "9800:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13956, + "name": "_days", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13949, + "src": "9812:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 13957, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "9820:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9812:23:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9800:35:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9785:50:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13961, + "nodeType": "ExpressionStatement", + "src": "9785:50:32" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13963, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13952, + "src": "9853:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 13964, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13947, + "src": "9869:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9853:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13962, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9845:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 13966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9845:34:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13967, + "nodeType": "ExpressionStatement", + "src": "9845:34:32" + } + ] + }, + "id": 13969, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addDays", + "nameLocation": "9688:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13950, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13947, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "9704:9:32", + "nodeType": "VariableDeclaration", + "scope": 13969, + "src": "9696:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9696:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13949, + "mutability": "mutable", + "name": "_days", + "nameLocation": "9723:5:32", + "nodeType": "VariableDeclaration", + "scope": 13969, + "src": "9715:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9715:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9695:34:32" + }, + "returnParameters": { + "id": 13953, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13952, + "mutability": "mutable", + "name": "newTimestamp", + "nameLocation": "9761:12:32", + "nodeType": "VariableDeclaration", + "scope": 13969, + "src": "9753:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13951, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9753:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9752:22:32" + }, + "scope": 14469, + "src": "9679:207:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 13992, + "nodeType": "Block", + "src": "9990:113:32", + "statements": [ + { + "expression": { + "id": 13984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 13978, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13976, + "src": "10000:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13979, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13971, + "src": "10015:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13980, + "name": "_hours", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13973, + "src": "10027:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 13981, + "name": "SECONDS_PER_HOUR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12980, + "src": "10036:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10027:25:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10015:37:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10000:52:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 13985, + "nodeType": "ExpressionStatement", + "src": "10000:52:32" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 13989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 13987, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13976, + "src": "10070:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 13988, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13971, + "src": "10086:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10070:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 13986, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10062:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 13990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10062:34:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 13991, + "nodeType": "ExpressionStatement", + "src": "10062:34:32" + } + ] + }, + "id": 13993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addHours", + "nameLocation": "9901:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13971, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "9918:9:32", + "nodeType": "VariableDeclaration", + "scope": 13993, + "src": "9910:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13970, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9910:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13973, + "mutability": "mutable", + "name": "_hours", + "nameLocation": "9937:6:32", + "nodeType": "VariableDeclaration", + "scope": 13993, + "src": "9929:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9929:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9909:35:32" + }, + "returnParameters": { + "id": 13977, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13976, + "mutability": "mutable", + "name": "newTimestamp", + "nameLocation": "9976:12:32", + "nodeType": "VariableDeclaration", + "scope": 13993, + "src": "9968:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13975, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9968:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9967:22:32" + }, + "scope": 14469, + "src": "9892:211:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14016, + "nodeType": "Block", + "src": "10211:117:32", + "statements": [ + { + "expression": { + "id": 14008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14002, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14000, + "src": "10221:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14003, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13995, + "src": "10236:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14004, + "name": "_minutes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13997, + "src": "10248:8:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 14005, + "name": "SECONDS_PER_MINUTE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12983, + "src": "10259:18:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10248:29:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10236:41:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10221:56:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14009, + "nodeType": "ExpressionStatement", + "src": "10221:56:32" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14011, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14000, + "src": "10295:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 14012, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13995, + "src": "10311:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10295:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14010, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10287:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10287:34:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14015, + "nodeType": "ExpressionStatement", + "src": "10287:34:32" + } + ] + }, + "id": 14017, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addMinutes", + "nameLocation": "10118:10:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 13998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 13995, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "10137:9:32", + "nodeType": "VariableDeclaration", + "scope": 14017, + "src": "10129:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13994, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10129:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13997, + "mutability": "mutable", + "name": "_minutes", + "nameLocation": "10156:8:32", + "nodeType": "VariableDeclaration", + "scope": 14017, + "src": "10148:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10148:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10128:37:32" + }, + "returnParameters": { + "id": 14001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14000, + "mutability": "mutable", + "name": "newTimestamp", + "nameLocation": "10197:12:32", + "nodeType": "VariableDeclaration", + "scope": 14017, + "src": "10189:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 13999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10189:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10188:22:32" + }, + "scope": 14469, + "src": "10109:219:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14038, + "nodeType": "Block", + "src": "10436:96:32", + "statements": [ + { + "expression": { + "id": 14030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14026, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14024, + "src": "10446:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14027, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14019, + "src": "10461:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 14028, + "name": "_seconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14021, + "src": "10473:8:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10461:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10446:35:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14031, + "nodeType": "ExpressionStatement", + "src": "10446:35:32" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14033, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14024, + "src": "10499:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 14034, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14019, + "src": "10515:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10499:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14032, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "10491:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14036, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10491:34:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14037, + "nodeType": "ExpressionStatement", + "src": "10491:34:32" + } + ] + }, + "id": 14039, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addSeconds", + "nameLocation": "10343:10:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14019, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "10362:9:32", + "nodeType": "VariableDeclaration", + "scope": 14039, + "src": "10354:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10354:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14021, + "mutability": "mutable", + "name": "_seconds", + "nameLocation": "10381:8:32", + "nodeType": "VariableDeclaration", + "scope": 14039, + "src": "10373:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10373:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10353:37:32" + }, + "returnParameters": { + "id": 14025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14024, + "mutability": "mutable", + "name": "newTimestamp", + "nameLocation": "10422:12:32", + "nodeType": "VariableDeclaration", + "scope": 14039, + "src": "10414:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10414:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10413:22:32" + }, + "scope": 14469, + "src": "10334:198:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14101, + "nodeType": "Block", + "src": "10636:410:32", + "statements": [ + { + "assignments": [ + 14049, + 14051, + 14053 + ], + "declarations": [ + { + "constant": false, + "id": 14049, + "mutability": "mutable", + "name": "year", + "nameLocation": "10655:4:32", + "nodeType": "VariableDeclaration", + "scope": 14101, + "src": "10647:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10647:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14051, + "mutability": "mutable", + "name": "month", + "nameLocation": "10669:5:32", + "nodeType": "VariableDeclaration", + "scope": 14101, + "src": "10661:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14050, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10661:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14053, + "mutability": "mutable", + "name": "day", + "nameLocation": "10684:3:32", + "nodeType": "VariableDeclaration", + "scope": 14101, + "src": "10676:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14052, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10676:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 14059, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14055, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14041, + "src": "10703:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 14056, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "10715:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10703:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14054, + "name": "_daysToDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13263, + "src": "10691:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 14058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10691:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10646:85:32" + }, + { + "expression": { + "id": 14062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14060, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14049, + "src": "10741:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 14061, + "name": "_years", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14043, + "src": "10749:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10741:14:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14063, + "nodeType": "ExpressionStatement", + "src": "10741:14:32" + }, + { + "assignments": [ + 14065 + ], + "declarations": [ + { + "constant": false, + "id": 14065, + "mutability": "mutable", + "name": "daysInMonth", + "nameLocation": "10773:11:32", + "nodeType": "VariableDeclaration", + "scope": 14101, + "src": "10765:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10765:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 14070, + "initialValue": { + "arguments": [ + { + "id": 14067, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14049, + "src": "10803:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 14068, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14051, + "src": "10809:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14066, + "name": "_getDaysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13667, + "src": "10787:15:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 14069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10787:28:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10765:50:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14071, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14053, + "src": "10829:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 14072, + "name": "daysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14065, + "src": "10835:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10829:17:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 14079, + "nodeType": "IfStatement", + "src": "10825:65:32", + "trueBody": { + "id": 14078, + "nodeType": "Block", + "src": "10848:42:32", + "statements": [ + { + "expression": { + "id": 14076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14074, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14053, + "src": "10862:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 14075, + "name": "daysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14065, + "src": "10868:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10862:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14077, + "nodeType": "ExpressionStatement", + "src": "10862:17:32" + } + ] + } + }, + { + "expression": { + "id": 14093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14080, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14046, + "src": "10899:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14092, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 14082, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14049, + "src": "10928:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 14083, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14051, + "src": "10934:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 14084, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14053, + "src": "10941:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14081, + "name": "_daysFromDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13118, + "src": "10914:13:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 14085, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10914:31:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 14086, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "10948:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10914:49:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14088, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14041, + "src": "10967:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 14089, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "10979:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10967:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 14091, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "10966:29:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10914:81:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10899:96:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14094, + "nodeType": "ExpressionStatement", + "src": "10899:96:32" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14096, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14046, + "src": "11013:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 14097, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14041, + "src": "11029:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11013:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11005:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11005:34:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14100, + "nodeType": "ExpressionStatement", + "src": "11005:34:32" + } + ] + }, + "id": 14102, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "subYears", + "nameLocation": "10547:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14044, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14041, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "10564:9:32", + "nodeType": "VariableDeclaration", + "scope": 14102, + "src": "10556:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14040, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10556:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14043, + "mutability": "mutable", + "name": "_years", + "nameLocation": "10583:6:32", + "nodeType": "VariableDeclaration", + "scope": 14102, + "src": "10575:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10575:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10555:35:32" + }, + "returnParameters": { + "id": 14047, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14046, + "mutability": "mutable", + "name": "newTimestamp", + "nameLocation": "10622:12:32", + "nodeType": "VariableDeclaration", + "scope": 14102, + "src": "10614:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14045, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10614:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10613:22:32" + }, + "scope": 14469, + "src": "10538:508:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14188, + "nodeType": "Block", + "src": "11152:518:32", + "statements": [ + { + "assignments": [ + 14112, + 14114, + 14116 + ], + "declarations": [ + { + "constant": false, + "id": 14112, + "mutability": "mutable", + "name": "year", + "nameLocation": "11171:4:32", + "nodeType": "VariableDeclaration", + "scope": 14188, + "src": "11163:12:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14111, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11163:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14114, + "mutability": "mutable", + "name": "month", + "nameLocation": "11185:5:32", + "nodeType": "VariableDeclaration", + "scope": 14188, + "src": "11177:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14113, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11177:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14116, + "mutability": "mutable", + "name": "day", + "nameLocation": "11200:3:32", + "nodeType": "VariableDeclaration", + "scope": 14188, + "src": "11192:11:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11192:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 14122, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14118, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14104, + "src": "11219:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 14119, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "11231:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11219:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14117, + "name": "_daysToDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13263, + "src": "11207:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 14121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11207:40:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11162:85:32" + }, + { + "assignments": [ + 14124 + ], + "declarations": [ + { + "constant": false, + "id": 14124, + "mutability": "mutable", + "name": "yearMonth", + "nameLocation": "11265:9:32", + "nodeType": "VariableDeclaration", + "scope": 14188, + "src": "11257:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14123, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11257:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 14135, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14125, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14112, + "src": "11277:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3132", + "id": 14126, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11284:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "11277:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14128, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14114, + "src": "11290:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 14129, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11298:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11290:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 14131, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11289:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11277:23:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 14133, + "name": "_months", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14106, + "src": "11303:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11277:33:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11257:53:32" + }, + { + "expression": { + "id": 14140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14136, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14112, + "src": "11320:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14137, + "name": "yearMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14124, + "src": "11327:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "3132", + "id": 14138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11339:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "11327:14:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11320:21:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14141, + "nodeType": "ExpressionStatement", + "src": "11320:21:32" + }, + { + "expression": { + "id": 14149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14142, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14114, + "src": "11351:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14143, + "name": "yearMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14124, + "src": "11360:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3132", + "id": 14144, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11372:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "11360:14:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 14146, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11359:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 14147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11378:1:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11359:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11351:28:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14150, + "nodeType": "ExpressionStatement", + "src": "11351:28:32" + }, + { + "assignments": [ + 14152 + ], + "declarations": [ + { + "constant": false, + "id": 14152, + "mutability": "mutable", + "name": "daysInMonth", + "nameLocation": "11397:11:32", + "nodeType": "VariableDeclaration", + "scope": 14188, + "src": "11389:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14151, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11389:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 14157, + "initialValue": { + "arguments": [ + { + "id": 14154, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14112, + "src": "11427:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 14155, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14114, + "src": "11433:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14153, + "name": "_getDaysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13667, + "src": "11411:15:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 14156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11411:28:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11389:50:32" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14158, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14116, + "src": "11453:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 14159, + "name": "daysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14152, + "src": "11459:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11453:17:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 14166, + "nodeType": "IfStatement", + "src": "11449:65:32", + "trueBody": { + "id": 14165, + "nodeType": "Block", + "src": "11472:42:32", + "statements": [ + { + "expression": { + "id": 14163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14161, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14116, + "src": "11486:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 14162, + "name": "daysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14152, + "src": "11492:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11486:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14164, + "nodeType": "ExpressionStatement", + "src": "11486:17:32" + } + ] + } + }, + { + "expression": { + "id": 14180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14167, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14109, + "src": "11523:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14179, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 14169, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14112, + "src": "11552:4:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 14170, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14114, + "src": "11558:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 14171, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14116, + "src": "11565:3:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14168, + "name": "_daysFromDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13118, + "src": "11538:13:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 14172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11538:31:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 14173, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "11572:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11538:49:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14175, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14104, + "src": "11591:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 14176, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "11603:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11591:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 14178, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11590:29:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11538:81:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11523:96:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14181, + "nodeType": "ExpressionStatement", + "src": "11523:96:32" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14183, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14109, + "src": "11637:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 14184, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14104, + "src": "11653:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11637:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14182, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11629:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11629:34:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14187, + "nodeType": "ExpressionStatement", + "src": "11629:34:32" + } + ] + }, + "id": 14189, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "subMonths", + "nameLocation": "11061:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14104, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "11079:9:32", + "nodeType": "VariableDeclaration", + "scope": 14189, + "src": "11071:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14103, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11071:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14106, + "mutability": "mutable", + "name": "_months", + "nameLocation": "11098:7:32", + "nodeType": "VariableDeclaration", + "scope": 14189, + "src": "11090:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14105, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11090:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11070:36:32" + }, + "returnParameters": { + "id": 14110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14109, + "mutability": "mutable", + "name": "newTimestamp", + "nameLocation": "11138:12:32", + "nodeType": "VariableDeclaration", + "scope": 14189, + "src": "11130:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11130:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11129:22:32" + }, + "scope": 14469, + "src": "11052:618:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14212, + "nodeType": "Block", + "src": "11772:111:32", + "statements": [ + { + "expression": { + "id": 14204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14198, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14196, + "src": "11782:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14199, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14191, + "src": "11797:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14200, + "name": "_days", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14193, + "src": "11809:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 14201, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "11817:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11809:23:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11797:35:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11782:50:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14205, + "nodeType": "ExpressionStatement", + "src": "11782:50:32" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14207, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14196, + "src": "11850:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 14208, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14191, + "src": "11866:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11850:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14206, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "11842:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11842:34:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14211, + "nodeType": "ExpressionStatement", + "src": "11842:34:32" + } + ] + }, + "id": 14213, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "subDays", + "nameLocation": "11685:7:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14191, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "11701:9:32", + "nodeType": "VariableDeclaration", + "scope": 14213, + "src": "11693:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14190, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11693:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14193, + "mutability": "mutable", + "name": "_days", + "nameLocation": "11720:5:32", + "nodeType": "VariableDeclaration", + "scope": 14213, + "src": "11712:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14192, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11712:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11692:34:32" + }, + "returnParameters": { + "id": 14197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14196, + "mutability": "mutable", + "name": "newTimestamp", + "nameLocation": "11758:12:32", + "nodeType": "VariableDeclaration", + "scope": 14213, + "src": "11750:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11750:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11749:22:32" + }, + "scope": 14469, + "src": "11676:207:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14236, + "nodeType": "Block", + "src": "11987:113:32", + "statements": [ + { + "expression": { + "id": 14228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14222, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14220, + "src": "11997:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14223, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14215, + "src": "12012:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14224, + "name": "_hours", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14217, + "src": "12024:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 14225, + "name": "SECONDS_PER_HOUR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12980, + "src": "12033:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12024:25:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12012:37:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11997:52:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14229, + "nodeType": "ExpressionStatement", + "src": "11997:52:32" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14231, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14220, + "src": "12067:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 14232, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14215, + "src": "12083:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12067:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12059:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14234, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12059:34:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14235, + "nodeType": "ExpressionStatement", + "src": "12059:34:32" + } + ] + }, + "id": 14237, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "subHours", + "nameLocation": "11898:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14215, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "11915:9:32", + "nodeType": "VariableDeclaration", + "scope": 14237, + "src": "11907:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14214, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11907:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14217, + "mutability": "mutable", + "name": "_hours", + "nameLocation": "11934:6:32", + "nodeType": "VariableDeclaration", + "scope": 14237, + "src": "11926:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11926:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11906:35:32" + }, + "returnParameters": { + "id": 14221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14220, + "mutability": "mutable", + "name": "newTimestamp", + "nameLocation": "11973:12:32", + "nodeType": "VariableDeclaration", + "scope": 14237, + "src": "11965:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14219, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11965:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11964:22:32" + }, + "scope": 14469, + "src": "11889:211:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14260, + "nodeType": "Block", + "src": "12208:117:32", + "statements": [ + { + "expression": { + "id": 14252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14246, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14244, + "src": "12218:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14247, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14239, + "src": "12233:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14248, + "name": "_minutes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14241, + "src": "12245:8:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 14249, + "name": "SECONDS_PER_MINUTE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12983, + "src": "12256:18:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12245:29:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12233:41:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12218:56:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14253, + "nodeType": "ExpressionStatement", + "src": "12218:56:32" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14255, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14244, + "src": "12292:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 14256, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14239, + "src": "12308:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12292:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14254, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12284:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12284:34:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14259, + "nodeType": "ExpressionStatement", + "src": "12284:34:32" + } + ] + }, + "id": 14261, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "subMinutes", + "nameLocation": "12115:10:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14242, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14239, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "12134:9:32", + "nodeType": "VariableDeclaration", + "scope": 14261, + "src": "12126:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14238, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12126:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14241, + "mutability": "mutable", + "name": "_minutes", + "nameLocation": "12153:8:32", + "nodeType": "VariableDeclaration", + "scope": 14261, + "src": "12145:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14240, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12145:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12125:37:32" + }, + "returnParameters": { + "id": 14245, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14244, + "mutability": "mutable", + "name": "newTimestamp", + "nameLocation": "12194:12:32", + "nodeType": "VariableDeclaration", + "scope": 14261, + "src": "12186:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14243, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12186:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12185:22:32" + }, + "scope": 14469, + "src": "12106:219:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14282, + "nodeType": "Block", + "src": "12433:96:32", + "statements": [ + { + "expression": { + "id": 14274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14270, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14268, + "src": "12443:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14271, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14263, + "src": "12458:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 14272, + "name": "_seconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14265, + "src": "12470:8:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12458:20:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12443:35:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14275, + "nodeType": "ExpressionStatement", + "src": "12443:35:32" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14277, + "name": "newTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14268, + "src": "12496:12:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 14278, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14263, + "src": "12512:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12496:25:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14276, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12488:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12488:34:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14281, + "nodeType": "ExpressionStatement", + "src": "12488:34:32" + } + ] + }, + "id": 14283, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "subSeconds", + "nameLocation": "12340:10:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14266, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14263, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "12359:9:32", + "nodeType": "VariableDeclaration", + "scope": 14283, + "src": "12351:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14262, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12351:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14265, + "mutability": "mutable", + "name": "_seconds", + "nameLocation": "12378:8:32", + "nodeType": "VariableDeclaration", + "scope": 14283, + "src": "12370:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14264, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12370:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12350:37:32" + }, + "returnParameters": { + "id": 14269, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14268, + "mutability": "mutable", + "name": "newTimestamp", + "nameLocation": "12419:12:32", + "nodeType": "VariableDeclaration", + "scope": 14283, + "src": "12411:20:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12411:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12410:22:32" + }, + "scope": 14469, + "src": "12331:198:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14320, + "nodeType": "Block", + "src": "12637:240:32", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14293, + "name": "fromTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14285, + "src": "12655:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 14294, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14287, + "src": "12672:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12655:28:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14292, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12647:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12647:37:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14297, + "nodeType": "ExpressionStatement", + "src": "12647:37:32" + }, + { + "assignments": [ + 14299, + null, + null + ], + "declarations": [ + { + "constant": false, + "id": 14299, + "mutability": "mutable", + "name": "fromYear", + "nameLocation": "12703:8:32", + "nodeType": "VariableDeclaration", + "scope": 14320, + "src": "12695:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14298, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12695:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null, + null + ], + "id": 14305, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14301, + "name": "fromTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14285, + "src": "12729:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 14302, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "12745:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12729:31:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14300, + "name": "_daysToDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13263, + "src": "12717:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 14304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12717:44:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12694:67:32" + }, + { + "assignments": [ + 14307, + null, + null + ], + "declarations": [ + { + "constant": false, + "id": 14307, + "mutability": "mutable", + "name": "toYear", + "nameLocation": "12780:6:32", + "nodeType": "VariableDeclaration", + "scope": 14320, + "src": "12772:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14306, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12772:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null, + null + ], + "id": 14313, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14309, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14287, + "src": "12804:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 14310, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "12818:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12804:29:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14308, + "name": "_daysToDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13263, + "src": "12792:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 14312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12792:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12771:63:32" + }, + { + "expression": { + "id": 14318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14314, + "name": "_years", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14290, + "src": "12844:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14315, + "name": "toYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14307, + "src": "12853:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 14316, + "name": "fromYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14299, + "src": "12862:8:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12853:17:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12844:26:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14319, + "nodeType": "ExpressionStatement", + "src": "12844:26:32" + } + ] + }, + "id": 14321, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "diffYears", + "nameLocation": "12544:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14288, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14285, + "mutability": "mutable", + "name": "fromTimestamp", + "nameLocation": "12562:13:32", + "nodeType": "VariableDeclaration", + "scope": 14321, + "src": "12554:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12554:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14287, + "mutability": "mutable", + "name": "toTimestamp", + "nameLocation": "12585:11:32", + "nodeType": "VariableDeclaration", + "scope": 14321, + "src": "12577:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14286, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12577:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12553:44:32" + }, + "returnParameters": { + "id": 14291, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14290, + "mutability": "mutable", + "name": "_years", + "nameLocation": "12629:6:32", + "nodeType": "VariableDeclaration", + "scope": 14321, + "src": "12621:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14289, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12621:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12620:16:32" + }, + "scope": 14469, + "src": "12535:342:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14370, + "nodeType": "Block", + "src": "12987:307:32", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14331, + "name": "fromTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14323, + "src": "13005:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 14332, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14325, + "src": "13022:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13005:28:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14330, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12997:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12997:37:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14335, + "nodeType": "ExpressionStatement", + "src": "12997:37:32" + }, + { + "assignments": [ + 14337, + 14339, + null + ], + "declarations": [ + { + "constant": false, + "id": 14337, + "mutability": "mutable", + "name": "fromYear", + "nameLocation": "13053:8:32", + "nodeType": "VariableDeclaration", + "scope": 14370, + "src": "13045:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14336, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13045:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14339, + "mutability": "mutable", + "name": "fromMonth", + "nameLocation": "13071:9:32", + "nodeType": "VariableDeclaration", + "scope": 14370, + "src": "13063:17:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13063:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 14345, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14341, + "name": "fromTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14323, + "src": "13097:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 14342, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "13113:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13097:31:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14340, + "name": "_daysToDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13263, + "src": "13085:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 14344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13085:44:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13044:85:32" + }, + { + "assignments": [ + 14347, + 14349, + null + ], + "declarations": [ + { + "constant": false, + "id": 14347, + "mutability": "mutable", + "name": "toYear", + "nameLocation": "13148:6:32", + "nodeType": "VariableDeclaration", + "scope": 14370, + "src": "13140:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13140:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14349, + "mutability": "mutable", + "name": "toMonth", + "nameLocation": "13164:7:32", + "nodeType": "VariableDeclaration", + "scope": 14370, + "src": "13156:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14348, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13156:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 14355, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14351, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14325, + "src": "13188:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 14352, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "13202:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13188:29:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 14350, + "name": "_daysToDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13263, + "src": "13176:11:32", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 14354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13176:42:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13139:79:32" + }, + { + "expression": { + "id": 14368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14356, + "name": "_months", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14328, + "src": "13228:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14357, + "name": "toYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14347, + "src": "13238:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3132", + "id": 14358, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13247:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "13238:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 14360, + "name": "toMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14349, + "src": "13252:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13238:21:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14362, + "name": "fromYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14337, + "src": "13262:8:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3132", + "id": 14363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13273:2:32", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "13262:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13238:37:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 14366, + "name": "fromMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14339, + "src": "13278:9:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13238:49:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13228:59:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14369, + "nodeType": "ExpressionStatement", + "src": "13228:59:32" + } + ] + }, + "id": 14371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "diffMonths", + "nameLocation": "12892:10:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14326, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14323, + "mutability": "mutable", + "name": "fromTimestamp", + "nameLocation": "12911:13:32", + "nodeType": "VariableDeclaration", + "scope": 14371, + "src": "12903:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14322, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12903:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14325, + "mutability": "mutable", + "name": "toTimestamp", + "nameLocation": "12934:11:32", + "nodeType": "VariableDeclaration", + "scope": 14371, + "src": "12926:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14324, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12926:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12902:44:32" + }, + "returnParameters": { + "id": 14329, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14328, + "mutability": "mutable", + "name": "_months", + "nameLocation": "12978:7:32", + "nodeType": "VariableDeclaration", + "scope": 14371, + "src": "12970:15:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14327, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12970:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12969:17:32" + }, + "scope": 14469, + "src": "12883:411:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14395, + "nodeType": "Block", + "src": "13400:119:32", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14381, + "name": "fromTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14373, + "src": "13418:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 14382, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14375, + "src": "13435:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13418:28:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14380, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13410:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13410:37:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14385, + "nodeType": "ExpressionStatement", + "src": "13410:37:32" + }, + { + "expression": { + "id": 14393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14386, + "name": "_days", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14378, + "src": "13457:5:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14387, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14375, + "src": "13466:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 14388, + "name": "fromTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14373, + "src": "13480:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13466:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 14390, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13465:29:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 14391, + "name": "SECONDS_PER_DAY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12975, + "src": "13497:15:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13465:47:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13457:55:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14394, + "nodeType": "ExpressionStatement", + "src": "13457:55:32" + } + ] + }, + "id": 14396, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "diffDays", + "nameLocation": "13309:8:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14376, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14373, + "mutability": "mutable", + "name": "fromTimestamp", + "nameLocation": "13326:13:32", + "nodeType": "VariableDeclaration", + "scope": 14396, + "src": "13318:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14372, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13318:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14375, + "mutability": "mutable", + "name": "toTimestamp", + "nameLocation": "13349:11:32", + "nodeType": "VariableDeclaration", + "scope": 14396, + "src": "13341:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14374, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13341:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13317:44:32" + }, + "returnParameters": { + "id": 14379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14378, + "mutability": "mutable", + "name": "_days", + "nameLocation": "13393:5:32", + "nodeType": "VariableDeclaration", + "scope": 14396, + "src": "13385:13:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13385:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13384:15:32" + }, + "scope": 14469, + "src": "13300:219:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14420, + "nodeType": "Block", + "src": "13627:121:32", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14406, + "name": "fromTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14398, + "src": "13645:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 14407, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14400, + "src": "13662:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13645:28:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14405, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13637:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13637:37:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14410, + "nodeType": "ExpressionStatement", + "src": "13637:37:32" + }, + { + "expression": { + "id": 14418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14411, + "name": "_hours", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14403, + "src": "13684:6:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14412, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14400, + "src": "13694:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 14413, + "name": "fromTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14398, + "src": "13708:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13694:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 14415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13693:29:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 14416, + "name": "SECONDS_PER_HOUR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12980, + "src": "13725:16:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13693:48:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13684:57:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14419, + "nodeType": "ExpressionStatement", + "src": "13684:57:32" + } + ] + }, + "id": 14421, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "diffHours", + "nameLocation": "13534:9:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14401, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14398, + "mutability": "mutable", + "name": "fromTimestamp", + "nameLocation": "13552:13:32", + "nodeType": "VariableDeclaration", + "scope": 14421, + "src": "13544:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13544:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14400, + "mutability": "mutable", + "name": "toTimestamp", + "nameLocation": "13575:11:32", + "nodeType": "VariableDeclaration", + "scope": 14421, + "src": "13567:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14399, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13567:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13543:44:32" + }, + "returnParameters": { + "id": 14404, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14403, + "mutability": "mutable", + "name": "_hours", + "nameLocation": "13619:6:32", + "nodeType": "VariableDeclaration", + "scope": 14421, + "src": "13611:14:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14402, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13611:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13610:16:32" + }, + "scope": 14469, + "src": "13525:223:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14445, + "nodeType": "Block", + "src": "13860:125:32", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14431, + "name": "fromTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14423, + "src": "13878:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 14432, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14425, + "src": "13895:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13878:28:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14430, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13870:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13870:37:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14435, + "nodeType": "ExpressionStatement", + "src": "13870:37:32" + }, + { + "expression": { + "id": 14443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14436, + "name": "_minutes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14428, + "src": "13917:8:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14437, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14425, + "src": "13929:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 14438, + "name": "fromTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14423, + "src": "13943:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13929:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 14440, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13928:29:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 14441, + "name": "SECONDS_PER_MINUTE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12983, + "src": "13960:18:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13928:50:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13917:61:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14444, + "nodeType": "ExpressionStatement", + "src": "13917:61:32" + } + ] + }, + "id": 14446, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "diffMinutes", + "nameLocation": "13763:11:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14423, + "mutability": "mutable", + "name": "fromTimestamp", + "nameLocation": "13783:13:32", + "nodeType": "VariableDeclaration", + "scope": 14446, + "src": "13775:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13775:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14425, + "mutability": "mutable", + "name": "toTimestamp", + "nameLocation": "13806:11:32", + "nodeType": "VariableDeclaration", + "scope": 14446, + "src": "13798:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14424, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13798:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13774:44:32" + }, + "returnParameters": { + "id": 14429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14428, + "mutability": "mutable", + "name": "_minutes", + "nameLocation": "13850:8:32", + "nodeType": "VariableDeclaration", + "scope": 14446, + "src": "13842:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13842:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13841:18:32" + }, + "scope": 14469, + "src": "13754:231:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 14467, + "nodeType": "Block", + "src": "14097:102:32", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14456, + "name": "fromTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14448, + "src": "14115:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 14457, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14450, + "src": "14132:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14115:28:32", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 14455, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14107:7:32", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 14459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14107:37:32", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14460, + "nodeType": "ExpressionStatement", + "src": "14107:37:32" + }, + { + "expression": { + "id": 14465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 14461, + "name": "_seconds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14453, + "src": "14154:8:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 14464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14462, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14450, + "src": "14165:11:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 14463, + "name": "fromTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14448, + "src": "14179:13:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14165:27:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14154:38:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14466, + "nodeType": "ExpressionStatement", + "src": "14154:38:32" + } + ] + }, + "id": 14468, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "diffSeconds", + "nameLocation": "14000:11:32", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14448, + "mutability": "mutable", + "name": "fromTimestamp", + "nameLocation": "14020:13:32", + "nodeType": "VariableDeclaration", + "scope": 14468, + "src": "14012:21:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14447, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14012:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14450, + "mutability": "mutable", + "name": "toTimestamp", + "nameLocation": "14043:11:32", + "nodeType": "VariableDeclaration", + "scope": 14468, + "src": "14035:19:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14449, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14035:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14011:44:32" + }, + "returnParameters": { + "id": 14454, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14453, + "mutability": "mutable", + "name": "_seconds", + "nameLocation": "14087:8:32", + "nodeType": "VariableDeclaration", + "scope": 14468, + "src": "14079:16:32", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14452, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14079:7:32", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14078:18:32" + }, + "scope": 14469, + "src": "13991:208:32", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 14470, + "src": "928:13273:32", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "32:14170:32" + }, + "id": 32 + }, + "contracts/constants/CircuitConstants.sol": { + "ast": { + "absolutePath": "contracts/constants/CircuitConstants.sol", + "exportedSymbols": { + "CircuitConstants": [ + 14505 + ] + }, + "id": 14506, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 14471, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "32:23:33" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "CircuitConstants", + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 14472, + "nodeType": "StructuredDocumentation", + "src": "57:265:33", + "text": " @title Circuit Constants Library\n @notice This library defines constants representing indices used to access public signals\n of various circuits.\n @dev These indices map directly to specific data fields in the corresponding circuits proofs." + }, + "fullyImplemented": true, + "id": 14505, + "linearizedBaseContracts": [ + 14505 + ], + "name": "CircuitConstants", + "nameLocation": "331:16:33", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "documentation": { + "id": 14473, + "nodeType": "StructuredDocumentation", + "src": "461:98:33", + "text": " @notice Index to access the hashIndex in the credential circuit public signals." + }, + "id": 14476, + "mutability": "constant", + "name": "CREDENTIAL_HASH_INDEX_INDEX", + "nameLocation": "581:27:33", + "nodeType": "VariableDeclaration", + "scope": 14505, + "src": "564:48:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14474, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "564:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 14475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "611:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 14477, + "nodeType": "StructuredDocumentation", + "src": "618:98:33", + "text": " @notice Index to access the hashValue in the credential circuit public signals." + }, + "id": 14480, + "mutability": "constant", + "name": "CREDENTIAL_HASH_VALUE_INDEX", + "nameLocation": "738:27:33", + "nodeType": "VariableDeclaration", + "scope": 14505, + "src": "721:48:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14478, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "721:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31", + "id": 14479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "768:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 14481, + "nodeType": "StructuredDocumentation", + "src": "775:95:33", + "text": " @notice Index to access the linkId in the credential circuit public signals." + }, + "id": 14484, + "mutability": "constant", + "name": "CREDENTIAL_LINK_ID_INDEX", + "nameLocation": "892:24:33", + "nodeType": "VariableDeclaration", + "scope": 14505, + "src": "875:45:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14482, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "875:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "32", + "id": 14483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "919:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 14485, + "nodeType": "StructuredDocumentation", + "src": "926:100:33", + "text": " @notice Index to access the currentDate in the credential circuit public signals." + }, + "id": 14488, + "mutability": "constant", + "name": "CREDENTIAL_CURRENT_DATE_INDEX", + "nameLocation": "1048:29:33", + "nodeType": "VariableDeclaration", + "scope": 14505, + "src": "1031:50:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14486, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1031:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "33", + "id": 14487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1080:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 14489, + "nodeType": "StructuredDocumentation", + "src": "1087:101:33", + "text": " @notice Index to access the issuanceDate in the credential circuit public signals." + }, + "id": 14492, + "mutability": "constant", + "name": "CREDENTIAL_ISSUANCE_DATE_INDEX", + "nameLocation": "1210:30:33", + "nodeType": "VariableDeclaration", + "scope": 14505, + "src": "1193:51:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1193:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34", + "id": 14491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1243:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 14493, + "nodeType": "StructuredDocumentation", + "src": "1250:101:33", + "text": " @notice Index to access the templateRoot in the credential circuit public signals." + }, + "id": 14496, + "mutability": "constant", + "name": "CREDENTIAL_TEMPLATE_ROOT_INDEX", + "nameLocation": "1373:30:33", + "nodeType": "VariableDeclaration", + "scope": 14505, + "src": "1356:51:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14494, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1356:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "35", + "id": 14495, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1406:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 14497, + "nodeType": "StructuredDocumentation", + "src": "1413:102:33", + "text": " @notice Index to access the issuerDidHash in the credential circuit public signals." + }, + "id": 14500, + "mutability": "constant", + "name": "CREDENTIAL_ISSUER_DID_HASH_INDEX", + "nameLocation": "1537:32:33", + "nodeType": "VariableDeclaration", + "scope": 14505, + "src": "1520:53:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14498, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1520:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "36", + "id": 14499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1572:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "visibility": "internal" + }, + { + "constant": true, + "documentation": { + "id": 14501, + "nodeType": "StructuredDocumentation", + "src": "1579:104:33", + "text": " @notice Index to access the revocationNonce in the credential circuit public signals." + }, + "id": 14504, + "mutability": "constant", + "name": "CREDENTIAL_REVOCATION_NONCE_INDEX", + "nameLocation": "1705:33:33", + "nodeType": "VariableDeclaration", + "scope": 14505, + "src": "1688:54:33", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14502, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1688:7:33", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "37", + "id": 14503, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1741:1:33", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "visibility": "internal" + } + ], + "scope": 14506, + "src": "323:1422:33", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "32:1714:33" + }, + "id": 33 + }, + "contracts/interfaces/IAnonAadhaarCircuitVerifier.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IAnonAadhaarCircuitVerifier.sol", + "exportedSymbols": { + "IAnonAadhaarCircuitVerifier": [ + 14553 + ] + }, + "id": 14554, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 14507, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "32:23:34" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IAnonAadhaarCircuitVerifier", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 14508, + "nodeType": "StructuredDocumentation", + "src": "56:234:34", + "text": " @title IAnonAadhaarCircuitVerifier\n @notice Interface for verifying AnonAadhaar circuit proofs.\n @dev This interface defines the structure of an AnonAadhaar\n circuit proof and exposes a function to verify such proofs." + }, + "fullyImplemented": false, + "id": 14553, + "linearizedBaseContracts": [ + 14553 + ], + "name": "IAnonAadhaarCircuitVerifier", + "nameLocation": "301:27:34", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof", + "documentation": { + "id": 14509, + "nodeType": "StructuredDocumentation", + "src": "335:519:34", + "text": " @notice Represents an AnonAadhaar circuit proof.\n @dev This structure encapsulates the required proof elements.\n @param a An array of two unsigned integers representing the proof component 'a'.\n @param b A 2x2 array of unsigned integers representing the proof component 'b'.\n @param c An array of two unsigned integers representing the proof component 'c'.\n @param pubSignals An array of three unsigned integers representing the public signals associated with the proof." + }, + "id": 14528, + "members": [ + { + "constant": false, + "id": 14513, + "mutability": "mutable", + "name": "a", + "nameLocation": "911:1:34", + "nodeType": "VariableDeclaration", + "scope": 14528, + "src": "900:12:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 14510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "900:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14512, + "length": { + "hexValue": "32", + "id": 14511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "908:1:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "900:10:34", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14519, + "mutability": "mutable", + "name": "b", + "nameLocation": "936:1:34", + "nodeType": "VariableDeclaration", + "scope": 14528, + "src": "922:15:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 14514, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "922:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14516, + "length": { + "hexValue": "32", + "id": 14515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "930:1:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "922:10:34", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "id": 14518, + "length": { + "hexValue": "32", + "id": 14517, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "933:1:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "922:13:34", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14523, + "mutability": "mutable", + "name": "c", + "nameLocation": "958:1:34", + "nodeType": "VariableDeclaration", + "scope": 14528, + "src": "947:12:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 14520, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "947:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14522, + "length": { + "hexValue": "32", + "id": 14521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "955:1:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "947:10:34", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14527, + "mutability": "mutable", + "name": "pubSignals", + "nameLocation": "981:10:34", + "nodeType": "VariableDeclaration", + "scope": 14528, + "src": "969:22:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_storage_ptr", + "typeString": "uint256[12]" + }, + "typeName": { + "baseType": { + "id": 14524, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "969:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14526, + "length": { + "hexValue": "3132", + "id": 14525, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "977:2:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "nodeType": "ArrayTypeName", + "src": "969:11:34", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_storage_ptr", + "typeString": "uint256[12]" + } + }, + "visibility": "internal" + } + ], + "name": "AnonAadhaarCircuitProof", + "nameLocation": "866:23:34", + "nodeType": "StructDefinition", + "scope": 14553, + "src": "859:139:34", + "visibility": "public" + }, + { + "documentation": { + "id": 14529, + "nodeType": "StructuredDocumentation", + "src": "1004:474:34", + "text": " @notice Verifies a given AnonAadhaar circuit proof.\n @dev This function checks the validity of the provided proof parameters.\n @param a The 'a' component of the proof.\n @param b The 'b' component of the proof.\n @param c The 'c' component of the proof.\n @param pubSignals The public signals associated with the proof.\n @return isValid A boolean value indicating whether the provided proof is valid (true) or not (false)." + }, + "functionSelector": "8cbac0fa", + "id": 14552, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "verifyProof", + "nameLocation": "1492:11:34", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14548, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14533, + "mutability": "mutable", + "name": "a", + "nameLocation": "1533:1:34", + "nodeType": "VariableDeclaration", + "scope": 14552, + "src": "1513:21:34", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 14530, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1513:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14532, + "length": { + "hexValue": "32", + "id": 14531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1521:1:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1513:10:34", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14539, + "mutability": "mutable", + "name": "b", + "nameLocation": "1567:1:34", + "nodeType": "VariableDeclaration", + "scope": 14552, + "src": "1544:24:34", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptr", + "typeString": "uint256[2][2]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 14534, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1544:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14536, + "length": { + "hexValue": "32", + "id": 14535, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1552:1:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1544:10:34", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "id": 14538, + "length": { + "hexValue": "32", + "id": 14537, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1555:1:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1544:13:34", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14543, + "mutability": "mutable", + "name": "c", + "nameLocation": "1598:1:34", + "nodeType": "VariableDeclaration", + "scope": 14552, + "src": "1578:21:34", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 14540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1578:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14542, + "length": { + "hexValue": "32", + "id": 14541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1586:1:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1578:10:34", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14547, + "mutability": "mutable", + "name": "pubSignals", + "nameLocation": "1630:10:34", + "nodeType": "VariableDeclaration", + "scope": 14552, + "src": "1609:31:34", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_calldata_ptr", + "typeString": "uint256[12]" + }, + "typeName": { + "baseType": { + "id": 14544, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1609:7:34", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14546, + "length": { + "hexValue": "3132", + "id": 14545, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1617:2:34", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "nodeType": "ArrayTypeName", + "src": "1609:11:34", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_storage_ptr", + "typeString": "uint256[12]" + } + }, + "visibility": "internal" + } + ], + "src": "1503:143:34" + }, + "returnParameters": { + "id": 14551, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14550, + "mutability": "mutable", + "name": "isValid", + "nameLocation": "1675:7:34", + "nodeType": "VariableDeclaration", + "scope": 14552, + "src": "1670:12:34", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 14549, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1670:4:34", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1669:14:34" + }, + "scope": 14553, + "src": "1483:201:34", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 14554, + "src": "291:1395:34", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "32:1655:34" + }, + "id": 34 + }, + "contracts/interfaces/IAttestationValidator.sol": { + "ast": { + "absolutePath": "contracts/interfaces/IAttestationValidator.sol", + "exportedSymbols": { + "IAttestationValidator": [ + 14634 + ], + "ICertificatesValidator": [ + 14661 + ] + }, + "id": 14635, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 14555, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "36:23:35" + }, + { + "absolutePath": "contracts/interfaces/ICertificatesValidator.sol", + "file": "./ICertificatesValidator.sol", + "id": 14557, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 14635, + "sourceUnit": 14662, + "src": "61:68:35", + "symbolAliases": [ + { + "foreign": { + "id": 14556, + "name": "ICertificatesValidator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14661, + "src": "69:22:35", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "IAttestationValidator", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 14558, + "nodeType": "StructuredDocumentation", + "src": "131:82:35", + "text": " @dev IAttestationValidator. Interface for verification of attestations." + }, + "fullyImplemented": false, + "id": 14634, + "linearizedBaseContracts": [ + 14634 + ], + "name": "IAttestationValidator", + "nameLocation": "224:21:35", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "IAttestationValidator.Attestation", + "id": 14564, + "members": [ + { + "constant": false, + "id": 14560, + "mutability": "mutable", + "name": "tag", + "nameLocation": "289:3:35", + "nodeType": "VariableDeclaration", + "scope": 14564, + "src": "281:11:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14559, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "281:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14563, + "mutability": "mutable", + "name": "value", + "nameLocation": "319:5:35", + "nodeType": "VariableDeclaration", + "scope": 14564, + "src": "302:22:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AttestationValue_$14578_storage_ptr", + "typeString": "struct IAttestationValidator.AttestationValue" + }, + "typeName": { + "id": 14562, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14561, + "name": "AttestationValue", + "nameLocations": [ + "302:16:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14578, + "src": "302:16:35" + }, + "referencedDeclaration": 14578, + "src": "302:16:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AttestationValue_$14578_storage_ptr", + "typeString": "struct IAttestationValidator.AttestationValue" + } + }, + "visibility": "internal" + } + ], + "name": "Attestation", + "nameLocation": "259:11:35", + "nodeType": "StructDefinition", + "scope": 14634, + "src": "252:79:35", + "visibility": "public" + }, + { + "canonicalName": "IAttestationValidator.AttestationValue", + "id": 14578, + "members": [ + { + "constant": false, + "id": 14566, + "mutability": "mutable", + "name": "protectedHeader", + "nameLocation": "377:15:35", + "nodeType": "VariableDeclaration", + "scope": 14578, + "src": "371:21:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14565, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "371:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14568, + "mutability": "mutable", + "name": "unprotectedHeader", + "nameLocation": "408:17:35", + "nodeType": "VariableDeclaration", + "scope": 14578, + "src": "402:23:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14567, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "402:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14571, + "mutability": "mutable", + "name": "payload", + "nameLocation": "443:7:35", + "nodeType": "VariableDeclaration", + "scope": 14578, + "src": "435:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Payload_$14599_storage_ptr", + "typeString": "struct IAttestationValidator.Payload" + }, + "typeName": { + "id": 14570, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14569, + "name": "Payload", + "nameLocations": [ + "435:7:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14599, + "src": "435:7:35" + }, + "referencedDeclaration": 14599, + "src": "435:7:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Payload_$14599_storage_ptr", + "typeString": "struct IAttestationValidator.Payload" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14573, + "mutability": "mutable", + "name": "rawPayload", + "nameLocation": "466:10:35", + "nodeType": "VariableDeclaration", + "scope": 14578, + "src": "460:16:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14572, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "460:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14575, + "mutability": "mutable", + "name": "signature", + "nameLocation": "492:9:35", + "nodeType": "VariableDeclaration", + "scope": 14578, + "src": "486:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14574, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "486:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14577, + "mutability": "mutable", + "name": "imageHash", + "nameLocation": "519:9:35", + "nodeType": "VariableDeclaration", + "scope": 14578, + "src": "511:17:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 14576, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "511:7:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "AttestationValue", + "nameLocation": "344:16:35", + "nodeType": "StructDefinition", + "scope": 14634, + "src": "337:198:35", + "visibility": "public" + }, + { + "canonicalName": "IAttestationValidator.Payload", + "id": 14599, + "members": [ + { + "constant": false, + "id": 14580, + "mutability": "mutable", + "name": "moduleId", + "nameLocation": "573:8:35", + "nodeType": "VariableDeclaration", + "scope": 14599, + "src": "566:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 14579, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "566:6:35", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14582, + "mutability": "mutable", + "name": "digest", + "nameLocation": "598:6:35", + "nodeType": "VariableDeclaration", + "scope": 14599, + "src": "591:13:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 14581, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "591:6:35", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14584, + "mutability": "mutable", + "name": "timestamp", + "nameLocation": "622:9:35", + "nodeType": "VariableDeclaration", + "scope": 14599, + "src": "614:17:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14583, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "614:7:35", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14587, + "mutability": "mutable", + "name": "pcrs", + "nameLocation": "649:4:35", + "nodeType": "VariableDeclaration", + "scope": 14599, + "src": "641:12:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 14585, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "641:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 14586, + "nodeType": "ArrayTypeName", + "src": "641:7:35", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14589, + "mutability": "mutable", + "name": "certificate", + "nameLocation": "669:11:35", + "nodeType": "VariableDeclaration", + "scope": 14599, + "src": "663:17:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14588, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "663:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14592, + "mutability": "mutable", + "name": "cabundle", + "nameLocation": "698:8:35", + "nodeType": "VariableDeclaration", + "scope": 14599, + "src": "690:16:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 14590, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "690:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 14591, + "nodeType": "ArrayTypeName", + "src": "690:7:35", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14594, + "mutability": "mutable", + "name": "publicKey", + "nameLocation": "722:9:35", + "nodeType": "VariableDeclaration", + "scope": 14599, + "src": "716:15:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14593, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "716:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14596, + "mutability": "mutable", + "name": "userData", + "nameLocation": "747:8:35", + "nodeType": "VariableDeclaration", + "scope": 14599, + "src": "741:14:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14595, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "741:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14598, + "mutability": "mutable", + "name": "nonce", + "nameLocation": "771:5:35", + "nodeType": "VariableDeclaration", + "scope": 14599, + "src": "765:11:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14597, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "765:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "Payload", + "nameLocation": "548:7:35", + "nodeType": "StructDefinition", + "scope": 14634, + "src": "541:242:35", + "visibility": "public" + }, + { + "documentation": { + "id": 14600, + "nodeType": "StructuredDocumentation", + "src": "789:51:35", + "text": " @dev Get version of the contract" + }, + "functionSelector": "54fd4d50", + "id": 14605, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "version", + "nameLocation": "854:7:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14601, + "nodeType": "ParameterList", + "parameters": [], + "src": "861:2:35" + }, + "returnParameters": { + "id": 14604, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14603, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14605, + "src": "887:13:35", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 14602, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "887:6:35", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "886:15:35" + }, + "scope": 14634, + "src": "845:57:35", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 14606, + "nodeType": "StructuredDocumentation", + "src": "908:186:35", + "text": " @dev Validates the attestation\n @param attestation bytes for the attestation\n @return User data fields and a boolean indicating if the attestation is valid" + }, + "functionSelector": "4cc3a4a5", + "id": 14617, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "validateAttestation", + "nameLocation": "1108:19:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14609, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14608, + "mutability": "mutable", + "name": "attestation", + "nameLocation": "1152:11:35", + "nodeType": "VariableDeclaration", + "scope": 14617, + "src": "1137:26:35", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14607, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1137:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1127:42:35" + }, + "returnParameters": { + "id": 14616, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14611, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14617, + "src": "1188:12:35", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14610, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1188:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14613, + "mutability": "mutable", + "name": "imageHash", + "nameLocation": "1210:9:35", + "nodeType": "VariableDeclaration", + "scope": 14617, + "src": "1202:17:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 14612, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1202:7:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14615, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14617, + "src": "1221:4:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 14614, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1221:4:35", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1187:39:35" + }, + "scope": 14634, + "src": "1099:128:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 14618, + "nodeType": "StructuredDocumentation", + "src": "1233:130:35", + "text": " @dev Parse the attestation data and return the parsed data\n @param attestation The attestation bytes data" + }, + "functionSelector": "f3808b76", + "id": 14626, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "parseAttestation", + "nameLocation": "1377:16:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14621, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14620, + "mutability": "mutable", + "name": "attestation", + "nameLocation": "1418:11:35", + "nodeType": "VariableDeclaration", + "scope": 14626, + "src": "1403:26:35", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14619, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1403:5:35", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "1393:42:35" + }, + "returnParameters": { + "id": 14625, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14624, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14626, + "src": "1459:18:35", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Attestation_$14564_memory_ptr", + "typeString": "struct IAttestationValidator.Attestation" + }, + "typeName": { + "id": 14623, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14622, + "name": "Attestation", + "nameLocations": [ + "1459:11:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14564, + "src": "1459:11:35" + }, + "referencedDeclaration": 14564, + "src": "1459:11:35", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Attestation_$14564_storage_ptr", + "typeString": "struct IAttestationValidator.Attestation" + } + }, + "visibility": "internal" + } + ], + "src": "1458:20:35" + }, + "scope": 14634, + "src": "1368:111:35", + "stateMutability": "pure", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 14627, + "nodeType": "StructuredDocumentation", + "src": "1485:99:35", + "text": " @dev Set certificates validator\n @param validator - certificates validator" + }, + "functionSelector": "7a161959", + "id": 14633, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setCertificatesValidator", + "nameLocation": "1598:24:35", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14631, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14630, + "mutability": "mutable", + "name": "validator", + "nameLocation": "1646:9:35", + "nodeType": "VariableDeclaration", + "scope": 14633, + "src": "1623:32:35", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICertificatesValidator_$14661", + "typeString": "contract ICertificatesValidator" + }, + "typeName": { + "id": 14629, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14628, + "name": "ICertificatesValidator", + "nameLocations": [ + "1623:22:35" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14661, + "src": "1623:22:35" + }, + "referencedDeclaration": 14661, + "src": "1623:22:35", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICertificatesValidator_$14661", + "typeString": "contract ICertificatesValidator" + } + }, + "visibility": "internal" + } + ], + "src": "1622:34:35" + }, + "returnParameters": { + "id": 14632, + "nodeType": "ParameterList", + "parameters": [], + "src": "1665:0:35" + }, + "scope": 14634, + "src": "1589:77:35", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 14635, + "src": "214:1454:35", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "36:1633:35" + }, + "id": 35 + }, + "contracts/interfaces/ICertificatesValidator.sol": { + "ast": { + "absolutePath": "contracts/interfaces/ICertificatesValidator.sol", + "exportedSymbols": { + "ICertificatesValidator": [ + 14661 + ] + }, + "id": 14662, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 14636, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "36:23:36" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ICertificatesValidator", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 14637, + "nodeType": "StructuredDocumentation", + "src": "61:81:36", + "text": " @dev ICertificatesValidator. Interface for validation of certificates." + }, + "fullyImplemented": false, + "id": 14661, + "linearizedBaseContracts": [ + 14661 + ], + "name": "ICertificatesValidator", + "nameLocation": "153:22:36", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 14638, + "nodeType": "StructuredDocumentation", + "src": "182:51:36", + "text": " @dev Get version of the contract" + }, + "functionSelector": "54fd4d50", + "id": 14643, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "version", + "nameLocation": "247:7:36", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14639, + "nodeType": "ParameterList", + "parameters": [], + "src": "254:2:36" + }, + "returnParameters": { + "id": 14642, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14641, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14643, + "src": "280:13:36", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 14640, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "280:6:36", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "279:15:36" + }, + "scope": 14661, + "src": "238:57:36", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 14644, + "nodeType": "StructuredDocumentation", + "src": "301:157:36", + "text": " @dev Validate the chain of certificates\n @param certificates Chain of certificates in PEM format sorted. Root certificate is latest." + }, + "functionSelector": "8f084f19", + "id": 14652, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "validateChainOfCertificates", + "nameLocation": "472:27:36", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14648, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14647, + "mutability": "mutable", + "name": "certificates", + "nameLocation": "526:12:36", + "nodeType": "VariableDeclaration", + "scope": 14652, + "src": "509:29:36", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_calldata_ptr_$dyn_calldata_ptr", + "typeString": "bytes[]" + }, + "typeName": { + "baseType": { + "id": 14645, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "509:5:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "id": 14646, + "nodeType": "ArrayTypeName", + "src": "509:7:36", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes_storage_$dyn_storage_ptr", + "typeString": "bytes[]" + } + }, + "visibility": "internal" + } + ], + "src": "499:45:36" + }, + "returnParameters": { + "id": 14651, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14650, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 14652, + "src": "568:4:36", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 14649, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "568:4:36", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "567:6:36" + }, + "scope": 14661, + "src": "463:111:36", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 14653, + "nodeType": "StructuredDocumentation", + "src": "580:221:36", + "text": " @dev Adds certificate verification to the contract\n @param subjectCertificate Certificate to verify the signature with issuer public key.\n @param issuerCertificate Certificate of the issuer." + }, + "functionSelector": "3d6584a6", + "id": 14660, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "addCertificateVerification", + "nameLocation": "815:26:36", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14658, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14655, + "mutability": "mutable", + "name": "subjectCertificate", + "nameLocation": "866:18:36", + "nodeType": "VariableDeclaration", + "scope": 14660, + "src": "851:33:36", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14654, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "851:5:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14657, + "mutability": "mutable", + "name": "issuerCertificate", + "nameLocation": "909:17:36", + "nodeType": "VariableDeclaration", + "scope": 14660, + "src": "894:32:36", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14656, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "894:5:36", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "841:91:36" + }, + "returnParameters": { + "id": 14659, + "nodeType": "ParameterList", + "parameters": [], + "src": "941:0:36" + }, + "scope": 14661, + "src": "806:136:36", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 14662, + "src": "143:801:36", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "36:909:36" + }, + "id": 36 + }, + "contracts/interfaces/ICredentialCircuitVerifier.sol": { + "ast": { + "absolutePath": "contracts/interfaces/ICredentialCircuitVerifier.sol", + "exportedSymbols": { + "ICredentialCircuitVerifier": [ + 14709 + ] + }, + "id": 14710, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 14663, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "32:23:37" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "ICredentialCircuitVerifier", + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 14664, + "nodeType": "StructuredDocumentation", + "src": "56:227:37", + "text": " @title ICredentialCircuitVerifier\n @notice Interface for verifying credential circuit proofs.\n @dev This interface defines the structure of a credential circuit proof and exposes a function to verify such proofs." + }, + "fullyImplemented": false, + "id": 14709, + "linearizedBaseContracts": [ + 14709 + ], + "name": "ICredentialCircuitVerifier", + "nameLocation": "294:26:37", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "ICredentialCircuitVerifier.CredentialCircuitProof", + "documentation": { + "id": 14665, + "nodeType": "StructuredDocumentation", + "src": "327:517:37", + "text": " @notice Represents a credential circuit proof.\n @dev This structure encapsulates the required proof elements.\n @param a An array of two unsigned integers representing the proof component 'a'.\n @param b A 2x2 array of unsigned integers representing the proof component 'b'.\n @param c An array of two unsigned integers representing the proof component 'c'.\n @param pubSignals An array of three unsigned integers representing the public signals associated with the proof." + }, + "id": 14684, + "members": [ + { + "constant": false, + "id": 14669, + "mutability": "mutable", + "name": "a", + "nameLocation": "900:1:37", + "nodeType": "VariableDeclaration", + "scope": 14684, + "src": "889:12:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 14666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "889:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14668, + "length": { + "hexValue": "32", + "id": 14667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "897:1:37", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "889:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14675, + "mutability": "mutable", + "name": "b", + "nameLocation": "925:1:37", + "nodeType": "VariableDeclaration", + "scope": 14684, + "src": "911:15:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 14670, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "911:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14672, + "length": { + "hexValue": "32", + "id": 14671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "919:1:37", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "911:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "id": 14674, + "length": { + "hexValue": "32", + "id": 14673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "922:1:37", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "911:13:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14679, + "mutability": "mutable", + "name": "c", + "nameLocation": "947:1:37", + "nodeType": "VariableDeclaration", + "scope": 14684, + "src": "936:12:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 14676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "936:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14678, + "length": { + "hexValue": "32", + "id": 14677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "944:1:37", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "936:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14683, + "mutability": "mutable", + "name": "pubSignals", + "nameLocation": "969:10:37", + "nodeType": "VariableDeclaration", + "scope": 14684, + "src": "958:21:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", + "typeString": "uint256[8]" + }, + "typeName": { + "baseType": { + "id": 14680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "958:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14682, + "length": { + "hexValue": "38", + "id": 14681, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "966:1:37", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "nodeType": "ArrayTypeName", + "src": "958:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", + "typeString": "uint256[8]" + } + }, + "visibility": "internal" + } + ], + "name": "CredentialCircuitProof", + "nameLocation": "856:22:37", + "nodeType": "StructDefinition", + "scope": 14709, + "src": "849:137:37", + "visibility": "public" + }, + { + "documentation": { + "id": 14685, + "nodeType": "StructuredDocumentation", + "src": "992:473:37", + "text": " @notice Verifies a given credential circuit proof.\n @dev This function checks the validity of the provided proof parameters.\n @param a The 'a' component of the proof.\n @param b The 'b' component of the proof.\n @param c The 'c' component of the proof.\n @param pubSignals The public signals associated with the proof.\n @return isValid A boolean value indicating whether the provided proof is valid (true) or not (false)." + }, + "functionSelector": "c9219a7a", + "id": 14708, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "verifyProof", + "nameLocation": "1479:11:37", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14689, + "mutability": "mutable", + "name": "a", + "nameLocation": "1520:1:37", + "nodeType": "VariableDeclaration", + "scope": 14708, + "src": "1500:21:37", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 14686, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1500:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14688, + "length": { + "hexValue": "32", + "id": 14687, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1508:1:37", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1500:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14695, + "mutability": "mutable", + "name": "b", + "nameLocation": "1554:1:37", + "nodeType": "VariableDeclaration", + "scope": 14708, + "src": "1531:24:37", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptr", + "typeString": "uint256[2][2]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 14690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1531:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14692, + "length": { + "hexValue": "32", + "id": 14691, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1539:1:37", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1531:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "id": 14694, + "length": { + "hexValue": "32", + "id": 14693, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1542:1:37", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1531:13:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14699, + "mutability": "mutable", + "name": "c", + "nameLocation": "1585:1:37", + "nodeType": "VariableDeclaration", + "scope": 14708, + "src": "1565:21:37", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 14696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1565:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14698, + "length": { + "hexValue": "32", + "id": 14697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1573:1:37", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "1565:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14703, + "mutability": "mutable", + "name": "pubSignals", + "nameLocation": "1616:10:37", + "nodeType": "VariableDeclaration", + "scope": 14708, + "src": "1596:30:37", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8]" + }, + "typeName": { + "baseType": { + "id": 14700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1596:7:37", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14702, + "length": { + "hexValue": "38", + "id": 14701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1604:1:37", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "nodeType": "ArrayTypeName", + "src": "1596:10:37", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", + "typeString": "uint256[8]" + } + }, + "visibility": "internal" + } + ], + "src": "1490:142:37" + }, + "returnParameters": { + "id": 14707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14706, + "mutability": "mutable", + "name": "isValid", + "nameLocation": "1661:7:37", + "nodeType": "VariableDeclaration", + "scope": 14708, + "src": "1656:12:37", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 14705, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1656:4:37", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1655:14:37" + }, + "scope": 14709, + "src": "1470:200:37", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 14710, + "src": "284:1388:37", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "32:1641:37" + }, + "id": 37 + }, + "contracts/verifiers/AnonAadhaarCredentialIssuer.sol": { + "ast": { + "absolutePath": "contracts/verifiers/AnonAadhaarCredentialIssuer.sol", + "exportedSymbols": { + "AnonAadhaarCircuitVerifierUpdated": [ + 14793 + ], + "AnonAadhaarCredentialIssuer": [ + 15972 + ], + "CredentialRevoked": [ + 14787 + ], + "IAnonAadhaarCircuitVerifier": [ + 14553 + ], + "IZKPVerifier": [ + 550 + ], + "IdentityBase": [ + 1327 + ], + "IdentityLib": [ + 2217 + ], + "InvalidAnonAadhaarProof": [ + 14725 + ], + "InvalidExpirationDate": [ + 14741 + ], + "InvalidHashIndex": [ + 14727 + ], + "InvalidHashValue": [ + 14729 + ], + "InvalidIssuerDidHash": [ + 14735 + ], + "InvalidNullifierSeed": [ + 14731 + ], + "InvalidPubKeyHash": [ + 14745 + ], + "InvalidRevocationNonce": [ + 14759 + ], + "InvalidStateContractAddress": [ + 14751 + ], + "InvalidTemplateRoot": [ + 14733 + ], + "InvalidVerifierAddress": [ + 14749 + ], + "IssuerDidHashUpdated": [ + 14773 + ], + "LengthMismatch": [ + 14765 + ], + "NoAnonAadhaarCircuitIdFound": [ + 14769 + ], + "NoVerifierSet": [ + 14723 + ], + "NullifierDoesNotExist": [ + 14747 + ], + "Ownable2StepUpgradeable": [ + 4773 + ], + "ProofExpired": [ + 14743 + ], + "PublicKeyHashAdded": [ + 14781 + ], + "TemplateRootUpdated": [ + 14777 + ], + "UnsupportedQrVersion": [ + 14755 + ] + }, + "id": 15973, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 14711, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "36:23:38" + }, + { + "absolutePath": "@iden3/contracts/lib/IdentityLib.sol", + "file": "@iden3/contracts/lib/IdentityLib.sol", + "id": 14713, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 15973, + "sourceUnit": 2218, + "src": "61:65:38", + "symbolAliases": [ + { + "foreign": { + "id": 14712, + "name": "IdentityLib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2217, + "src": "69:11:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@iden3/contracts/lib/IdentityBase.sol", + "file": "@iden3/contracts/lib/IdentityBase.sol", + "id": 14715, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 15973, + "sourceUnit": 1328, + "src": "127:67:38", + "symbolAliases": [ + { + "foreign": { + "id": 14714, + "name": "IdentityBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1327, + "src": "135:12:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@iden3/contracts/interfaces/IZKPVerifier.sol", + "file": "@iden3/contracts/interfaces/IZKPVerifier.sol", + "id": 14717, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 15973, + "sourceUnit": 551, + "src": "195:74:38", + "symbolAliases": [ + { + "foreign": { + "id": 14716, + "name": "IZKPVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 550, + "src": "203:12:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/IAnonAadhaarCircuitVerifier.sol", + "file": "../interfaces/IAnonAadhaarCircuitVerifier.sol", + "id": 14719, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 15973, + "sourceUnit": 14554, + "src": "270:90:38", + "symbolAliases": [ + { + "foreign": { + "id": 14718, + "name": "IAnonAadhaarCircuitVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14553, + "src": "278:27:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", + "id": 14721, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 15973, + "sourceUnit": 4774, + "src": "361:111:38", + "symbolAliases": [ + { + "foreign": { + "id": 14720, + "name": "Ownable2StepUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4773, + "src": "369:23:38", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "errorSelector": "0ee78d58", + "id": 14723, + "name": "NoVerifierSet", + "nameLocation": "480:13:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14722, + "nodeType": "ParameterList", + "parameters": [], + "src": "493:2:38" + }, + "src": "474:22:38" + }, + { + "errorSelector": "b4b32e6f", + "id": 14725, + "name": "InvalidAnonAadhaarProof", + "nameLocation": "503:23:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14724, + "nodeType": "ParameterList", + "parameters": [], + "src": "526:2:38" + }, + "src": "497:32:38" + }, + { + "errorSelector": "92f182ae", + "id": 14727, + "name": "InvalidHashIndex", + "nameLocation": "536:16:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14726, + "nodeType": "ParameterList", + "parameters": [], + "src": "552:2:38" + }, + "src": "530:25:38" + }, + { + "errorSelector": "9d34ba4f", + "id": 14729, + "name": "InvalidHashValue", + "nameLocation": "562:16:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14728, + "nodeType": "ParameterList", + "parameters": [], + "src": "578:2:38" + }, + "src": "556:25:38" + }, + { + "errorSelector": "d2cee055", + "id": 14731, + "name": "InvalidNullifierSeed", + "nameLocation": "588:20:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14730, + "nodeType": "ParameterList", + "parameters": [], + "src": "608:2:38" + }, + "src": "582:29:38" + }, + { + "errorSelector": "81d60393", + "id": 14733, + "name": "InvalidTemplateRoot", + "nameLocation": "618:19:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14732, + "nodeType": "ParameterList", + "parameters": [], + "src": "637:2:38" + }, + "src": "612:28:38" + }, + { + "errorSelector": "fe0c887b", + "id": 14735, + "name": "InvalidIssuerDidHash", + "nameLocation": "647:20:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14734, + "nodeType": "ParameterList", + "parameters": [], + "src": "667:2:38" + }, + "src": "641:29:38" + }, + { + "errorSelector": "757718f2", + "id": 14741, + "name": "InvalidExpirationDate", + "nameLocation": "677:21:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14737, + "mutability": "mutable", + "name": "expected", + "nameLocation": "707:8:38", + "nodeType": "VariableDeclaration", + "scope": 14741, + "src": "699:16:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14736, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "699:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14739, + "mutability": "mutable", + "name": "provided", + "nameLocation": "725:8:38", + "nodeType": "VariableDeclaration", + "scope": 14741, + "src": "717:16:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14738, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "717:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "698:36:38" + }, + "src": "671:64:38" + }, + { + "errorSelector": "b67a7713", + "id": 14743, + "name": "ProofExpired", + "nameLocation": "742:12:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14742, + "nodeType": "ParameterList", + "parameters": [], + "src": "754:2:38" + }, + "src": "736:21:38" + }, + { + "errorSelector": "ad6c2662", + "id": 14745, + "name": "InvalidPubKeyHash", + "nameLocation": "764:17:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14744, + "nodeType": "ParameterList", + "parameters": [], + "src": "781:2:38" + }, + "src": "758:26:38" + }, + { + "errorSelector": "27522baf", + "id": 14747, + "name": "NullifierDoesNotExist", + "nameLocation": "791:21:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14746, + "nodeType": "ParameterList", + "parameters": [], + "src": "812:2:38" + }, + "src": "785:30:38" + }, + { + "errorSelector": "10c40e8c", + "id": 14749, + "name": "InvalidVerifierAddress", + "nameLocation": "822:22:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14748, + "nodeType": "ParameterList", + "parameters": [], + "src": "844:2:38" + }, + "src": "816:31:38" + }, + { + "errorSelector": "7eb887b3", + "id": 14751, + "name": "InvalidStateContractAddress", + "nameLocation": "854:27:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14750, + "nodeType": "ParameterList", + "parameters": [], + "src": "881:2:38" + }, + "src": "848:36:38" + }, + { + "errorSelector": "dbbaa55f", + "id": 14755, + "name": "UnsupportedQrVersion", + "nameLocation": "891:20:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14753, + "mutability": "mutable", + "name": "qrVersion", + "nameLocation": "920:9:38", + "nodeType": "VariableDeclaration", + "scope": 14755, + "src": "912:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14752, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "912:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "911:19:38" + }, + "src": "885:46:38" + }, + { + "errorSelector": "6ff2d366", + "id": 14759, + "name": "InvalidRevocationNonce", + "nameLocation": "938:22:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14758, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14757, + "mutability": "mutable", + "name": "revocationNonce", + "nameLocation": "968:15:38", + "nodeType": "VariableDeclaration", + "scope": 14759, + "src": "961:22:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 14756, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "961:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "960:24:38" + }, + "src": "932:53:38" + }, + { + "errorSelector": "ab8b67c6", + "id": 14765, + "name": "LengthMismatch", + "nameLocation": "992:14:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14761, + "mutability": "mutable", + "name": "length1", + "nameLocation": "1015:7:38", + "nodeType": "VariableDeclaration", + "scope": 14765, + "src": "1007:15:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1007:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14763, + "mutability": "mutable", + "name": "length2", + "nameLocation": "1032:7:38", + "nodeType": "VariableDeclaration", + "scope": 14765, + "src": "1024:15:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14762, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1024:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1006:34:38" + }, + "src": "986:55:38" + }, + { + "errorSelector": "1523e178", + "id": 14769, + "name": "NoAnonAadhaarCircuitIdFound", + "nameLocation": "1048:27:38", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 14768, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14767, + "mutability": "mutable", + "name": "circuitId", + "nameLocation": "1083:9:38", + "nodeType": "VariableDeclaration", + "scope": 14769, + "src": "1076:16:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 14766, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1076:6:38", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1075:18:38" + }, + "src": "1042:52:38" + }, + { + "anonymous": false, + "eventSelector": "b69b4c35c29def0ac05e4ac2258986b58de5ae03feeea1802c95f4e0b5794cf1", + "id": 14773, + "name": "IssuerDidHashUpdated", + "nameLocation": "1102:20:38", + "nodeType": "EventDefinition", + "parameters": { + "id": 14772, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14771, + "indexed": false, + "mutability": "mutable", + "name": "issuerDidHash", + "nameLocation": "1131:13:38", + "nodeType": "VariableDeclaration", + "scope": 14773, + "src": "1123:21:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14770, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1123:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1122:23:38" + }, + "src": "1096:50:38" + }, + { + "anonymous": false, + "eventSelector": "f007a02ba428e63fa98b65269e70f9a9db847e0a839049a2f31f069282267734", + "id": 14777, + "name": "TemplateRootUpdated", + "nameLocation": "1153:19:38", + "nodeType": "EventDefinition", + "parameters": { + "id": 14776, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14775, + "indexed": false, + "mutability": "mutable", + "name": "templateRoot", + "nameLocation": "1181:12:38", + "nodeType": "VariableDeclaration", + "scope": 14777, + "src": "1173:20:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14774, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1173:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1172:22:38" + }, + "src": "1147:48:38" + }, + { + "anonymous": false, + "eventSelector": "192522987419be1c06ca88238df20a35b84c7a5025bbf1e244fac876d2d320ee", + "id": 14781, + "name": "PublicKeyHashAdded", + "nameLocation": "1202:18:38", + "nodeType": "EventDefinition", + "parameters": { + "id": 14780, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14779, + "indexed": false, + "mutability": "mutable", + "name": "publicKeyHash", + "nameLocation": "1229:13:38", + "nodeType": "VariableDeclaration", + "scope": 14781, + "src": "1221:21:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14778, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1221:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1220:23:38" + }, + "src": "1196:48:38" + }, + { + "anonymous": false, + "eventSelector": "725d312746be14d750d0493aa7960a5aca3c30f98f74b0e07afc8f1a36b355c2", + "id": 14787, + "name": "CredentialRevoked", + "nameLocation": "1251:17:38", + "nodeType": "EventDefinition", + "parameters": { + "id": 14786, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14783, + "indexed": false, + "mutability": "mutable", + "name": "nullifier", + "nameLocation": "1277:9:38", + "nodeType": "VariableDeclaration", + "scope": 14787, + "src": "1269:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1269:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14785, + "indexed": false, + "mutability": "mutable", + "name": "revocationNonce", + "nameLocation": "1295:15:38", + "nodeType": "VariableDeclaration", + "scope": 14787, + "src": "1288:22:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 14784, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1288:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1268:43:38" + }, + "src": "1245:67:38" + }, + { + "anonymous": false, + "eventSelector": "3f04312ecef010d1cb9901bb8602db84b7b52fddcef458e04bd8e83a7fc035a4", + "id": 14793, + "name": "AnonAadhaarCircuitVerifierUpdated", + "nameLocation": "1319:33:38", + "nodeType": "EventDefinition", + "parameters": { + "id": 14792, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14789, + "indexed": false, + "mutability": "mutable", + "name": "circuitId", + "nameLocation": "1360:9:38", + "nodeType": "VariableDeclaration", + "scope": 14793, + "src": "1353:16:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 14788, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1353:6:38", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14791, + "indexed": false, + "mutability": "mutable", + "name": "verifierAddress", + "nameLocation": "1379:15:38", + "nodeType": "VariableDeclaration", + "scope": 14793, + "src": "1371:23:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14790, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1371:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1352:43:38" + }, + "src": "1313:83:38" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 14795, + "name": "IdentityBase", + "nameLocations": [ + "1566:12:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1327, + "src": "1566:12:38" + }, + "id": 14796, + "nodeType": "InheritanceSpecifier", + "src": "1566:12:38" + }, + { + "baseName": { + "id": 14797, + "name": "Ownable2StepUpgradeable", + "nameLocations": [ + "1580:23:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4773, + "src": "1580:23:38" + }, + "id": 14798, + "nodeType": "InheritanceSpecifier", + "src": "1580:23:38" + } + ], + "canonicalName": "AnonAadhaarCredentialIssuer", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 14794, + "nodeType": "StructuredDocumentation", + "src": "1398:127:38", + "text": " @dev Address ownership credential issuer.\n This issuer issues non-merklized credentials in a decentralized manner." + }, + "fullyImplemented": true, + "id": 15972, + "linearizedBaseContracts": [ + 15972, + 4773, + 4968, + 5282, + 5236, + 1327, + 8727, + 8739, + 158, + 94 + ], + "name": "AnonAadhaarCredentialIssuer", + "nameLocation": "1535:27:38", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 14802, + "libraryName": { + "id": 14799, + "name": "IdentityLib", + "nameLocations": [ + "1616:11:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2217, + "src": "1616:11:38" + }, + "nodeType": "UsingForDirective", + "src": "1610:39:38", + "typeName": { + "id": 14801, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14800, + "name": "IdentityLib.Data", + "nameLocations": [ + "1632:11:38", + "1644:4:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "1632:16:38" + }, + "referencedDeclaration": 1371, + "src": "1632:16:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + } + }, + { + "constant": true, + "functionSelector": "ffa1ad74", + "id": 14805, + "mutability": "constant", + "name": "VERSION", + "nameLocation": "1678:7:38", + "nodeType": "VariableDeclaration", + "scope": 15972, + "src": "1655:40:38", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 14803, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1655:6:38", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "312e302e33", + "id": 14804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1688:7:38", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ff079ec60e41e58015c3d06abca8c1edb1b2c61945fed5e35644385a142eb2a9", + "typeString": "literal_string \"1.0.3\"" + }, + "value": "1.0.3" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 14808, + "mutability": "constant", + "name": "defaultCircuitId", + "nameLocation": "1725:16:38", + "nodeType": "VariableDeclaration", + "scope": 15972, + "src": "1701:60:38", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 14806, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1701:6:38", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "616e6f6e5f616164686161725f7631", + "id": 14807, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1744:17:38", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2e5073a68699ac264b15227fc7182ce939f8cb038f5607144606aa0c2d899ff9", + "typeString": "literal_string \"anon_aadhaar_v1\"" + }, + "value": "anon_aadhaar_v1" + }, + "visibility": "private" + }, + { + "canonicalName": "AnonAadhaarCredentialIssuer.StateInfo", + "id": 14813, + "members": [ + { + "constant": false, + "id": 14810, + "mutability": "mutable", + "name": "stateAddress", + "nameLocation": "1803:12:38", + "nodeType": "VariableDeclaration", + "scope": 14813, + "src": "1795:20:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14809, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1795:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14812, + "mutability": "mutable", + "name": "idType", + "nameLocation": "1832:6:38", + "nodeType": "VariableDeclaration", + "scope": 14813, + "src": "1825:13:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "typeName": { + "id": 14811, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "1825:6:38", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "visibility": "internal" + } + ], + "name": "StateInfo", + "nameLocation": "1775:9:38", + "nodeType": "StructDefinition", + "scope": 15972, + "src": "1768:77:38", + "visibility": "public" + }, + { + "canonicalName": "AnonAadhaarCredentialIssuer.CredentialProof", + "id": 14818, + "members": [ + { + "constant": false, + "id": 14815, + "mutability": "mutable", + "name": "circuitId", + "nameLocation": "1895:9:38", + "nodeType": "VariableDeclaration", + "scope": 14818, + "src": "1888:16:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 14814, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1888:6:38", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14817, + "mutability": "mutable", + "name": "proof", + "nameLocation": "1920:5:38", + "nodeType": "VariableDeclaration", + "scope": 14818, + "src": "1914:11:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 14816, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1914:5:38", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "CredentialProof", + "nameLocation": "1862:15:38", + "nodeType": "StructDefinition", + "scope": 15972, + "src": "1855:77:38", + "visibility": "public" + }, + { + "canonicalName": "AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage", + "documentation": { + "id": 14819, + "nodeType": "StructuredDocumentation", + "src": "1938:82:38", + "text": "@custom:storage-location erc7201:polygonid.storage.AnonAadhaarCredentialIssuer" + }, + "id": 14844, + "members": [ + { + "constant": false, + "id": 14821, + "mutability": "mutable", + "name": "nullifierSeed", + "nameLocation": "2085:13:38", + "nodeType": "VariableDeclaration", + "scope": 14844, + "src": "2077:21:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2077:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14823, + "mutability": "mutable", + "name": "expirationTime", + "nameLocation": "2116:14:38", + "nodeType": "VariableDeclaration", + "scope": 14844, + "src": "2108:22:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2108:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14825, + "mutability": "mutable", + "name": "templateRoot", + "nameLocation": "2148:12:38", + "nodeType": "VariableDeclaration", + "scope": 14844, + "src": "2140:20:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14824, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2140:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14827, + "mutability": "mutable", + "name": "issuerDidHash", + "nameLocation": "2178:13:38", + "nodeType": "VariableDeclaration", + "scope": 14844, + "src": "2170:21:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14826, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2170:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14831, + "mutability": "mutable", + "name": "_anonAadhaarVerifiers", + "nameLocation": "2247:21:38", + "nodeType": "VariableDeclaration", + "scope": 14844, + "src": "2201:67:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", + "typeString": "mapping(string => address)" + }, + "typeName": { + "id": 14830, + "keyName": "circuitId", + "keyNameLocation": "2216:9:38", + "keyType": { + "id": 14828, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2209:6:38", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "nodeType": "Mapping", + "src": "2201:45:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", + "typeString": "mapping(string => address)" + }, + "valueName": "verifier", + "valueNameLocation": "2237:8:38", + "valueType": { + "id": 14829, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2229:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14835, + "mutability": "mutable", + "name": "publicKeysHashes", + "nameLocation": "2303:16:38", + "nodeType": "VariableDeclaration", + "scope": 14844, + "src": "2278:41:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "typeName": { + "id": 14834, + "keyName": "", + "keyNameLocation": "-1:-1:-1", + "keyType": { + "id": 14832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2286:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2278:24:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 14833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2297:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14839, + "mutability": "mutable", + "name": "_nullifiersToRevocationNonce", + "nameLocation": "2382:28:38", + "nodeType": "VariableDeclaration", + "scope": 14844, + "src": "2329:81:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$", + "typeString": "mapping(uint256 => uint64)" + }, + "typeName": { + "id": 14838, + "keyName": "nullifier", + "keyNameLocation": "2345:9:38", + "keyType": { + "id": 14836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2337:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2329:52:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$", + "typeString": "mapping(uint256 => uint64)" + }, + "valueName": "revocationNonce", + "valueNameLocation": "2365:15:38", + "valueType": { + "id": 14837, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "2358:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14843, + "mutability": "mutable", + "name": "qrVersions", + "nameLocation": "2455:10:38", + "nodeType": "VariableDeclaration", + "scope": 14844, + "src": "2420:45:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "typeName": { + "id": 14842, + "keyName": "qrVersion", + "keyNameLocation": "2436:9:38", + "keyType": { + "id": 14840, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2428:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2420:34:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "valueName": "", + "valueNameLocation": "-1:-1:-1", + "valueType": { + "id": 14841, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2449:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "internal" + } + ], + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocation": "2032:34:38", + "nodeType": "StructDefinition", + "scope": 15972, + "src": "2025:447:38", + "visibility": "public" + }, + { + "constant": true, + "id": 14847, + "mutability": "constant", + "name": "AnonAadhaarCredentialIssuerStorageLocation", + "nameLocation": "2681:42:38", + "nodeType": "VariableDeclaration", + "scope": 15972, + "src": "2656:144:38", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 14845, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2656:7:38", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307834353034353637356633656665326563306363666164386161346336373831373964336532306239356133346164396439383166616236663935626131653030", + "id": 14846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2734:66:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_31217250670693648802655756854361221883671669064849743043784754571967488204288_by_1", + "typeString": "int_const 3121...(69 digits omitted)...4288" + }, + "value": "0x45045675f3efe2ec0ccfad8aa4c678179d3e20b95a34ad9d981fab6f95ba1e00" + }, + "visibility": "private" + }, + { + "body": { + "id": 14854, + "nodeType": "Block", + "src": "2957:105:38", + "statements": [ + { + "AST": { + "nativeSrc": "2976:80:38", + "nodeType": "YulBlock", + "src": "2976:80:38", + "statements": [ + { + "nativeSrc": "2990:56:38", + "nodeType": "YulAssignment", + "src": "2990:56:38", + "value": { + "name": "AnonAadhaarCredentialIssuerStorageLocation", + "nativeSrc": "3004:42:38", + "nodeType": "YulIdentifier", + "src": "3004:42:38" + }, + "variableNames": [ + { + "name": "store.slot", + "nativeSrc": "2990:10:38", + "nodeType": "YulIdentifier", + "src": "2990:10:38" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 14847, + "isOffset": false, + "isSlot": false, + "src": "3004:42:38", + "valueSize": 1 + }, + { + "declaration": 14851, + "isOffset": false, + "isSlot": true, + "src": "2990:10:38", + "suffix": "slot", + "valueSize": 1 + } + ], + "id": 14853, + "nodeType": "InlineAssembly", + "src": "2967:89:38" + } + ] + }, + "id": 14855, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nameLocation": "2816:38:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14848, + "nodeType": "ParameterList", + "parameters": [], + "src": "2854:2:38" + }, + "returnParameters": { + "id": 14852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14851, + "mutability": "mutable", + "name": "store", + "nameLocation": "2946:5:38", + "nodeType": "VariableDeclaration", + "scope": 14855, + "src": "2903:48:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 14850, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14849, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "2903:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "2903:34:38" + }, + "referencedDeclaration": 14844, + "src": "2903:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "src": "2902:50:38" + }, + "scope": 15972, + "src": "2807:255:38", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 14862, + "nodeType": "Block", + "src": "3228:39:38", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14859, + "name": "_disableInitializers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5190, + "src": "3238:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 14860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3238:22:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14861, + "nodeType": "ExpressionStatement", + "src": "3238:22:38" + } + ] + }, + "documentation": { + "id": 14856, + "nodeType": "StructuredDocumentation", + "src": "3068:141:38", + "text": " @notice Constructor that disables initializers.\n @dev Prevents direct initialization of the implementation contract." + }, + "id": 14863, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14857, + "nodeType": "ParameterList", + "parameters": [], + "src": "3225:2:38" + }, + "returnParameters": { + "id": 14858, + "nodeType": "ParameterList", + "parameters": [], + "src": "3228:0:38" + }, + "scope": 15972, + "src": "3214:53:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 14961, + "nodeType": "Block", + "src": "3599:706:38", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 14892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 14887, + "name": "anonAadhaarVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14877, + "src": "3613:19:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 14890, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3644:1:38", + "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" + } + ], + "id": 14889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3636:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 14888, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3636:7:38", + "typeDescriptions": {} + } + }, + "id": 14891, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3636:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3613:33:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 14896, + "nodeType": "IfStatement", + "src": "3609:70:38", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14893, + "name": "InvalidVerifierAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14749, + "src": "3655:22:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 14894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3655:24:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 14895, + "nodeType": "RevertStatement", + "src": "3648:31:38" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 14903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 14897, + "name": "stateInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14880, + "src": "3693:9:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$14813_calldata_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.StateInfo calldata" + } + }, + "id": 14898, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3703:12:38", + "memberName": "stateAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 14810, + "src": "3693:22:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 14901, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3727:1:38", + "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" + } + ], + "id": 14900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3719:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 14899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3719:7:38", + "typeDescriptions": {} + } + }, + "id": 14902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3719:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "3693:36:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 14907, + "nodeType": "IfStatement", + "src": "3689:78:38", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14904, + "name": "InvalidStateContractAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14751, + "src": "3738:27:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 14905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3738:29:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 14906, + "nodeType": "RevertStatement", + "src": "3731:36:38" + } + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 14911, + "name": "stateInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14880, + "src": "3795:9:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$14813_calldata_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.StateInfo calldata" + } + }, + "id": 14912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3805:12:38", + "memberName": "stateAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 14810, + "src": "3795:22:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 14913, + "name": "stateInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14880, + "src": "3819:9:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$14813_calldata_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.StateInfo calldata" + } + }, + "id": 14914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3829:6:38", + "memberName": "idType", + "nodeType": "MemberAccess", + "referencedDeclaration": 14812, + "src": "3819:16:38", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + ], + "expression": { + "id": 14908, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "3778:5:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_AnonAadhaarCredentialIssuer_$15972_$", + "typeString": "type(contract super AnonAadhaarCredentialIssuer)" + } + }, + "id": 14910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3784:10:38", + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 887, + "src": "3778:16:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes2_$returns$__$", + "typeString": "function (address,bytes2)" + } + }, + "id": 14915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3778:58:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14916, + "nodeType": "ExpressionStatement", + "src": "3778:58:38" + }, + { + "expression": { + "arguments": [ + { + "id": 14918, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14882, + "src": "3861:5:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 14917, + "name": "__Ownable_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4828, + "src": "3846:14:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 14919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3846:21:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14920, + "nodeType": "ExpressionStatement", + "src": "3846:21:38" + }, + { + "assignments": [ + 14923 + ], + "declarations": [ + { + "constant": false, + "id": 14923, + "mutability": "mutable", + "name": "$", + "nameLocation": "3921:1:38", + "nodeType": "VariableDeclaration", + "scope": 14961, + "src": "3878:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 14922, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14921, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "3878:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "3878:34:38" + }, + "referencedDeclaration": 14844, + "src": "3878:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 14926, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14924, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "3925:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 14925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3925:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3878:87:38" + }, + { + "expression": { + "id": 14931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 14927, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14923, + "src": "3975:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 14929, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "3977:13:38", + "memberName": "nullifierSeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 14821, + "src": "3975:15:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 14930, + "name": "nullifierSeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14865, + "src": "3993:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3975:31:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14932, + "nodeType": "ExpressionStatement", + "src": "3975:31:38" + }, + { + "expression": { + "id": 14937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 14933, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14923, + "src": "4016:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 14935, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4018:14:38", + "memberName": "expirationTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 14823, + "src": "4016:16:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 14936, + "name": "expirationTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14873, + "src": "4035:14:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4016:33:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14938, + "nodeType": "ExpressionStatement", + "src": "4016:33:38" + }, + { + "expression": { + "id": 14943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 14939, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14923, + "src": "4059:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 14941, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4061:12:38", + "memberName": "templateRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 14825, + "src": "4059:14:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 14942, + "name": "templateRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14875, + "src": "4076:12:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4059:29:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14944, + "nodeType": "ExpressionStatement", + "src": "4059:29:38" + }, + { + "expression": { + "id": 14951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 14945, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14923, + "src": "4142:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 14948, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4144:21:38", + "memberName": "_anonAadhaarVerifiers", + "nodeType": "MemberAccess", + "referencedDeclaration": 14831, + "src": "4142:23:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", + "typeString": "mapping(string memory => address)" + } + }, + "id": 14949, + "indexExpression": { + "id": 14947, + "name": "defaultCircuitId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14808, + "src": "4166:16:38", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4142:41:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 14950, + "name": "anonAadhaarVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14877, + "src": "4186:19:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4142:63:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 14952, + "nodeType": "ExpressionStatement", + "src": "4142:63:38" + }, + { + "expression": { + "arguments": [ + { + "id": 14954, + "name": "publicKeysHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14868, + "src": "4241:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + ], + "id": 14953, + "name": "_addPublicKeyHashesBatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15566, + "src": "4216:24:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (uint256[] calldata)" + } + }, + "id": 14955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4216:42:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14956, + "nodeType": "ExpressionStatement", + "src": "4216:42:38" + }, + { + "expression": { + "arguments": [ + { + "id": 14958, + "name": "qrVersions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14871, + "src": "4287:10:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + ], + "id": 14957, + "name": "_addQrVersionBatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15971, + "src": "4268:18:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (uint256[] calldata)" + } + }, + "id": 14959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4268:30:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 14960, + "nodeType": "ExpressionStatement", + "src": "4268:30:38" + } + ] + }, + "functionSelector": "345f83ff", + "id": 14962, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 14885, + "kind": "modifierInvocation", + "modifierName": { + "id": 14884, + "name": "initializer", + "nameLocations": [ + "3587:11:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5076, + "src": "3587:11:38" + }, + "nodeType": "ModifierInvocation", + "src": "3587:11:38" + } + ], + "name": "initializeIssuer", + "nameLocation": "3282:16:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14883, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14865, + "mutability": "mutable", + "name": "nullifierSeed", + "nameLocation": "3316:13:38", + "nodeType": "VariableDeclaration", + "scope": 14962, + "src": "3308:21:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14864, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3308:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14868, + "mutability": "mutable", + "name": "publicKeysHashes", + "nameLocation": "3358:16:38", + "nodeType": "VariableDeclaration", + "scope": 14962, + "src": "3339:35:38", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 14866, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3339:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14867, + "nodeType": "ArrayTypeName", + "src": "3339:9:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14871, + "mutability": "mutable", + "name": "qrVersions", + "nameLocation": "3403:10:38", + "nodeType": "VariableDeclaration", + "scope": 14962, + "src": "3384:29:38", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 14869, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3384:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14870, + "nodeType": "ArrayTypeName", + "src": "3384:9:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14873, + "mutability": "mutable", + "name": "expirationTime", + "nameLocation": "3431:14:38", + "nodeType": "VariableDeclaration", + "scope": 14962, + "src": "3423:22:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14872, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3423:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14875, + "mutability": "mutable", + "name": "templateRoot", + "nameLocation": "3463:12:38", + "nodeType": "VariableDeclaration", + "scope": 14962, + "src": "3455:20:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14874, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3455:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14877, + "mutability": "mutable", + "name": "anonAadhaarVerifier", + "nameLocation": "3493:19:38", + "nodeType": "VariableDeclaration", + "scope": 14962, + "src": "3485:27:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14876, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3485:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14880, + "mutability": "mutable", + "name": "stateInfo", + "nameLocation": "3541:9:38", + "nodeType": "VariableDeclaration", + "scope": 14962, + "src": "3522:28:38", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$14813_calldata_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.StateInfo" + }, + "typeName": { + "id": 14879, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14878, + "name": "StateInfo", + "nameLocations": [ + "3522:9:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14813, + "src": "3522:9:38" + }, + "referencedDeclaration": 14813, + "src": "3522:9:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$14813_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.StateInfo" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 14882, + "mutability": "mutable", + "name": "owner", + "nameLocation": "3568:5:38", + "nodeType": "VariableDeclaration", + "scope": 14962, + "src": "3560:13:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 14881, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3560:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3298:281:38" + }, + "returnParameters": { + "id": 14886, + "nodeType": "ParameterList", + "parameters": [], + "src": "3599:0:38" + }, + "scope": 15972, + "src": "3273:1032:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 14981, + "nodeType": "Block", + "src": "4379:145:38", + "statements": [ + { + "assignments": [ + 14971 + ], + "declarations": [ + { + "constant": false, + "id": 14971, + "mutability": "mutable", + "name": "$", + "nameLocation": "4432:1:38", + "nodeType": "VariableDeclaration", + "scope": 14981, + "src": "4389:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 14970, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14969, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "4389:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "4389:34:38" + }, + "referencedDeclaration": 14844, + "src": "4389:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 14974, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14972, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "4436:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 14973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4436:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4389:87:38" + }, + { + "expression": { + "id": 14979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 14975, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14971, + "src": "4486:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 14977, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4488:13:38", + "memberName": "nullifierSeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 14821, + "src": "4486:15:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 14978, + "name": "nullifierSeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14964, + "src": "4504:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4486:31:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 14980, + "nodeType": "ExpressionStatement", + "src": "4486:31:38" + } + ] + }, + "functionSelector": "13364fc8", + "id": 14982, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 14967, + "kind": "modifierInvocation", + "modifierName": { + "id": 14966, + "name": "onlyOwner", + "nameLocations": [ + "4369:9:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "4369:9:38" + }, + "nodeType": "ModifierInvocation", + "src": "4369:9:38" + } + ], + "name": "setNullifierSeed", + "nameLocation": "4320:16:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14965, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14964, + "mutability": "mutable", + "name": "nullifierSeed", + "nameLocation": "4345:13:38", + "nodeType": "VariableDeclaration", + "scope": 14982, + "src": "4337:21:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4337:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4336:23:38" + }, + "returnParameters": { + "id": 14968, + "nodeType": "ParameterList", + "parameters": [], + "src": "4379:0:38" + }, + "scope": 15972, + "src": "4311:213:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 15006, + "nodeType": "Block", + "src": "4709:195:38", + "statements": [ + { + "assignments": [ + 14992 + ], + "declarations": [ + { + "constant": false, + "id": 14992, + "mutability": "mutable", + "name": "$", + "nameLocation": "4762:1:38", + "nodeType": "VariableDeclaration", + "scope": 15006, + "src": "4719:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 14991, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 14990, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "4719:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "4719:34:38" + }, + "referencedDeclaration": 14844, + "src": "4719:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 14995, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 14993, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "4766:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 14994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4766:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4719:87:38" + }, + { + "expression": { + "id": 15000, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 14996, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14992, + "src": "4816:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 14998, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "4818:13:38", + "memberName": "issuerDidHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 14827, + "src": "4816:15:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 14999, + "name": "issuerDidHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14985, + "src": "4834:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4816:31:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15001, + "nodeType": "ExpressionStatement", + "src": "4816:31:38" + }, + { + "eventCall": { + "arguments": [ + { + "id": 15003, + "name": "issuerDidHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14985, + "src": "4883:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15002, + "name": "IssuerDidHashUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14773, + "src": "4862:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 15004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4862:35:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15005, + "nodeType": "EmitStatement", + "src": "4857:40:38" + } + ] + }, + "documentation": { + "id": 14983, + "nodeType": "StructuredDocumentation", + "src": "4530:108:38", + "text": " @notice Updates the issuer DID hash.\n @param issuerDidHash The new issuer DID hash." + }, + "functionSelector": "4c240f34", + "id": 15007, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 14988, + "kind": "modifierInvocation", + "modifierName": { + "id": 14987, + "name": "onlyOwner", + "nameLocations": [ + "4699:9:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "4699:9:38" + }, + "nodeType": "ModifierInvocation", + "src": "4699:9:38" + } + ], + "name": "setIssuerDidHash", + "nameLocation": "4652:16:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 14986, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 14985, + "mutability": "mutable", + "name": "issuerDidHash", + "nameLocation": "4677:13:38", + "nodeType": "VariableDeclaration", + "scope": 15007, + "src": "4669:21:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 14984, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4669:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4668:23:38" + }, + "returnParameters": { + "id": 14989, + "nodeType": "ParameterList", + "parameters": [], + "src": "4709:0:38" + }, + "scope": 15972, + "src": "4643:261:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 15027, + "nodeType": "Block", + "src": "4983:167:38", + "statements": [ + { + "assignments": [ + 15016 + ], + "declarations": [ + { + "constant": false, + "id": 15016, + "mutability": "mutable", + "name": "$", + "nameLocation": "5036:1:38", + "nodeType": "VariableDeclaration", + "scope": 15027, + "src": "4993:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 15015, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15014, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "4993:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "4993:34:38" + }, + "referencedDeclaration": 14844, + "src": "4993:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 15019, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15017, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "5040:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15018, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5040:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4993:87:38" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 15025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 15020, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15016, + "src": "5097:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15021, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5099:28:38", + "memberName": "_nullifiersToRevocationNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 14839, + "src": "5097:30:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$", + "typeString": "mapping(uint256 => uint64)" + } + }, + "id": 15023, + "indexExpression": { + "id": 15022, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15009, + "src": "5128:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5097:41:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 15024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5142:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5097:46:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 15013, + "id": 15026, + "nodeType": "Return", + "src": "5090:53:38" + } + ] + }, + "functionSelector": "2afab62f", + "id": 15028, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "nullifierExists", + "nameLocation": "4919:15:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15010, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15009, + "mutability": "mutable", + "name": "nullifier", + "nameLocation": "4943:9:38", + "nodeType": "VariableDeclaration", + "scope": 15028, + "src": "4935:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4935:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4934:19:38" + }, + "returnParameters": { + "id": 15013, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15012, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15028, + "src": "4977:4:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 15011, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4977:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4976:6:38" + }, + "scope": 15972, + "src": "4910:240:38", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 15052, + "nodeType": "Block", + "src": "5328:191:38", + "statements": [ + { + "assignments": [ + 15038 + ], + "declarations": [ + { + "constant": false, + "id": 15038, + "mutability": "mutable", + "name": "$", + "nameLocation": "5381:1:38", + "nodeType": "VariableDeclaration", + "scope": 15052, + "src": "5338:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 15037, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15036, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "5338:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "5338:34:38" + }, + "referencedDeclaration": 14844, + "src": "5338:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 15041, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15039, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "5385:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15040, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5385:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5338:87:38" + }, + { + "expression": { + "id": 15046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 15042, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15038, + "src": "5435:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15044, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "5437:12:38", + "memberName": "templateRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 14825, + "src": "5435:14:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 15045, + "name": "templateRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15031, + "src": "5452:12:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5435:29:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15047, + "nodeType": "ExpressionStatement", + "src": "5435:29:38" + }, + { + "eventCall": { + "arguments": [ + { + "id": 15049, + "name": "templateRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15031, + "src": "5499:12:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15048, + "name": "TemplateRootUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14777, + "src": "5479:19:38", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 15050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5479:33:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15051, + "nodeType": "EmitStatement", + "src": "5474:38:38" + } + ] + }, + "documentation": { + "id": 15029, + "nodeType": "StructuredDocumentation", + "src": "5156:103:38", + "text": " @notice Updates the template root.\n @param templateRoot The new template root." + }, + "functionSelector": "b354c2d8", + "id": 15053, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 15034, + "kind": "modifierInvocation", + "modifierName": { + "id": 15033, + "name": "onlyOwner", + "nameLocations": [ + "5318:9:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "5318:9:38" + }, + "nodeType": "ModifierInvocation", + "src": "5318:9:38" + } + ], + "name": "setTemplateRoot", + "nameLocation": "5273:15:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15032, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15031, + "mutability": "mutable", + "name": "templateRoot", + "nameLocation": "5297:12:38", + "nodeType": "VariableDeclaration", + "scope": 15053, + "src": "5289:20:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15030, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5289:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5288:22:38" + }, + "returnParameters": { + "id": 15035, + "nodeType": "ParameterList", + "parameters": [], + "src": "5328:0:38" + }, + "scope": 15972, + "src": "5264:255:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 15098, + "nodeType": "Block", + "src": "5706:370:38", + "statements": [ + { + "assignments": [ + 15063 + ], + "declarations": [ + { + "constant": false, + "id": 15063, + "mutability": "mutable", + "name": "$", + "nameLocation": "5759:1:38", + "nodeType": "VariableDeclaration", + "scope": 15098, + "src": "5716:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 15062, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15061, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "5716:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "5716:34:38" + }, + "referencedDeclaration": 14844, + "src": "5716:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 15066, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15064, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "5763:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5763:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5716:87:38" + }, + { + "assignments": [ + 15068 + ], + "declarations": [ + { + "constant": false, + "id": 15068, + "mutability": "mutable", + "name": "nonce", + "nameLocation": "5820:5:38", + "nodeType": "VariableDeclaration", + "scope": 15098, + "src": "5813:12:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 15067, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "5813:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 15073, + "initialValue": { + "baseExpression": { + "expression": { + "id": 15069, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15063, + "src": "5828:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15070, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5830:28:38", + "memberName": "_nullifiersToRevocationNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 14839, + "src": "5828:30:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$", + "typeString": "mapping(uint256 => uint64)" + } + }, + "id": 15072, + "indexExpression": { + "id": 15071, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15056, + "src": "5859:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5828:41:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5813:56:38" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 15076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15074, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15068, + "src": "5883:5:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 15075, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5892:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5883:10:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15080, + "nodeType": "IfStatement", + "src": "5879:46:38", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15077, + "name": "NullifierDoesNotExist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14747, + "src": "5902:21:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 15078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5902:23:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15079, + "nodeType": "RevertStatement", + "src": "5895:30:38" + } + }, + { + "expression": { + "arguments": [ + { + "id": 15082, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15068, + "src": "5958:5:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 15081, + "name": "_revokeClaimAndTransit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15524, + "src": "5935:22:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 15083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5935:29:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15084, + "nodeType": "ExpressionStatement", + "src": "5935:29:38" + }, + { + "expression": { + "id": 15091, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 15085, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15063, + "src": "5974:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15088, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5976:28:38", + "memberName": "_nullifiersToRevocationNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 14839, + "src": "5974:30:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$", + "typeString": "mapping(uint256 => uint64)" + } + }, + "id": 15089, + "indexExpression": { + "id": 15087, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15056, + "src": "6005:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5974:41:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 15090, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6018:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "5974:45:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 15092, + "nodeType": "ExpressionStatement", + "src": "5974:45:38" + }, + { + "eventCall": { + "arguments": [ + { + "id": 15094, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15056, + "src": "6052:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 15095, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15068, + "src": "6063:5:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 15093, + "name": "CredentialRevoked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14787, + "src": "6034:17:38", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint64_$returns$__$", + "typeString": "function (uint256,uint64)" + } + }, + "id": 15096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6034:35:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15097, + "nodeType": "EmitStatement", + "src": "6029:40:38" + } + ] + }, + "documentation": { + "id": 15054, + "nodeType": "StructuredDocumentation", + "src": "5525:112:38", + "text": " @notice Revoke credential and remove nullifier.\n @param nullifier credential nullifier." + }, + "functionSelector": "1b87278d", + "id": 15099, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 15059, + "kind": "modifierInvocation", + "modifierName": { + "id": 15058, + "name": "onlyOwner", + "nameLocations": [ + "5696:9:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "5696:9:38" + }, + "nodeType": "ModifierInvocation", + "src": "5696:9:38" + } + ], + "name": "revokeCredential", + "nameLocation": "5651:16:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15057, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15056, + "mutability": "mutable", + "name": "nullifier", + "nameLocation": "5676:9:38", + "nodeType": "VariableDeclaration", + "scope": 15099, + "src": "5668:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15055, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5668:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5667:19:38" + }, + "returnParameters": { + "id": 15060, + "nodeType": "ParameterList", + "parameters": [], + "src": "5706:0:38" + }, + "scope": 15972, + "src": "5642:434:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 15125, + "nodeType": "Block", + "src": "6259:202:38", + "statements": [ + { + "assignments": [ + 15109 + ], + "declarations": [ + { + "constant": false, + "id": 15109, + "mutability": "mutable", + "name": "$", + "nameLocation": "6312:1:38", + "nodeType": "VariableDeclaration", + "scope": 15125, + "src": "6269:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 15108, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15107, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "6269:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "6269:34:38" + }, + "referencedDeclaration": 14844, + "src": "6269:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 15112, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15110, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "6316:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6316:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6269:87:38" + }, + { + "expression": { + "id": 15119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 15113, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15109, + "src": "6366:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15116, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6368:16:38", + "memberName": "publicKeysHashes", + "nodeType": "MemberAccess", + "referencedDeclaration": 14835, + "src": "6366:18:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 15117, + "indexExpression": { + "id": 15115, + "name": "publicKeyHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15102, + "src": "6385:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6366:33:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 15118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6402:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "6366:40:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15120, + "nodeType": "ExpressionStatement", + "src": "6366:40:38" + }, + { + "eventCall": { + "arguments": [ + { + "id": 15122, + "name": "publicKeyHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15102, + "src": "6440:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15121, + "name": "PublicKeyHashAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14781, + "src": "6421:18:38", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 15123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6421:33:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15124, + "nodeType": "EmitStatement", + "src": "6416:38:38" + } + ] + }, + "documentation": { + "id": 15100, + "nodeType": "StructuredDocumentation", + "src": "6082:106:38", + "text": " @notice Adds a public key hash.\n @param publicKeyHash The public key hash to add." + }, + "functionSelector": "035dfdfe", + "id": 15126, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 15105, + "kind": "modifierInvocation", + "modifierName": { + "id": 15104, + "name": "onlyOwner", + "nameLocations": [ + "6249:9:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "6249:9:38" + }, + "nodeType": "ModifierInvocation", + "src": "6249:9:38" + } + ], + "name": "addPublicKeyHash", + "nameLocation": "6202:16:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15102, + "mutability": "mutable", + "name": "publicKeyHash", + "nameLocation": "6227:13:38", + "nodeType": "VariableDeclaration", + "scope": 15126, + "src": "6219:21:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15101, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6219:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6218:23:38" + }, + "returnParameters": { + "id": 15106, + "nodeType": "ParameterList", + "parameters": [], + "src": "6259:0:38" + }, + "scope": 15972, + "src": "6193:268:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 15139, + "nodeType": "Block", + "src": "6699:59:38", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 15136, + "name": "publicKeysHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15130, + "src": "6734:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + ], + "id": 15135, + "name": "_addPublicKeyHashesBatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15566, + "src": "6709:24:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (uint256[] calldata)" + } + }, + "id": 15137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6709:42:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15138, + "nodeType": "ExpressionStatement", + "src": "6709:42:38" + } + ] + }, + "documentation": { + "id": 15127, + "nodeType": "StructuredDocumentation", + "src": "6467:140:38", + "text": " @notice Adds multiple public key hashes in a batch.\n @param publicKeysHashes The array of public key hashes to add." + }, + "functionSelector": "552c9b7e", + "id": 15140, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 15133, + "kind": "modifierInvocation", + "modifierName": { + "id": 15132, + "name": "onlyOwner", + "nameLocations": [ + "6689:9:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "6689:9:38" + }, + "nodeType": "ModifierInvocation", + "src": "6689:9:38" + } + ], + "name": "addPublicKeyHashesBatch", + "nameLocation": "6621:23:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15130, + "mutability": "mutable", + "name": "publicKeysHashes", + "nameLocation": "6664:16:38", + "nodeType": "VariableDeclaration", + "scope": 15140, + "src": "6645:35:38", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 15128, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6645:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15129, + "nodeType": "ArrayTypeName", + "src": "6645:9:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "6644:37:38" + }, + "returnParameters": { + "id": 15134, + "nodeType": "ParameterList", + "parameters": [], + "src": "6699:0:38" + }, + "scope": 15972, + "src": "6612:146:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 15172, + "nodeType": "Block", + "src": "6950:255:38", + "statements": [ + { + "assignments": [ + 15150 + ], + "declarations": [ + { + "constant": false, + "id": 15150, + "mutability": "mutable", + "name": "$", + "nameLocation": "7003:1:38", + "nodeType": "VariableDeclaration", + "scope": 15172, + "src": "6960:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 15149, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15148, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "6960:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "6960:34:38" + }, + "referencedDeclaration": 14844, + "src": "6960:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 15153, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15151, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "7007:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7007:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6960:87:38" + }, + { + "condition": { + "id": 15158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7061:34:38", + "subExpression": { + "baseExpression": { + "expression": { + "id": 15154, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15150, + "src": "7062:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15155, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7064:16:38", + "memberName": "publicKeysHashes", + "nodeType": "MemberAccess", + "referencedDeclaration": 14835, + "src": "7062:18:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 15157, + "indexExpression": { + "id": 15156, + "name": "publicKeyHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15143, + "src": "7081:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7062:33:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15163, + "nodeType": "IfStatement", + "src": "7057:91:38", + "trueBody": { + "id": 15162, + "nodeType": "Block", + "src": "7097:51:38", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15159, + "name": "InvalidPubKeyHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14745, + "src": "7118:17:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 15160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7118:19:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15161, + "nodeType": "RevertStatement", + "src": "7111:26:38" + } + ] + } + }, + { + "expression": { + "id": 15170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 15164, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15150, + "src": "7157:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15167, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7159:16:38", + "memberName": "publicKeysHashes", + "nodeType": "MemberAccess", + "referencedDeclaration": 14835, + "src": "7157:18:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 15168, + "indexExpression": { + "id": 15166, + "name": "publicKeyHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15143, + "src": "7176:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7157:33:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 15169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7193:5:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "7157:41:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15171, + "nodeType": "ExpressionStatement", + "src": "7157:41:38" + } + ] + }, + "documentation": { + "id": 15141, + "nodeType": "StructuredDocumentation", + "src": "6764:112:38", + "text": " @notice Removes a public key hash.\n @param publicKeyHash The public key hash to remove." + }, + "functionSelector": "f221b845", + "id": 15173, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 15146, + "kind": "modifierInvocation", + "modifierName": { + "id": 15145, + "name": "onlyOwner", + "nameLocations": [ + "6940:9:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "6940:9:38" + }, + "nodeType": "ModifierInvocation", + "src": "6940:9:38" + } + ], + "name": "removePublicKeyHash", + "nameLocation": "6890:19:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15143, + "mutability": "mutable", + "name": "publicKeyHash", + "nameLocation": "6918:13:38", + "nodeType": "VariableDeclaration", + "scope": 15173, + "src": "6910:21:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15142, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6910:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6909:23:38" + }, + "returnParameters": { + "id": 15147, + "nodeType": "ParameterList", + "parameters": [], + "src": "6950:0:38" + }, + "scope": 15972, + "src": "6881:324:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 15190, + "nodeType": "Block", + "src": "7607:75:38", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 15186, + "name": "circuitIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15177, + "src": "7645:10:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + { + "id": 15187, + "name": "verifierAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15180, + "src": "7657:17:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 15185, + "name": "_updateAnonAadhaarVerifiers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15630, + "src": "7617:27:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (string calldata[] calldata,address[] calldata)" + } + }, + "id": 15188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7617:58:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15189, + "nodeType": "ExpressionStatement", + "src": "7617:58:38" + } + ] + }, + "documentation": { + "id": 15174, + "nodeType": "StructuredDocumentation", + "src": "7211:240:38", + "text": " @dev Updates the AnonAadhar circuit verifiers for a specific circuit identifiers.\n @param circuitIds The AnonAadhar circuit identifiers.\n @param verifierAddresses The new AnonAadhar circuit verifier addresses." + }, + "functionSelector": "f8ba8b39", + "id": 15191, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 15183, + "kind": "modifierInvocation", + "modifierName": { + "id": 15182, + "name": "onlyOwner", + "nameLocations": [ + "7597:9:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "7597:9:38" + }, + "nodeType": "ModifierInvocation", + "src": "7597:9:38" + } + ], + "name": "updateAnonAadhaarVerifiers", + "nameLocation": "7465:26:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15181, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15177, + "mutability": "mutable", + "name": "circuitIds", + "nameLocation": "7519:10:38", + "nodeType": "VariableDeclaration", + "scope": 15191, + "src": "7501:28:38", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 15175, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7501:6:38", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 15176, + "nodeType": "ArrayTypeName", + "src": "7501:8:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15180, + "mutability": "mutable", + "name": "verifierAddresses", + "nameLocation": "7558:17:38", + "nodeType": "VariableDeclaration", + "scope": 15191, + "src": "7539:36:38", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 15178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7539:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 15179, + "nodeType": "ArrayTypeName", + "src": "7539:9:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "7491:90:38" + }, + "returnParameters": { + "id": 15184, + "nodeType": "ParameterList", + "parameters": [], + "src": "7607:0:38" + }, + "scope": 15972, + "src": "7456:226:38", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 15205, + "nodeType": "Block", + "src": "7981:97:38", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15199, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "7998:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7998:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15201, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8039:21:38", + "memberName": "_anonAadhaarVerifiers", + "nodeType": "MemberAccess", + "referencedDeclaration": 14831, + "src": "7998:62:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", + "typeString": "mapping(string memory => address)" + } + }, + "id": 15203, + "indexExpression": { + "id": 15202, + "name": "circuitId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15194, + "src": "8061:9:38", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7998:73:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 15198, + "id": 15204, + "nodeType": "Return", + "src": "7991:80:38" + } + ] + }, + "documentation": { + "id": 15192, + "nodeType": "StructuredDocumentation", + "src": "7688:193:38", + "text": " @notice Retrieves the anonAadhaar verifier address for a given circuit id.\n @param circuitId The circuit id identifier.\n @return The anonAadhaar verifier address." + }, + "functionSelector": "ad5778c7", + "id": 15206, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "anonAadhaarVerifiers", + "nameLocation": "7895:20:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15195, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15194, + "mutability": "mutable", + "name": "circuitId", + "nameLocation": "7930:9:38", + "nodeType": "VariableDeclaration", + "scope": 15206, + "src": "7916:23:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 15193, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7916:6:38", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7915:25:38" + }, + "returnParameters": { + "id": 15198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15197, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15206, + "src": "7972:7:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15196, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7972:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7971:9:38" + }, + "scope": 15972, + "src": "7886:192:38", + "stateMutability": "view", + "virtual": true, + "visibility": "external" + }, + { + "body": { + "id": 15370, + "nodeType": "Block", + "src": "8453:1633:38", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "expression": { + "id": 15217, + "name": "credentialProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15210, + "src": "8473:15:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialProof_$14818_memory_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.CredentialProof memory" + } + }, + "id": 15218, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8489:9:38", + "memberName": "circuitId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14815, + "src": "8473:25:38", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 15216, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8467:5:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 15215, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8467:5:38", + "typeDescriptions": {} + } + }, + "id": 15219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8467:32:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 15220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8500:6:38", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "8467:39:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 15221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8510:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8467:44:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15229, + "nodeType": "IfStatement", + "src": "8463:136:38", + "trueBody": { + "id": 15228, + "nodeType": "Block", + "src": "8513:86:38", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "id": 15224, + "name": "credentialProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15210, + "src": "8562:15:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialProof_$14818_memory_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.CredentialProof memory" + } + }, + "id": 15225, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8578:9:38", + "memberName": "circuitId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14815, + "src": "8562:25:38", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 15223, + "name": "NoAnonAadhaarCircuitIdFound", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14769, + "src": "8534:27:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$", + "typeString": "function (string memory) pure returns (error)" + } + }, + "id": 15226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8534:54:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15227, + "nodeType": "RevertStatement", + "src": "8527:61:38" + } + ] + } + }, + { + "assignments": [ + 15234, + 15238, + 15244, + 15248 + ], + "declarations": [ + { + "constant": false, + "id": 15234, + "mutability": "mutable", + "name": "inputs", + "nameLocation": "8640:6:38", + "nodeType": "VariableDeclaration", + "scope": 15370, + "src": "8623:23:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 15232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8623:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15233, + "nodeType": "ArrayTypeName", + "src": "8623:9:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15238, + "mutability": "mutable", + "name": "a1", + "nameLocation": "8678:2:38", + "nodeType": "VariableDeclaration", + "scope": 15370, + "src": "8660:20:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 15235, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8660:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15237, + "length": { + "hexValue": "32", + "id": 15236, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8668:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "8660:10:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15244, + "mutability": "mutable", + "name": "b1", + "nameLocation": "8715:2:38", + "nodeType": "VariableDeclaration", + "scope": 15370, + "src": "8694:23:38", + "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": 15239, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8694:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15241, + "length": { + "hexValue": "32", + "id": 15240, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8702:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "8694:10:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "id": 15243, + "length": { + "hexValue": "32", + "id": 15242, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8705:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "8694:13:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15248, + "mutability": "mutable", + "name": "c1", + "nameLocation": "8749:2:38", + "nodeType": "VariableDeclaration", + "scope": 15370, + "src": "8731:20:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 15245, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8731:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15247, + "length": { + "hexValue": "32", + "id": 15246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8739:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "8731:10:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + } + ], + "id": 15272, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 15251, + "name": "credentialProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15210, + "src": "8775:15:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialProof_$14818_memory_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.CredentialProof memory" + } + }, + "id": 15252, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8791:5:38", + "memberName": "proof", + "nodeType": "MemberAccess", + "referencedDeclaration": 14817, + "src": "8775:21:38", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "baseExpression": { + "id": 15254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8799:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 15253, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8799:7:38", + "typeDescriptions": {} + } + }, + "id": 15255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8799:9:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "type(uint256[] memory)" + } + }, + { + "baseExpression": { + "id": 15257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8810:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 15256, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8810:7:38", + "typeDescriptions": {} + } + }, + "id": 15259, + "indexExpression": { + "hexValue": "32", + "id": 15258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8818:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8810:10:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$", + "typeString": "type(uint256[2] memory)" + } + }, + { + "baseExpression": { + "baseExpression": { + "id": 15261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8822:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 15260, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8822:7:38", + "typeDescriptions": {} + } + }, + "id": 15263, + "indexExpression": { + "hexValue": "32", + "id": 15262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8830:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8822:10:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$", + "typeString": "type(uint256[2] memory)" + } + }, + "id": 15265, + "indexExpression": { + "hexValue": "32", + "id": 15264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8833:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8822:13:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$", + "typeString": "type(uint256[2] memory[2] memory)" + } + }, + { + "baseExpression": { + "id": 15267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8837:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 15266, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8837:7:38", + "typeDescriptions": {} + } + }, + "id": 15269, + "indexExpression": { + "hexValue": "32", + "id": 15268, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8845:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8837:10:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$", + "typeString": "type(uint256[2] memory)" + } + } + ], + "id": 15270, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8798:50:38", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$_t_type$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$", + "typeString": "tuple(type(uint256[] memory),type(uint256[2] memory),type(uint256[2] memory[2] memory),type(uint256[2] memory))" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_tuple$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$_t_type$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$", + "typeString": "tuple(type(uint256[] memory),type(uint256[2] memory),type(uint256[2] memory[2] memory),type(uint256[2] memory))" + } + ], + "expression": { + "id": 15249, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "8764:3:38", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 15250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "8768:6:38", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "8764:10:38", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 15271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8764:85:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$", + "typeString": "tuple(uint256[] memory,uint256[2] memory,uint256[2] memory[2] memory,uint256[2] memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8609:240:38" + }, + { + "assignments": [ + 15277 + ], + "declarations": [ + { + "constant": false, + "id": 15277, + "mutability": "mutable", + "name": "groth16Proof", + "nameLocation": "8931:12:38", + "nodeType": "VariableDeclaration", + "scope": 15370, + "src": "8860:83:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof" + }, + "typeName": { + "id": 15276, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15275, + "name": "IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof", + "nameLocations": [ + "8860:27:38", + "8888:23:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14528, + "src": "8860:51:38" + }, + "referencedDeclaration": 14528, + "src": "8860:51:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_storage_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof" + } + }, + "visibility": "internal" + } + ], + "id": 15321, + "initialValue": { + "arguments": [ + { + "id": 15280, + "name": "a1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15238, + "src": "9015:2:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "id": 15281, + "name": "b1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15244, + "src": "9035:2:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", + "typeString": "uint256[2] memory[2] memory" + } + }, + { + "id": 15282, + "name": "c1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15248, + "src": "9055:2:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "components": [ + { + "baseExpression": { + "id": 15283, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15234, + "src": "9097:6:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 15285, + "indexExpression": { + "hexValue": "30", + "id": 15284, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9104:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9097:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 15286, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15234, + "src": "9128:6:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 15288, + "indexExpression": { + "hexValue": "31", + "id": 15287, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9135:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9128:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 15289, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15234, + "src": "9159:6:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 15291, + "indexExpression": { + "hexValue": "32", + "id": 15290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9166:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9159:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 15292, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15234, + "src": "9190:6:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 15294, + "indexExpression": { + "hexValue": "33", + "id": 15293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9197:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9190:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 15295, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15234, + "src": "9221:6:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 15297, + "indexExpression": { + "hexValue": "34", + "id": 15296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9228:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9221:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 15298, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15234, + "src": "9252:6:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 15300, + "indexExpression": { + "hexValue": "35", + "id": 15299, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9259:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9252:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 15301, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15234, + "src": "9283:6:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 15303, + "indexExpression": { + "hexValue": "36", + "id": 15302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9290:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9283:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 15304, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15234, + "src": "9314:6:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 15306, + "indexExpression": { + "hexValue": "37", + "id": 15305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9321:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9314:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 15307, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15234, + "src": "9345:6:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 15309, + "indexExpression": { + "hexValue": "38", + "id": 15308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9352:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9345:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 15310, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15234, + "src": "9376:6:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 15312, + "indexExpression": { + "hexValue": "39", + "id": 15311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9383:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9376:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 15313, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15234, + "src": "9407:6:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 15315, + "indexExpression": { + "hexValue": "3130", + "id": 15314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9414:2:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9407:10:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 15316, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15234, + "src": "9439:6:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 15318, + "indexExpression": { + "hexValue": "3131", + "id": 15317, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9446:2:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_11_by_1", + "typeString": "int_const 11" + }, + "value": "11" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9439:10:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 15319, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9075:392:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + }, + { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", + "typeString": "uint256[2] memory[2] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + ], + "expression": { + "id": 15278, + "name": "IAnonAadhaarCircuitVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14553, + "src": "8946:27:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IAnonAadhaarCircuitVerifier_$14553_$", + "typeString": "type(contract IAnonAadhaarCircuitVerifier)" + } + }, + "id": 15279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8974:23:38", + "memberName": "AnonAadhaarCircuitProof", + "nodeType": "MemberAccess", + "referencedDeclaration": 14528, + "src": "8946:51:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_AnonAadhaarCircuitProof_$14528_storage_ptr_$", + "typeString": "type(struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof storage pointer)" + } + }, + "id": 15320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8946:535:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8860:621:38" + }, + { + "assignments": [ + 15324 + ], + "declarations": [ + { + "constant": false, + "id": 15324, + "mutability": "mutable", + "name": "$", + "nameLocation": "9535:1:38", + "nodeType": "VariableDeclaration", + "scope": 15370, + "src": "9492:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 15323, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15322, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "9492:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "9492:34:38" + }, + "referencedDeclaration": 14844, + "src": "9492:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 15327, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15325, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "9539:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9539:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9492:87:38" + }, + { + "assignments": [ + 15329 + ], + "declarations": [ + { + "constant": false, + "id": 15329, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "9597:8:38", + "nodeType": "VariableDeclaration", + "scope": 15370, + "src": "9589:16:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 15328, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9589:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 15335, + "initialValue": { + "baseExpression": { + "expression": { + "id": 15330, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15324, + "src": "9608:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15331, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9610:21:38", + "memberName": "_anonAadhaarVerifiers", + "nodeType": "MemberAccess", + "referencedDeclaration": 14831, + "src": "9608:23:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", + "typeString": "mapping(string memory => address)" + } + }, + "id": 15334, + "indexExpression": { + "expression": { + "id": 15332, + "name": "credentialProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15210, + "src": "9632:15:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialProof_$14818_memory_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.CredentialProof memory" + } + }, + "id": 15333, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9648:9:38", + "memberName": "circuitId", + "nodeType": "MemberAccess", + "referencedDeclaration": 14815, + "src": "9632:25:38", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9608:50:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9589:69:38" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 15341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15336, + "name": "verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15329, + "src": "9672:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 15339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9692:1:38", + "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" + } + ], + "id": 15338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9684:7:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 15337, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9684:7:38", + "typeDescriptions": {} + } + }, + "id": 15340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9684:10:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9672:22:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15346, + "nodeType": "IfStatement", + "src": "9668:75:38", + "trueBody": { + "id": 15345, + "nodeType": "Block", + "src": "9696:47:38", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15342, + "name": "NoVerifierSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14723, + "src": "9717:13:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 15343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9717:15:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15344, + "nodeType": "RevertStatement", + "src": "9710:22:38" + } + ] + } + }, + { + "condition": { + "id": 15360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "9769:201:38", + "subExpression": { + "arguments": [ + { + "expression": { + "id": 15351, + "name": "groth16Proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15277, + "src": "9837:12:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15352, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9850:1:38", + "memberName": "a", + "nodeType": "MemberAccess", + "referencedDeclaration": 14513, + "src": "9837:14:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "expression": { + "id": 15353, + "name": "groth16Proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15277, + "src": "9869:12:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15354, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9882:1:38", + "memberName": "b", + "nodeType": "MemberAccess", + "referencedDeclaration": 14519, + "src": "9869:14:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", + "typeString": "uint256[2] memory[2] memory" + } + }, + { + "expression": { + "id": 15355, + "name": "groth16Proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15277, + "src": "9901:12:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15356, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9914:1:38", + "memberName": "c", + "nodeType": "MemberAccess", + "referencedDeclaration": 14523, + "src": "9901:14:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "expression": { + "id": 15357, + "name": "groth16Proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15277, + "src": "9933:12:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9946:10:38", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14527, + "src": "9933:23:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + }, + { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", + "typeString": "uint256[2] memory[2] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + ], + "expression": { + "arguments": [ + { + "id": 15348, + "name": "verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15329, + "src": "9798:8:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 15347, + "name": "IAnonAadhaarCircuitVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14553, + "src": "9770:27:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IAnonAadhaarCircuitVerifier_$14553_$", + "typeString": "type(contract IAnonAadhaarCircuitVerifier)" + } + }, + "id": 15349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9770:37:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAnonAadhaarCircuitVerifier_$14553", + "typeString": "contract IAnonAadhaarCircuitVerifier" + } + }, + "id": 15350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9808:11:38", + "memberName": "verifyProof", + "nodeType": "MemberAccess", + "referencedDeclaration": 14552, + "src": "9770:49:38", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_uint256_$12_memory_ptr_$returns$_t_bool_$", + "typeString": "function (uint256[2] memory,uint256[2] memory[2] memory,uint256[2] memory,uint256[12] memory) view external returns (bool)" + } + }, + "id": 15359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9770:200:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15365, + "nodeType": "IfStatement", + "src": "9752:286:38", + "trueBody": { + "id": 15364, + "nodeType": "Block", + "src": "9981:57:38", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15361, + "name": "InvalidAnonAadhaarProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14725, + "src": "10002:23:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 15362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10002:25:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15363, + "nodeType": "RevertStatement", + "src": "9995:32:38" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 15367, + "name": "groth16Proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15277, + "src": "10066:12:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + ], + "id": 15366, + "name": "_afterProofSubmit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15747, + "src": "10048:17:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr_$returns$__$", + "typeString": "function (struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory)" + } + }, + "id": 15368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10048:31:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15369, + "nodeType": "ExpressionStatement", + "src": "10048:31:38" + } + ] + }, + "documentation": { + "id": 15207, + "nodeType": "StructuredDocumentation", + "src": "8084:233:38", + "text": " @notice Verifies the passport credential.\n @param credentialProof Credential proof for the passport credential\n @param passportSignatureProof Signature proof of the validation of the passport credential" + }, + "functionSelector": "43e5c520", + "id": 15371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyAadhaar", + "nameLocation": "8331:13:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15210, + "mutability": "mutable", + "name": "credentialProof", + "nameLocation": "8377:15:38", + "nodeType": "VariableDeclaration", + "scope": 15371, + "src": "8354:38:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialProof_$14818_memory_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.CredentialProof" + }, + "typeName": { + "id": 15209, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15208, + "name": "CredentialProof", + "nameLocations": [ + "8354:15:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14818, + "src": "8354:15:38" + }, + "referencedDeclaration": 14818, + "src": "8354:15:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialProof_$14818_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.CredentialProof" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15212, + "mutability": "mutable", + "name": "passportSignatureProof", + "nameLocation": "8415:22:38", + "nodeType": "VariableDeclaration", + "scope": 15371, + "src": "8402:35:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 15211, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8402:5:38", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8344:99:38" + }, + "returnParameters": { + "id": 15214, + "nodeType": "ParameterList", + "parameters": [], + "src": "8453:0:38" + }, + "scope": 15972, + "src": "8322:1764:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 15381, + "nodeType": "Block", + "src": "10244:78:38", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15377, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "10261:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10261:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15379, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10302:13:38", + "memberName": "nullifierSeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 14821, + "src": "10261:54:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 15376, + "id": 15380, + "nodeType": "Return", + "src": "10254:61:38" + } + ] + }, + "documentation": { + "id": 15372, + "nodeType": "StructuredDocumentation", + "src": "10092:89:38", + "text": " @notice Returns the nullifier seed.\n @return The nullifier seed." + }, + "functionSelector": "13e52ae7", + "id": 15382, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getNullifierSeed", + "nameLocation": "10195:16:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15373, + "nodeType": "ParameterList", + "parameters": [], + "src": "10211:2:38" + }, + "returnParameters": { + "id": 15376, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15375, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15382, + "src": "10235:7:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15374, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10235:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10234:9:38" + }, + "scope": 15972, + "src": "10186:136:38", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 15396, + "nodeType": "Block", + "src": "10603:96:38", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15390, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "10620:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10620:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15392, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10661:16:38", + "memberName": "publicKeysHashes", + "nodeType": "MemberAccess", + "referencedDeclaration": 14835, + "src": "10620:57:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 15394, + "indexExpression": { + "id": 15393, + "name": "publicKeyHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15385, + "src": "10678:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10620:72:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 15389, + "id": 15395, + "nodeType": "Return", + "src": "10613:79:38" + } + ] + }, + "documentation": { + "id": 15383, + "nodeType": "StructuredDocumentation", + "src": "10328:191:38", + "text": " @notice Returns if the public key hash exists.\n @param publicKeyHash The public key hash to check.\n @return True if the public key hash exists, false otherwise." + }, + "functionSelector": "58ada672", + "id": 15397, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "publicKeyHashExists", + "nameLocation": "10533:19:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15386, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15385, + "mutability": "mutable", + "name": "publicKeyHash", + "nameLocation": "10561:13:38", + "nodeType": "VariableDeclaration", + "scope": 15397, + "src": "10553:21:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15384, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10553:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10552:23:38" + }, + "returnParameters": { + "id": 15389, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15388, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15397, + "src": "10597:4:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 15387, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10597:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "10596:6:38" + }, + "scope": 15972, + "src": "10524:175:38", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 15407, + "nodeType": "Block", + "src": "10854:77:38", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15403, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "10871:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10871:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15405, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10912:12:38", + "memberName": "templateRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 14825, + "src": "10871:53:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 15402, + "id": 15406, + "nodeType": "Return", + "src": "10864:60:38" + } + ] + }, + "documentation": { + "id": 15398, + "nodeType": "StructuredDocumentation", + "src": "10705:87:38", + "text": " @notice Returns the template root.\n @return The template root." + }, + "functionSelector": "2c1d3204", + "id": 15408, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTemplateRoot", + "nameLocation": "10806:15:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15399, + "nodeType": "ParameterList", + "parameters": [], + "src": "10821:2:38" + }, + "returnParameters": { + "id": 15402, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15401, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15408, + "src": "10845:7:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15400, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10845:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10844:9:38" + }, + "scope": 15972, + "src": "10797:134:38", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 15418, + "nodeType": "Block", + "src": "11092:79:38", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15414, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "11109:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11109:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15416, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11150:14:38", + "memberName": "expirationTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 14823, + "src": "11109:55:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 15413, + "id": 15417, + "nodeType": "Return", + "src": "11102:62:38" + } + ] + }, + "documentation": { + "id": 15409, + "nodeType": "StructuredDocumentation", + "src": "10937:91:38", + "text": " @notice Returns the expiration time.\n @return The expiration time." + }, + "functionSelector": "e23a845a", + "id": 15419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getExpirationTime", + "nameLocation": "11042:17:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15410, + "nodeType": "ParameterList", + "parameters": [], + "src": "11059:2:38" + }, + "returnParameters": { + "id": 15413, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15412, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15419, + "src": "11083:7:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15411, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11083:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11082:9:38" + }, + "scope": 15972, + "src": "11033:138:38", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 15441, + "nodeType": "Block", + "src": "11332:144:38", + "statements": [ + { + "assignments": [ + 15429 + ], + "declarations": [ + { + "constant": false, + "id": 15429, + "mutability": "mutable", + "name": "$", + "nameLocation": "11385:1:38", + "nodeType": "VariableDeclaration", + "scope": 15441, + "src": "11342:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 15428, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15427, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "11342:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "11342:34:38" + }, + "referencedDeclaration": 14844, + "src": "11342:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 15432, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15430, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "11389:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11389:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11342:87:38" + }, + { + "expression": { + "id": 15439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 15433, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15429, + "src": "11439:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11441:10:38", + "memberName": "qrVersions", + "nodeType": "MemberAccess", + "referencedDeclaration": 14843, + "src": "11439:12:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 15437, + "indexExpression": { + "id": 15435, + "name": "qrVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15422, + "src": "11452:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11439:23:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 15438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11465:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "11439:30:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15440, + "nodeType": "ExpressionStatement", + "src": "11439:30:38" + } + ] + }, + "documentation": { + "id": 15420, + "nodeType": "StructuredDocumentation", + "src": "11177:92:38", + "text": " @notice Adds a QR version.\n @param qrVersion The QR version to add." + }, + "functionSelector": "dcdd17c4", + "id": 15442, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 15425, + "kind": "modifierInvocation", + "modifierName": { + "id": 15424, + "name": "onlyOwner", + "nameLocations": [ + "11322:9:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "11322:9:38" + }, + "nodeType": "ModifierInvocation", + "src": "11322:9:38" + } + ], + "name": "addQrVersion", + "nameLocation": "11283:12:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15423, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15422, + "mutability": "mutable", + "name": "qrVersion", + "nameLocation": "11304:9:38", + "nodeType": "VariableDeclaration", + "scope": 15442, + "src": "11296:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15421, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11296:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11295:19:38" + }, + "returnParameters": { + "id": 15426, + "nodeType": "ParameterList", + "parameters": [], + "src": "11332:0:38" + }, + "scope": 15972, + "src": "11274:202:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 15455, + "nodeType": "Block", + "src": "11684:47:38", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 15452, + "name": "qrVersions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15446, + "src": "11713:10:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + ], + "id": 15451, + "name": "_addQrVersionBatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15971, + "src": "11694:18:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (uint256[] calldata)" + } + }, + "id": 15453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11694:30:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15454, + "nodeType": "ExpressionStatement", + "src": "11694:30:38" + } + ] + }, + "documentation": { + "id": 15443, + "nodeType": "StructuredDocumentation", + "src": "11482:122:38", + "text": " @notice Adds multiple QR versions in a batch.\n @param qrVersions The array of QR versions to add." + }, + "functionSelector": "b5fff0ed", + "id": 15456, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 15449, + "kind": "modifierInvocation", + "modifierName": { + "id": 15448, + "name": "onlyOwner", + "nameLocations": [ + "11674:9:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "11674:9:38" + }, + "nodeType": "ModifierInvocation", + "src": "11674:9:38" + } + ], + "name": "addQrVersionBatch", + "nameLocation": "11618:17:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15447, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15446, + "mutability": "mutable", + "name": "qrVersions", + "nameLocation": "11655:10:38", + "nodeType": "VariableDeclaration", + "scope": 15456, + "src": "11636:29:38", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 15444, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11636:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15445, + "nodeType": "ArrayTypeName", + "src": "11636:9:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "11635:31:38" + }, + "returnParameters": { + "id": 15450, + "nodeType": "ParameterList", + "parameters": [], + "src": "11684:0:38" + }, + "scope": 15972, + "src": "11609:122:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 15488, + "nodeType": "Block", + "src": "11901:223:38", + "statements": [ + { + "assignments": [ + 15466 + ], + "declarations": [ + { + "constant": false, + "id": 15466, + "mutability": "mutable", + "name": "$", + "nameLocation": "11954:1:38", + "nodeType": "VariableDeclaration", + "scope": 15488, + "src": "11911:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 15465, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15464, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "11911:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "11911:34:38" + }, + "referencedDeclaration": 14844, + "src": "11911:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 15469, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15467, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "11958:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15468, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11958:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11911:87:38" + }, + { + "condition": { + "id": 15474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "12012:24:38", + "subExpression": { + "baseExpression": { + "expression": { + "id": 15470, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15466, + "src": "12013:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15471, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12015:10:38", + "memberName": "qrVersions", + "nodeType": "MemberAccess", + "referencedDeclaration": 14843, + "src": "12013:12:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 15473, + "indexExpression": { + "id": 15472, + "name": "qrVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15459, + "src": "12026:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12013:23:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15479, + "nodeType": "IfStatement", + "src": "12008:68:38", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 15476, + "name": "qrVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15459, + "src": "12066:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15475, + "name": "UnsupportedQrVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14755, + "src": "12045:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 15477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12045:31:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15478, + "nodeType": "RevertStatement", + "src": "12038:38:38" + } + }, + { + "expression": { + "id": 15486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 15480, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15466, + "src": "12086:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15483, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12088:10:38", + "memberName": "qrVersions", + "nodeType": "MemberAccess", + "referencedDeclaration": 14843, + "src": "12086:12:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 15484, + "indexExpression": { + "id": 15482, + "name": "qrVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15459, + "src": "12099:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12086:23:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 15485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12112:5:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "12086:31:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15487, + "nodeType": "ExpressionStatement", + "src": "12086:31:38" + } + ] + }, + "documentation": { + "id": 15457, + "nodeType": "StructuredDocumentation", + "src": "11737:98:38", + "text": " @notice Removes a QR version.\n @param qrVersion The QR version to remove." + }, + "functionSelector": "2e1e252f", + "id": 15489, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 15462, + "kind": "modifierInvocation", + "modifierName": { + "id": 15461, + "name": "onlyOwner", + "nameLocations": [ + "11891:9:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "11891:9:38" + }, + "nodeType": "ModifierInvocation", + "src": "11891:9:38" + } + ], + "name": "removeQrVersion", + "nameLocation": "11849:15:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15460, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15459, + "mutability": "mutable", + "name": "qrVersion", + "nameLocation": "11873:9:38", + "nodeType": "VariableDeclaration", + "scope": 15489, + "src": "11865:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15458, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11865:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11864:19:38" + }, + "returnParameters": { + "id": 15463, + "nodeType": "ParameterList", + "parameters": [], + "src": "11901:0:38" + }, + "scope": 15972, + "src": "11840:284:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 15503, + "nodeType": "Block", + "src": "12390:86:38", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15497, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "12407:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12407:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15499, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12448:10:38", + "memberName": "qrVersions", + "nodeType": "MemberAccess", + "referencedDeclaration": 14843, + "src": "12407:51:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 15501, + "indexExpression": { + "id": 15500, + "name": "qrVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15492, + "src": "12459:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12407:62:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 15496, + "id": 15502, + "nodeType": "Return", + "src": "12400:69:38" + } + ] + }, + "documentation": { + "id": 15490, + "nodeType": "StructuredDocumentation", + "src": "12130:181:38", + "text": " @notice Checks if a QR version is supported.\n @param qrVersion The QR version to check.\n @return True if the QR version is supported, false otherwise." + }, + "functionSelector": "efc8385a", + "id": 15504, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "qrVersionSupported", + "nameLocation": "12325:18:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15493, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15492, + "mutability": "mutable", + "name": "qrVersion", + "nameLocation": "12352:9:38", + "nodeType": "VariableDeclaration", + "scope": 15504, + "src": "12344:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12344:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12343:19:38" + }, + "returnParameters": { + "id": 15496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15495, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 15504, + "src": "12384:4:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 15494, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12384:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "12383:6:38" + }, + "scope": 15972, + "src": "12316:160:38", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 15523, + "nodeType": "Block", + "src": "12661:129:38", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 15514, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15507, + "src": "12718:5:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15510, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "12671:23:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 15511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12671:25:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 15512, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12697:8:38", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "12671:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 15513, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12706:11:38", + "memberName": "revokeClaim", + "nodeType": "MemberAccess", + "referencedDeclaration": 1614, + "src": "12671:46:38", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint64)" + } + }, + "id": 15515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12671:53:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15516, + "nodeType": "ExpressionStatement", + "src": "12671:53:38" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15517, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "12734:23:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 15518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12734:25:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 15519, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12760:8:38", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "12734:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 15520, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12769:12:38", + "memberName": "transitState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1778, + "src": "12734:47:38", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer)" + } + }, + "id": 15521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12734:49:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15522, + "nodeType": "ExpressionStatement", + "src": "12734:49:38" + } + ] + }, + "documentation": { + "id": 15505, + "nodeType": "StructuredDocumentation", + "src": "12482:119:38", + "text": " @notice Revokes a claim and transit the state.\n @param nonce The nonce of the claim to revoke." + }, + "id": 15524, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revokeClaimAndTransit", + "nameLocation": "12615:22:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15508, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15507, + "mutability": "mutable", + "name": "nonce", + "nameLocation": "12645:5:38", + "nodeType": "VariableDeclaration", + "scope": 15524, + "src": "12638:12:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 15506, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "12638:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "12637:14:38" + }, + "returnParameters": { + "id": 15509, + "nodeType": "ParameterList", + "parameters": [], + "src": "12661:0:38" + }, + "scope": 15972, + "src": "12606:184:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 15565, + "nodeType": "Block", + "src": "12876:296:38", + "statements": [ + { + "assignments": [ + 15532 + ], + "declarations": [ + { + "constant": false, + "id": 15532, + "mutability": "mutable", + "name": "$", + "nameLocation": "12929:1:38", + "nodeType": "VariableDeclaration", + "scope": 15565, + "src": "12886:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 15531, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15530, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "12886:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "12886:34:38" + }, + "referencedDeclaration": 14844, + "src": "12886:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 15535, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15533, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "12933:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12933:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12886:87:38" + }, + { + "body": { + "id": 15563, + "nodeType": "Block", + "src": "13037:129:38", + "statements": [ + { + "expression": { + "id": 15555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 15547, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15532, + "src": "13051:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15552, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13053:16:38", + "memberName": "publicKeysHashes", + "nodeType": "MemberAccess", + "referencedDeclaration": 14835, + "src": "13051:18:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 15553, + "indexExpression": { + "baseExpression": { + "id": 15549, + "name": "publicKeysHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15527, + "src": "13070:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 15551, + "indexExpression": { + "id": 15550, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15537, + "src": "13087:1:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13070:19:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13051:39:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 15554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13093:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "13051:46:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15556, + "nodeType": "ExpressionStatement", + "src": "13051:46:38" + }, + { + "eventCall": { + "arguments": [ + { + "baseExpression": { + "id": 15558, + "name": "publicKeysHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15527, + "src": "13135:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 15560, + "indexExpression": { + "id": 15559, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15537, + "src": "13152:1:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13135:19:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15557, + "name": "PublicKeyHashAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14781, + "src": "13116:18:38", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 15561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13116:39:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15562, + "nodeType": "EmitStatement", + "src": "13111:44:38" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15540, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15537, + "src": "13003:1:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 15541, + "name": "publicKeysHashes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15527, + "src": "13007:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 15542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13024:6:38", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13007:23:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13003:27:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15564, + "initializationExpression": { + "assignments": [ + 15537 + ], + "declarations": [ + { + "constant": false, + "id": 15537, + "mutability": "mutable", + "name": "i", + "nameLocation": "12996:1:38", + "nodeType": "VariableDeclaration", + "scope": 15564, + "src": "12988:9:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15536, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12988:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15539, + "initialValue": { + "hexValue": "30", + "id": 15538, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13000:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "12988:13:38" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 15545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "13032:3:38", + "subExpression": { + "id": 15544, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15537, + "src": "13032:1:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15546, + "nodeType": "ExpressionStatement", + "src": "13032:3:38" + }, + "nodeType": "ForStatement", + "src": "12983:183:38" + } + ] + }, + "id": 15566, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addPublicKeyHashesBatch", + "nameLocation": "12805:24:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15528, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15527, + "mutability": "mutable", + "name": "publicKeysHashes", + "nameLocation": "12849:16:38", + "nodeType": "VariableDeclaration", + "scope": 15566, + "src": "12830:35:38", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 15525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12830:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15526, + "nodeType": "ArrayTypeName", + "src": "12830:9:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "12829:37:38" + }, + "returnParameters": { + "id": 15529, + "nodeType": "ParameterList", + "parameters": [], + "src": "12876:0:38" + }, + "scope": 15972, + "src": "12796:376:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 15629, + "nodeType": "Block", + "src": "13314:488:38", + "statements": [ + { + "assignments": [ + 15577 + ], + "declarations": [ + { + "constant": false, + "id": 15577, + "mutability": "mutable", + "name": "$", + "nameLocation": "13367:1:38", + "nodeType": "VariableDeclaration", + "scope": 15629, + "src": "13324:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 15576, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15575, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "13324:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "13324:34:38" + }, + "referencedDeclaration": 14844, + "src": "13324:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 15580, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15578, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "13371:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13371:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13324:87:38" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 15581, + "name": "circuitIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15569, + "src": "13425:10:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 15582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13436:6:38", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13425:17:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 15583, + "name": "verifierAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15572, + "src": "13446:17:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 15584, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13464:6:38", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13446:24:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13425:45:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15594, + "nodeType": "IfStatement", + "src": "13421:142:38", + "trueBody": { + "id": 15593, + "nodeType": "Block", + "src": "13472:91:38", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "id": 15587, + "name": "circuitIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15569, + "src": "13508:10:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 15588, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13519:6:38", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13508:17:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 15589, + "name": "verifierAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15572, + "src": "13527:17:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 15590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13545:6:38", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13527:24:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15586, + "name": "LengthMismatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14765, + "src": "13493:14:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 15591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13493:59:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15592, + "nodeType": "RevertStatement", + "src": "13486:66:38" + } + ] + } + }, + { + "body": { + "id": 15627, + "nodeType": "Block", + "src": "13620:176:38", + "statements": [ + { + "expression": { + "id": 15616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 15606, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15577, + "src": "13634:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15611, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13636:21:38", + "memberName": "_anonAadhaarVerifiers", + "nodeType": "MemberAccess", + "referencedDeclaration": 14831, + "src": "13634:23:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", + "typeString": "mapping(string memory => address)" + } + }, + "id": 15612, + "indexExpression": { + "baseExpression": { + "id": 15608, + "name": "circuitIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15569, + "src": "13658:10:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 15610, + "indexExpression": { + "id": 15609, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15596, + "src": "13669:1:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13658:13:38", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13634:38:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 15613, + "name": "verifierAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15572, + "src": "13675:17:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 15615, + "indexExpression": { + "id": 15614, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15596, + "src": "13693:1:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13675:20:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "13634:61:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 15617, + "nodeType": "ExpressionStatement", + "src": "13634:61:38" + }, + { + "eventCall": { + "arguments": [ + { + "baseExpression": { + "id": 15619, + "name": "circuitIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15569, + "src": "13749:10:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 15621, + "indexExpression": { + "id": 15620, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15596, + "src": "13760:1:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13749:13:38", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "baseExpression": { + "id": 15622, + "name": "verifierAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15572, + "src": "13764:17:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 15624, + "indexExpression": { + "id": 15623, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15596, + "src": "13782:1:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13764:20:38", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 15618, + "name": "AnonAadhaarCircuitVerifierUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14793, + "src": "13715:33:38", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (string memory,address)" + } + }, + "id": 15625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13715:70:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15626, + "nodeType": "EmitStatement", + "src": "13710:75:38" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15599, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15596, + "src": "13592:1:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 15600, + "name": "circuitIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15569, + "src": "13596:10:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 15601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13607:6:38", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13596:17:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13592:21:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15628, + "initializationExpression": { + "assignments": [ + 15596 + ], + "declarations": [ + { + "constant": false, + "id": 15596, + "mutability": "mutable", + "name": "i", + "nameLocation": "13585:1:38", + "nodeType": "VariableDeclaration", + "scope": 15628, + "src": "13577:9:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15595, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13577:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15598, + "initialValue": { + "hexValue": "30", + "id": 15597, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13589:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13577:13:38" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 15604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "13615:3:38", + "subExpression": { + "id": 15603, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15596, + "src": "13615:1:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15605, + "nodeType": "ExpressionStatement", + "src": "13615:3:38" + }, + "nodeType": "ForStatement", + "src": "13572:224:38" + } + ] + }, + "id": 15630, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_updateAnonAadhaarVerifiers", + "nameLocation": "13187:27:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15573, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15569, + "mutability": "mutable", + "name": "circuitIds", + "nameLocation": "13242:10:38", + "nodeType": "VariableDeclaration", + "scope": 15630, + "src": "13224:28:38", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 15567, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "13224:6:38", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 15568, + "nodeType": "ArrayTypeName", + "src": "13224:8:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15572, + "mutability": "mutable", + "name": "verifierAddresses", + "nameLocation": "13281:17:38", + "nodeType": "VariableDeclaration", + "scope": 15630, + "src": "13262:36:38", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 15570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13262:7:38", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 15571, + "nodeType": "ArrayTypeName", + "src": "13262:9:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "13214:90:38" + }, + "returnParameters": { + "id": 15574, + "nodeType": "ParameterList", + "parameters": [], + "src": "13314:0:38" + }, + "scope": 15972, + "src": "13178:624:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 15746, + "nodeType": "Block", + "src": "13924:1024:38", + "statements": [ + { + "assignments": [ + 15637 + ], + "declarations": [ + { + "constant": false, + "id": 15637, + "mutability": "mutable", + "name": "pubKeyHash", + "nameLocation": "13942:10:38", + "nodeType": "VariableDeclaration", + "scope": 15746, + "src": "13934:18:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13934:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15642, + "initialValue": { + "baseExpression": { + "expression": { + "id": 15638, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15633, + "src": "13955:5:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15639, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13961:10:38", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14527, + "src": "13955:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + }, + "id": 15641, + "indexExpression": { + "hexValue": "30", + "id": 15640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13972:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13955:19:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13934:40:38" + }, + { + "assignments": [ + 15644 + ], + "declarations": [ + { + "constant": false, + "id": 15644, + "mutability": "mutable", + "name": "nullifier", + "nameLocation": "13992:9:38", + "nodeType": "VariableDeclaration", + "scope": 15746, + "src": "13984:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15643, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13984:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15649, + "initialValue": { + "baseExpression": { + "expression": { + "id": 15645, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15633, + "src": "14004:5:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15646, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14010:10:38", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14527, + "src": "14004:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + }, + "id": 15648, + "indexExpression": { + "hexValue": "31", + "id": 15647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14021:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14004:19:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13984:39:38" + }, + { + "assignments": [ + 15651 + ], + "declarations": [ + { + "constant": false, + "id": 15651, + "mutability": "mutable", + "name": "hashIndex", + "nameLocation": "14041:9:38", + "nodeType": "VariableDeclaration", + "scope": 15746, + "src": "14033:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15650, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14033:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15656, + "initialValue": { + "baseExpression": { + "expression": { + "id": 15652, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15633, + "src": "14053:5:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15653, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14059:10:38", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14527, + "src": "14053:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + }, + "id": 15655, + "indexExpression": { + "hexValue": "32", + "id": 15654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14070:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14053:19:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14033:39:38" + }, + { + "assignments": [ + 15658 + ], + "declarations": [ + { + "constant": false, + "id": 15658, + "mutability": "mutable", + "name": "hashValue", + "nameLocation": "14090:9:38", + "nodeType": "VariableDeclaration", + "scope": 15746, + "src": "14082:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15657, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14082:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15663, + "initialValue": { + "baseExpression": { + "expression": { + "id": 15659, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15633, + "src": "14102:5:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15660, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14108:10:38", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14527, + "src": "14102:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + }, + "id": 15662, + "indexExpression": { + "hexValue": "33", + "id": 15661, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14119:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14102:19:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14082:39:38" + }, + { + "assignments": [ + 15665 + ], + "declarations": [ + { + "constant": false, + "id": 15665, + "mutability": "mutable", + "name": "issuanceDate", + "nameLocation": "14139:12:38", + "nodeType": "VariableDeclaration", + "scope": 15746, + "src": "14131:20:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15664, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14131:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15670, + "initialValue": { + "baseExpression": { + "expression": { + "id": 15666, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15633, + "src": "14154:5:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15667, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14160:10:38", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14527, + "src": "14154:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + }, + "id": 15669, + "indexExpression": { + "hexValue": "34", + "id": 15668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14171:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14154:19:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14131:42:38" + }, + { + "assignments": [ + 15672 + ], + "declarations": [ + { + "constant": false, + "id": 15672, + "mutability": "mutable", + "name": "expirationDate", + "nameLocation": "14191:14:38", + "nodeType": "VariableDeclaration", + "scope": 15746, + "src": "14183:22:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14183:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15677, + "initialValue": { + "baseExpression": { + "expression": { + "id": 15673, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15633, + "src": "14208:5:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15674, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14214:10:38", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14527, + "src": "14208:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + }, + "id": 15676, + "indexExpression": { + "hexValue": "35", + "id": 15675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14225:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14208:19:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14183:44:38" + }, + { + "assignments": [ + 15679 + ], + "declarations": [ + { + "constant": false, + "id": 15679, + "mutability": "mutable", + "name": "qrVersion", + "nameLocation": "14245:9:38", + "nodeType": "VariableDeclaration", + "scope": 15746, + "src": "14237:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14237:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15684, + "initialValue": { + "baseExpression": { + "expression": { + "id": 15680, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15633, + "src": "14257:5:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14263:10:38", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14527, + "src": "14257:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + }, + "id": 15683, + "indexExpression": { + "hexValue": "36", + "id": 15682, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14274:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14257:19:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14237:39:38" + }, + { + "assignments": [ + 15686 + ], + "declarations": [ + { + "constant": false, + "id": 15686, + "mutability": "mutable", + "name": "nullifierSeed", + "nameLocation": "14294:13:38", + "nodeType": "VariableDeclaration", + "scope": 15746, + "src": "14286:21:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14286:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15691, + "initialValue": { + "baseExpression": { + "expression": { + "id": 15687, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15633, + "src": "14310:5:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15688, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14316:10:38", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14527, + "src": "14310:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + }, + "id": 15690, + "indexExpression": { + "hexValue": "37", + "id": 15689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14327:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14310:19:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14286:43:38" + }, + { + "assignments": [ + 15693 + ], + "declarations": [ + { + "constant": false, + "id": 15693, + "mutability": "mutable", + "name": "signalHash", + "nameLocation": "14347:10:38", + "nodeType": "VariableDeclaration", + "scope": 15746, + "src": "14339:18:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15692, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14339:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15698, + "initialValue": { + "baseExpression": { + "expression": { + "id": 15694, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15633, + "src": "14360:5:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15695, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14366:10:38", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14527, + "src": "14360:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + }, + "id": 15697, + "indexExpression": { + "hexValue": "38", + "id": 15696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14377:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14360:19:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14339:40:38" + }, + { + "assignments": [ + 15700 + ], + "declarations": [ + { + "constant": false, + "id": 15700, + "mutability": "mutable", + "name": "templateRoot", + "nameLocation": "14397:12:38", + "nodeType": "VariableDeclaration", + "scope": 15746, + "src": "14389:20:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14389:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15705, + "initialValue": { + "baseExpression": { + "expression": { + "id": 15701, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15633, + "src": "14412:5:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15702, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14418:10:38", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14527, + "src": "14412:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + }, + "id": 15704, + "indexExpression": { + "hexValue": "39", + "id": 15703, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14429:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14412:19:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14389:42:38" + }, + { + "assignments": [ + 15707 + ], + "declarations": [ + { + "constant": false, + "id": 15707, + "mutability": "mutable", + "name": "issuerDidHash", + "nameLocation": "14449:13:38", + "nodeType": "VariableDeclaration", + "scope": 15746, + "src": "14441:21:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14441:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15712, + "initialValue": { + "baseExpression": { + "expression": { + "id": 15708, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15633, + "src": "14465:5:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15709, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14471:10:38", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14527, + "src": "14465:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + }, + "id": 15711, + "indexExpression": { + "hexValue": "3130", + "id": 15710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14482:2:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14465:20:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14441:44:38" + }, + { + "assignments": [ + 15714 + ], + "declarations": [ + { + "constant": false, + "id": 15714, + "mutability": "mutable", + "name": "revocationNonce", + "nameLocation": "14502:15:38", + "nodeType": "VariableDeclaration", + "scope": 15746, + "src": "14495:22:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 15713, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "14495:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 15722, + "initialValue": { + "arguments": [ + { + "baseExpression": { + "expression": { + "id": 15717, + "name": "proof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15633, + "src": "14527:5:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof memory" + } + }, + "id": 15718, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14533:10:38", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14527, + "src": "14527:16:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$12_memory_ptr", + "typeString": "uint256[12] memory" + } + }, + "id": 15720, + "indexExpression": { + "hexValue": "3131", + "id": 15719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14544:2:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_11_by_1", + "typeString": "int_const 11" + }, + "value": "11" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14527:20:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14520:6:38", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 15715, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "14520:6:38", + "typeDescriptions": {} + } + }, + "id": 15721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14520:28:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14495:53:38" + }, + { + "expression": { + "arguments": [ + { + "id": 15724, + "name": "hashIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15651, + "src": "14594:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 15725, + "name": "hashValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15658, + "src": "14617:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 15726, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15644, + "src": "14640:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 15727, + "name": "pubKeyHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15637, + "src": "14663:10:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 15728, + "name": "nullifierSeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15686, + "src": "14687:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 15729, + "name": "issuanceDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15665, + "src": "14714:12:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 15730, + "name": "expirationDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15672, + "src": "14740:14:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 15731, + "name": "templateRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15700, + "src": "14768:12:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 15732, + "name": "issuerDidHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15707, + "src": "14794:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 15733, + "name": "qrVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15679, + "src": "14821:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15723, + "name": "_validatePublicInputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15859, + "src": "14559:21:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) view" + } + }, + "id": 15734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14559:281:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15735, + "nodeType": "ExpressionStatement", + "src": "14559:281:38" + }, + { + "expression": { + "arguments": [ + { + "id": 15737, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15644, + "src": "14864:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 15738, + "name": "revocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15714, + "src": "14875:15:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 15736, + "name": "_setNullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15935, + "src": "14850:13:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint64_$returns$__$", + "typeString": "function (uint256,uint64)" + } + }, + "id": 15739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14850:41:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15740, + "nodeType": "ExpressionStatement", + "src": "14850:41:38" + }, + { + "expression": { + "arguments": [ + { + "id": 15742, + "name": "hashIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15651, + "src": "14920:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 15743, + "name": "hashValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15658, + "src": "14931:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15741, + "name": "_addHashAndTransit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15881, + "src": "14901:18:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 15744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14901:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15745, + "nodeType": "ExpressionStatement", + "src": "14901:40:38" + } + ] + }, + "id": 15747, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_afterProofSubmit", + "nameLocation": "13817:17:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15634, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15633, + "mutability": "mutable", + "name": "proof", + "nameLocation": "13903:5:38", + "nodeType": "VariableDeclaration", + "scope": 15747, + "src": "13844:64:38", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_memory_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof" + }, + "typeName": { + "id": 15632, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15631, + "name": "IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof", + "nameLocations": [ + "13844:27:38", + "13872:23:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14528, + "src": "13844:51:38" + }, + "referencedDeclaration": 14528, + "src": "13844:51:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCircuitProof_$14528_storage_ptr", + "typeString": "struct IAnonAadhaarCircuitVerifier.AnonAadhaarCircuitProof" + } + }, + "visibility": "internal" + } + ], + "src": "13834:80:38" + }, + "returnParameters": { + "id": 15635, + "nodeType": "ParameterList", + "parameters": [], + "src": "13924:0:38" + }, + "scope": 15972, + "src": "13808:1140:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 15858, + "nodeType": "Block", + "src": "15344:874:38", + "statements": [ + { + "assignments": [ + 15772 + ], + "declarations": [ + { + "constant": false, + "id": 15772, + "mutability": "mutable", + "name": "$", + "nameLocation": "15397:1:38", + "nodeType": "VariableDeclaration", + "scope": 15858, + "src": "15354:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 15771, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15770, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "15354:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "15354:34:38" + }, + "referencedDeclaration": 14844, + "src": "15354:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 15775, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15773, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "15401:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15401:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15354:87:38" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15776, + "name": "hashIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15749, + "src": "15455:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 15777, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15468:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15455:14:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15782, + "nodeType": "IfStatement", + "src": "15451:45:38", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15779, + "name": "InvalidHashIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14727, + "src": "15478:16:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 15780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15478:18:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15781, + "nodeType": "RevertStatement", + "src": "15471:25:38" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15783, + "name": "hashValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15751, + "src": "15510:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 15784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15523:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15510:14:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15789, + "nodeType": "IfStatement", + "src": "15506:45:38", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15786, + "name": "InvalidHashValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14729, + "src": "15533:16:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 15787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15533:18:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15788, + "nodeType": "RevertStatement", + "src": "15526:25:38" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15790, + "name": "nullifierSeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15757, + "src": "15565:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 15791, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15772, + "src": "15582:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15792, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15584:13:38", + "memberName": "nullifierSeed", + "nodeType": "MemberAccess", + "referencedDeclaration": 14821, + "src": "15582:15:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15565:32:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15797, + "nodeType": "IfStatement", + "src": "15561:67:38", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15794, + "name": "InvalidNullifierSeed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14731, + "src": "15606:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 15795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15606:22:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15796, + "nodeType": "RevertStatement", + "src": "15599:29:38" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15798, + "name": "templateRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15763, + "src": "15642:12:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 15799, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15772, + "src": "15658:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15800, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15660:12:38", + "memberName": "templateRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 14825, + "src": "15658:14:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15642:30:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15805, + "nodeType": "IfStatement", + "src": "15638:64:38", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15802, + "name": "InvalidTemplateRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14733, + "src": "15681:19:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 15803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15681:21:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15804, + "nodeType": "RevertStatement", + "src": "15674:28:38" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15806, + "name": "issuerDidHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15765, + "src": "15716:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 15807, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15772, + "src": "15733:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15808, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15735:13:38", + "memberName": "issuerDidHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 14827, + "src": "15733:15:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15716:32:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15813, + "nodeType": "IfStatement", + "src": "15712:67:38", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15810, + "name": "InvalidIssuerDidHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14735, + "src": "15757:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 15811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15757:22:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15812, + "nodeType": "RevertStatement", + "src": "15750:29:38" + } + }, + { + "assignments": [ + 15815 + ], + "declarations": [ + { + "constant": false, + "id": 15815, + "mutability": "mutable", + "name": "expectedExpiration", + "nameLocation": "15798:18:38", + "nodeType": "VariableDeclaration", + "scope": 15858, + "src": "15790:26:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15790:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15820, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15816, + "name": "issuanceDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15759, + "src": "15819:12:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "expression": { + "id": 15817, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15772, + "src": "15834:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15818, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15836:14:38", + "memberName": "expirationTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 14823, + "src": "15834:16:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15819:31:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15790:60:38" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15821, + "name": "expirationDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15761, + "src": "15864:14:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 15822, + "name": "expectedExpiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15815, + "src": "15882:18:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15864:36:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15830, + "nodeType": "IfStatement", + "src": "15860:131:38", + "trueBody": { + "id": 15829, + "nodeType": "Block", + "src": "15902:89:38", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 15825, + "name": "expectedExpiration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15815, + "src": "15945:18:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 15826, + "name": "expirationDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15761, + "src": "15965:14:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15824, + "name": "InvalidExpirationDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14741, + "src": "15923:21:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 15827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15923:57:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15828, + "nodeType": "RevertStatement", + "src": "15916:64:38" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15831, + "name": "expirationDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15761, + "src": "16004:14:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "expression": { + "id": 15832, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "16022:5:38", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 15833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16028:9:38", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "16022:15:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16004:33:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15838, + "nodeType": "IfStatement", + "src": "16000:60:38", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15835, + "name": "ProofExpired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14743, + "src": "16046:12:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 15836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16046:14:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15837, + "nodeType": "RevertStatement", + "src": "16039:21:38" + } + }, + { + "condition": { + "id": 15843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "16074:31:38", + "subExpression": { + "baseExpression": { + "expression": { + "id": 15839, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15772, + "src": "16075:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15840, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16077:16:38", + "memberName": "publicKeysHashes", + "nodeType": "MemberAccess", + "referencedDeclaration": 14835, + "src": "16075:18:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 15842, + "indexExpression": { + "id": 15841, + "name": "pubKeyHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15755, + "src": "16094:10:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16075:30:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15847, + "nodeType": "IfStatement", + "src": "16070:63:38", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15844, + "name": "InvalidPubKeyHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14745, + "src": "16114:17:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 15845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16114:19:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15846, + "nodeType": "RevertStatement", + "src": "16107:26:38" + } + }, + { + "condition": { + "id": 15852, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "16147:24:38", + "subExpression": { + "baseExpression": { + "expression": { + "id": 15848, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15772, + "src": "16148:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15849, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16150:10:38", + "memberName": "qrVersions", + "nodeType": "MemberAccess", + "referencedDeclaration": 14843, + "src": "16148:12:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 15851, + "indexExpression": { + "id": 15850, + "name": "qrVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15767, + "src": "16161:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16148:23:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15857, + "nodeType": "IfStatement", + "src": "16143:68:38", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 15854, + "name": "qrVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15767, + "src": "16201:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 15853, + "name": "UnsupportedQrVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14755, + "src": "16180:20:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 15855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16180:31:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15856, + "nodeType": "RevertStatement", + "src": "16173:38:38" + } + } + ] + }, + "id": 15859, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_validatePublicInputs", + "nameLocation": "15012:21:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15768, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15749, + "mutability": "mutable", + "name": "hashIndex", + "nameLocation": "15051:9:38", + "nodeType": "VariableDeclaration", + "scope": 15859, + "src": "15043:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15748, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15043:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15751, + "mutability": "mutable", + "name": "hashValue", + "nameLocation": "15078:9:38", + "nodeType": "VariableDeclaration", + "scope": 15859, + "src": "15070:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15750, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15070:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15753, + "mutability": "mutable", + "name": "nullifier", + "nameLocation": "15105:9:38", + "nodeType": "VariableDeclaration", + "scope": 15859, + "src": "15097:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15752, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15097:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15755, + "mutability": "mutable", + "name": "pubKeyHash", + "nameLocation": "15132:10:38", + "nodeType": "VariableDeclaration", + "scope": 15859, + "src": "15124:18:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15124:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15757, + "mutability": "mutable", + "name": "nullifierSeed", + "nameLocation": "15160:13:38", + "nodeType": "VariableDeclaration", + "scope": 15859, + "src": "15152:21:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15756, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15152:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15759, + "mutability": "mutable", + "name": "issuanceDate", + "nameLocation": "15191:12:38", + "nodeType": "VariableDeclaration", + "scope": 15859, + "src": "15183:20:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15758, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15183:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15761, + "mutability": "mutable", + "name": "expirationDate", + "nameLocation": "15221:14:38", + "nodeType": "VariableDeclaration", + "scope": 15859, + "src": "15213:22:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15213:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15763, + "mutability": "mutable", + "name": "templateRoot", + "nameLocation": "15253:12:38", + "nodeType": "VariableDeclaration", + "scope": 15859, + "src": "15245:20:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15762, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15245:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15765, + "mutability": "mutable", + "name": "issuerDidHash", + "nameLocation": "15283:13:38", + "nodeType": "VariableDeclaration", + "scope": 15859, + "src": "15275:21:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15764, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15275:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15767, + "mutability": "mutable", + "name": "qrVersion", + "nameLocation": "15314:9:38", + "nodeType": "VariableDeclaration", + "scope": 15859, + "src": "15306:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15766, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15306:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15033:296:38" + }, + "returnParameters": { + "id": 15769, + "nodeType": "ParameterList", + "parameters": [], + "src": "15344:0:38" + }, + "scope": 15972, + "src": "15003:1215:38", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 15880, + "nodeType": "Block", + "src": "16285:131:38", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 15870, + "name": "hi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15861, + "src": "16343:2:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 15871, + "name": "hv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15863, + "src": "16347:2:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15866, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "16295:23:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 15867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16295:25:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 15868, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16321:8:38", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "16295:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 15869, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16330:12:38", + "memberName": "addClaimHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 1590, + "src": "16295:47:38", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint256,uint256)" + } + }, + "id": 15872, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16295:55:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15873, + "nodeType": "ExpressionStatement", + "src": "16295:55:38" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15874, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "16360:23:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 15875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16360:25:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 15876, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16386:8:38", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "16360:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 15877, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16395:12:38", + "memberName": "transitState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1778, + "src": "16360:47:38", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer)" + } + }, + "id": 15878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16360:49:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15879, + "nodeType": "ExpressionStatement", + "src": "16360:49:38" + } + ] + }, + "id": 15881, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addHashAndTransit", + "nameLocation": "16233:18:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15864, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15861, + "mutability": "mutable", + "name": "hi", + "nameLocation": "16260:2:38", + "nodeType": "VariableDeclaration", + "scope": 15881, + "src": "16252:10:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15860, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16252:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15863, + "mutability": "mutable", + "name": "hv", + "nameLocation": "16272:2:38", + "nodeType": "VariableDeclaration", + "scope": 15881, + "src": "16264:10:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15862, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16264:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16251:24:38" + }, + "returnParameters": { + "id": 15865, + "nodeType": "ParameterList", + "parameters": [], + "src": "16285:0:38" + }, + "scope": 15972, + "src": "16224:192:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 15934, + "nodeType": "Block", + "src": "16496:510:38", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 15890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15888, + "name": "revocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15885, + "src": "16510:15:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 15889, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16529:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16510:20:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15895, + "nodeType": "IfStatement", + "src": "16506:72:38", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 15892, + "name": "revocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15885, + "src": "16562:15:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 15891, + "name": "InvalidRevocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14759, + "src": "16539:22:38", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint64_$returns$_t_error_$", + "typeString": "function (uint64) pure returns (error)" + } + }, + "id": 15893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16539:39:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 15894, + "nodeType": "RevertStatement", + "src": "16532:46:38" + } + }, + { + "assignments": [ + 15898 + ], + "declarations": [ + { + "constant": false, + "id": 15898, + "mutability": "mutable", + "name": "$", + "nameLocation": "16631:1:38", + "nodeType": "VariableDeclaration", + "scope": 15934, + "src": "16588:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 15897, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15896, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "16588:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "16588:34:38" + }, + "referencedDeclaration": 14844, + "src": "16588:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 15901, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15899, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "16635:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16635:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16588:87:38" + }, + { + "assignments": [ + 15903 + ], + "declarations": [ + { + "constant": false, + "id": 15903, + "mutability": "mutable", + "name": "existingNonce", + "nameLocation": "16692:13:38", + "nodeType": "VariableDeclaration", + "scope": 15934, + "src": "16685:20:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 15902, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "16685:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 15908, + "initialValue": { + "baseExpression": { + "expression": { + "id": 15904, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15898, + "src": "16708:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15905, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16710:28:38", + "memberName": "_nullifiersToRevocationNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 14839, + "src": "16708:30:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$", + "typeString": "mapping(uint256 => uint64)" + } + }, + "id": 15907, + "indexExpression": { + "id": 15906, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15883, + "src": "16739:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16708:41:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16685:64:38" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 15911, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15909, + "name": "existingNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15903, + "src": "16763:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 15910, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16780:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "16763:18:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15925, + "nodeType": "IfStatement", + "src": "16759:172:38", + "trueBody": { + "id": 15924, + "nodeType": "Block", + "src": "16783:148:38", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 15916, + "name": "existingNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15903, + "src": "16844:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15912, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "16797:23:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 15913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16797:25:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 15914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16823:8:38", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "16797:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 15915, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16832:11:38", + "memberName": "revokeClaim", + "nodeType": "MemberAccess", + "referencedDeclaration": 1614, + "src": "16797:46:38", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint64)" + } + }, + "id": 15917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16797:61:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15918, + "nodeType": "ExpressionStatement", + "src": "16797:61:38" + }, + { + "eventCall": { + "arguments": [ + { + "id": 15920, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15883, + "src": "16895:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 15921, + "name": "existingNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15903, + "src": "16906:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 15919, + "name": "CredentialRevoked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14787, + "src": "16877:17:38", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint64_$returns$__$", + "typeString": "function (uint256,uint64)" + } + }, + "id": 15922, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16877:43:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 15923, + "nodeType": "EmitStatement", + "src": "16872:48:38" + } + ] + } + }, + { + "expression": { + "id": 15932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 15926, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15898, + "src": "16940:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15929, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16942:28:38", + "memberName": "_nullifiersToRevocationNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 14839, + "src": "16940:30:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$", + "typeString": "mapping(uint256 => uint64)" + } + }, + "id": 15930, + "indexExpression": { + "id": 15928, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15883, + "src": "16971:9:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16940:41:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 15931, + "name": "revocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15885, + "src": "16984:15:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "16940:59:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 15933, + "nodeType": "ExpressionStatement", + "src": "16940:59:38" + } + ] + }, + "id": 15935, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setNullifier", + "nameLocation": "16431:13:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15886, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15883, + "mutability": "mutable", + "name": "nullifier", + "nameLocation": "16453:9:38", + "nodeType": "VariableDeclaration", + "scope": 15935, + "src": "16445:17:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15882, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16445:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15885, + "mutability": "mutable", + "name": "revocationNonce", + "nameLocation": "16471:15:38", + "nodeType": "VariableDeclaration", + "scope": 15935, + "src": "16464:22:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 15884, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "16464:6:38", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "16444:43:38" + }, + "returnParameters": { + "id": 15887, + "nodeType": "ParameterList", + "parameters": [], + "src": "16496:0:38" + }, + "scope": 15972, + "src": "16422:584:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 15970, + "nodeType": "Block", + "src": "17080:220:38", + "statements": [ + { + "assignments": [ + 15943 + ], + "declarations": [ + { + "constant": false, + "id": 15943, + "mutability": "mutable", + "name": "$", + "nameLocation": "17133:1:38", + "nodeType": "VariableDeclaration", + "scope": 15970, + "src": "17090:44:38", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + }, + "typeName": { + "id": 15942, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 15941, + "name": "AnonAadhaarCredentialIssuerStorage", + "nameLocations": [ + "17090:34:38" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14844, + "src": "17090:34:38" + }, + "referencedDeclaration": 14844, + "src": "17090:34:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 15946, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 15944, + "name": "_getAnonAadhaarCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14855, + "src": "17137:38:38", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr_$", + "typeString": "function () pure returns (struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer)" + } + }, + "id": 15945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17137:40:38", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17090:87:38" + }, + { + "body": { + "id": 15968, + "nodeType": "Block", + "src": "17235:59:38", + "statements": [ + { + "expression": { + "id": 15966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 15958, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15943, + "src": "17249:1:38", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AnonAadhaarCredentialIssuerStorage_$14844_storage_ptr", + "typeString": "struct AnonAadhaarCredentialIssuer.AnonAadhaarCredentialIssuerStorage storage pointer" + } + }, + "id": 15963, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17251:10:38", + "memberName": "qrVersions", + "nodeType": "MemberAccess", + "referencedDeclaration": 14843, + "src": "17249:12:38", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 15964, + "indexExpression": { + "baseExpression": { + "id": 15960, + "name": "qrVersions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15938, + "src": "17262:10:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 15962, + "indexExpression": { + "id": 15961, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15948, + "src": "17273:1:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17262:13:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17249:27:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 15965, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17279:4:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "17249:34:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15967, + "nodeType": "ExpressionStatement", + "src": "17249:34:38" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 15954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 15951, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15948, + "src": "17207:1:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 15952, + "name": "qrVersions", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15938, + "src": "17211:10:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[] calldata" + } + }, + "id": 15953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17222:6:38", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "17211:17:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17207:21:38", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 15969, + "initializationExpression": { + "assignments": [ + 15948 + ], + "declarations": [ + { + "constant": false, + "id": 15948, + "mutability": "mutable", + "name": "i", + "nameLocation": "17200:1:38", + "nodeType": "VariableDeclaration", + "scope": 15969, + "src": "17192:9:38", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15947, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17192:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 15950, + "initialValue": { + "hexValue": "30", + "id": 15949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17204:1:38", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "17192:13:38" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 15956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17230:3:38", + "subExpression": { + "id": 15955, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 15948, + "src": "17230:1:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15957, + "nodeType": "ExpressionStatement", + "src": "17230:3:38" + }, + "nodeType": "ForStatement", + "src": "17187:107:38" + } + ] + }, + "id": 15971, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addQrVersionBatch", + "nameLocation": "17021:18:38", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 15939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15938, + "mutability": "mutable", + "name": "qrVersions", + "nameLocation": "17059:10:38", + "nodeType": "VariableDeclaration", + "scope": 15971, + "src": "17040:29:38", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 15936, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17040:7:38", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 15937, + "nodeType": "ArrayTypeName", + "src": "17040:9:38", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + } + ], + "src": "17039:31:38" + }, + "returnParameters": { + "id": 15940, + "nodeType": "ParameterList", + "parameters": [], + "src": "17080:0:38" + }, + "scope": 15972, + "src": "17012:288:38", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 15973, + "src": "1526:15776:38", + "usedErrors": [ + 4804, + 4809, + 4985, + 4988, + 14723, + 14725, + 14727, + 14729, + 14731, + 14733, + 14735, + 14741, + 14743, + 14745, + 14747, + 14749, + 14751, + 14755, + 14759, + 14765, + 14769 + ], + "usedEvents": [ + 4668, + 4815, + 4993, + 14773, + 14777, + 14781, + 14787, + 14793 + ] + } + ], + "src": "36:17267:38" + }, + "id": 38 + }, + "contracts/verifiers/PassportCredentialIssuer.sol": { + "ast": { + "absolutePath": "contracts/verifiers/PassportCredentialIssuer.sol", + "exportedSymbols": { + "CircuitConstants": [ + 14505 + ], + "CurrentDateExpired": [ + 16026 + ], + "CurrentDateInFuture": [ + 16030 + ], + "DateTime": [ + 14469 + ], + "ECDSA": [ + 8617 + ], + "EIP712Upgradeable": [ + 5626 + ], + "EnumerableSet": [ + 12966 + ], + "IAttestationValidator": [ + 14634 + ], + "ICredentialCircuitVerifier": [ + 14709 + ], + "IdentityBase": [ + 1327 + ], + "IdentityLib": [ + 2217 + ], + "ImageHashIsNotWhitelisted": [ + 16062 + ], + "InvalidAttestation": [ + 16064 + ], + "InvalidAttestationUserDataLength": [ + 16068 + ], + "InvalidCredentialProof": [ + 16044 + ], + "InvalidHashIndex": [ + 16004 + ], + "InvalidHashValue": [ + 16008 + ], + "InvalidIssuerDidHash": [ + 16070 + ], + "InvalidLinkId": [ + 16000 + ], + "InvalidPassportSignatureProof": [ + 16046 + ], + "InvalidRevocationNonce": [ + 16074 + ], + "InvalidSignerAddress": [ + 16066 + ], + "InvalidSignerPassportSignatureProof": [ + 16050 + ], + "InvalidTemplateRoot": [ + 16014 + ], + "InvalidTransactor": [ + 16058 + ], + "IssuanceDateExpired": [ + 16018 + ], + "IssuanceDateInFuture": [ + 16022 + ], + "LengthMismatch": [ + 16040 + ], + "NoCredentialCircuitIdFound": [ + 16054 + ], + "NoVerifierSet": [ + 16042 + ], + "NullifierDoesNotExist": [ + 16034 + ], + "Ownable2StepUpgradeable": [ + 4773 + ], + "PassportCredentialIssuer": [ + 17540 + ] + }, + "id": 17541, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 15974, + "literals": [ + "solidity", + "0.8", + ".27" + ], + "nodeType": "PragmaDirective", + "src": "36:23:39" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "file": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "id": 15976, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17541, + "sourceUnit": 8618, + "src": "61:75:39", + "symbolAliases": [ + { + "foreign": { + "id": 15975, + "name": "ECDSA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8617, + "src": "69:5:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol", + "id": 15978, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17541, + "sourceUnit": 5627, + "src": "137:111:39", + "symbolAliases": [ + { + "foreign": { + "id": 15977, + "name": "EIP712Upgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "145:17:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", + "file": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", + "id": 15980, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17541, + "sourceUnit": 12967, + "src": "249:86:39", + "symbolAliases": [ + { + "foreign": { + "id": 15979, + "name": "EnumerableSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 12966, + "src": "257:13:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@iden3/contracts/lib/IdentityLib.sol", + "file": "@iden3/contracts/lib/IdentityLib.sol", + "id": 15982, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17541, + "sourceUnit": 2218, + "src": "336:65:39", + "symbolAliases": [ + { + "foreign": { + "id": 15981, + "name": "IdentityLib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2217, + "src": "344:11:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@iden3/contracts/lib/IdentityBase.sol", + "file": "@iden3/contracts/lib/IdentityBase.sol", + "id": 15984, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17541, + "sourceUnit": 1328, + "src": "402:67:39", + "symbolAliases": [ + { + "foreign": { + "id": 15983, + "name": "IdentityBase", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1327, + "src": "410:12:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/ICredentialCircuitVerifier.sol", + "file": "../interfaces/ICredentialCircuitVerifier.sol", + "id": 15986, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17541, + "sourceUnit": 14710, + "src": "470:88:39", + "symbolAliases": [ + { + "foreign": { + "id": 15985, + "name": "ICredentialCircuitVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14709, + "src": "478:26:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/constants/CircuitConstants.sol", + "file": "../constants/CircuitConstants.sol", + "id": 15988, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17541, + "sourceUnit": 14506, + "src": "559:67:39", + "symbolAliases": [ + { + "foreign": { + "id": 15987, + "name": "CircuitConstants", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14505, + "src": "567:16:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", + "file": "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol", + "id": 15990, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17541, + "sourceUnit": 4774, + "src": "627:111:39", + "symbolAliases": [ + { + "foreign": { + "id": 15989, + "name": "Ownable2StepUpgradeable", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4773, + "src": "635:23:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "@quant-finance/solidity-datetime/contracts/DateTime.sol", + "file": "@quant-finance/solidity-datetime/contracts/DateTime.sol", + "id": 15992, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17541, + "sourceUnit": 14470, + "src": "739:81:39", + "symbolAliases": [ + { + "foreign": { + "id": 15991, + "name": "DateTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14469, + "src": "747:8:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "absolutePath": "contracts/interfaces/IAttestationValidator.sol", + "file": "../interfaces/IAttestationValidator.sol", + "id": 15994, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 17541, + "sourceUnit": 14635, + "src": "821:78:39", + "symbolAliases": [ + { + "foreign": { + "id": 15993, + "name": "IAttestationValidator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14634, + "src": "829:21:39", + "typeDescriptions": {} + }, + "nameLocation": "-1:-1:-1" + } + ], + "unitAlias": "" + }, + { + "errorSelector": "ff8bc9f4", + "id": 16000, + "name": "InvalidLinkId", + "nameLocation": "907:13:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 15999, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 15996, + "mutability": "mutable", + "name": "linkId1", + "nameLocation": "929:7:39", + "nodeType": "VariableDeclaration", + "scope": 16000, + "src": "921:15:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15995, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "921:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15998, + "mutability": "mutable", + "name": "linkId2", + "nameLocation": "946:7:39", + "nodeType": "VariableDeclaration", + "scope": 16000, + "src": "938:15:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 15997, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "938:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "920:34:39" + }, + "src": "901:54:39" + }, + { + "errorSelector": "36355b0e", + "id": 16004, + "name": "InvalidHashIndex", + "nameLocation": "962:16:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16003, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16002, + "mutability": "mutable", + "name": "hashIndex", + "nameLocation": "987:9:39", + "nodeType": "VariableDeclaration", + "scope": 16004, + "src": "979:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "979:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "978:19:39" + }, + "src": "956:42:39" + }, + { + "errorSelector": "97b93236", + "id": 16008, + "name": "InvalidHashValue", + "nameLocation": "1005:16:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16006, + "mutability": "mutable", + "name": "hashValue", + "nameLocation": "1030:9:39", + "nodeType": "VariableDeclaration", + "scope": 16008, + "src": "1022:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1022:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1021:19:39" + }, + "src": "999:42:39" + }, + { + "errorSelector": "e7483791", + "id": 16014, + "name": "InvalidTemplateRoot", + "nameLocation": "1048:19:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16013, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16010, + "mutability": "mutable", + "name": "templateRoot", + "nameLocation": "1076:12:39", + "nodeType": "VariableDeclaration", + "scope": 16014, + "src": "1068:20:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16009, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1068:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16012, + "mutability": "mutable", + "name": "expectedTemplateRoot", + "nameLocation": "1098:20:39", + "nodeType": "VariableDeclaration", + "scope": 16014, + "src": "1090:28:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1090:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1067:52:39" + }, + "src": "1042:78:39" + }, + { + "errorSelector": "017a13e2", + "id": 16018, + "name": "IssuanceDateExpired", + "nameLocation": "1127:19:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16017, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16016, + "mutability": "mutable", + "name": "issuanceDate", + "nameLocation": "1155:12:39", + "nodeType": "VariableDeclaration", + "scope": 16018, + "src": "1147:20:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1147:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1146:22:39" + }, + "src": "1121:48:39" + }, + { + "errorSelector": "d8188335", + "id": 16022, + "name": "IssuanceDateInFuture", + "nameLocation": "1176:20:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16021, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16020, + "mutability": "mutable", + "name": "issuanceDate", + "nameLocation": "1205:12:39", + "nodeType": "VariableDeclaration", + "scope": 16022, + "src": "1197:20:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16019, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1197:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1196:22:39" + }, + "src": "1170:49:39" + }, + { + "errorSelector": "5d5e30bf", + "id": 16026, + "name": "CurrentDateExpired", + "nameLocation": "1226:18:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16024, + "mutability": "mutable", + "name": "currentDate", + "nameLocation": "1253:11:39", + "nodeType": "VariableDeclaration", + "scope": 16026, + "src": "1245:19:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1245:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1244:21:39" + }, + "src": "1220:46:39" + }, + { + "errorSelector": "53f3b141", + "id": 16030, + "name": "CurrentDateInFuture", + "nameLocation": "1273:19:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16029, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16028, + "mutability": "mutable", + "name": "currentDate", + "nameLocation": "1301:11:39", + "nodeType": "VariableDeclaration", + "scope": 16030, + "src": "1293:19:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16027, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1293:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1292:21:39" + }, + "src": "1267:47:39" + }, + { + "errorSelector": "52047769", + "id": 16034, + "name": "NullifierDoesNotExist", + "nameLocation": "1321:21:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16033, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16032, + "mutability": "mutable", + "name": "nullifier", + "nameLocation": "1351:9:39", + "nodeType": "VariableDeclaration", + "scope": 16034, + "src": "1343:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16031, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1343:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1342:19:39" + }, + "src": "1315:47:39" + }, + { + "errorSelector": "ab8b67c6", + "id": 16040, + "name": "LengthMismatch", + "nameLocation": "1369:14:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16039, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16036, + "mutability": "mutable", + "name": "length1", + "nameLocation": "1392:7:39", + "nodeType": "VariableDeclaration", + "scope": 16040, + "src": "1384:15:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16035, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1384:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16038, + "mutability": "mutable", + "name": "length2", + "nameLocation": "1409:7:39", + "nodeType": "VariableDeclaration", + "scope": 16040, + "src": "1401:15:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16037, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1401:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1383:34:39" + }, + "src": "1363:55:39" + }, + { + "errorSelector": "0ee78d58", + "id": 16042, + "name": "NoVerifierSet", + "nameLocation": "1425:13:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16041, + "nodeType": "ParameterList", + "parameters": [], + "src": "1438:2:39" + }, + "src": "1419:22:39" + }, + { + "errorSelector": "0205c8ec", + "id": 16044, + "name": "InvalidCredentialProof", + "nameLocation": "1448:22:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16043, + "nodeType": "ParameterList", + "parameters": [], + "src": "1470:2:39" + }, + "src": "1442:31:39" + }, + { + "errorSelector": "df2b56ff", + "id": 16046, + "name": "InvalidPassportSignatureProof", + "nameLocation": "1480:29:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16045, + "nodeType": "ParameterList", + "parameters": [], + "src": "1509:2:39" + }, + "src": "1474:38:39" + }, + { + "errorSelector": "a1943088", + "id": 16050, + "name": "InvalidSignerPassportSignatureProof", + "nameLocation": "1519:35:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16048, + "mutability": "mutable", + "name": "signer", + "nameLocation": "1563:6:39", + "nodeType": "VariableDeclaration", + "scope": 16050, + "src": "1555:14:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16047, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1555:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1554:16:39" + }, + "src": "1513:58:39" + }, + { + "errorSelector": "751391c4", + "id": 16054, + "name": "NoCredentialCircuitIdFound", + "nameLocation": "1578:26:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16053, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16052, + "mutability": "mutable", + "name": "circuitId", + "nameLocation": "1612:9:39", + "nodeType": "VariableDeclaration", + "scope": 16054, + "src": "1605:16:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16051, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1605:6:39", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1604:18:39" + }, + "src": "1572:51:39" + }, + { + "errorSelector": "1d83d27f", + "id": 16058, + "name": "InvalidTransactor", + "nameLocation": "1630:17:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16057, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16056, + "mutability": "mutable", + "name": "transactor", + "nameLocation": "1656:10:39", + "nodeType": "VariableDeclaration", + "scope": 16058, + "src": "1648:18:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16055, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1648:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1647:20:39" + }, + "src": "1624:44:39" + }, + { + "errorSelector": "8338dba5", + "id": 16062, + "name": "ImageHashIsNotWhitelisted", + "nameLocation": "1675:25:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16061, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16060, + "mutability": "mutable", + "name": "imageHash", + "nameLocation": "1709:9:39", + "nodeType": "VariableDeclaration", + "scope": 16062, + "src": "1701:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16059, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "1701:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "1700:19:39" + }, + "src": "1669:51:39" + }, + { + "errorSelector": "bd8ba84d", + "id": 16064, + "name": "InvalidAttestation", + "nameLocation": "1727:18:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16063, + "nodeType": "ParameterList", + "parameters": [], + "src": "1745:2:39" + }, + "src": "1721:27:39" + }, + { + "errorSelector": "4501a919", + "id": 16066, + "name": "InvalidSignerAddress", + "nameLocation": "1755:20:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16065, + "nodeType": "ParameterList", + "parameters": [], + "src": "1775:2:39" + }, + "src": "1749:29:39" + }, + { + "errorSelector": "128cc6a8", + "id": 16068, + "name": "InvalidAttestationUserDataLength", + "nameLocation": "1785:32:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16067, + "nodeType": "ParameterList", + "parameters": [], + "src": "1817:2:39" + }, + "src": "1779:41:39" + }, + { + "errorSelector": "fe0c887b", + "id": 16070, + "name": "InvalidIssuerDidHash", + "nameLocation": "1827:20:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16069, + "nodeType": "ParameterList", + "parameters": [], + "src": "1847:2:39" + }, + "src": "1821:29:39" + }, + { + "errorSelector": "6ff2d366", + "id": 16074, + "name": "InvalidRevocationNonce", + "nameLocation": "1857:22:39", + "nodeType": "ErrorDefinition", + "parameters": { + "id": 16073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16072, + "mutability": "mutable", + "name": "revocationNonce", + "nameLocation": "1887:15:39", + "nodeType": "VariableDeclaration", + "scope": 16074, + "src": "1880:22:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 16071, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "1880:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "1879:24:39" + }, + "src": "1851:53:39" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 16076, + "name": "IdentityBase", + "nameLocations": [ + "2058:12:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1327, + "src": "2058:12:39" + }, + "id": 16077, + "nodeType": "InheritanceSpecifier", + "src": "2058:12:39" + }, + { + "baseName": { + "id": 16078, + "name": "EIP712Upgradeable", + "nameLocations": [ + "2072:17:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5626, + "src": "2072:17:39" + }, + "id": 16079, + "nodeType": "InheritanceSpecifier", + "src": "2072:17:39" + }, + { + "baseName": { + "id": 16080, + "name": "Ownable2StepUpgradeable", + "nameLocations": [ + "2091:23:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4773, + "src": "2091:23:39" + }, + "id": 16081, + "nodeType": "InheritanceSpecifier", + "src": "2091:23:39" + } + ], + "canonicalName": "PassportCredentialIssuer", + "contractDependencies": [], + "contractKind": "contract", + "documentation": { + "id": 16075, + "nodeType": "StructuredDocumentation", + "src": "1906:114:39", + "text": " @dev Address ownership credential issuer.\n This issuer issue non-merklized credentials decentralized." + }, + "fullyImplemented": true, + "id": 17540, + "linearizedBaseContracts": [ + 17540, + 4773, + 4968, + 5282, + 5626, + 5651, + 5236, + 1327, + 8727, + 8739, + 158, + 94 + ], + "name": "PassportCredentialIssuer", + "nameLocation": "2030:24:39", + "nodeType": "ContractDefinition", + "nodes": [ + { + "global": false, + "id": 16085, + "libraryName": { + "id": 16082, + "name": "IdentityLib", + "nameLocations": [ + "2127:11:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 2217, + "src": "2127:11:39" + }, + "nodeType": "UsingForDirective", + "src": "2121:39:39", + "typeName": { + "id": 16084, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16083, + "name": "IdentityLib.Data", + "nameLocations": [ + "2143:11:39", + "2155:4:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 1371, + "src": "2143:16:39" + }, + "referencedDeclaration": 1371, + "src": "2143:16:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage_ptr", + "typeString": "struct IdentityLib.Data" + } + } + }, + { + "global": false, + "id": 16088, + "libraryName": { + "id": 16086, + "name": "ECDSA", + "nameLocations": [ + "2171:5:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8617, + "src": "2171:5:39" + }, + "nodeType": "UsingForDirective", + "src": "2165:24:39", + "typeName": { + "id": 16087, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2181:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + }, + { + "global": false, + "id": 16092, + "libraryName": { + "id": 16089, + "name": "EnumerableSet", + "nameLocations": [ + "2200:13:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12966, + "src": "2200:13:39" + }, + "nodeType": "UsingForDirective", + "src": "2194:49:39", + "typeName": { + "id": 16091, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16090, + "name": "EnumerableSet.AddressSet", + "nameLocations": [ + "2218:13:39", + "2232:10:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12653, + "src": "2218:24:39" + }, + "referencedDeclaration": 12653, + "src": "2218:24:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + } + }, + { + "global": false, + "id": 16095, + "libraryName": { + "id": 16093, + "name": "DateTime", + "nameLocations": [ + "2254:8:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14469, + "src": "2254:8:39" + }, + "nodeType": "UsingForDirective", + "src": "2248:27:39", + "typeName": { + "id": 16094, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2267:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "documentation": { + "id": 16096, + "nodeType": "StructuredDocumentation", + "src": "2281:47:39", + "text": " @dev Version of the contract" + }, + "functionSelector": "ffa1ad74", + "id": 16099, + "mutability": "constant", + "name": "VERSION", + "nameLocation": "2356:7:39", + "nodeType": "VariableDeclaration", + "scope": 17540, + "src": "2333:40:39", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16097, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2333:6:39", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "312e302e33", + "id": 16098, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2366:7:39", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ff079ec60e41e58015c3d06abca8c1edb1b2c61945fed5e35644385a142eb2a9", + "typeString": "literal_string \"1.0.3\"" + }, + "value": "1.0.3" + }, + "visibility": "public" + }, + { + "constant": true, + "documentation": { + "id": 16100, + "nodeType": "StructuredDocumentation", + "src": "2380:49:39", + "text": " @dev Version of EIP 712 domain" + }, + "functionSelector": "acb8cc49", + "id": 16103, + "mutability": "constant", + "name": "DOMAIN_VERSION", + "nameLocation": "2457:14:39", + "nodeType": "VariableDeclaration", + "scope": 17540, + "src": "2434:47:39", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16101, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2434:6:39", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "hexValue": "312e302e30", + "id": 16102, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2474:7:39", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c", + "typeString": "literal_string \"1.0.0\"" + }, + "value": "1.0.0" + }, + "visibility": "public" + }, + { + "constant": true, + "id": 16106, + "mutability": "constant", + "name": "DATE_20TH_CENTURY", + "nameLocation": "2513:17:39", + "nodeType": "VariableDeclaration", + "scope": 17540, + "src": "2488:51:39", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16104, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2488:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "353030303030", + "id": 16105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2533:6:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_500000_by_1", + "typeString": "int_const 500000" + }, + "value": "500000" + }, + "visibility": "private" + }, + { + "constant": true, + "documentation": { + "id": 16107, + "nodeType": "StructuredDocumentation", + "src": "2546:65:39", + "text": " @dev PassportCredential message data type hash" + }, + "functionSelector": "da936540", + "id": 16112, + "mutability": "constant", + "name": "PASSPORT_CREDENTIAL_MESSAGE_TYPEHASH", + "nameLocation": "2640:36:39", + "nodeType": "VariableDeclaration", + "scope": 17540, + "src": "2616:136:39", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16108, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2616:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "arguments": [ + { + "hexValue": "50617373706f727443726564656e7469616c2875696e74323536206c696e6b49642c75696e74323536206e756c6c696669657229", + "id": 16110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2697:54:39", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0d2a15c3140485b6db2a8c0f755486294daaae1eabcdd518f6beaf8e4ab4d834", + "typeString": "literal_string \"PassportCredential(uint256 linkId,uint256 nullifier)\"" + }, + "value": "PassportCredential(uint256 linkId,uint256 nullifier)" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_0d2a15c3140485b6db2a8c0f755486294daaae1eabcdd518f6beaf8e4ab4d834", + "typeString": "literal_string \"PassportCredential(uint256 linkId,uint256 nullifier)\"" + } + ], + "id": 16109, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "2687:9:39", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 16111, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "2687:65:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "public" + }, + { + "canonicalName": "PassportCredentialIssuer.StateInfo", + "id": 16117, + "members": [ + { + "constant": false, + "id": 16114, + "mutability": "mutable", + "name": "stateAddress", + "nameLocation": "2794:12:39", + "nodeType": "VariableDeclaration", + "scope": 16117, + "src": "2786:20:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2786:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16116, + "mutability": "mutable", + "name": "idType", + "nameLocation": "2823:6:39", + "nodeType": "VariableDeclaration", + "scope": 16117, + "src": "2816:13:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + }, + "typeName": { + "id": 16115, + "name": "bytes2", + "nodeType": "ElementaryTypeName", + "src": "2816:6:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + }, + "visibility": "internal" + } + ], + "name": "StateInfo", + "nameLocation": "2766:9:39", + "nodeType": "StructDefinition", + "scope": 17540, + "src": "2759:77:39", + "visibility": "public" + }, + { + "canonicalName": "PassportCredentialIssuer.PassportCredentialMessage", + "id": 16122, + "members": [ + { + "constant": false, + "id": 16119, + "mutability": "mutable", + "name": "linkId", + "nameLocation": "2893:6:39", + "nodeType": "VariableDeclaration", + "scope": 16122, + "src": "2885:14:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16118, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2885:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16121, + "mutability": "mutable", + "name": "nullifier", + "nameLocation": "2917:9:39", + "nodeType": "VariableDeclaration", + "scope": 16122, + "src": "2909:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2909:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "PassportCredentialMessage", + "nameLocation": "2849:25:39", + "nodeType": "StructDefinition", + "scope": 17540, + "src": "2842:91:39", + "visibility": "public" + }, + { + "canonicalName": "PassportCredentialIssuer.PassportSignatureProof", + "id": 16128, + "members": [ + { + "constant": false, + "id": 16125, + "mutability": "mutable", + "name": "passportCredentialMsg", + "nameLocation": "3005:21:39", + "nodeType": "VariableDeclaration", + "scope": 16128, + "src": "2979:47:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage" + }, + "typeName": { + "id": 16124, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16123, + "name": "PassportCredentialMessage", + "nameLocations": [ + "2979:25:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16122, + "src": "2979:25:39" + }, + "referencedDeclaration": 16122, + "src": "2979:25:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16127, + "mutability": "mutable", + "name": "signature", + "nameLocation": "3042:9:39", + "nodeType": "VariableDeclaration", + "scope": 16128, + "src": "3036:15:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 16126, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3036:5:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "PassportSignatureProof", + "nameLocation": "2946:22:39", + "nodeType": "StructDefinition", + "scope": 17540, + "src": "2939:119:39", + "visibility": "public" + }, + { + "canonicalName": "PassportCredentialIssuer.CredentialProof", + "id": 16133, + "members": [ + { + "constant": false, + "id": 16130, + "mutability": "mutable", + "name": "circuitId", + "nameLocation": "3104:9:39", + "nodeType": "VariableDeclaration", + "scope": 16133, + "src": "3097:16:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16129, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3097:6:39", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16132, + "mutability": "mutable", + "name": "proof", + "nameLocation": "3129:5:39", + "nodeType": "VariableDeclaration", + "scope": 16133, + "src": "3123:11:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 16131, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3123:5:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "name": "CredentialProof", + "nameLocation": "3071:15:39", + "nodeType": "StructDefinition", + "scope": 17540, + "src": "3064:77:39", + "visibility": "public" + }, + { + "canonicalName": "PassportCredentialIssuer.ProofInputs", + "id": 16150, + "members": [ + { + "constant": false, + "id": 16135, + "mutability": "mutable", + "name": "hashIndex", + "nameLocation": "3184:9:39", + "nodeType": "VariableDeclaration", + "scope": 16150, + "src": "3176:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16134, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3176:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16137, + "mutability": "mutable", + "name": "hashValue", + "nameLocation": "3211:9:39", + "nodeType": "VariableDeclaration", + "scope": 16150, + "src": "3203:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16136, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3203:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16139, + "mutability": "mutable", + "name": "issuanceDate", + "nameLocation": "3238:12:39", + "nodeType": "VariableDeclaration", + "scope": 16150, + "src": "3230:20:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16138, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3230:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16141, + "mutability": "mutable", + "name": "currentDate", + "nameLocation": "3268:11:39", + "nodeType": "VariableDeclaration", + "scope": 16150, + "src": "3260:19:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3260:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16143, + "mutability": "mutable", + "name": "templateRoot", + "nameLocation": "3297:12:39", + "nodeType": "VariableDeclaration", + "scope": 16150, + "src": "3289:20:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16142, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3289:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16145, + "mutability": "mutable", + "name": "linkIdCredentialProof", + "nameLocation": "3327:21:39", + "nodeType": "VariableDeclaration", + "scope": 16150, + "src": "3319:29:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3319:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16147, + "mutability": "mutable", + "name": "revocationNonce", + "nameLocation": "3365:15:39", + "nodeType": "VariableDeclaration", + "scope": 16150, + "src": "3358:22:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 16146, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3358:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16149, + "mutability": "mutable", + "name": "issuerDidHash", + "nameLocation": "3398:13:39", + "nodeType": "VariableDeclaration", + "scope": 16150, + "src": "3390:21:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3390:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "ProofInputs", + "nameLocation": "3154:11:39", + "nodeType": "StructDefinition", + "scope": 17540, + "src": "3147:271:39", + "visibility": "public" + }, + { + "canonicalName": "PassportCredentialIssuer.PassportCredentialIssuerStorage", + "documentation": { + "id": 16151, + "nodeType": "StructuredDocumentation", + "src": "3424:79:39", + "text": "@custom:storage-location erc7201:polygonid.storage.PassportCredentialIssuer" + }, + "id": 16181, + "members": [ + { + "constant": false, + "id": 16153, + "mutability": "mutable", + "name": "_expirationTime", + "nameLocation": "3565:15:39", + "nodeType": "VariableDeclaration", + "scope": 16181, + "src": "3557:23:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3557:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16155, + "mutability": "mutable", + "name": "_templateRoot", + "nameLocation": "3598:13:39", + "nodeType": "VariableDeclaration", + "scope": 16181, + "src": "3590:21:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3590:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16157, + "mutability": "mutable", + "name": "_maxFutureTime", + "nameLocation": "3629:14:39", + "nodeType": "VariableDeclaration", + "scope": 16181, + "src": "3621:22:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16156, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3621:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16161, + "mutability": "mutable", + "name": "_credentialVerifiers", + "nameLocation": "3699:20:39", + "nodeType": "VariableDeclaration", + "scope": 16181, + "src": "3653:66:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", + "typeString": "mapping(string => address)" + }, + "typeName": { + "id": 16160, + "keyName": "circuitId", + "keyNameLocation": "3668:9:39", + "keyType": { + "id": 16158, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3661:6:39", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "nodeType": "Mapping", + "src": "3653:45:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", + "typeString": "mapping(string => address)" + }, + "valueName": "verifier", + "valueNameLocation": "3689:8:39", + "valueType": { + "id": 16159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3681:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16164, + "mutability": "mutable", + "name": "_signers", + "nameLocation": "3754:8:39", + "nodeType": "VariableDeclaration", + "scope": 16181, + "src": "3729:33:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 16163, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16162, + "name": "EnumerableSet.AddressSet", + "nameLocations": [ + "3729:13:39", + "3743:10:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12653, + "src": "3729:24:39" + }, + "referencedDeclaration": 12653, + "src": "3729:24:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16167, + "mutability": "mutable", + "name": "_attestationValidator", + "nameLocation": "3794:21:39", + "nodeType": "VariableDeclaration", + "scope": 16181, + "src": "3772:43:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAttestationValidator_$14634", + "typeString": "contract IAttestationValidator" + }, + "typeName": { + "id": 16166, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16165, + "name": "IAttestationValidator", + "nameLocations": [ + "3772:21:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14634, + "src": "3772:21:39" + }, + "referencedDeclaration": 14634, + "src": "3772:21:39", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAttestationValidator_$14634", + "typeString": "contract IAttestationValidator" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16171, + "mutability": "mutable", + "name": "_imageHashesWhitelist", + "nameLocation": "3871:21:39", + "nodeType": "VariableDeclaration", + "scope": 16181, + "src": "3825:67:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "typeName": { + "id": 16170, + "keyName": "imageHash", + "keyNameLocation": "3841:9:39", + "keyType": { + "id": 16168, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "3833:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "3825:45:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + }, + "valueName": "isApproved", + "valueNameLocation": "3859:10:39", + "valueType": { + "id": 16169, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3854:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16174, + "mutability": "mutable", + "name": "_transactors", + "nameLocation": "3927:12:39", + "nodeType": "VariableDeclaration", + "scope": 16181, + "src": "3902:37:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 16173, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16172, + "name": "EnumerableSet.AddressSet", + "nameLocations": [ + "3902:13:39", + "3916:10:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 12653, + "src": "3902:24:39" + }, + "referencedDeclaration": 12653, + "src": "3902:24:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16178, + "mutability": "mutable", + "name": "_nullifiersToRevocationNonce", + "nameLocation": "4002:28:39", + "nodeType": "VariableDeclaration", + "scope": 16181, + "src": "3949:81:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$", + "typeString": "mapping(uint256 => uint64)" + }, + "typeName": { + "id": 16177, + "keyName": "nullifier", + "keyNameLocation": "3965:9:39", + "keyType": { + "id": 16175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3957:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "3949:52:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$", + "typeString": "mapping(uint256 => uint64)" + }, + "valueName": "revocationNonce", + "valueNameLocation": "3985:15:39", + "valueType": { + "id": 16176, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "3978:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16180, + "mutability": "mutable", + "name": "_issuerDidHash", + "nameLocation": "4048:14:39", + "nodeType": "VariableDeclaration", + "scope": 16181, + "src": "4040:22:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16179, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4040:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "name": "PassportCredentialIssuerStorage", + "nameLocation": "3515:31:39", + "nodeType": "StructDefinition", + "scope": 17540, + "src": "3508:561:39", + "visibility": "public" + }, + { + "constant": true, + "id": 16184, + "mutability": "constant", + "name": "PassportCredentialIssuerStorageLocation", + "nameLocation": "4275:39:39", + "nodeType": "VariableDeclaration", + "scope": 17540, + "src": "4250:141:39", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16182, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4250:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": { + "hexValue": "307834303564373366323531656436633939376231633039376334366432663833306339343636323665353130633132333436643830653763356134646164333030", + "id": 16183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4325:66:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_29113139320118379246732773932274733016273694324052627283824947655604256297728_by_1", + "typeString": "int_const 2911...(69 digits omitted)...7728" + }, + "value": "0x405d73f251ed6c997b1c097c46d2f830c946626e510c12346d80e7c5a4dad300" + }, + "visibility": "private" + }, + { + "body": { + "id": 16191, + "nodeType": "Block", + "src": "4542:102:39", + "statements": [ + { + "AST": { + "nativeSrc": "4561:77:39", + "nodeType": "YulBlock", + "src": "4561:77:39", + "statements": [ + { + "nativeSrc": "4575:53:39", + "nodeType": "YulAssignment", + "src": "4575:53:39", + "value": { + "name": "PassportCredentialIssuerStorageLocation", + "nativeSrc": "4589:39:39", + "nodeType": "YulIdentifier", + "src": "4589:39:39" + }, + "variableNames": [ + { + "name": "store.slot", + "nativeSrc": "4575:10:39", + "nodeType": "YulIdentifier", + "src": "4575:10:39" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 16184, + "isOffset": false, + "isSlot": false, + "src": "4589:39:39", + "valueSize": 1 + }, + { + "declaration": 16188, + "isOffset": false, + "isSlot": true, + "src": "4575:10:39", + "suffix": "slot", + "valueSize": 1 + } + ], + "id": 16190, + "nodeType": "InlineAssembly", + "src": "4552:86:39" + } + ] + }, + "id": 16192, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_getPassportCredentialIssuerStorage", + "nameLocation": "4407:35:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16185, + "nodeType": "ParameterList", + "parameters": [], + "src": "4442:2:39" + }, + "returnParameters": { + "id": 16189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16188, + "mutability": "mutable", + "name": "store", + "nameLocation": "4531:5:39", + "nodeType": "VariableDeclaration", + "scope": 16192, + "src": "4491:45:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + }, + "typeName": { + "id": 16187, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16186, + "name": "PassportCredentialIssuerStorage", + "nameLocations": [ + "4491:31:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16181, + "src": "4491:31:39" + }, + "referencedDeclaration": 16181, + "src": "4491:31:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "src": "4490:47:39" + }, + "scope": 17540, + "src": "4398:246:39", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + { + "anonymous": false, + "documentation": { + "id": 16193, + "nodeType": "StructuredDocumentation", + "src": "4650:208:39", + "text": " @notice Emitted when a credential circuit verifier is updated.\n @param circuitId The credential circuit id.\n @param verifier The new verifier address for the credential circuit." + }, + "eventSelector": "5d864db8d88e9085fd5e7752a2094701e558355b75b561c00174d27aefd3e289", + "id": 16199, + "name": "CredentialCircuitVerifierUpdated", + "nameLocation": "4869:32:39", + "nodeType": "EventDefinition", + "parameters": { + "id": 16198, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16195, + "indexed": false, + "mutability": "mutable", + "name": "circuitId", + "nameLocation": "4909:9:39", + "nodeType": "VariableDeclaration", + "scope": 16199, + "src": "4902:16:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16194, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "4902:6:39", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16197, + "indexed": false, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "4928:8:39", + "nodeType": "VariableDeclaration", + "scope": 16199, + "src": "4920:16:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16196, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4920:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4901:36:39" + }, + "src": "4863:75:39" + }, + { + "anonymous": false, + "documentation": { + "id": 16200, + "nodeType": "StructuredDocumentation", + "src": "4943:125:39", + "text": " @notice Emitted when the expiration time is updated.\n @param expirationTime The new expiration time." + }, + "eventSelector": "7f7f3071c3c286700c199acae2fe071beb4a63dae1afff85186fa75d18090ae8", + "id": 16204, + "name": "ExpirationTimeUpdated", + "nameLocation": "5079:21:39", + "nodeType": "EventDefinition", + "parameters": { + "id": 16203, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16202, + "indexed": false, + "mutability": "mutable", + "name": "expirationTime", + "nameLocation": "5109:14:39", + "nodeType": "VariableDeclaration", + "scope": 16204, + "src": "5101:22:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16201, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5101:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5100:24:39" + }, + "src": "5073:52:39" + }, + { + "anonymous": false, + "documentation": { + "id": 16205, + "nodeType": "StructuredDocumentation", + "src": "5130:118:39", + "text": " @notice Emitted when the template root is updated.\n @param tampletRoot The new template root." + }, + "eventSelector": "f007a02ba428e63fa98b65269e70f9a9db847e0a839049a2f31f069282267734", + "id": 16209, + "name": "TemplateRootUpdated", + "nameLocation": "5259:19:39", + "nodeType": "EventDefinition", + "parameters": { + "id": 16208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16207, + "indexed": false, + "mutability": "mutable", + "name": "tampletRoot", + "nameLocation": "5287:11:39", + "nodeType": "VariableDeclaration", + "scope": 16209, + "src": "5279:19:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16206, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5279:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5278:21:39" + }, + "src": "5253:47:39" + }, + { + "anonymous": false, + "documentation": { + "id": 16210, + "nodeType": "StructuredDocumentation", + "src": "5305:103:39", + "text": " @notice Emitted when a new signer is added.\n @param signer The signer address." + }, + "eventSelector": "47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f24", + "id": 16214, + "name": "SignerAdded", + "nameLocation": "5419:11:39", + "nodeType": "EventDefinition", + "parameters": { + "id": 16213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16212, + "indexed": false, + "mutability": "mutable", + "name": "signer", + "nameLocation": "5439:6:39", + "nodeType": "VariableDeclaration", + "scope": 16214, + "src": "5431:14:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16211, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5431:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5430:16:39" + }, + "src": "5413:34:39" + }, + { + "anonymous": false, + "documentation": { + "id": 16215, + "nodeType": "StructuredDocumentation", + "src": "5452:115:39", + "text": " @notice Emitted when a new transactor is added.\n @param transactor The transactor address." + }, + "eventSelector": "0a33c33ca5c931f5cbdaa4137c8b7f3ea632aa05390959f913c410776733061b", + "id": 16219, + "name": "TransactorAdded", + "nameLocation": "5578:15:39", + "nodeType": "EventDefinition", + "parameters": { + "id": 16218, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16217, + "indexed": false, + "mutability": "mutable", + "name": "transactor", + "nameLocation": "5602:10:39", + "nodeType": "VariableDeclaration", + "scope": 16219, + "src": "5594:18:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16216, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5594:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5593:20:39" + }, + "src": "5572:42:39" + }, + { + "anonymous": false, + "documentation": { + "id": 16220, + "nodeType": "StructuredDocumentation", + "src": "5619:142:39", + "text": " @notice Emitted when a credential is revoked.\n @param revocationNonce The revocation nonce of the revoked credential." + }, + "eventSelector": "725d312746be14d750d0493aa7960a5aca3c30f98f74b0e07afc8f1a36b355c2", + "id": 16226, + "name": "CredentialRevoked", + "nameLocation": "5772:17:39", + "nodeType": "EventDefinition", + "parameters": { + "id": 16225, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16222, + "indexed": false, + "mutability": "mutable", + "name": "nullifier", + "nameLocation": "5798:9:39", + "nodeType": "VariableDeclaration", + "scope": 16226, + "src": "5790:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5790:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16224, + "indexed": false, + "mutability": "mutable", + "name": "revocationNonce", + "nameLocation": "5816:15:39", + "nodeType": "VariableDeclaration", + "scope": 16226, + "src": "5809:22:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 16223, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "5809:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "5789:43:39" + }, + "src": "5766:67:39" + }, + { + "anonymous": false, + "documentation": { + "id": 16227, + "nodeType": "StructuredDocumentation", + "src": "5838:124:39", + "text": " @notice Emitted when the max future time is updated.\n @param maxFutureTime The new max future time." + }, + "eventSelector": "73293f7b4f3fe4eeb423f647c95d70844d99749a80c8a93aa4c3d4996a63bc4a", + "id": 16231, + "name": "MaxFutureTimeUpdated", + "nameLocation": "5973:20:39", + "nodeType": "EventDefinition", + "parameters": { + "id": 16230, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16229, + "indexed": false, + "mutability": "mutable", + "name": "maxFutureTime", + "nameLocation": "6002:13:39", + "nodeType": "VariableDeclaration", + "scope": 16231, + "src": "5994:21:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5994:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5993:23:39" + }, + "src": "5967:50:39" + }, + { + "body": { + "id": 16238, + "nodeType": "Block", + "src": "6323:39:39", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16235, + "name": "_disableInitializers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5190, + "src": "6333:20:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 16236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6333:22:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16237, + "nodeType": "ExpressionStatement", + "src": "6333:22:39" + } + ] + }, + "documentation": { + "id": 16232, + "nodeType": "StructuredDocumentation", + "src": "6163:141:39", + "text": " @notice Constructor that disables initializers.\n @dev Prevents direct initialization of the implementation contract." + }, + "id": 16239, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16233, + "nodeType": "ParameterList", + "parameters": [], + "src": "6320:2:39" + }, + "returnParameters": { + "id": 16234, + "nodeType": "ParameterList", + "parameters": [], + "src": "6323:0:39" + }, + "scope": 17540, + "src": "6309:53:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 16246, + "nodeType": "Block", + "src": "6479:46:39", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16242, + "name": "_checkTransactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16915, + "src": "6489:16:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$__$", + "typeString": "function () view" + } + }, + "id": 16243, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6489:18:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16244, + "nodeType": "ExpressionStatement", + "src": "6489:18:39" + }, + { + "id": 16245, + "nodeType": "PlaceholderStatement", + "src": "6517:1:39" + } + ] + }, + "documentation": { + "id": 16240, + "nodeType": "StructuredDocumentation", + "src": "6368:79:39", + "text": " @dev Throws if called by any account other than transactors." + }, + "id": 16247, + "name": "onlyTransactors", + "nameLocation": "6461:15:39", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 16241, + "nodeType": "ParameterList", + "parameters": [], + "src": "6476:2:39" + }, + "src": "6452:73:39", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 16325, + "nodeType": "Block", + "src": "7021:516:39", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 16275, + "name": "stateInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16262, + "src": "7048:9:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$16117_calldata_ptr", + "typeString": "struct PassportCredentialIssuer.StateInfo calldata" + } + }, + "id": 16276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7058:12:39", + "memberName": "stateAddress", + "nodeType": "MemberAccess", + "referencedDeclaration": 16114, + "src": "7048:22:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 16277, + "name": "stateInfo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16262, + "src": "7072:9:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$16117_calldata_ptr", + "typeString": "struct PassportCredentialIssuer.StateInfo calldata" + } + }, + "id": 16278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7082:6:39", + "memberName": "idType", + "nodeType": "MemberAccess", + "referencedDeclaration": 16116, + "src": "7072:16:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes2", + "typeString": "bytes2" + } + ], + "expression": { + "id": 16272, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -25, + "src": "7031:5:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_super$_PassportCredentialIssuer_$17540_$", + "typeString": "type(contract super PassportCredentialIssuer)" + } + }, + "id": 16274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7037:10:39", + "memberName": "initialize", + "nodeType": "MemberAccess", + "referencedDeclaration": 887, + "src": "7031:16:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes2_$returns$__$", + "typeString": "function (address,bytes2)" + } + }, + "id": 16279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7031:58:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16280, + "nodeType": "ExpressionStatement", + "src": "7031:58:39" + }, + { + "expression": { + "arguments": [ + { + "id": 16282, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16264, + "src": "7114:5:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 16281, + "name": "__Ownable_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4828, + "src": "7099:14:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 16283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7099:21:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16284, + "nodeType": "ExpressionStatement", + "src": "7099:21:39" + }, + { + "assignments": [ + 16287 + ], + "declarations": [ + { + "constant": false, + "id": 16287, + "mutability": "mutable", + "name": "$", + "nameLocation": "7171:1:39", + "nodeType": "VariableDeclaration", + "scope": 16325, + "src": "7131:41:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + }, + "typeName": { + "id": 16286, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16285, + "name": "PassportCredentialIssuerStorage", + "nameLocations": [ + "7131:31:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16181, + "src": "7131:31:39" + }, + "referencedDeclaration": 16181, + "src": "7131:31:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 16290, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16288, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "7175:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7175:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7131:81:39" + }, + { + "expression": { + "id": 16295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 16291, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16287, + "src": "7222:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16293, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "7224:15:39", + "memberName": "_expirationTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 16153, + "src": "7222:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 16294, + "name": "expirationTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16249, + "src": "7242:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7222:34:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16296, + "nodeType": "ExpressionStatement", + "src": "7222:34:39" + }, + { + "expression": { + "id": 16301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 16297, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16287, + "src": "7266:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16299, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "7268:14:39", + "memberName": "_maxFutureTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 16157, + "src": "7266:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 16300, + "name": "maxFutureTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16251, + "src": "7285:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7266:32:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16302, + "nodeType": "ExpressionStatement", + "src": "7266:32:39" + }, + { + "expression": { + "id": 16307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 16303, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16287, + "src": "7308:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16305, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "7310:13:39", + "memberName": "_templateRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 16155, + "src": "7308:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 16306, + "name": "templateRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16253, + "src": "7326:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7308:30:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16308, + "nodeType": "ExpressionStatement", + "src": "7308:30:39" + }, + { + "expression": { + "id": 16313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 16309, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16287, + "src": "7348:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16311, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "7350:21:39", + "memberName": "_attestationValidator", + "nodeType": "MemberAccess", + "referencedDeclaration": 16167, + "src": "7348:23:39", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAttestationValidator_$14634", + "typeString": "contract IAttestationValidator" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 16312, + "name": "validator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16267, + "src": "7374:9:39", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAttestationValidator_$14634", + "typeString": "contract IAttestationValidator" + } + }, + "src": "7348:35:39", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAttestationValidator_$14634", + "typeString": "contract IAttestationValidator" + } + }, + "id": 16314, + "nodeType": "ExpressionStatement", + "src": "7348:35:39" + }, + { + "expression": { + "arguments": [ + { + "hexValue": "50617373706f72744973737565725631", + "id": 16316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7408:18:39", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_39b7842762054a1672fa4ad18f0be0be0b101b3f649bbca02fcf4d0864b1279e", + "typeString": "literal_string \"PassportIssuerV1\"" + }, + "value": "PassportIssuerV1" + }, + { + "id": 16317, + "name": "DOMAIN_VERSION", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16103, + "src": "7428:14:39", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_39b7842762054a1672fa4ad18f0be0be0b101b3f649bbca02fcf4d0864b1279e", + "typeString": "literal_string \"PassportIssuerV1\"" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 16315, + "name": "__EIP712_init", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "7394:13:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory,string memory)" + } + }, + "id": 16318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7394:49:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16319, + "nodeType": "ExpressionStatement", + "src": "7394:49:39" + }, + { + "expression": { + "arguments": [ + { + "id": 16321, + "name": "credentialCircuitIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16256, + "src": "7480:20:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + { + "id": 16322, + "name": "credentialVerifierAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16259, + "src": "7502:27:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 16320, + "name": "_updateCredentialVerifiers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17483, + "src": "7453:26:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (string calldata[] calldata,address[] calldata)" + } + }, + "id": 16323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7453:77:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16324, + "nodeType": "ExpressionStatement", + "src": "7453:77:39" + } + ] + }, + "functionSelector": "e633436f", + "id": 16326, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16270, + "kind": "modifierInvocation", + "modifierName": { + "id": 16269, + "name": "initializer", + "nameLocations": [ + "7009:11:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 5076, + "src": "7009:11:39" + }, + "nodeType": "ModifierInvocation", + "src": "7009:11:39" + } + ], + "name": "initializeIssuer", + "nameLocation": "6680:16:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16268, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16249, + "mutability": "mutable", + "name": "expirationTime", + "nameLocation": "6714:14:39", + "nodeType": "VariableDeclaration", + "scope": 16326, + "src": "6706:22:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16248, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6706:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16251, + "mutability": "mutable", + "name": "maxFutureTime", + "nameLocation": "6746:13:39", + "nodeType": "VariableDeclaration", + "scope": 16326, + "src": "6738:21:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16250, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6738:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16253, + "mutability": "mutable", + "name": "templateRoot", + "nameLocation": "6777:12:39", + "nodeType": "VariableDeclaration", + "scope": 16326, + "src": "6769:20:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16252, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6769:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16256, + "mutability": "mutable", + "name": "credentialCircuitIds", + "nameLocation": "6817:20:39", + "nodeType": "VariableDeclaration", + "scope": 16326, + "src": "6799:38:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 16254, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6799:6:39", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 16255, + "nodeType": "ArrayTypeName", + "src": "6799:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16259, + "mutability": "mutable", + "name": "credentialVerifierAddresses", + "nameLocation": "6866:27:39", + "nodeType": "VariableDeclaration", + "scope": 16326, + "src": "6847:46:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 16257, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6847:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 16258, + "nodeType": "ArrayTypeName", + "src": "6847:9:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16262, + "mutability": "mutable", + "name": "stateInfo", + "nameLocation": "6922:9:39", + "nodeType": "VariableDeclaration", + "scope": 16326, + "src": "6903:28:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$16117_calldata_ptr", + "typeString": "struct PassportCredentialIssuer.StateInfo" + }, + "typeName": { + "id": 16261, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16260, + "name": "StateInfo", + "nameLocations": [ + "6903:9:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16117, + "src": "6903:9:39" + }, + "referencedDeclaration": 16117, + "src": "6903:9:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_StateInfo_$16117_storage_ptr", + "typeString": "struct PassportCredentialIssuer.StateInfo" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16264, + "mutability": "mutable", + "name": "owner", + "nameLocation": "6949:5:39", + "nodeType": "VariableDeclaration", + "scope": 16326, + "src": "6941:13:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16263, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6941:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16267, + "mutability": "mutable", + "name": "validator", + "nameLocation": "6986:9:39", + "nodeType": "VariableDeclaration", + "scope": 16326, + "src": "6964:31:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAttestationValidator_$14634", + "typeString": "contract IAttestationValidator" + }, + "typeName": { + "id": 16266, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16265, + "name": "IAttestationValidator", + "nameLocations": [ + "6964:21:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14634, + "src": "6964:21:39" + }, + "referencedDeclaration": 14634, + "src": "6964:21:39", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAttestationValidator_$14634", + "typeString": "contract IAttestationValidator" + } + }, + "visibility": "internal" + } + ], + "src": "6696:305:39" + }, + "returnParameters": { + "id": 16271, + "nodeType": "ParameterList", + "parameters": [], + "src": "7021:0:39" + }, + "scope": 17540, + "src": "6671:866:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 16404, + "nodeType": "Block", + "src": "7611:909:39", + "statements": [ + { + "assignments": [ + 16335 + ], + "declarations": [ + { + "constant": false, + "id": 16335, + "mutability": "mutable", + "name": "$", + "nameLocation": "7661:1:39", + "nodeType": "VariableDeclaration", + "scope": 16404, + "src": "7621:41:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + }, + "typeName": { + "id": 16334, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16333, + "name": "PassportCredentialIssuerStorage", + "nameLocations": [ + "7621:31:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16181, + "src": "7621:31:39" + }, + "referencedDeclaration": 16181, + "src": "7621:31:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 16338, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16336, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "7665:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7665:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7621:81:39" + }, + { + "assignments": [ + 16340, + 16342, + 16344 + ], + "declarations": [ + { + "constant": false, + "id": 16340, + "mutability": "mutable", + "name": "userData", + "nameLocation": "7727:8:39", + "nodeType": "VariableDeclaration", + "scope": 16404, + "src": "7714:21:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 16339, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7714:5:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16342, + "mutability": "mutable", + "name": "imageHash", + "nameLocation": "7745:9:39", + "nodeType": "VariableDeclaration", + "scope": 16404, + "src": "7737:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16341, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7737:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16344, + "mutability": "mutable", + "name": "validated", + "nameLocation": "7761:9:39", + "nodeType": "VariableDeclaration", + "scope": 16404, + "src": "7756:14:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 16343, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "7756:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 16350, + "initialValue": { + "arguments": [ + { + "id": 16348, + "name": "attestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16328, + "src": "7844:11:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "expression": { + "id": 16345, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16335, + "src": "7774:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16346, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7789:21:39", + "memberName": "_attestationValidator", + "nodeType": "MemberAccess", + "referencedDeclaration": 16167, + "src": "7774:36:39", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAttestationValidator_$14634", + "typeString": "contract IAttestationValidator" + } + }, + "id": 16347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7824:19:39", + "memberName": "validateAttestation", + "nodeType": "MemberAccess", + "referencedDeclaration": 14617, + "src": "7774:69:39", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$returns$_t_bytes_memory_ptr_$_t_bytes32_$_t_bool_$", + "typeString": "function (bytes memory) external returns (bytes memory,bytes32,bool)" + } + }, + "id": 16349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7774:82:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes_memory_ptr_$_t_bytes32_$_t_bool_$", + "typeString": "tuple(bytes memory,bytes32,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7713:143:39" + }, + { + "condition": { + "id": 16354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7871:34:39", + "subExpression": { + "arguments": [ + { + "id": 16352, + "name": "imageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16342, + "src": "7895:9:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 16351, + "name": "isWhitelistedImageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16804, + "src": "7872:22:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (bytes32) view returns (bool)" + } + }, + "id": 16353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7872:33:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16360, + "nodeType": "IfStatement", + "src": "7867:108:39", + "trueBody": { + "id": 16359, + "nodeType": "Block", + "src": "7907:68:39", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 16356, + "name": "imageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16342, + "src": "7954:9:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 16355, + "name": "ImageHashIsNotWhitelisted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16062, + "src": "7928:25:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_bytes32_$returns$_t_error_$", + "typeString": "function (bytes32) pure returns (error)" + } + }, + "id": 16357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7928:36:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 16358, + "nodeType": "RevertStatement", + "src": "7921:43:39" + } + ] + } + }, + { + "condition": { + "id": 16362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "7989:10:39", + "subExpression": { + "id": 16361, + "name": "validated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16344, + "src": "7990:9:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16367, + "nodeType": "IfStatement", + "src": "7985:68:39", + "trueBody": { + "id": 16366, + "nodeType": "Block", + "src": "8001:52:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16363, + "name": "InvalidAttestation", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16064, + "src": "8022:18:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 16364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8022:20:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 16365, + "nodeType": "RevertStatement", + "src": "8015:27:39" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 16368, + "name": "userData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16340, + "src": "8067:8:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 16369, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8076:6:39", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "8067:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "hexValue": "3230", + "id": 16370, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8085:2:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "8067:20:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16376, + "nodeType": "IfStatement", + "src": "8063:92:39", + "trueBody": { + "id": 16375, + "nodeType": "Block", + "src": "8089:66:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16372, + "name": "InvalidAttestationUserDataLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16068, + "src": "8110:32:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 16373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8110:34:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 16374, + "nodeType": "RevertStatement", + "src": "8103:41:39" + } + ] + } + }, + { + "assignments": [ + 16378 + ], + "declarations": [ + { + "constant": false, + "id": 16378, + "mutability": "mutable", + "name": "userDataDecoded", + "nameLocation": "8204:15:39", + "nodeType": "VariableDeclaration", + "scope": 16404, + "src": "8196:23:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16377, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8196:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 16379, + "nodeType": "VariableDeclarationStatement", + "src": "8196:23:39" + }, + { + "AST": { + "nativeSrc": "8238:67:39", + "nodeType": "YulBlock", + "src": "8238:67:39", + "statements": [ + { + "nativeSrc": "8252:43:39", + "nodeType": "YulAssignment", + "src": "8252:43:39", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "userData", + "nativeSrc": "8281:8:39", + "nodeType": "YulIdentifier", + "src": "8281:8:39" + }, + { + "kind": "number", + "nativeSrc": "8291:2:39", + "nodeType": "YulLiteral", + "src": "8291:2:39", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8277:3:39", + "nodeType": "YulIdentifier", + "src": "8277:3:39" + }, + "nativeSrc": "8277:17:39", + "nodeType": "YulFunctionCall", + "src": "8277:17:39" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8271:5:39", + "nodeType": "YulIdentifier", + "src": "8271:5:39" + }, + "nativeSrc": "8271:24:39", + "nodeType": "YulFunctionCall", + "src": "8271:24:39" + }, + "variableNames": [ + { + "name": "userDataDecoded", + "nativeSrc": "8252:15:39", + "nodeType": "YulIdentifier", + "src": "8252:15:39" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 16340, + "isOffset": false, + "isSlot": false, + "src": "8281:8:39", + "valueSize": 1 + }, + { + "declaration": 16378, + "isOffset": false, + "isSlot": false, + "src": "8252:15:39", + "valueSize": 1 + } + ], + "id": 16380, + "nodeType": "InlineAssembly", + "src": "8229:76:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 16386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16381, + "name": "userDataDecoded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16378, + "src": "8319:15:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 16384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8346:1:39", + "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" + } + ], + "id": 16383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8338:7:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 16382, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8338:7:39", + "typeDescriptions": {} + } + }, + "id": 16385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8338:10:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8319:29:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16391, + "nodeType": "IfStatement", + "src": "8315:89:39", + "trueBody": { + "id": 16390, + "nodeType": "Block", + "src": "8350:54:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16387, + "name": "InvalidSignerAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16066, + "src": "8371:20:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 16388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8371:22:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 16389, + "nodeType": "RevertStatement", + "src": "8364:29:39" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 16397, + "name": "userDataDecoded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16378, + "src": "8454:15:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "expression": { + "id": 16392, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16335, + "src": "8439:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16395, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8441:8:39", + "memberName": "_signers", + "nodeType": "MemberAccess", + "referencedDeclaration": 16164, + "src": "8439:10:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 16396, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8450:3:39", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12680, + "src": "8439:14:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$12653_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" + } + }, + "id": 16398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8439:31:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16399, + "nodeType": "ExpressionStatement", + "src": "8439:31:39" + }, + { + "eventCall": { + "arguments": [ + { + "id": 16401, + "name": "userDataDecoded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16378, + "src": "8497:15:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 16400, + "name": "SignerAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16214, + "src": "8485:11:39", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 16402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8485:28:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16403, + "nodeType": "EmitStatement", + "src": "8480:33:39" + } + ] + }, + "functionSelector": "76ee7b49", + "id": 16405, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16331, + "kind": "modifierInvocation", + "modifierName": { + "id": 16330, + "name": "onlyTransactors", + "nameLocations": [ + "7595:15:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16247, + "src": "7595:15:39" + }, + "nodeType": "ModifierInvocation", + "src": "7595:15:39" + } + ], + "name": "addSigner", + "nameLocation": "7552:9:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16329, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16328, + "mutability": "mutable", + "name": "attestation", + "nameLocation": "7575:11:39", + "nodeType": "VariableDeclaration", + "scope": 16405, + "src": "7562:24:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 16327, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7562:5:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "7561:26:39" + }, + "returnParameters": { + "id": 16332, + "nodeType": "ParameterList", + "parameters": [], + "src": "7611:0:39" + }, + "scope": 17540, + "src": "7543:977:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 16418, + "nodeType": "Block", + "src": "8643:79:39", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16412, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "8660:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8660:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16414, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8698:8:39", + "memberName": "_signers", + "nodeType": "MemberAccess", + "referencedDeclaration": 16164, + "src": "8660:46:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 16415, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8707:6:39", + "memberName": "values", + "nodeType": "MemberAccess", + "referencedDeclaration": 12819, + "src": "8660:53:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$12653_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)" + } + }, + "id": 16416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8660:55:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 16411, + "id": 16417, + "nodeType": "Return", + "src": "8653:62:39" + } + ] + }, + "documentation": { + "id": 16406, + "nodeType": "StructuredDocumentation", + "src": "8526:49:39", + "text": " @notice Retrieves the signers." + }, + "functionSelector": "94cf795e", + "id": 16419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSigners", + "nameLocation": "8589:10:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16407, + "nodeType": "ParameterList", + "parameters": [], + "src": "8599:2:39" + }, + "returnParameters": { + "id": 16411, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16410, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16419, + "src": "8625:16:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 16408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8625:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 16409, + "nodeType": "ArrayTypeName", + "src": "8625:9:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "8624:18:39" + }, + "scope": 17540, + "src": "8580:142:39", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 16444, + "nodeType": "Block", + "src": "8788:180:39", + "statements": [ + { + "assignments": [ + 16428 + ], + "declarations": [ + { + "constant": false, + "id": 16428, + "mutability": "mutable", + "name": "$", + "nameLocation": "8838:1:39", + "nodeType": "VariableDeclaration", + "scope": 16444, + "src": "8798:41:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + }, + "typeName": { + "id": 16427, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16426, + "name": "PassportCredentialIssuerStorage", + "nameLocations": [ + "8798:31:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16181, + "src": "8798:31:39" + }, + "referencedDeclaration": 16181, + "src": "8798:31:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 16431, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16429, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "8842:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8842:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8798:81:39" + }, + { + "expression": { + "arguments": [ + { + "id": 16437, + "name": "transactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16421, + "src": "8908:10:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "expression": { + "id": 16432, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16428, + "src": "8889:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16435, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8891:12:39", + "memberName": "_transactors", + "nodeType": "MemberAccess", + "referencedDeclaration": 16174, + "src": "8889:14:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 16436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "8904:3:39", + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 12680, + "src": "8889:18:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$12653_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" + } + }, + "id": 16438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8889:30:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16439, + "nodeType": "ExpressionStatement", + "src": "8889:30:39" + }, + { + "eventCall": { + "arguments": [ + { + "id": 16441, + "name": "transactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16421, + "src": "8950:10:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 16440, + "name": "TransactorAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16219, + "src": "8934:15:39", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 16442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "8934:27:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16443, + "nodeType": "EmitStatement", + "src": "8929:32:39" + } + ] + }, + "functionSelector": "70f4f9df", + "id": 16445, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16424, + "kind": "modifierInvocation", + "modifierName": { + "id": 16423, + "name": "onlyOwner", + "nameLocations": [ + "8778:9:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "8778:9:39" + }, + "nodeType": "ModifierInvocation", + "src": "8778:9:39" + } + ], + "name": "addTransactor", + "nameLocation": "8737:13:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16422, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16421, + "mutability": "mutable", + "name": "transactor", + "nameLocation": "8759:10:39", + "nodeType": "VariableDeclaration", + "scope": 16445, + "src": "8751:18:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8751:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "8750:20:39" + }, + "returnParameters": { + "id": 16425, + "nodeType": "ParameterList", + "parameters": [], + "src": "8788:0:39" + }, + "scope": 17540, + "src": "8728:240:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 16458, + "nodeType": "Block", + "src": "9099:83:39", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16452, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "9116:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9116:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16454, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9154:12:39", + "memberName": "_transactors", + "nodeType": "MemberAccess", + "referencedDeclaration": 16174, + "src": "9116:50:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 16455, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9167:6:39", + "memberName": "values", + "nodeType": "MemberAccess", + "referencedDeclaration": 12819, + "src": "9116:57:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$12653_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)" + } + }, + "id": 16456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9116:59:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "functionReturnParameters": 16451, + "id": 16457, + "nodeType": "Return", + "src": "9109:66:39" + } + ] + }, + "documentation": { + "id": 16446, + "nodeType": "StructuredDocumentation", + "src": "8974:53:39", + "text": " @notice Retrieves the transactors." + }, + "functionSelector": "2d26b309", + "id": 16459, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTransactors", + "nameLocation": "9041:14:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16447, + "nodeType": "ParameterList", + "parameters": [], + "src": "9055:2:39" + }, + "returnParameters": { + "id": 16451, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16450, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16459, + "src": "9081:16:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 16448, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9081:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 16449, + "nodeType": "ArrayTypeName", + "src": "9081:9:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "9080:18:39" + }, + "scope": 17540, + "src": "9032:150:39", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 16469, + "nodeType": "Block", + "src": "9355:77:39", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16465, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "9372:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9372:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9410:15:39", + "memberName": "_expirationTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 16153, + "src": "9372:53:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 16464, + "id": 16468, + "nodeType": "Return", + "src": "9365:60:39" + } + ] + }, + "documentation": { + "id": 16460, + "nodeType": "StructuredDocumentation", + "src": "9188:93:39", + "text": " @notice Retrieves the expiration time.\n @return The expiration time." + }, + "functionSelector": "e23a845a", + "id": 16470, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getExpirationTime", + "nameLocation": "9295:17:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16461, + "nodeType": "ParameterList", + "parameters": [], + "src": "9312:2:39" + }, + "returnParameters": { + "id": 16464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16463, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16470, + "src": "9346:7:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16462, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9346:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9345:9:39" + }, + "scope": 17540, + "src": "9286:146:39", + "stateMutability": "view", + "virtual": true, + "visibility": "external" + }, + { + "body": { + "id": 16488, + "nodeType": "Block", + "src": "9619:139:39", + "statements": [ + { + "expression": { + "id": 16482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16478, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "9629:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9629:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16480, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "9667:15:39", + "memberName": "_expirationTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 16153, + "src": "9629:53:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 16481, + "name": "expirationTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16473, + "src": "9685:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9629:70:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16483, + "nodeType": "ExpressionStatement", + "src": "9629:70:39" + }, + { + "eventCall": { + "arguments": [ + { + "id": 16485, + "name": "expirationTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16473, + "src": "9736:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16484, + "name": "ExpirationTimeUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16204, + "src": "9714:21:39", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 16486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9714:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16487, + "nodeType": "EmitStatement", + "src": "9709:42:39" + } + ] + }, + "documentation": { + "id": 16471, + "nodeType": "StructuredDocumentation", + "src": "9438:106:39", + "text": " @notice Sets the expiration time.\n @param expirationTime The new expiration time." + }, + "functionSelector": "c0cc365d", + "id": 16489, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16476, + "kind": "modifierInvocation", + "modifierName": { + "id": 16475, + "name": "onlyOwner", + "nameLocations": [ + "9609:9:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "9609:9:39" + }, + "nodeType": "ModifierInvocation", + "src": "9609:9:39" + } + ], + "name": "setExpirationTime", + "nameLocation": "9558:17:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16474, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16473, + "mutability": "mutable", + "name": "expirationTime", + "nameLocation": "9584:14:39", + "nodeType": "VariableDeclaration", + "scope": 16489, + "src": "9576:22:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16472, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9576:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9575:24:39" + }, + "returnParameters": { + "id": 16477, + "nodeType": "ParameterList", + "parameters": [], + "src": "9619:0:39" + }, + "scope": 17540, + "src": "9549:209:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 16499, + "nodeType": "Block", + "src": "9925:75:39", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16495, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "9942:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9942:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16497, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9980:13:39", + "memberName": "_templateRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 16155, + "src": "9942:51:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 16494, + "id": 16498, + "nodeType": "Return", + "src": "9935:58:39" + } + ] + }, + "documentation": { + "id": 16490, + "nodeType": "StructuredDocumentation", + "src": "9764:89:39", + "text": " @notice Retrieves the template root.\n @return The template root." + }, + "functionSelector": "2c1d3204", + "id": 16500, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTemplateRoot", + "nameLocation": "9867:15:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16491, + "nodeType": "ParameterList", + "parameters": [], + "src": "9882:2:39" + }, + "returnParameters": { + "id": 16494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16493, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16500, + "src": "9916:7:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9916:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9915:9:39" + }, + "scope": 17540, + "src": "9858:142:39", + "stateMutability": "view", + "virtual": true, + "visibility": "external" + }, + { + "body": { + "id": 16518, + "nodeType": "Block", + "src": "10177:131:39", + "statements": [ + { + "expression": { + "id": 16512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16508, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "10187:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10187:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10225:13:39", + "memberName": "_templateRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 16155, + "src": "10187:51:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 16511, + "name": "templateRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16503, + "src": "10241:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10187:66:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16513, + "nodeType": "ExpressionStatement", + "src": "10187:66:39" + }, + { + "eventCall": { + "arguments": [ + { + "id": 16515, + "name": "templateRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16503, + "src": "10288:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16514, + "name": "TemplateRootUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16209, + "src": "10268:19:39", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 16516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10268:33:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16517, + "nodeType": "EmitStatement", + "src": "10263:38:39" + } + ] + }, + "documentation": { + "id": 16501, + "nodeType": "StructuredDocumentation", + "src": "10006:100:39", + "text": " @notice Sets the template root.\n @param templateRoot The new template root." + }, + "functionSelector": "b354c2d8", + "id": 16519, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16506, + "kind": "modifierInvocation", + "modifierName": { + "id": 16505, + "name": "onlyOwner", + "nameLocations": [ + "10167:9:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "10167:9:39" + }, + "nodeType": "ModifierInvocation", + "src": "10167:9:39" + } + ], + "name": "setTemplateRoot", + "nameLocation": "10120:15:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16504, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16503, + "mutability": "mutable", + "name": "templateRoot", + "nameLocation": "10144:12:39", + "nodeType": "VariableDeclaration", + "scope": 16519, + "src": "10136:20:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16502, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10136:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10135:22:39" + }, + "returnParameters": { + "id": 16507, + "nodeType": "ParameterList", + "parameters": [], + "src": "10177:0:39" + }, + "scope": 17540, + "src": "10111:197:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 16529, + "nodeType": "Block", + "src": "10480:76:39", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16525, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "10497:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10497:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16527, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "10535:14:39", + "memberName": "_maxFutureTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 16157, + "src": "10497:52:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 16524, + "id": 16528, + "nodeType": "Return", + "src": "10490:59:39" + } + ] + }, + "documentation": { + "id": 16520, + "nodeType": "StructuredDocumentation", + "src": "10314:93:39", + "text": " @notice Retrieves the max future time.\n @return The max future time." + }, + "functionSelector": "76dfc776", + "id": 16530, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMaxFutureTime", + "nameLocation": "10421:16:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16521, + "nodeType": "ParameterList", + "parameters": [], + "src": "10437:2:39" + }, + "returnParameters": { + "id": 16524, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16523, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16530, + "src": "10471:7:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16522, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10471:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10470:9:39" + }, + "scope": 17540, + "src": "10412:144:39", + "stateMutability": "view", + "virtual": true, + "visibility": "external" + }, + { + "body": { + "id": 16548, + "nodeType": "Block", + "src": "10740:135:39", + "statements": [ + { + "expression": { + "id": 16542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16538, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "10750:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16539, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10750:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16540, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "10788:14:39", + "memberName": "_maxFutureTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 16157, + "src": "10750:52:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 16541, + "name": "maxFutureTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16533, + "src": "10805:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10750:68:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16543, + "nodeType": "ExpressionStatement", + "src": "10750:68:39" + }, + { + "eventCall": { + "arguments": [ + { + "id": 16545, + "name": "maxFutureTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16533, + "src": "10854:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16544, + "name": "MaxFutureTimeUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16231, + "src": "10833:20:39", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 16546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "10833:35:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16547, + "nodeType": "EmitStatement", + "src": "10828:40:39" + } + ] + }, + "documentation": { + "id": 16531, + "nodeType": "StructuredDocumentation", + "src": "10562:105:39", + "text": " @notice Sets the max future time.\n @param maxFutureTime The new max future time." + }, + "functionSelector": "2e798ec1", + "id": 16549, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16536, + "kind": "modifierInvocation", + "modifierName": { + "id": 16535, + "name": "onlyOwner", + "nameLocations": [ + "10730:9:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "10730:9:39" + }, + "nodeType": "ModifierInvocation", + "src": "10730:9:39" + } + ], + "name": "setMaxFutureTime", + "nameLocation": "10681:16:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16534, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16533, + "mutability": "mutable", + "name": "maxFutureTime", + "nameLocation": "10706:13:39", + "nodeType": "VariableDeclaration", + "scope": 16549, + "src": "10698:21:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16532, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10698:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "10697:23:39" + }, + "returnParameters": { + "id": 16537, + "nodeType": "ParameterList", + "parameters": [], + "src": "10740:0:39" + }, + "scope": 17540, + "src": "10672:203:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 16564, + "nodeType": "Block", + "src": "11068:88:39", + "statements": [ + { + "expression": { + "id": 16562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16558, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "11078:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11078:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16560, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "11116:21:39", + "memberName": "_attestationValidator", + "nodeType": "MemberAccess", + "referencedDeclaration": 16167, + "src": "11078:59:39", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAttestationValidator_$14634", + "typeString": "contract IAttestationValidator" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 16561, + "name": "validator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16553, + "src": "11140:9:39", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAttestationValidator_$14634", + "typeString": "contract IAttestationValidator" + } + }, + "src": "11078:71:39", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAttestationValidator_$14634", + "typeString": "contract IAttestationValidator" + } + }, + "id": 16563, + "nodeType": "ExpressionStatement", + "src": "11078:71:39" + } + ] + }, + "documentation": { + "id": 16550, + "nodeType": "StructuredDocumentation", + "src": "10881:97:39", + "text": " @dev Set attestation validator\n @param validator - attestation validator" + }, + "functionSelector": "8a684553", + "id": 16565, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16556, + "kind": "modifierInvocation", + "modifierName": { + "id": 16555, + "name": "onlyOwner", + "nameLocations": [ + "11058:9:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "11058:9:39" + }, + "nodeType": "ModifierInvocation", + "src": "11058:9:39" + } + ], + "name": "setAttestationValidator", + "nameLocation": "10992:23:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16554, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16553, + "mutability": "mutable", + "name": "validator", + "nameLocation": "11038:9:39", + "nodeType": "VariableDeclaration", + "scope": 16565, + "src": "11016:31:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAttestationValidator_$14634", + "typeString": "contract IAttestationValidator" + }, + "typeName": { + "id": 16552, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16551, + "name": "IAttestationValidator", + "nameLocations": [ + "11016:21:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14634, + "src": "11016:21:39" + }, + "referencedDeclaration": 14634, + "src": "11016:21:39", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IAttestationValidator_$14634", + "typeString": "contract IAttestationValidator" + } + }, + "visibility": "internal" + } + ], + "src": "11015:33:39" + }, + "returnParameters": { + "id": 16557, + "nodeType": "ParameterList", + "parameters": [], + "src": "11068:0:39" + }, + "scope": 17540, + "src": "10983:173:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 16582, + "nodeType": "Block", + "src": "11557:74:39", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 16578, + "name": "circuitIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16569, + "src": "11594:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + { + "id": 16579, + "name": "verifierAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16572, + "src": "11606:17:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + ], + "id": 16577, + "name": "_updateCredentialVerifiers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17483, + "src": "11567:26:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$_t_array$_t_address_$dyn_calldata_ptr_$returns$__$", + "typeString": "function (string calldata[] calldata,address[] calldata)" + } + }, + "id": 16580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11567:57:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16581, + "nodeType": "ExpressionStatement", + "src": "11567:57:39" + } + ] + }, + "documentation": { + "id": 16566, + "nodeType": "StructuredDocumentation", + "src": "11162:240:39", + "text": " @dev Updates the credential circuit verifiers for a specific circuit identifiers.\n @param circuitIds The credential circuit identifiers.\n @param verifierAddresses The new credential circuit verifier addresses." + }, + "functionSelector": "badf055d", + "id": 16583, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16575, + "kind": "modifierInvocation", + "modifierName": { + "id": 16574, + "name": "onlyOwner", + "nameLocations": [ + "11547:9:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "11547:9:39" + }, + "nodeType": "ModifierInvocation", + "src": "11547:9:39" + } + ], + "name": "updateCredentialVerifiers", + "nameLocation": "11416:25:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16573, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16569, + "mutability": "mutable", + "name": "circuitIds", + "nameLocation": "11469:10:39", + "nodeType": "VariableDeclaration", + "scope": 16583, + "src": "11451:28:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 16567, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "11451:6:39", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 16568, + "nodeType": "ArrayTypeName", + "src": "11451:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16572, + "mutability": "mutable", + "name": "verifierAddresses", + "nameLocation": "11508:17:39", + "nodeType": "VariableDeclaration", + "scope": 16583, + "src": "11489:36:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 16570, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11489:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 16571, + "nodeType": "ArrayTypeName", + "src": "11489:9:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "11441:90:39" + }, + "returnParameters": { + "id": 16576, + "nodeType": "ParameterList", + "parameters": [], + "src": "11557:0:39" + }, + "scope": 17540, + "src": "11407:224:39", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 16597, + "nodeType": "Block", + "src": "11927:93:39", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16591, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "11944:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "11944:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16593, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "11982:20:39", + "memberName": "_credentialVerifiers", + "nodeType": "MemberAccess", + "referencedDeclaration": 16161, + "src": "11944:58:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", + "typeString": "mapping(string memory => address)" + } + }, + "id": 16595, + "indexExpression": { + "id": 16594, + "name": "circuitId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16586, + "src": "12003:9:39", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11944:69:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 16590, + "id": 16596, + "nodeType": "Return", + "src": "11937:76:39" + } + ] + }, + "documentation": { + "id": 16584, + "nodeType": "StructuredDocumentation", + "src": "11637:191:39", + "text": " @notice Retrieves the credential verifier address for a given circuit id.\n @param circuitId The circuit id identifier.\n @return The credential verifier address." + }, + "functionSelector": "a635c785", + "id": 16598, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "credentialVerifiers", + "nameLocation": "11842:19:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16586, + "mutability": "mutable", + "name": "circuitId", + "nameLocation": "11876:9:39", + "nodeType": "VariableDeclaration", + "scope": 16598, + "src": "11862:23:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16585, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "11862:6:39", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "11861:25:39" + }, + "returnParameters": { + "id": 16590, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16589, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16598, + "src": "11918:7:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16588, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11918:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "11917:9:39" + }, + "scope": 17540, + "src": "11833:187:39", + "stateMutability": "view", + "virtual": true, + "visibility": "external" + }, + { + "body": { + "id": 16645, + "nodeType": "Block", + "src": "12207:397:39", + "statements": [ + { + "assignments": [ + 16608 + ], + "declarations": [ + { + "constant": false, + "id": 16608, + "mutability": "mutable", + "name": "$", + "nameLocation": "12257:1:39", + "nodeType": "VariableDeclaration", + "scope": 16645, + "src": "12217:41:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + }, + "typeName": { + "id": 16607, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16606, + "name": "PassportCredentialIssuerStorage", + "nameLocations": [ + "12217:31:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16181, + "src": "12217:31:39" + }, + "referencedDeclaration": 16181, + "src": "12217:31:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 16611, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16609, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "12261:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12261:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12217:81:39" + }, + { + "assignments": [ + 16613 + ], + "declarations": [ + { + "constant": false, + "id": 16613, + "mutability": "mutable", + "name": "nonce", + "nameLocation": "12315:5:39", + "nodeType": "VariableDeclaration", + "scope": 16645, + "src": "12308:12:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 16612, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "12308:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 16618, + "initialValue": { + "baseExpression": { + "expression": { + "id": 16614, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16608, + "src": "12323:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16615, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12325:28:39", + "memberName": "_nullifiersToRevocationNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 16178, + "src": "12323:30:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$", + "typeString": "mapping(uint256 => uint64)" + } + }, + "id": 16617, + "indexExpression": { + "id": 16616, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16601, + "src": "12354:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12323:41:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12308:56:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 16621, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16619, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16613, + "src": "12378:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 16620, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12387:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12378:10:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16627, + "nodeType": "IfStatement", + "src": "12374:80:39", + "trueBody": { + "id": 16626, + "nodeType": "Block", + "src": "12390:64:39", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 16623, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16601, + "src": "12433:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16622, + "name": "NullifierDoesNotExist", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16034, + "src": "12411:21:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 16624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12411:32:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 16625, + "nodeType": "RevertStatement", + "src": "12404:39:39" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 16629, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16613, + "src": "12486:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 16628, + "name": "_revokeClaimAndTransit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17172, + "src": "12463:22:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint64_$returns$__$", + "typeString": "function (uint64)" + } + }, + "id": 16630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12463:29:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16631, + "nodeType": "ExpressionStatement", + "src": "12463:29:39" + }, + { + "expression": { + "id": 16638, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 16632, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16608, + "src": "12502:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16635, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12504:28:39", + "memberName": "_nullifiersToRevocationNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 16178, + "src": "12502:30:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$", + "typeString": "mapping(uint256 => uint64)" + } + }, + "id": 16636, + "indexExpression": { + "id": 16634, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16601, + "src": "12533:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12502:41:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 16637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12546:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12502:45:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 16639, + "nodeType": "ExpressionStatement", + "src": "12502:45:39" + }, + { + "eventCall": { + "arguments": [ + { + "id": 16641, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16601, + "src": "12580:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 16642, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16613, + "src": "12591:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 16640, + "name": "CredentialRevoked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16226, + "src": "12562:17:39", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint64_$returns$__$", + "typeString": "function (uint256,uint64)" + } + }, + "id": 16643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12562:35:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16644, + "nodeType": "EmitStatement", + "src": "12557:40:39" + } + ] + }, + "documentation": { + "id": 16599, + "nodeType": "StructuredDocumentation", + "src": "12026:112:39", + "text": " @notice Revoke credential and remove nullifier.\n @param nullifier credential nullifier." + }, + "functionSelector": "1b87278d", + "id": 16646, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16604, + "kind": "modifierInvocation", + "modifierName": { + "id": 16603, + "name": "onlyOwner", + "nameLocations": [ + "12197:9:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "12197:9:39" + }, + "nodeType": "ModifierInvocation", + "src": "12197:9:39" + } + ], + "name": "revokeCredential", + "nameLocation": "12152:16:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16601, + "mutability": "mutable", + "name": "nullifier", + "nameLocation": "12177:9:39", + "nodeType": "VariableDeclaration", + "scope": 16646, + "src": "12169:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12169:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12168:19:39" + }, + "returnParameters": { + "id": 16605, + "nodeType": "ParameterList", + "parameters": [], + "src": "12207:0:39" + }, + "scope": 17540, + "src": "12143:461:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 16666, + "nodeType": "Block", + "src": "12845:158:39", + "statements": [ + { + "assignments": [ + 16655 + ], + "declarations": [ + { + "constant": false, + "id": 16655, + "mutability": "mutable", + "name": "nonce", + "nameLocation": "12862:5:39", + "nodeType": "VariableDeclaration", + "scope": 16666, + "src": "12855:12:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 16654, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "12855:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 16661, + "initialValue": { + "baseExpression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16656, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "12870:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12870:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16658, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12908:28:39", + "memberName": "_nullifiersToRevocationNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 16178, + "src": "12870:66:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$", + "typeString": "mapping(uint256 => uint64)" + } + }, + "id": 16660, + "indexExpression": { + "id": 16659, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16649, + "src": "12950:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12870:99:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12855:114:39" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 16664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16662, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16655, + "src": "12986:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 16663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12995:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12986:10:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 16653, + "id": 16665, + "nodeType": "Return", + "src": "12979:17:39" + } + ] + }, + "documentation": { + "id": 16647, + "nodeType": "StructuredDocumentation", + "src": "12610:157:39", + "text": " @notice Retrieves wether the nullifier exists.\n @param nullifier The nullifier to check.\n @return Wether the nullifier exists." + }, + "functionSelector": "2afab62f", + "id": 16667, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "nullifierExists", + "nameLocation": "12781:15:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16650, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16649, + "mutability": "mutable", + "name": "nullifier", + "nameLocation": "12805:9:39", + "nodeType": "VariableDeclaration", + "scope": 16667, + "src": "12797:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12797:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12796:19:39" + }, + "returnParameters": { + "id": 16653, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16652, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16667, + "src": "12839:4:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 16651, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12839:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "12838:6:39" + }, + "scope": 17540, + "src": "12772:231:39", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 16788, + "nodeType": "Block", + "src": "13379:1254:39", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "expression": { + "id": 16678, + "name": "credentialProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16671, + "src": "13399:15:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialProof_$16133_memory_ptr", + "typeString": "struct PassportCredentialIssuer.CredentialProof memory" + } + }, + "id": 16679, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13415:9:39", + "memberName": "circuitId", + "nodeType": "MemberAccess", + "referencedDeclaration": 16130, + "src": "13399:25:39", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 16677, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13393:5:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 16676, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13393:5:39", + "typeDescriptions": {} + } + }, + "id": 16680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13393:32:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 16681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13426:6:39", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13393:39:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 16682, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13436:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13393:44:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16690, + "nodeType": "IfStatement", + "src": "13389:135:39", + "trueBody": { + "id": 16689, + "nodeType": "Block", + "src": "13439:85:39", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "id": 16685, + "name": "credentialProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16671, + "src": "13487:15:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialProof_$16133_memory_ptr", + "typeString": "struct PassportCredentialIssuer.CredentialProof memory" + } + }, + "id": 16686, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13503:9:39", + "memberName": "circuitId", + "nodeType": "MemberAccess", + "referencedDeclaration": 16130, + "src": "13487:25:39", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 16684, + "name": "NoCredentialCircuitIdFound", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16054, + "src": "13460:26:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$", + "typeString": "function (string memory) pure returns (error)" + } + }, + "id": 16687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13460:53:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 16688, + "nodeType": "RevertStatement", + "src": "13453:60:39" + } + ] + } + }, + { + "assignments": [ + 16695, + 16699, + 16705, + 16709 + ], + "declarations": [ + { + "constant": false, + "id": 16695, + "mutability": "mutable", + "name": "inputs1", + "nameLocation": "13565:7:39", + "nodeType": "VariableDeclaration", + "scope": 16788, + "src": "13548:24:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 16693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13548:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16694, + "nodeType": "ArrayTypeName", + "src": "13548:9:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16699, + "mutability": "mutable", + "name": "a1", + "nameLocation": "13604:2:39", + "nodeType": "VariableDeclaration", + "scope": 16788, + "src": "13586:20:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 16696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13586:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16698, + "length": { + "hexValue": "32", + "id": 16697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13594:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "13586:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16705, + "mutability": "mutable", + "name": "b1", + "nameLocation": "13641:2:39", + "nodeType": "VariableDeclaration", + "scope": 16788, + "src": "13620:23:39", + "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": 16700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13620:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16702, + "length": { + "hexValue": "32", + "id": 16701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13628:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "13620:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "id": 16704, + "length": { + "hexValue": "32", + "id": 16703, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13631:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "13620:13:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16709, + "mutability": "mutable", + "name": "c1", + "nameLocation": "13675:2:39", + "nodeType": "VariableDeclaration", + "scope": 16788, + "src": "13657:20:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 16706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13657:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16708, + "length": { + "hexValue": "32", + "id": 16707, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13665:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "13657:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + } + ], + "id": 16733, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 16712, + "name": "credentialProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16671, + "src": "13701:15:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialProof_$16133_memory_ptr", + "typeString": "struct PassportCredentialIssuer.CredentialProof memory" + } + }, + "id": 16713, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13717:5:39", + "memberName": "proof", + "nodeType": "MemberAccess", + "referencedDeclaration": 16132, + "src": "13701:21:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "baseExpression": { + "id": 16715, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13725:7:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 16714, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13725:7:39", + "typeDescriptions": {} + } + }, + "id": 16716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13725:9:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeString": "type(uint256[] memory)" + } + }, + { + "baseExpression": { + "id": 16718, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13736:7:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 16717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13736:7:39", + "typeDescriptions": {} + } + }, + "id": 16720, + "indexExpression": { + "hexValue": "32", + "id": 16719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13744:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13736:10:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$", + "typeString": "type(uint256[2] memory)" + } + }, + { + "baseExpression": { + "baseExpression": { + "id": 16722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13748:7:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 16721, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13748:7:39", + "typeDescriptions": {} + } + }, + "id": 16724, + "indexExpression": { + "hexValue": "32", + "id": 16723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13756:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13748:10:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$", + "typeString": "type(uint256[2] memory)" + } + }, + "id": 16726, + "indexExpression": { + "hexValue": "32", + "id": 16725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13759:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13748:13:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$", + "typeString": "type(uint256[2] memory[2] memory)" + } + }, + { + "baseExpression": { + "id": 16728, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13763:7:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 16727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13763:7:39", + "typeDescriptions": {} + } + }, + "id": 16730, + "indexExpression": { + "hexValue": "32", + "id": 16729, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13771:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13763:10:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_array$_t_uint256_$2_memory_ptr_$", + "typeString": "type(uint256[2] memory)" + } + } + ], + "id": 16731, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13724:50:39", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$_t_type$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$", + "typeString": "tuple(type(uint256[] memory),type(uint256[2] memory),type(uint256[2] memory[2] memory),type(uint256[2] memory))" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_tuple$_t_type$_t_array$_t_uint256_$dyn_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$_t_type$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_$_t_type$_t_array$_t_uint256_$2_memory_ptr_$_$", + "typeString": "tuple(type(uint256[] memory),type(uint256[2] memory),type(uint256[2] memory[2] memory),type(uint256[2] memory))" + } + ], + "expression": { + "id": 16710, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "13690:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 16711, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "13694:6:39", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "13690:10:39", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 16732, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13690:85:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$", + "typeString": "tuple(uint256[] memory,uint256[2] memory,uint256[2] memory[2] memory,uint256[2] memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13534:241:39" + }, + { + "assignments": [ + 16738 + ], + "declarations": [ + { + "constant": false, + "id": 16738, + "mutability": "mutable", + "name": "credentialCircuitProof", + "nameLocation": "13855:22:39", + "nodeType": "VariableDeclaration", + "scope": 16788, + "src": "13786:91:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof" + }, + "typeName": { + "id": 16737, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16736, + "name": "ICredentialCircuitVerifier.CredentialCircuitProof", + "nameLocations": [ + "13786:26:39", + "13813:22:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14684, + "src": "13786:49:39" + }, + "referencedDeclaration": 14684, + "src": "13786:49:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_storage_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof" + } + }, + "visibility": "internal" + } + ], + "id": 16770, + "initialValue": { + "arguments": [ + { + "id": 16741, + "name": "a1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16699, + "src": "13947:2:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "id": 16742, + "name": "b1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16705, + "src": "13967:2:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", + "typeString": "uint256[2] memory[2] memory" + } + }, + { + "id": 16743, + "name": "c1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16709, + "src": "13987:2:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "components": [ + { + "baseExpression": { + "id": 16744, + "name": "inputs1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16695, + "src": "14029:7:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 16746, + "indexExpression": { + "hexValue": "30", + "id": 16745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14037:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14029:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 16747, + "name": "inputs1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16695, + "src": "14061:7:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 16749, + "indexExpression": { + "hexValue": "31", + "id": 16748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14069:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14061:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 16750, + "name": "inputs1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16695, + "src": "14093:7:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 16752, + "indexExpression": { + "hexValue": "32", + "id": 16751, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14101:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14093:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 16753, + "name": "inputs1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16695, + "src": "14125:7:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 16755, + "indexExpression": { + "hexValue": "33", + "id": 16754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14133:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14125:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 16756, + "name": "inputs1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16695, + "src": "14157:7:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 16758, + "indexExpression": { + "hexValue": "34", + "id": 16757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14165:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14157:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 16759, + "name": "inputs1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16695, + "src": "14189:7:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 16761, + "indexExpression": { + "hexValue": "35", + "id": 16760, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14197:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14189:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 16762, + "name": "inputs1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16695, + "src": "14221:7:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 16764, + "indexExpression": { + "hexValue": "36", + "id": 16763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14229:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14221:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "id": 16765, + "name": "inputs1", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16695, + "src": "14253:7:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 16767, + "indexExpression": { + "hexValue": "37", + "id": 16766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14261:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14253:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 16768, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14007:274:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr", + "typeString": "uint256[8] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + }, + { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", + "typeString": "uint256[2] memory[2] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr", + "typeString": "uint256[8] memory" + } + ], + "expression": { + "id": 16739, + "name": "ICredentialCircuitVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14709, + "src": "13880:26:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ICredentialCircuitVerifier_$14709_$", + "typeString": "type(contract ICredentialCircuitVerifier)" + } + }, + "id": 16740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13907:22:39", + "memberName": "CredentialCircuitProof", + "nodeType": "MemberAccess", + "referencedDeclaration": 14684, + "src": "13880:49:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CredentialCircuitProof_$14684_storage_ptr_$", + "typeString": "type(struct ICredentialCircuitVerifier.CredentialCircuitProof storage pointer)" + } + }, + "id": 16769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13880:415:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13786:509:39" + }, + { + "assignments": [ + 16773 + ], + "declarations": [ + { + "constant": false, + "id": 16773, + "mutability": "mutable", + "name": "passportSignatureProofDecoded", + "nameLocation": "14336:29:39", + "nodeType": "VariableDeclaration", + "scope": 16788, + "src": "14306:59:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof" + }, + "typeName": { + "id": 16772, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16771, + "name": "PassportSignatureProof", + "nameLocations": [ + "14306:22:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16128, + "src": "14306:22:39" + }, + "referencedDeclaration": 16128, + "src": "14306:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof" + } + }, + "visibility": "internal" + } + ], + "id": 16780, + "initialValue": { + "arguments": [ + { + "id": 16776, + "name": "passportSignatureProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16673, + "src": "14392:22:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 16777, + "name": "PassportSignatureProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16128, + "src": "14429:22:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_PassportSignatureProof_$16128_storage_ptr_$", + "typeString": "type(struct PassportCredentialIssuer.PassportSignatureProof storage pointer)" + } + } + ], + "id": 16778, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "14428:24:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_PassportSignatureProof_$16128_storage_ptr_$", + "typeString": "type(struct PassportCredentialIssuer.PassportSignatureProof storage pointer)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_struct$_PassportSignatureProof_$16128_storage_ptr_$", + "typeString": "type(struct PassportCredentialIssuer.PassportSignatureProof storage pointer)" + } + ], + "expression": { + "id": 16774, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "14368:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 16775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "14372:6:39", + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "14368:10:39", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 16779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14368:94:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14306:156:39" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 16782, + "name": "credentialProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16671, + "src": "14512:15:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialProof_$16133_memory_ptr", + "typeString": "struct PassportCredentialIssuer.CredentialProof memory" + } + }, + "id": 16783, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14528:9:39", + "memberName": "circuitId", + "nodeType": "MemberAccess", + "referencedDeclaration": 16130, + "src": "14512:25:39", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 16784, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16738, + "src": "14551:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + }, + { + "id": 16785, + "name": "passportSignatureProofDecoded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16773, + "src": "14587:29:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + }, + { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory" + } + ], + "id": 16781, + "name": "_verifyPassportCredential", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16941, + "src": "14473:25:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_struct$_CredentialCircuitProof_$14684_memory_ptr_$_t_struct$_PassportSignatureProof_$16128_memory_ptr_$returns$__$", + "typeString": "function (string memory,struct ICredentialCircuitVerifier.CredentialCircuitProof memory,struct PassportCredentialIssuer.PassportSignatureProof memory)" + } + }, + "id": 16786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14473:153:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16787, + "nodeType": "ExpressionStatement", + "src": "14473:153:39" + } + ] + }, + "documentation": { + "id": 16668, + "nodeType": "StructuredDocumentation", + "src": "13009:233:39", + "text": " @notice Verifies the passport credential.\n @param credentialProof Credential proof for the passport credential\n @param passportSignatureProof Signature proof of the validation of the passport credential" + }, + "functionSelector": "e7c25d23", + "id": 16789, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyPassport", + "nameLocation": "13256:14:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16674, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16671, + "mutability": "mutable", + "name": "credentialProof", + "nameLocation": "13303:15:39", + "nodeType": "VariableDeclaration", + "scope": 16789, + "src": "13280:38:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialProof_$16133_memory_ptr", + "typeString": "struct PassportCredentialIssuer.CredentialProof" + }, + "typeName": { + "id": 16670, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16669, + "name": "CredentialProof", + "nameLocations": [ + "13280:15:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16133, + "src": "13280:15:39" + }, + "referencedDeclaration": 16133, + "src": "13280:15:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialProof_$16133_storage_ptr", + "typeString": "struct PassportCredentialIssuer.CredentialProof" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16673, + "mutability": "mutable", + "name": "passportSignatureProof", + "nameLocation": "13341:22:39", + "nodeType": "VariableDeclaration", + "scope": 16789, + "src": "13328:35:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 16672, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13328:5:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "13270:99:39" + }, + "returnParameters": { + "id": 16675, + "nodeType": "ParameterList", + "parameters": [], + "src": "13379:0:39" + }, + "scope": 17540, + "src": "13247:1386:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 16803, + "nodeType": "Block", + "src": "14929:94:39", + "statements": [ + { + "expression": { + "baseExpression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16797, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "14946:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16798, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14946:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16799, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14984:21:39", + "memberName": "_imageHashesWhitelist", + "nodeType": "MemberAccess", + "referencedDeclaration": 16171, + "src": "14946:59:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 16801, + "indexExpression": { + "id": 16800, + "name": "imageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16792, + "src": "15006:9:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14946:70:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 16796, + "id": 16802, + "nodeType": "Return", + "src": "14939:77:39" + } + ] + }, + "documentation": { + "id": 16790, + "nodeType": "StructuredDocumentation", + "src": "14639:199:39", + "text": " @dev Checks if imageHash of the enclave is whitelisted\n @param imageHash The imageHash of the enclave\n @return True if imageHash is whitelisted, otherwise returns false" + }, + "functionSelector": "fa78d88c", + "id": 16804, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isWhitelistedImageHash", + "nameLocation": "14852:22:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16792, + "mutability": "mutable", + "name": "imageHash", + "nameLocation": "14883:9:39", + "nodeType": "VariableDeclaration", + "scope": 16804, + "src": "14875:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16791, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14875:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "14874:19:39" + }, + "returnParameters": { + "id": 16796, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16795, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16804, + "src": "14923:4:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 16794, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "14923:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "14922:6:39" + }, + "scope": 17540, + "src": "14843:180:39", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 16820, + "nodeType": "Block", + "src": "15236:94:39", + "statements": [ + { + "expression": { + "id": 16818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16812, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "15246:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15246:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16814, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15284:21:39", + "memberName": "_imageHashesWhitelist", + "nodeType": "MemberAccess", + "referencedDeclaration": 16171, + "src": "15246:59:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 16816, + "indexExpression": { + "id": 16815, + "name": "imageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16807, + "src": "15306:9:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15246:70:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 16817, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15319:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "15246:77:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16819, + "nodeType": "ExpressionStatement", + "src": "15246:77:39" + } + ] + }, + "documentation": { + "id": 16805, + "nodeType": "StructuredDocumentation", + "src": "15029:133:39", + "text": " @dev Adds an imageHash of the enclave to the whitelist\n @param imageHash The imageHash of the enclave to add" + }, + "functionSelector": "8a03c166", + "id": 16821, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16810, + "kind": "modifierInvocation", + "modifierName": { + "id": 16809, + "name": "onlyOwner", + "nameLocations": [ + "15226:9:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "15226:9:39" + }, + "nodeType": "ModifierInvocation", + "src": "15226:9:39" + } + ], + "name": "addImageHashToWhitelist", + "nameLocation": "15176:23:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16807, + "mutability": "mutable", + "name": "imageHash", + "nameLocation": "15208:9:39", + "nodeType": "VariableDeclaration", + "scope": 16821, + "src": "15200:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16806, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15200:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "15199:19:39" + }, + "returnParameters": { + "id": 16811, + "nodeType": "ParameterList", + "parameters": [], + "src": "15236:0:39" + }, + "scope": 17540, + "src": "15167:163:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 16837, + "nodeType": "Block", + "src": "15556:95:39", + "statements": [ + { + "expression": { + "id": 16835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16829, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "15566:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15566:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16831, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15604:21:39", + "memberName": "_imageHashesWhitelist", + "nodeType": "MemberAccess", + "referencedDeclaration": 16171, + "src": "15566:59:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_bool_$", + "typeString": "mapping(bytes32 => bool)" + } + }, + "id": 16833, + "indexExpression": { + "id": 16832, + "name": "imageHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16824, + "src": "15626:9:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15566:70:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 16834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15639:5:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "15566:78:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16836, + "nodeType": "ExpressionStatement", + "src": "15566:78:39" + } + ] + }, + "documentation": { + "id": 16822, + "nodeType": "StructuredDocumentation", + "src": "15336:141:39", + "text": " @dev Removes an imageHash of the enclave from the whitelist\n @param imageHash The imageHash of the enclave to remove" + }, + "functionSelector": "23aafe3b", + "id": 16838, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16827, + "kind": "modifierInvocation", + "modifierName": { + "id": 16826, + "name": "onlyOwner", + "nameLocations": [ + "15546:9:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "15546:9:39" + }, + "nodeType": "ModifierInvocation", + "src": "15546:9:39" + } + ], + "name": "removeImageHashFromWhitelist", + "nameLocation": "15491:28:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16824, + "mutability": "mutable", + "name": "imageHash", + "nameLocation": "15528:9:39", + "nodeType": "VariableDeclaration", + "scope": 16838, + "src": "15520:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 16823, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15520:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "15519:19:39" + }, + "returnParameters": { + "id": 16828, + "nodeType": "ParameterList", + "parameters": [], + "src": "15556:0:39" + }, + "scope": 17540, + "src": "15482:169:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 16853, + "nodeType": "Block", + "src": "15841:78:39", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 16850, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16841, + "src": "15905:6:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16846, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "15851:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16847, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15851:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16848, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15889:8:39", + "memberName": "_signers", + "nodeType": "MemberAccess", + "referencedDeclaration": 16164, + "src": "15851:46:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 16849, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "15898:6:39", + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 12707, + "src": "15851:53:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$12653_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" + } + }, + "id": 16851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "15851:61:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16852, + "nodeType": "ExpressionStatement", + "src": "15851:61:39" + } + ] + }, + "documentation": { + "id": 16839, + "nodeType": "StructuredDocumentation", + "src": "15657:122:39", + "text": " @dev Removes a signer from the list of signers\n @param signer The address of the signer to remove" + }, + "functionSelector": "0e316ab7", + "id": 16854, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16844, + "kind": "modifierInvocation", + "modifierName": { + "id": 16843, + "name": "onlyOwner", + "nameLocations": [ + "15831:9:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "15831:9:39" + }, + "nodeType": "ModifierInvocation", + "src": "15831:9:39" + } + ], + "name": "removeSigner", + "nameLocation": "15793:12:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16842, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16841, + "mutability": "mutable", + "name": "signer", + "nameLocation": "15814:6:39", + "nodeType": "VariableDeclaration", + "scope": 16854, + "src": "15806:14:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16840, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15806:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "15805:16:39" + }, + "returnParameters": { + "id": 16845, + "nodeType": "ParameterList", + "parameters": [], + "src": "15841:0:39" + }, + "scope": 17540, + "src": "15784:135:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 16869, + "nodeType": "Block", + "src": "16133:86:39", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 16866, + "name": "transactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16857, + "src": "16201:10:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16862, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "16143:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16143:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16864, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16181:12:39", + "memberName": "_transactors", + "nodeType": "MemberAccess", + "referencedDeclaration": 16174, + "src": "16143:50:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 16865, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16194:6:39", + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 12707, + "src": "16143:57:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_AddressSet_$12653_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)" + } + }, + "id": 16867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16143:69:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16868, + "nodeType": "ExpressionStatement", + "src": "16143:69:39" + } + ] + }, + "documentation": { + "id": 16855, + "nodeType": "StructuredDocumentation", + "src": "15925:138:39", + "text": " @dev Removes a transactor from the list of transactors\n @param transactor The address of the transactor to remove" + }, + "functionSelector": "1f0f4f7a", + "id": 16870, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16860, + "kind": "modifierInvocation", + "modifierName": { + "id": 16859, + "name": "onlyOwner", + "nameLocations": [ + "16123:9:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "16123:9:39" + }, + "nodeType": "ModifierInvocation", + "src": "16123:9:39" + } + ], + "name": "removeTransactor", + "nameLocation": "16077:16:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16858, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16857, + "mutability": "mutable", + "name": "transactor", + "nameLocation": "16102:10:39", + "nodeType": "VariableDeclaration", + "scope": 16870, + "src": "16094:18:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 16856, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16094:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "16093:20:39" + }, + "returnParameters": { + "id": 16861, + "nodeType": "ParameterList", + "parameters": [], + "src": "16133:0:39" + }, + "scope": 17540, + "src": "16068:151:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 16880, + "nodeType": "Block", + "src": "16383:76:39", + "statements": [ + { + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16876, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "16400:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16400:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16438:14:39", + "memberName": "_issuerDidHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 16180, + "src": "16400:52:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 16875, + "id": 16879, + "nodeType": "Return", + "src": "16393:59:39" + } + ] + }, + "documentation": { + "id": 16871, + "nodeType": "StructuredDocumentation", + "src": "16225:93:39", + "text": " @notice Retrieves the issuer DID hash.\n @return The issuer DID hash." + }, + "functionSelector": "05417f79", + "id": 16881, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getIssuerDIDHash", + "nameLocation": "16332:16:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16872, + "nodeType": "ParameterList", + "parameters": [], + "src": "16348:2:39" + }, + "returnParameters": { + "id": 16875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16874, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 16881, + "src": "16374:7:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16873, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16374:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16373:9:39" + }, + "scope": 17540, + "src": "16323:136:39", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 16895, + "nodeType": "Block", + "src": "16646:85:39", + "statements": [ + { + "expression": { + "id": 16893, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16889, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "16656:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16656:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16891, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberLocation": "16694:14:39", + "memberName": "_issuerDidHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 16180, + "src": "16656:52:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 16892, + "name": "issuerDidHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16884, + "src": "16711:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16656:68:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 16894, + "nodeType": "ExpressionStatement", + "src": "16656:68:39" + } + ] + }, + "documentation": { + "id": 16882, + "nodeType": "StructuredDocumentation", + "src": "16465:108:39", + "text": " @notice Updates the issuer DID hash.\n @param issuerDidHash The new issuer DID hash." + }, + "functionSelector": "b1af19e7", + "id": 16896, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 16887, + "kind": "modifierInvocation", + "modifierName": { + "id": 16886, + "name": "onlyOwner", + "nameLocations": [ + "16636:9:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 4863, + "src": "16636:9:39" + }, + "nodeType": "ModifierInvocation", + "src": "16636:9:39" + } + ], + "name": "setIssuerDIDHash", + "nameLocation": "16587:16:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16885, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16884, + "mutability": "mutable", + "name": "issuerDidHash", + "nameLocation": "16612:13:39", + "nodeType": "VariableDeclaration", + "scope": 16896, + "src": "16604:21:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16604:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16603:23:39" + }, + "returnParameters": { + "id": 16888, + "nodeType": "ParameterList", + "parameters": [], + "src": "16646:0:39" + }, + "scope": 17540, + "src": "16578:153:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 16914, + "nodeType": "Block", + "src": "16779:159:39", + "statements": [ + { + "condition": { + "id": 16906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "16793:74:39", + "subExpression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16903, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "16854:10:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 16904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16854:12:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16899, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "16794:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16794:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16901, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16832:12:39", + "memberName": "_transactors", + "nodeType": "MemberAccess", + "referencedDeclaration": 16174, + "src": "16794:50:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 16902, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "16845:8:39", + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 12747, + "src": "16794:59:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$12653_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" + } + }, + "id": 16905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16794:73:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16913, + "nodeType": "IfStatement", + "src": "16789:143:39", + "trueBody": { + "id": 16912, + "nodeType": "Block", + "src": "16869:63:39", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16908, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5264, + "src": "16908:10:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", + "typeString": "function () view returns (address)" + } + }, + "id": 16909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16908:12:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 16907, + "name": "InvalidTransactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16058, + "src": "16890:17:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 16910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "16890:31:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 16911, + "nodeType": "RevertStatement", + "src": "16883:38:39" + } + ] + } + } + ] + }, + "id": 16915, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkTransactor", + "nameLocation": "16746:16:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16897, + "nodeType": "ParameterList", + "parameters": [], + "src": "16762:2:39" + }, + "returnParameters": { + "id": 16898, + "nodeType": "ParameterList", + "parameters": [], + "src": "16779:0:39" + }, + "scope": 17540, + "src": "16737:201:39", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 16940, + "nodeType": "Block", + "src": "17188:210:39", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 16927, + "name": "credentialCircuitId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16917, + "src": "17221:19:39", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 16928, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16920, + "src": "17242:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + ], + "id": 16926, + "name": "_verifyCredentialProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17278, + "src": "17198:22:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_string_memory_ptr_$_t_struct$_CredentialCircuitProof_$14684_memory_ptr_$returns$__$", + "typeString": "function (string memory,struct ICredentialCircuitVerifier.CredentialCircuitProof memory) view" + } + }, + "id": 16929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17198:67:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16930, + "nodeType": "ExpressionStatement", + "src": "17198:67:39" + }, + { + "expression": { + "arguments": [ + { + "id": 16932, + "name": "passportSignatureProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16923, + "src": "17292:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory" + } + ], + "id": 16931, + "name": "_verifySignature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17316, + "src": "17275:16:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_PassportSignatureProof_$16128_memory_ptr_$returns$__$", + "typeString": "function (struct PassportCredentialIssuer.PassportSignatureProof memory) view" + } + }, + "id": 16933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17275:40:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16934, + "nodeType": "ExpressionStatement", + "src": "17275:40:39" + }, + { + "expression": { + "arguments": [ + { + "id": 16936, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16920, + "src": "17344:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + }, + { + "id": 16937, + "name": "passportSignatureProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16923, + "src": "17368:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + }, + { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory" + } + ], + "id": 16935, + "name": "_afterProofsSubmit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17419, + "src": "17325:18:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_CredentialCircuitProof_$14684_memory_ptr_$_t_struct$_PassportSignatureProof_$16128_memory_ptr_$returns$__$", + "typeString": "function (struct ICredentialCircuitVerifier.CredentialCircuitProof memory,struct PassportCredentialIssuer.PassportSignatureProof memory)" + } + }, + "id": 16938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17325:66:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 16939, + "nodeType": "ExpressionStatement", + "src": "17325:66:39" + } + ] + }, + "id": 16941, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyPassportCredential", + "nameLocation": "16953:25:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16924, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16917, + "mutability": "mutable", + "name": "credentialCircuitId", + "nameLocation": "17002:19:39", + "nodeType": "VariableDeclaration", + "scope": 16941, + "src": "16988:33:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16916, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16988:6:39", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16920, + "mutability": "mutable", + "name": "credentialCircuitProof", + "nameLocation": "17088:22:39", + "nodeType": "VariableDeclaration", + "scope": 16941, + "src": "17031:79:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof" + }, + "typeName": { + "id": 16919, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16918, + "name": "ICredentialCircuitVerifier.CredentialCircuitProof", + "nameLocations": [ + "17031:26:39", + "17058:22:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14684, + "src": "17031:49:39" + }, + "referencedDeclaration": 14684, + "src": "17031:49:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_storage_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16923, + "mutability": "mutable", + "name": "passportSignatureProof", + "nameLocation": "17150:22:39", + "nodeType": "VariableDeclaration", + "scope": 16941, + "src": "17120:52:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof" + }, + "typeName": { + "id": 16922, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16921, + "name": "PassportSignatureProof", + "nameLocations": [ + "17120:22:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16128, + "src": "17120:22:39" + }, + "referencedDeclaration": 16128, + "src": "17120:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof" + } + }, + "visibility": "internal" + } + ], + "src": "16978:200:39" + }, + "returnParameters": { + "id": 16925, + "nodeType": "ParameterList", + "parameters": [], + "src": "17188:0:39" + }, + "scope": 17540, + "src": "16944:454:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17130, + "nodeType": "Block", + "src": "17728:2002:39", + "statements": [ + { + "assignments": [ + 16964 + ], + "declarations": [ + { + "constant": false, + "id": 16964, + "mutability": "mutable", + "name": "$", + "nameLocation": "17778:1:39", + "nodeType": "VariableDeclaration", + "scope": 17130, + "src": "17738:41:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + }, + "typeName": { + "id": 16963, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 16962, + "name": "PassportCredentialIssuerStorage", + "nameLocations": [ + "17738:31:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16181, + "src": "17738:31:39" + }, + "referencedDeclaration": 16181, + "src": "17738:31:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 16967, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 16965, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "17782:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 16966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17782:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17738:81:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16968, + "name": "hashIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16943, + "src": "17833:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 16969, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17846:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17833:14:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16975, + "nodeType": "IfStatement", + "src": "17829:54:39", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 16972, + "name": "hashIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16943, + "src": "17873:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16971, + "name": "InvalidHashIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16004, + "src": "17856:16:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 16973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17856:27:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 16974, + "nodeType": "RevertStatement", + "src": "17849:34:39" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16976, + "name": "hashValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16945, + "src": "17897:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 16977, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17910:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17897:14:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16983, + "nodeType": "IfStatement", + "src": "17893:54:39", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 16980, + "name": "hashValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16945, + "src": "17937:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16979, + "name": "InvalidHashValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16008, + "src": "17920:16:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 16981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "17920:27:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 16982, + "nodeType": "RevertStatement", + "src": "17913:34:39" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16987, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16984, + "name": "templateRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16951, + "src": "17962:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 16985, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16964, + "src": "17978:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16986, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "17980:13:39", + "memberName": "_templateRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 16155, + "src": "17978:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17962:31:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 16994, + "nodeType": "IfStatement", + "src": "17958:106:39", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 16989, + "name": "templateRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16951, + "src": "18034:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 16990, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16964, + "src": "18048:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 16991, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18050:13:39", + "memberName": "_templateRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 16155, + "src": "18048:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16988, + "name": "InvalidTemplateRoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16014, + "src": "18014:19:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 16992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18014:50:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 16993, + "nodeType": "RevertStatement", + "src": "18007:57:39" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 16997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 16995, + "name": "linkIdSignature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16955, + "src": "18079:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 16996, + "name": "linkIdCredentialProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16953, + "src": "18098:21:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18079:40:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17003, + "nodeType": "IfStatement", + "src": "18075:118:39", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 16999, + "name": "linkIdSignature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16955, + "src": "18154:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 17000, + "name": "linkIdCredentialProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16953, + "src": "18171:21:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 16998, + "name": "InvalidLinkId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16000, + "src": "18140:13:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 17001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18140:53:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 17002, + "nodeType": "RevertStatement", + "src": "18133:60:39" + } + }, + { + "assignments": [ + 17005 + ], + "declarations": [ + { + "constant": false, + "id": 17005, + "mutability": "mutable", + "name": "currentDateWithFullYear", + "nameLocation": "18212:23:39", + "nodeType": "VariableDeclaration", + "scope": 17130, + "src": "18204:31:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17004, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18204:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 17006, + "nodeType": "VariableDeclarationStatement", + "src": "18204:31:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17007, + "name": "currentDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16949, + "src": "18289:11:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 17008, + "name": "DATE_20TH_CENTURY", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16106, + "src": "18303:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18289:31:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 17023, + "nodeType": "Block", + "src": "18421:93:39", + "statements": [ + { + "expression": { + "id": 17021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 17017, + "name": "currentDateWithFullYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17005, + "src": "18455:23:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17018, + "name": "currentDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16949, + "src": "18481:11:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "3230303030303030", + "id": 17019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18495:8:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_20000000_by_1", + "typeString": "int_const 20000000" + }, + "value": "20000000" + }, + "src": "18481:22:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18455:48:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17022, + "nodeType": "ExpressionStatement", + "src": "18455:48:39" + } + ] + }, + "id": 17024, + "nodeType": "IfStatement", + "src": "18285:229:39", + "trueBody": { + "id": 17016, + "nodeType": "Block", + "src": "18322:93:39", + "statements": [ + { + "expression": { + "id": 17014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 17010, + "name": "currentDateWithFullYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17005, + "src": "18356:23:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17011, + "name": "currentDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16949, + "src": "18382:11:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "3139303030303030", + "id": 17012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18396:8:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_19000000_by_1", + "typeString": "int_const 19000000" + }, + "value": "19000000" + }, + "src": "18382:22:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18356:48:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17015, + "nodeType": "ExpressionStatement", + "src": "18356:48:39" + } + ] + } + }, + { + "id": 17097, + "nodeType": "Block", + "src": "18643:765:39", + "statements": [ + { + "assignments": [ + 17026, + 17028, + 17030 + ], + "declarations": [ + { + "constant": false, + "id": 17026, + "mutability": "mutable", + "name": "year", + "nameLocation": "18666:4:39", + "nodeType": "VariableDeclaration", + "scope": 17097, + "src": "18658:12:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18658:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17028, + "mutability": "mutable", + "name": "month", + "nameLocation": "18680:5:39", + "nodeType": "VariableDeclaration", + "scope": 17097, + "src": "18672:13:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17027, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18672:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17030, + "mutability": "mutable", + "name": "day", + "nameLocation": "18695:3:39", + "nodeType": "VariableDeclaration", + "scope": 17097, + "src": "18687:11:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17029, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18687:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 17039, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 17033, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "18744:5:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 17034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18750:9:39", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "18744:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "expression": { + "id": 17035, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16964, + "src": "18762:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 17036, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18764:15:39", + "memberName": "_expirationTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 16153, + "src": "18762:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18744:35:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 17031, + "name": "DateTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14469, + "src": "18702:8:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DateTime_$14469_$", + "typeString": "type(library DateTime)" + } + }, + "id": 17032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "18711:15:39", + "memberName": "timestampToDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 13347, + "src": "18702:24:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 17038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18702:91:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18657:136:39" + }, + { + "assignments": [ + 17041 + ], + "declarations": [ + { + "constant": false, + "id": 17041, + "mutability": "mutable", + "name": "minimumExpectedCurrentDate", + "nameLocation": "18815:26:39", + "nodeType": "VariableDeclaration", + "scope": 17097, + "src": "18807:34:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17040, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18807:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 17051, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17042, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17026, + "src": "18844:4:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3130303030", + "id": 17043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18851:5:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + }, + "src": "18844:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17047, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17045, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17028, + "src": "18859:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "313030", + "id": 17046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18867:3:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "18859:11:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18844:26:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 17049, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17030, + "src": "18873:3:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18844:32:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18807:69:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17052, + "name": "minimumExpectedCurrentDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17041, + "src": "18894:26:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 17053, + "name": "currentDateWithFullYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17005, + "src": "18923:23:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18894:52:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17060, + "nodeType": "IfStatement", + "src": "18890:129:39", + "trueBody": { + "id": 17059, + "nodeType": "Block", + "src": "18948:71:39", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 17056, + "name": "currentDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16949, + "src": "18992:11:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17055, + "name": "CurrentDateExpired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16026, + "src": "18973:18:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 17057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "18973:31:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 17058, + "nodeType": "RevertStatement", + "src": "18966:38:39" + } + ] + } + }, + { + "assignments": [ + 17062, + 17064, + 17066 + ], + "declarations": [ + { + "constant": false, + "id": 17062, + "mutability": "mutable", + "name": "futureYear", + "nameLocation": "19041:10:39", + "nodeType": "VariableDeclaration", + "scope": 17097, + "src": "19033:18:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17061, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19033:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17064, + "mutability": "mutable", + "name": "futureMonth", + "nameLocation": "19061:11:39", + "nodeType": "VariableDeclaration", + "scope": 17097, + "src": "19053:19:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17063, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19053:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17066, + "mutability": "mutable", + "name": "futureDay", + "nameLocation": "19082:9:39", + "nodeType": "VariableDeclaration", + "scope": 17097, + "src": "19074:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17065, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19074:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 17075, + "initialValue": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 17069, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "19137:5:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 17070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19143:9:39", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "19137:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "expression": { + "id": 17071, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16964, + "src": "19155:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 17072, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19157:14:39", + "memberName": "_maxFutureTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 16157, + "src": "19155:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19137:34:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 17067, + "name": "DateTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14469, + "src": "19095:8:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_DateTime_$14469_$", + "typeString": "type(library DateTime)" + } + }, + "id": 17068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19104:15:39", + "memberName": "timestampToDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 13347, + "src": "19095:24:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256,uint256,uint256)" + } + }, + "id": 17074, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19095:90:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$", + "typeString": "tuple(uint256,uint256,uint256)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19032:153:39" + }, + { + "assignments": [ + 17077 + ], + "declarations": [ + { + "constant": false, + "id": 17077, + "mutability": "mutable", + "name": "futureDate", + "nameLocation": "19207:10:39", + "nodeType": "VariableDeclaration", + "scope": 17097, + "src": "19199:18:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17076, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19199:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 17087, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17078, + "name": "futureYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17062, + "src": "19220:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "3130303030", + "id": 17079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19233:5:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + }, + "src": "19220:18:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17081, + "name": "futureMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17064, + "src": "19241:11:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "313030", + "id": 17082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19255:3:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "19241:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19220:38:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 17085, + "name": "futureDay", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17066, + "src": "19261:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19220:50:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19199:71:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17088, + "name": "currentDateWithFullYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17005, + "src": "19288:23:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 17089, + "name": "futureDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17077, + "src": "19314:10:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19288:36:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17096, + "nodeType": "IfStatement", + "src": "19284:114:39", + "trueBody": { + "id": 17095, + "nodeType": "Block", + "src": "19326:72:39", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 17092, + "name": "currentDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16949, + "src": "19371:11:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17091, + "name": "CurrentDateInFuture", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16030, + "src": "19351:19:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 17093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19351:32:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 17094, + "nodeType": "RevertStatement", + "src": "19344:39:39" + } + ] + } + } + ] + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17104, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17098, + "name": "issuanceDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16947, + "src": "19422:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "expression": { + "id": 17099, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16964, + "src": "19437:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 17100, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19439:15:39", + "memberName": "_expirationTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 16153, + "src": "19437:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19422:32:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 17102, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "19457:5:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 17103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19463:9:39", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "19457:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19422:50:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17109, + "nodeType": "IfStatement", + "src": "19418:108:39", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 17106, + "name": "issuanceDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16947, + "src": "19513:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17105, + "name": "IssuanceDateExpired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16018, + "src": "19493:19:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 17107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19493:33:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 17108, + "nodeType": "RevertStatement", + "src": "19486:40:39" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17110, + "name": "issuanceDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16947, + "src": "19540:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 17111, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -4, + "src": "19555:5:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 17112, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19561:9:39", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "19555:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "expression": { + "id": 17113, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16964, + "src": "19573:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 17114, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19575:14:39", + "memberName": "_maxFutureTime", + "nodeType": "MemberAccess", + "referencedDeclaration": 16157, + "src": "19573:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19555:34:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19540:49:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17121, + "nodeType": "IfStatement", + "src": "19536:108:39", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 17118, + "name": "issuanceDate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16947, + "src": "19631:12:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17117, + "name": "IssuanceDateInFuture", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16022, + "src": "19610:20:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256) pure returns (error)" + } + }, + "id": 17119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19610:34:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 17120, + "nodeType": "RevertStatement", + "src": "19603:41:39" + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 17122, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16964, + "src": "19659:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 17123, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19661:14:39", + "memberName": "_issuerDidHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 16180, + "src": "19659:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 17124, + "name": "issuerDidHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16959, + "src": "19679:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19659:33:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17129, + "nodeType": "IfStatement", + "src": "19655:68:39", + "trueBody": { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17126, + "name": "InvalidIssuerDidHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16070, + "src": "19701:20:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 17127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19701:22:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 17128, + "nodeType": "RevertStatement", + "src": "19694:29:39" + } + } + ] + }, + "id": 17131, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_validatePublicInputs", + "nameLocation": "17413:21:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 16960, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 16943, + "mutability": "mutable", + "name": "hashIndex", + "nameLocation": "17452:9:39", + "nodeType": "VariableDeclaration", + "scope": 17131, + "src": "17444:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16942, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17444:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16945, + "mutability": "mutable", + "name": "hashValue", + "nameLocation": "17479:9:39", + "nodeType": "VariableDeclaration", + "scope": 17131, + "src": "17471:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16944, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17471:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16947, + "mutability": "mutable", + "name": "issuanceDate", + "nameLocation": "17506:12:39", + "nodeType": "VariableDeclaration", + "scope": 17131, + "src": "17498:20:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17498:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16949, + "mutability": "mutable", + "name": "currentDate", + "nameLocation": "17536:11:39", + "nodeType": "VariableDeclaration", + "scope": 17131, + "src": "17528:19:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17528:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16951, + "mutability": "mutable", + "name": "templateRoot", + "nameLocation": "17565:12:39", + "nodeType": "VariableDeclaration", + "scope": 17131, + "src": "17557:20:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16950, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17557:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16953, + "mutability": "mutable", + "name": "linkIdCredentialProof", + "nameLocation": "17595:21:39", + "nodeType": "VariableDeclaration", + "scope": 17131, + "src": "17587:29:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16952, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17587:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16955, + "mutability": "mutable", + "name": "linkIdSignature", + "nameLocation": "17634:15:39", + "nodeType": "VariableDeclaration", + "scope": 17131, + "src": "17626:23:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16954, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17626:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16957, + "mutability": "mutable", + "name": "nullifier", + "nameLocation": "17667:9:39", + "nodeType": "VariableDeclaration", + "scope": 17131, + "src": "17659:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16956, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17659:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 16959, + "mutability": "mutable", + "name": "issuerDidHash", + "nameLocation": "17694:13:39", + "nodeType": "VariableDeclaration", + "scope": 17131, + "src": "17686:21:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16958, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17686:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17434:279:39" + }, + "returnParameters": { + "id": 16961, + "nodeType": "ParameterList", + "parameters": [], + "src": "17728:0:39" + }, + "scope": 17540, + "src": "17404:2326:39", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17152, + "nodeType": "Block", + "src": "19797:131:39", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 17142, + "name": "hi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17133, + "src": "19855:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 17143, + "name": "hv", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17135, + "src": "19859:2:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17138, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19807:23:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 17139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19807:25:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 17140, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19833:8:39", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "19807:34:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 17141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19842:12:39", + "memberName": "addClaimHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 1590, + "src": "19807:47:39", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_uint256_$_t_uint256_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint256,uint256)" + } + }, + "id": 17144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19807:55:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17145, + "nodeType": "ExpressionStatement", + "src": "19807:55:39" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17146, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19872:23:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 17147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19872:25:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 17148, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19898:8:39", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "19872:34:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 17149, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "19907:12:39", + "memberName": "transitState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1778, + "src": "19872:47:39", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer)" + } + }, + "id": 17150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19872:49:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17151, + "nodeType": "ExpressionStatement", + "src": "19872:49:39" + } + ] + }, + "id": 17153, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_addHashAndTransit", + "nameLocation": "19745:18:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17136, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17133, + "mutability": "mutable", + "name": "hi", + "nameLocation": "19772:2:39", + "nodeType": "VariableDeclaration", + "scope": 17153, + "src": "19764:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19764:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17135, + "mutability": "mutable", + "name": "hv", + "nameLocation": "19784:2:39", + "nodeType": "VariableDeclaration", + "scope": 17153, + "src": "19776:10:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17134, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19776:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19763:24:39" + }, + "returnParameters": { + "id": 17137, + "nodeType": "ParameterList", + "parameters": [], + "src": "19797:0:39" + }, + "scope": 17540, + "src": "19736:192:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17171, + "nodeType": "Block", + "src": "19989:129:39", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 17162, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17155, + "src": "20046:5:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17158, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "19999:23:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 17159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19999:25:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 17160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20025:8:39", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "19999:34:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 17161, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20034:11:39", + "memberName": "revokeClaim", + "nodeType": "MemberAccess", + "referencedDeclaration": 1614, + "src": "19999:46:39", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint64)" + } + }, + "id": 17163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "19999:53:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17164, + "nodeType": "ExpressionStatement", + "src": "19999:53:39" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17165, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "20062:23:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 17166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20062:25:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 17167, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20088:8:39", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "20062:34:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 17168, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20097:12:39", + "memberName": "transitState", + "nodeType": "MemberAccess", + "referencedDeclaration": 1778, + "src": "20062:47:39", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer)" + } + }, + "id": 17169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20062:49:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17170, + "nodeType": "ExpressionStatement", + "src": "20062:49:39" + } + ] + }, + "id": 17172, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_revokeClaimAndTransit", + "nameLocation": "19943:22:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17155, + "mutability": "mutable", + "name": "nonce", + "nameLocation": "19973:5:39", + "nodeType": "VariableDeclaration", + "scope": 17172, + "src": "19966:12:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 17154, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "19966:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "19965:14:39" + }, + "returnParameters": { + "id": 17157, + "nodeType": "ParameterList", + "parameters": [], + "src": "19989:0:39" + }, + "scope": 17540, + "src": "19934:184:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17225, + "nodeType": "Block", + "src": "20199:504:39", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 17181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17179, + "name": "revocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17176, + "src": "20213:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 17180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20232:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20213:20:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17186, + "nodeType": "IfStatement", + "src": "20209:72:39", + "trueBody": { + "errorCall": { + "arguments": [ + { + "id": 17183, + "name": "revocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17176, + "src": "20265:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 17182, + "name": "InvalidRevocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16074, + "src": "20242:22:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint64_$returns$_t_error_$", + "typeString": "function (uint64) pure returns (error)" + } + }, + "id": 17184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20242:39:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 17185, + "nodeType": "RevertStatement", + "src": "20235:46:39" + } + }, + { + "assignments": [ + 17189 + ], + "declarations": [ + { + "constant": false, + "id": 17189, + "mutability": "mutable", + "name": "$", + "nameLocation": "20331:1:39", + "nodeType": "VariableDeclaration", + "scope": 17225, + "src": "20291:41:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + }, + "typeName": { + "id": 17188, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17187, + "name": "PassportCredentialIssuerStorage", + "nameLocations": [ + "20291:31:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16181, + "src": "20291:31:39" + }, + "referencedDeclaration": 16181, + "src": "20291:31:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 17192, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17190, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "20335:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 17191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20335:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20291:81:39" + }, + { + "assignments": [ + 17194 + ], + "declarations": [ + { + "constant": false, + "id": 17194, + "mutability": "mutable", + "name": "existingNonce", + "nameLocation": "20389:13:39", + "nodeType": "VariableDeclaration", + "scope": 17225, + "src": "20382:20:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 17193, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "20382:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 17199, + "initialValue": { + "baseExpression": { + "expression": { + "id": 17195, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17189, + "src": "20405:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 17196, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20407:28:39", + "memberName": "_nullifiersToRevocationNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 16178, + "src": "20405:30:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$", + "typeString": "mapping(uint256 => uint64)" + } + }, + "id": 17198, + "indexExpression": { + "id": 17197, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17174, + "src": "20436:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20405:41:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20382:64:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "id": 17202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17200, + "name": "existingNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17194, + "src": "20460:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 17201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20477:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "20460:18:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17216, + "nodeType": "IfStatement", + "src": "20456:172:39", + "trueBody": { + "id": 17215, + "nodeType": "Block", + "src": "20480:148:39", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 17207, + "name": "existingNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17194, + "src": "20541:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17203, + "name": "_getIdentityBaseStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 855, + "src": "20494:23:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_IdentityBaseStorage_$843_storage_ptr_$", + "typeString": "function () pure returns (struct IdentityBase.IdentityBaseStorage storage pointer)" + } + }, + "id": 17204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20494:25:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_IdentityBaseStorage_$843_storage_ptr", + "typeString": "struct IdentityBase.IdentityBaseStorage storage pointer" + } + }, + "id": 17205, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20520:8:39", + "memberName": "identity", + "nodeType": "MemberAccess", + "referencedDeclaration": 842, + "src": "20494:34:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Data_$1371_storage", + "typeString": "struct IdentityLib.Data storage ref" + } + }, + "id": 17206, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20529:11:39", + "memberName": "revokeClaim", + "nodeType": "MemberAccess", + "referencedDeclaration": 1614, + "src": "20494:46:39", + "typeDescriptions": { + "typeIdentifier": "t_function_delegatecall_nonpayable$_t_struct$_Data_$1371_storage_ptr_$_t_uint64_$returns$__$attached_to$_t_struct$_Data_$1371_storage_ptr_$", + "typeString": "function (struct IdentityLib.Data storage pointer,uint64)" + } + }, + "id": 17208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20494:61:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17209, + "nodeType": "ExpressionStatement", + "src": "20494:61:39" + }, + { + "eventCall": { + "arguments": [ + { + "id": 17211, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17174, + "src": "20592:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 17212, + "name": "existingNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17194, + "src": "20603:13:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 17210, + "name": "CredentialRevoked", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16226, + "src": "20574:17:39", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint64_$returns$__$", + "typeString": "function (uint256,uint64)" + } + }, + "id": 17213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20574:43:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17214, + "nodeType": "EmitStatement", + "src": "20569:48:39" + } + ] + } + }, + { + "expression": { + "id": 17223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 17217, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17189, + "src": "20637:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 17220, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "20639:28:39", + "memberName": "_nullifiersToRevocationNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 16178, + "src": "20637:30:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_uint64_$", + "typeString": "mapping(uint256 => uint64)" + } + }, + "id": 17221, + "indexExpression": { + "id": 17219, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17174, + "src": "20668:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "20637:41:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 17222, + "name": "revocationNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17176, + "src": "20681:15:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "src": "20637:59:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "id": 17224, + "nodeType": "ExpressionStatement", + "src": "20637:59:39" + } + ] + }, + "id": 17226, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setNullifier", + "nameLocation": "20133:13:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17174, + "mutability": "mutable", + "name": "nullifier", + "nameLocation": "20155:9:39", + "nodeType": "VariableDeclaration", + "scope": 17226, + "src": "20147:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17173, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20147:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17176, + "mutability": "mutable", + "name": "revocationNonce", + "nameLocation": "20173:15:39", + "nodeType": "VariableDeclaration", + "scope": 17226, + "src": "20166:22:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 17175, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "20166:6:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "20146:43:39" + }, + "returnParameters": { + "id": 17178, + "nodeType": "ParameterList", + "parameters": [], + "src": "20199:0:39" + }, + "scope": 17540, + "src": "20124:579:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17277, + "nodeType": "Block", + "src": "20893:587:39", + "statements": [ + { + "assignments": [ + 17236 + ], + "declarations": [ + { + "constant": false, + "id": 17236, + "mutability": "mutable", + "name": "$", + "nameLocation": "20943:1:39", + "nodeType": "VariableDeclaration", + "scope": 17277, + "src": "20903:41:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + }, + "typeName": { + "id": 17235, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17234, + "name": "PassportCredentialIssuerStorage", + "nameLocations": [ + "20903:31:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16181, + "src": "20903:31:39" + }, + "referencedDeclaration": 16181, + "src": "20903:31:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 17239, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17237, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "20947:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 17238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "20947:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20903:81:39" + }, + { + "assignments": [ + 17241 + ], + "declarations": [ + { + "constant": false, + "id": 17241, + "mutability": "mutable", + "name": "verifier", + "nameLocation": "21002:8:39", + "nodeType": "VariableDeclaration", + "scope": 17277, + "src": "20994:16:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17240, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20994:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 17246, + "initialValue": { + "baseExpression": { + "expression": { + "id": 17242, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17236, + "src": "21013:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 17243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21015:20:39", + "memberName": "_credentialVerifiers", + "nodeType": "MemberAccess", + "referencedDeclaration": 16161, + "src": "21013:22:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", + "typeString": "mapping(string memory => address)" + } + }, + "id": 17245, + "indexExpression": { + "id": 17244, + "name": "credentialCircuitId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17228, + "src": "21036:19:39", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21013:43:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20994:62:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 17252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17247, + "name": "verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17241, + "src": "21070:8:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 17250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21090:1:39", + "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" + } + ], + "id": 17249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21082:7:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 17248, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21082:7:39", + "typeDescriptions": {} + } + }, + "id": 17251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21082:10:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "21070:22:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17257, + "nodeType": "IfStatement", + "src": "21066:75:39", + "trueBody": { + "id": 17256, + "nodeType": "Block", + "src": "21094:47:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17253, + "name": "NoVerifierSet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16042, + "src": "21115:13:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 17254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21115:15:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 17255, + "nodeType": "RevertStatement", + "src": "21108:22:39" + } + ] + } + }, + { + "condition": { + "id": 17271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "21167:240:39", + "subExpression": { + "arguments": [ + { + "expression": { + "id": 17262, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17231, + "src": "21234:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + }, + "id": 17263, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21257:1:39", + "memberName": "a", + "nodeType": "MemberAccess", + "referencedDeclaration": 14669, + "src": "21234:24:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "expression": { + "id": 17264, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17231, + "src": "21276:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + }, + "id": 17265, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21299:1:39", + "memberName": "b", + "nodeType": "MemberAccess", + "referencedDeclaration": 14675, + "src": "21276:24:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", + "typeString": "uint256[2] memory[2] memory" + } + }, + { + "expression": { + "id": 17266, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17231, + "src": "21318:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + }, + "id": 17267, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21341:1:39", + "memberName": "c", + "nodeType": "MemberAccess", + "referencedDeclaration": 14679, + "src": "21318:24:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + } + }, + { + "expression": { + "id": 17268, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17231, + "src": "21360:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + }, + "id": 17269, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21383:10:39", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14683, + "src": "21360:33:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr", + "typeString": "uint256[8] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + }, + { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr", + "typeString": "uint256[2] memory[2] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$2_memory_ptr", + "typeString": "uint256[2] memory" + }, + { + "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr", + "typeString": "uint256[8] memory" + } + ], + "expression": { + "arguments": [ + { + "id": 17259, + "name": "verifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17241, + "src": "21195:8:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17258, + "name": "ICredentialCircuitVerifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14709, + "src": "21168:26:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ICredentialCircuitVerifier_$14709_$", + "typeString": "type(contract ICredentialCircuitVerifier)" + } + }, + "id": 17260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21168:36:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_ICredentialCircuitVerifier_$14709", + "typeString": "contract ICredentialCircuitVerifier" + } + }, + "id": 17261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21205:11:39", + "memberName": "verifyProof", + "nodeType": "MemberAccess", + "referencedDeclaration": 14708, + "src": "21168:48:39", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_array$_t_uint256_$8_memory_ptr_$returns$_t_bool_$", + "typeString": "function (uint256[2] memory,uint256[2] memory[2] memory,uint256[2] memory,uint256[8] memory) view external returns (bool)" + } + }, + "id": 17270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21168:239:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17276, + "nodeType": "IfStatement", + "src": "21150:324:39", + "trueBody": { + "id": 17275, + "nodeType": "Block", + "src": "21418:56:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17272, + "name": "InvalidCredentialProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16044, + "src": "21439:22:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 17273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21439:24:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 17274, + "nodeType": "RevertStatement", + "src": "21432:31:39" + } + ] + } + } + ] + }, + "id": 17278, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCredentialProof", + "nameLocation": "20718:22:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17232, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17228, + "mutability": "mutable", + "name": "credentialCircuitId", + "nameLocation": "20764:19:39", + "nodeType": "VariableDeclaration", + "scope": 17278, + "src": "20750:33:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 17227, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "20750:6:39", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17231, + "mutability": "mutable", + "name": "credentialCircuitProof", + "nameLocation": "20850:22:39", + "nodeType": "VariableDeclaration", + "scope": 17278, + "src": "20793:79:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof" + }, + "typeName": { + "id": 17230, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17229, + "name": "ICredentialCircuitVerifier.CredentialCircuitProof", + "nameLocations": [ + "20793:26:39", + "20820:22:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14684, + "src": "20793:49:39" + }, + "referencedDeclaration": 14684, + "src": "20793:49:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_storage_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof" + } + }, + "visibility": "internal" + } + ], + "src": "20740:138:39" + }, + "returnParameters": { + "id": 17233, + "nodeType": "ParameterList", + "parameters": [], + "src": "20893:0:39" + }, + "scope": 17540, + "src": "20709:771:39", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17315, + "nodeType": "Block", + "src": "21580:449:39", + "statements": [ + { + "assignments": [ + 17285, + 17287 + ], + "declarations": [ + { + "constant": false, + "id": 17285, + "mutability": "mutable", + "name": "isValid", + "nameLocation": "21596:7:39", + "nodeType": "VariableDeclaration", + "scope": 17315, + "src": "21591:12:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 17284, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "21591:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17287, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "21613:9:39", + "nodeType": "VariableDeclaration", + "scope": 17315, + "src": "21605:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17286, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21605:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 17294, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 17289, + "name": "passportSignatureProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17281, + "src": "21676:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory" + } + }, + "id": 17290, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21699:21:39", + "memberName": "passportCredentialMsg", + "nodeType": "MemberAccess", + "referencedDeclaration": 16125, + "src": "21676:44:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage memory" + } + }, + { + "expression": { + "id": 17291, + "name": "passportSignatureProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17281, + "src": "21734:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory" + } + }, + "id": 17292, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21757:9:39", + "memberName": "signature", + "nodeType": "MemberAccess", + "referencedDeclaration": 16127, + "src": "21734:32:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage memory" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 17288, + "name": "_recoverPassportSignatureProofSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17362, + "src": "21626:36:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_PassportCredentialMessage_$16122_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_address_$", + "typeString": "function (struct PassportCredentialIssuer.PassportCredentialMessage memory,bytes memory) view returns (bool,address)" + } + }, + "id": 17293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21626:150:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21590:186:39" + }, + { + "condition": { + "id": 17296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "21790:8:39", + "subExpression": { + "id": 17295, + "name": "isValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17285, + "src": "21791:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17301, + "nodeType": "IfStatement", + "src": "21786:77:39", + "trueBody": { + "id": 17300, + "nodeType": "Block", + "src": "21800:63:39", + "statements": [ + { + "errorCall": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17297, + "name": "InvalidPassportSignatureProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16046, + "src": "21821:29:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$__$returns$_t_error_$", + "typeString": "function () pure returns (error)" + } + }, + "id": 17298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21821:31:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 17299, + "nodeType": "RevertStatement", + "src": "21814:38:39" + } + ] + } + }, + { + "condition": { + "id": 17308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "21876:67:39", + "subExpression": { + "arguments": [ + { + "id": 17306, + "name": "recovered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17287, + "src": "21933:9:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17302, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "21877:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 17303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21877:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 17304, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21915:8:39", + "memberName": "_signers", + "nodeType": "MemberAccess", + "referencedDeclaration": 16164, + "src": "21877:46:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$12653_storage", + "typeString": "struct EnumerableSet.AddressSet storage ref" + } + }, + "id": 17305, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "21924:8:39", + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 12747, + "src": "21877:55:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_AddressSet_$12653_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$12653_storage_ptr_$", + "typeString": "function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)" + } + }, + "id": 17307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21877:66:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17314, + "nodeType": "IfStatement", + "src": "21872:151:39", + "trueBody": { + "id": 17313, + "nodeType": "Block", + "src": "21945:78:39", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "id": 17310, + "name": "recovered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17287, + "src": "22002:9:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17309, + "name": "InvalidSignerPassportSignatureProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16050, + "src": "21966:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_address_$returns$_t_error_$", + "typeString": "function (address) pure returns (error)" + } + }, + "id": 17311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "21966:46:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 17312, + "nodeType": "RevertStatement", + "src": "21959:53:39" + } + ] + } + } + ] + }, + "id": 17316, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifySignature", + "nameLocation": "21495:16:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17282, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17281, + "mutability": "mutable", + "name": "passportSignatureProof", + "nameLocation": "21542:22:39", + "nodeType": "VariableDeclaration", + "scope": 17316, + "src": "21512:52:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof" + }, + "typeName": { + "id": 17280, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17279, + "name": "PassportSignatureProof", + "nameLocations": [ + "21512:22:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16128, + "src": "21512:22:39" + }, + "referencedDeclaration": 16128, + "src": "21512:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof" + } + }, + "visibility": "internal" + } + ], + "src": "21511:54:39" + }, + "returnParameters": { + "id": 17283, + "nodeType": "ParameterList", + "parameters": [], + "src": "21580:0:39" + }, + "scope": 17540, + "src": "21486:543:39", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17361, + "nodeType": "Block", + "src": "22215:363:39", + "statements": [ + { + "assignments": [ + 17329 + ], + "declarations": [ + { + "constant": false, + "id": 17329, + "mutability": "mutable", + "name": "hashTypedData", + "nameLocation": "22233:13:39", + "nodeType": "VariableDeclaration", + "scope": 17361, + "src": "22225:21:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 17328, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "22225:7:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 17342, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 17334, + "name": "PASSPORT_CREDENTIAL_MESSAGE_TYPEHASH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16112, + "src": "22317:36:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 17335, + "name": "message", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17319, + "src": "22355:7:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage memory" + } + }, + "id": 17336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22363:6:39", + "memberName": "linkId", + "nodeType": "MemberAccess", + "referencedDeclaration": 16119, + "src": "22355:14:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 17337, + "name": "message", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17319, + "src": "22371:7:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage memory" + } + }, + "id": 17338, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22379:9:39", + "memberName": "nullifier", + "nodeType": "MemberAccess", + "referencedDeclaration": 16121, + "src": "22371:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 17332, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -1, + "src": "22306:3:39", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 17333, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "22310:6:39", + "memberName": "encode", + "nodeType": "MemberAccess", + "src": "22306:10:39", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 17339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22306:83:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 17331, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": -8, + "src": "22279:9:39", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 17340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22279:124:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 17330, + "name": "_hashTypedDataV4", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5428, + "src": "22249:16:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (bytes32) view returns (bytes32)" + } + }, + "id": 17341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22249:164:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22225:188:39" + }, + { + "assignments": [ + 17344, + 17347, + null + ], + "declarations": [ + { + "constant": false, + "id": 17344, + "mutability": "mutable", + "name": "recovered", + "nameLocation": "22433:9:39", + "nodeType": "VariableDeclaration", + "scope": 17361, + "src": "22425:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17343, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22425:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17347, + "mutability": "mutable", + "name": "err", + "nameLocation": "22463:3:39", + "nodeType": "VariableDeclaration", + "scope": 17361, + "src": "22444:22:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + "typeName": { + "id": 17346, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17345, + "name": "ECDSA.RecoverError", + "nameLocations": [ + "22444:5:39", + "22450:12:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 8277, + "src": "22444:18:39" + }, + "referencedDeclaration": 8277, + "src": "22444:18:39", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "visibility": "internal" + }, + null + ], + "id": 17352, + "initialValue": { + "arguments": [ + { + "id": 17350, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17321, + "src": "22497:9:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 17348, + "name": "hashTypedData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17329, + "src": "22472:13:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 17349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22486:10:39", + "memberName": "tryRecover", + "nodeType": "MemberAccess", + "referencedDeclaration": 8343, + "src": "22472:24:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$attached_to$_t_bytes32_$", + "typeString": "function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)" + } + }, + "id": 17351, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22472:35:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_address_$_t_enum$_RecoverError_$8277_$_t_bytes32_$", + "typeString": "tuple(address,enum ECDSA.RecoverError,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22424:83:39" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + }, + "id": 17357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17353, + "name": "err", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17347, + "src": "22526:3:39", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "expression": { + "id": 17354, + "name": "ECDSA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8617, + "src": "22533:5:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ECDSA_$8617_$", + "typeString": "type(library ECDSA)" + } + }, + "id": 17355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22539:12:39", + "memberName": "RecoverError", + "nodeType": "MemberAccess", + "referencedDeclaration": 8277, + "src": "22533:18:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_RecoverError_$8277_$", + "typeString": "type(enum ECDSA.RecoverError)" + } + }, + "id": 17356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "22552:7:39", + "memberName": "NoError", + "nodeType": "MemberAccess", + "referencedDeclaration": 8273, + "src": "22533:26:39", + "typeDescriptions": { + "typeIdentifier": "t_enum$_RecoverError_$8277", + "typeString": "enum ECDSA.RecoverError" + } + }, + "src": "22526:33:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 17358, + "name": "recovered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17344, + "src": "22561:9:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 17359, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "22525:46:39", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_$", + "typeString": "tuple(bool,address)" + } + }, + "functionReturnParameters": 17327, + "id": 17360, + "nodeType": "Return", + "src": "22518:53:39" + } + ] + }, + "id": 17362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_recoverPassportSignatureProofSigner", + "nameLocation": "22044:36:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17322, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17319, + "mutability": "mutable", + "name": "message", + "nameLocation": "22123:7:39", + "nodeType": "VariableDeclaration", + "scope": 17362, + "src": "22090:40:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage" + }, + "typeName": { + "id": 17318, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17317, + "name": "PassportCredentialMessage", + "nameLocations": [ + "22090:25:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16122, + "src": "22090:25:39" + }, + "referencedDeclaration": 16122, + "src": "22090:25:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17321, + "mutability": "mutable", + "name": "signature", + "nameLocation": "22153:9:39", + "nodeType": "VariableDeclaration", + "scope": 17362, + "src": "22140:22:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 17320, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22140:5:39", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22080:88:39" + }, + "returnParameters": { + "id": 17327, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17324, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 17362, + "src": "22200:4:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 17323, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22200:4:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17326, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 17362, + "src": "22206:7:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 17325, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22206:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "22199:15:39" + }, + "scope": 17540, + "src": "22035:543:39", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 17418, + "nodeType": "Block", + "src": "22778:658:39", + "statements": [ + { + "assignments": [ + 17373 + ], + "declarations": [ + { + "constant": false, + "id": 17373, + "mutability": "mutable", + "name": "inputs", + "nameLocation": "22807:6:39", + "nodeType": "VariableDeclaration", + "scope": 17418, + "src": "22788:25:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs" + }, + "typeName": { + "id": 17372, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17371, + "name": "ProofInputs", + "nameLocations": [ + "22788:11:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16150, + "src": "22788:11:39" + }, + "referencedDeclaration": 16150, + "src": "22788:11:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_storage_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs" + } + }, + "visibility": "internal" + } + ], + "id": 17377, + "initialValue": { + "arguments": [ + { + "id": 17375, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17365, + "src": "22836:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + ], + "id": 17374, + "name": "_extractProofInputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17539, + "src": "22816:19:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_struct$_CredentialCircuitProof_$14684_memory_ptr_$returns$_t_struct$_ProofInputs_$16150_memory_ptr_$", + "typeString": "function (struct ICredentialCircuitVerifier.CredentialCircuitProof memory) pure returns (struct PassportCredentialIssuer.ProofInputs memory)" + } + }, + "id": 17376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22816:43:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22788:71:39" + }, + { + "assignments": [ + 17379 + ], + "declarations": [ + { + "constant": false, + "id": 17379, + "mutability": "mutable", + "name": "nullifier", + "nameLocation": "22878:9:39", + "nodeType": "VariableDeclaration", + "scope": 17418, + "src": "22870:17:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17378, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22870:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 17383, + "initialValue": { + "expression": { + "expression": { + "id": 17380, + "name": "passportSignatureProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17368, + "src": "22890:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory" + } + }, + "id": 17381, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22913:21:39", + "memberName": "passportCredentialMsg", + "nodeType": "MemberAccess", + "referencedDeclaration": 16125, + "src": "22890:44:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage memory" + } + }, + "id": 17382, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22935:9:39", + "memberName": "nullifier", + "nodeType": "MemberAccess", + "referencedDeclaration": 16121, + "src": "22890:54:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22870:74:39" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 17385, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17373, + "src": "22989:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs memory" + } + }, + "id": 17386, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "22996:9:39", + "memberName": "hashIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 16135, + "src": "22989:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 17387, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17373, + "src": "23019:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs memory" + } + }, + "id": 17388, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23026:9:39", + "memberName": "hashValue", + "nodeType": "MemberAccess", + "referencedDeclaration": 16137, + "src": "23019:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 17389, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17373, + "src": "23049:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs memory" + } + }, + "id": 17390, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23056:12:39", + "memberName": "issuanceDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 16139, + "src": "23049:19:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 17391, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17373, + "src": "23082:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs memory" + } + }, + "id": 17392, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23089:11:39", + "memberName": "currentDate", + "nodeType": "MemberAccess", + "referencedDeclaration": 16141, + "src": "23082:18:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 17393, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17373, + "src": "23114:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs memory" + } + }, + "id": 17394, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23121:12:39", + "memberName": "templateRoot", + "nodeType": "MemberAccess", + "referencedDeclaration": 16143, + "src": "23114:19:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 17395, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17373, + "src": "23147:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs memory" + } + }, + "id": 17396, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23154:21:39", + "memberName": "linkIdCredentialProof", + "nodeType": "MemberAccess", + "referencedDeclaration": 16145, + "src": "23147:28:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "expression": { + "id": 17397, + "name": "passportSignatureProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17368, + "src": "23189:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof memory" + } + }, + "id": 17398, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23212:21:39", + "memberName": "passportCredentialMsg", + "nodeType": "MemberAccess", + "referencedDeclaration": 16125, + "src": "23189:44:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialMessage_$16122_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialMessage memory" + } + }, + "id": 17399, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23234:6:39", + "memberName": "linkId", + "nodeType": "MemberAccess", + "referencedDeclaration": 16119, + "src": "23189:51:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 17400, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17379, + "src": "23254:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 17401, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17373, + "src": "23277:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs memory" + } + }, + "id": 17402, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23284:13:39", + "memberName": "issuerDidHash", + "nodeType": "MemberAccess", + "referencedDeclaration": 16149, + "src": "23277:20:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17384, + "name": "_validatePublicInputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17131, + "src": "22954:21:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) view" + } + }, + "id": 17403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "22954:353:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17404, + "nodeType": "ExpressionStatement", + "src": "22954:353:39" + }, + { + "expression": { + "arguments": [ + { + "id": 17406, + "name": "nullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17379, + "src": "23331:9:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 17407, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17373, + "src": "23342:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs memory" + } + }, + "id": 17408, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23349:15:39", + "memberName": "revocationNonce", + "nodeType": "MemberAccess", + "referencedDeclaration": 16147, + "src": "23342:22:39", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + ], + "id": 17405, + "name": "_setNullifier", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17226, + "src": "23317:13:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint64_$returns$__$", + "typeString": "function (uint256,uint64)" + } + }, + "id": 17409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23317:48:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17410, + "nodeType": "ExpressionStatement", + "src": "23317:48:39" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 17412, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17373, + "src": "23394:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs memory" + } + }, + "id": 17413, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23401:9:39", + "memberName": "hashIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 16135, + "src": "23394:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 17414, + "name": "inputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17373, + "src": "23412:6:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs memory" + } + }, + "id": 17415, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23419:9:39", + "memberName": "hashValue", + "nodeType": "MemberAccess", + "referencedDeclaration": 16137, + "src": "23412:16:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17411, + "name": "_addHashAndTransit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17153, + "src": "23375:18:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 17416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23375:54:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17417, + "nodeType": "ExpressionStatement", + "src": "23375:54:39" + } + ] + }, + "id": 17419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_afterProofsSubmit", + "nameLocation": "22593:18:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17365, + "mutability": "mutable", + "name": "credentialCircuitProof", + "nameLocation": "22678:22:39", + "nodeType": "VariableDeclaration", + "scope": 17419, + "src": "22621:79:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof" + }, + "typeName": { + "id": 17364, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17363, + "name": "ICredentialCircuitVerifier.CredentialCircuitProof", + "nameLocations": [ + "22621:26:39", + "22648:22:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14684, + "src": "22621:49:39" + }, + "referencedDeclaration": 14684, + "src": "22621:49:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_storage_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17368, + "mutability": "mutable", + "name": "passportSignatureProof", + "nameLocation": "22740:22:39", + "nodeType": "VariableDeclaration", + "scope": 17419, + "src": "22710:52:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_memory_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof" + }, + "typeName": { + "id": 17367, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17366, + "name": "PassportSignatureProof", + "nameLocations": [ + "22710:22:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16128, + "src": "22710:22:39" + }, + "referencedDeclaration": 16128, + "src": "22710:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportSignatureProof_$16128_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportSignatureProof" + } + }, + "visibility": "internal" + } + ], + "src": "22611:157:39" + }, + "returnParameters": { + "id": 17370, + "nodeType": "ParameterList", + "parameters": [], + "src": "22778:0:39" + }, + "scope": 17540, + "src": "22584:852:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17482, + "nodeType": "Block", + "src": "23577:480:39", + "statements": [ + { + "assignments": [ + 17430 + ], + "declarations": [ + { + "constant": false, + "id": 17430, + "mutability": "mutable", + "name": "$", + "nameLocation": "23627:1:39", + "nodeType": "VariableDeclaration", + "scope": 17482, + "src": "23587:41:39", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + }, + "typeName": { + "id": 17429, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17428, + "name": "PassportCredentialIssuerStorage", + "nameLocations": [ + "23587:31:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16181, + "src": "23587:31:39" + }, + "referencedDeclaration": 16181, + "src": "23587:31:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage" + } + }, + "visibility": "internal" + } + ], + "id": 17433, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 17431, + "name": "_getPassportCredentialIssuerStorage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16192, + "src": "23631:35:39", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr_$", + "typeString": "function () pure returns (struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer)" + } + }, + "id": 17432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23631:37:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23587:81:39" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 17434, + "name": "circuitIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17422, + "src": "23682:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 17435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23693:6:39", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "23682:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 17436, + "name": "verifierAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17425, + "src": "23703:17:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 17437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23721:6:39", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "23703:24:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "23682:45:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17447, + "nodeType": "IfStatement", + "src": "23678:142:39", + "trueBody": { + "id": 17446, + "nodeType": "Block", + "src": "23729:91:39", + "statements": [ + { + "errorCall": { + "arguments": [ + { + "expression": { + "id": 17440, + "name": "circuitIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17422, + "src": "23765:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 17441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23776:6:39", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "23765:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 17442, + "name": "verifierAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17425, + "src": "23784:17:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 17443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23802:6:39", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "23784:24:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17439, + "name": "LengthMismatch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16040, + "src": "23750:14:39", + "typeDescriptions": { + "typeIdentifier": "t_function_error_pure$_t_uint256_$_t_uint256_$returns$_t_error_$", + "typeString": "function (uint256,uint256) pure returns (error)" + } + }, + "id": 17444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23750:59:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_error", + "typeString": "error" + } + }, + "id": 17445, + "nodeType": "RevertStatement", + "src": "23743:66:39" + } + ] + } + }, + { + "body": { + "id": 17480, + "nodeType": "Block", + "src": "23877:174:39", + "statements": [ + { + "expression": { + "id": 17469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 17459, + "name": "$", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17430, + "src": "23891:1:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_PassportCredentialIssuerStorage_$16181_storage_ptr", + "typeString": "struct PassportCredentialIssuer.PassportCredentialIssuerStorage storage pointer" + } + }, + "id": 17464, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23893:20:39", + "memberName": "_credentialVerifiers", + "nodeType": "MemberAccess", + "referencedDeclaration": 16161, + "src": "23891:22:39", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_address_$", + "typeString": "mapping(string memory => address)" + } + }, + "id": 17465, + "indexExpression": { + "baseExpression": { + "id": 17461, + "name": "circuitIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17422, + "src": "23914:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 17463, + "indexExpression": { + "id": 17462, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17449, + "src": "23925:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23914:13:39", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "23891:37:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "baseExpression": { + "id": 17466, + "name": "verifierAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17425, + "src": "23931:17:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 17468, + "indexExpression": { + "id": 17467, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17449, + "src": "23949:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23931:20:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "23891:60:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 17470, + "nodeType": "ExpressionStatement", + "src": "23891:60:39" + }, + { + "eventCall": { + "arguments": [ + { + "baseExpression": { + "id": 17472, + "name": "circuitIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17422, + "src": "24004:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 17474, + "indexExpression": { + "id": 17473, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17449, + "src": "24015:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "24004:13:39", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + { + "baseExpression": { + "id": 17475, + "name": "verifierAddresses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17425, + "src": "24019:17:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[] calldata" + } + }, + "id": 17477, + "indexExpression": { + "id": 17476, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17449, + "src": "24037:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "24019:20:39", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 17471, + "name": "CredentialCircuitVerifierUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16199, + "src": "23971:32:39", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (string memory,address)" + } + }, + "id": 17478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "23971:69:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 17479, + "nodeType": "EmitStatement", + "src": "23966:74:39" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 17455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 17452, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17449, + "src": "23849:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 17453, + "name": "circuitIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17422, + "src": "23853:10:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 17454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "23864:6:39", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "23853:17:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "23849:21:39", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 17481, + "initializationExpression": { + "assignments": [ + 17449 + ], + "declarations": [ + { + "constant": false, + "id": 17449, + "mutability": "mutable", + "name": "i", + "nameLocation": "23842:1:39", + "nodeType": "VariableDeclaration", + "scope": 17481, + "src": "23834:9:39", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17448, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23834:7:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 17451, + "initialValue": { + "hexValue": "30", + "id": 17450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23846:1:39", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "23834:13:39" + }, + "isSimpleCounterLoop": true, + "loopExpression": { + "expression": { + "id": 17457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "23872:3:39", + "subExpression": { + "id": 17456, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17449, + "src": "23872:1:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17458, + "nodeType": "ExpressionStatement", + "src": "23872:3:39" + }, + "nodeType": "ForStatement", + "src": "23829:222:39" + } + ] + }, + "id": 17483, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_updateCredentialVerifiers", + "nameLocation": "23451:26:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17426, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17422, + "mutability": "mutable", + "name": "circuitIds", + "nameLocation": "23505:10:39", + "nodeType": "VariableDeclaration", + "scope": 17483, + "src": "23487:28:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 17420, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23487:6:39", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 17421, + "nodeType": "ArrayTypeName", + "src": "23487:8:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17425, + "mutability": "mutable", + "name": "verifierAddresses", + "nameLocation": "23544:17:39", + "nodeType": "VariableDeclaration", + "scope": 17483, + "src": "23525:36:39", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 17423, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23525:7:39", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 17424, + "nodeType": "ArrayTypeName", + "src": "23525:9:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "visibility": "internal" + } + ], + "src": "23477:90:39" + }, + "returnParameters": { + "id": 17427, + "nodeType": "ParameterList", + "parameters": [], + "src": "23577:0:39" + }, + "scope": 17540, + "src": "23442:615:39", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 17538, + "nodeType": "Block", + "src": "24230:1331:39", + "statements": [ + { + "expression": { + "arguments": [ + { + "baseExpression": { + "expression": { + "id": 17493, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17486, + "src": "24300:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + }, + "id": 17494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "24323:10:39", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14683, + "src": "24300:33:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr", + "typeString": "uint256[8] memory" + } + }, + "id": 17497, + "indexExpression": { + "expression": { + "id": 17495, + "name": "CircuitConstants", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14505, + "src": "24355:16:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$", + "typeString": "type(library CircuitConstants)" + } + }, + "id": 17496, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "24372:27:39", + "memberName": "CREDENTIAL_HASH_INDEX_INDEX", + "nodeType": "MemberAccess", + "referencedDeclaration": 14476, + "src": "24355:44:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "24300:117:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "expression": { + "id": 17498, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17486, + "src": "24446:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + }, + "id": 17499, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "24469:10:39", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14683, + "src": "24446:33:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr", + "typeString": "uint256[8] memory" + } + }, + "id": 17502, + "indexExpression": { + "expression": { + "id": 17500, + "name": "CircuitConstants", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14505, + "src": "24501:16:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$", + "typeString": "type(library CircuitConstants)" + } + }, + "id": 17501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "24518:27:39", + "memberName": "CREDENTIAL_HASH_VALUE_INDEX", + "nodeType": "MemberAccess", + "referencedDeclaration": 14480, + "src": "24501:44:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "24446:117:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "expression": { + "id": 17503, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17486, + "src": "24595:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + }, + "id": 17504, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "24618:10:39", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14683, + "src": "24595:33:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr", + "typeString": "uint256[8] memory" + } + }, + "id": 17507, + "indexExpression": { + "expression": { + "id": 17505, + "name": "CircuitConstants", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14505, + "src": "24650:16:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$", + "typeString": "type(library CircuitConstants)" + } + }, + "id": 17506, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "24667:30:39", + "memberName": "CREDENTIAL_ISSUANCE_DATE_INDEX", + "nodeType": "MemberAccess", + "referencedDeclaration": 14492, + "src": "24650:47:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "24595:120:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "expression": { + "id": 17508, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17486, + "src": "24746:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + }, + "id": 17509, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "24769:10:39", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14683, + "src": "24746:33:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr", + "typeString": "uint256[8] memory" + } + }, + "id": 17512, + "indexExpression": { + "expression": { + "id": 17510, + "name": "CircuitConstants", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14505, + "src": "24801:16:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$", + "typeString": "type(library CircuitConstants)" + } + }, + "id": 17511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "24818:29:39", + "memberName": "CREDENTIAL_CURRENT_DATE_INDEX", + "nodeType": "MemberAccess", + "referencedDeclaration": 14488, + "src": "24801:46:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "24746:119:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "expression": { + "id": 17513, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17486, + "src": "24897:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + }, + "id": 17514, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "24920:10:39", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14683, + "src": "24897:33:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr", + "typeString": "uint256[8] memory" + } + }, + "id": 17517, + "indexExpression": { + "expression": { + "id": 17515, + "name": "CircuitConstants", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14505, + "src": "24952:16:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$", + "typeString": "type(library CircuitConstants)" + } + }, + "id": 17516, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "24969:30:39", + "memberName": "CREDENTIAL_TEMPLATE_ROOT_INDEX", + "nodeType": "MemberAccess", + "referencedDeclaration": 14496, + "src": "24952:47:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "24897:120:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "baseExpression": { + "expression": { + "id": 17518, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17486, + "src": "25058:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + }, + "id": 17519, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "25081:10:39", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14683, + "src": "25058:33:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr", + "typeString": "uint256[8] memory" + } + }, + "id": 17522, + "indexExpression": { + "expression": { + "id": 17520, + "name": "CircuitConstants", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14505, + "src": "25113:16:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$", + "typeString": "type(library CircuitConstants)" + } + }, + "id": 17521, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "25130:24:39", + "memberName": "CREDENTIAL_LINK_ID_INDEX", + "nodeType": "MemberAccess", + "referencedDeclaration": 14484, + "src": "25113:41:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25058:114:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "baseExpression": { + "expression": { + "id": 17525, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17486, + "src": "25235:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + }, + "id": 17526, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "25258:10:39", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14683, + "src": "25235:33:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr", + "typeString": "uint256[8] memory" + } + }, + "id": 17529, + "indexExpression": { + "expression": { + "id": 17527, + "name": "CircuitConstants", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14505, + "src": "25294:16:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$", + "typeString": "type(library CircuitConstants)" + } + }, + "id": 17528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "25311:33:39", + "memberName": "CREDENTIAL_REVOCATION_NONCE_INDEX", + "nodeType": "MemberAccess", + "referencedDeclaration": 14504, + "src": "25294:50:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25235:131:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17524, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "25207:6:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint64_$", + "typeString": "type(uint64)" + }, + "typeName": { + "id": 17523, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "25207:6:39", + "typeDescriptions": {} + } + }, + "id": 17530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "25207:177:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + { + "baseExpression": { + "expression": { + "id": 17531, + "name": "credentialCircuitProof", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 17486, + "src": "25417:22:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof memory" + } + }, + "id": 17532, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberLocation": "25440:10:39", + "memberName": "pubSignals", + "nodeType": "MemberAccess", + "referencedDeclaration": 14683, + "src": "25417:33:39", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_memory_ptr", + "typeString": "uint256[8] memory" + } + }, + "id": 17535, + "indexExpression": { + "expression": { + "id": 17533, + "name": "CircuitConstants", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 14505, + "src": "25472:16:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_CircuitConstants_$14505_$", + "typeString": "type(library CircuitConstants)" + } + }, + "id": 17534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberLocation": "25489:32:39", + "memberName": "CREDENTIAL_ISSUER_DID_HASH_INDEX", + "nodeType": "MemberAccess", + "referencedDeclaration": 14500, + "src": "25472:49:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25417:122:39", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 17492, + "name": "ProofInputs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16150, + "src": "24259:11:39", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_ProofInputs_$16150_storage_ptr_$", + "typeString": "type(struct PassportCredentialIssuer.ProofInputs storage pointer)" + } + }, + "id": 17536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "nameLocations": [ + "24289:9:39", + "24435:9:39", + "24581:12:39", + "24733:11:39", + "24883:12:39", + "25035:21:39", + "25190:15:39", + "25402:13:39" + ], + "names": [ + "hashIndex", + "hashValue", + "issuanceDate", + "currentDate", + "templateRoot", + "linkIdCredentialProof", + "revocationNonce", + "issuerDidHash" + ], + "nodeType": "FunctionCall", + "src": "24259:1295:39", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs memory" + } + }, + "functionReturnParameters": 17491, + "id": 17537, + "nodeType": "Return", + "src": "24240:1314:39" + } + ] + }, + "id": 17539, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_extractProofInputs", + "nameLocation": "24072:19:39", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17486, + "mutability": "mutable", + "name": "credentialCircuitProof", + "nameLocation": "24158:22:39", + "nodeType": "VariableDeclaration", + "scope": 17539, + "src": "24101:79:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_memory_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof" + }, + "typeName": { + "id": 17485, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17484, + "name": "ICredentialCircuitVerifier.CredentialCircuitProof", + "nameLocations": [ + "24101:26:39", + "24128:22:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 14684, + "src": "24101:49:39" + }, + "referencedDeclaration": 14684, + "src": "24101:49:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CredentialCircuitProof_$14684_storage_ptr", + "typeString": "struct ICredentialCircuitVerifier.CredentialCircuitProof" + } + }, + "visibility": "internal" + } + ], + "src": "24091:95:39" + }, + "returnParameters": { + "id": 17491, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17490, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 17539, + "src": "24210:18:39", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_memory_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs" + }, + "typeName": { + "id": 17489, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 17488, + "name": "ProofInputs", + "nameLocations": [ + "24210:11:39" + ], + "nodeType": "IdentifierPath", + "referencedDeclaration": 16150, + "src": "24210:11:39" + }, + "referencedDeclaration": 16150, + "src": "24210:11:39", + "typeDescriptions": { + "typeIdentifier": "t_struct$_ProofInputs_$16150_storage_ptr", + "typeString": "struct PassportCredentialIssuer.ProofInputs" + } + }, + "visibility": "internal" + } + ], + "src": "24209:20:39" + }, + "scope": 17540, + "src": "24063:1498:39", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 17541, + "src": "2021:23542:39", + "usedErrors": [ + 4804, + 4809, + 4985, + 4988, + 16000, + 16004, + 16008, + 16014, + 16018, + 16022, + 16026, + 16030, + 16034, + 16040, + 16042, + 16044, + 16046, + 16050, + 16054, + 16058, + 16062, + 16064, + 16066, + 16068, + 16070, + 16074 + ], + "usedEvents": [ + 4668, + 4815, + 4993, + 5631, + 16199, + 16204, + 16209, + 16214, + 16219, + 16226, + 16231 + ] + } + ], + "src": "36:25528:39" + }, + "id": 39 + }, + "contracts/verifiers/idcard/Verifier_idcard_sha1.sol": { + "ast": { + "absolutePath": "contracts/verifiers/idcard/Verifier_idcard_sha1.sol", + "exportedSymbols": { + "Verifier_idcard_sha1": [ + 17679 + ] + }, + "id": 17680, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17542, + "literals": [ + "solidity", + ">=", + "0.7", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "798:31:40" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Verifier_idcard_sha1", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 17679, + "linearizedBaseContracts": [ + 17679 + ], + "name": "Verifier_idcard_sha1", + "nameLocation": "840:20:40", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 17545, + "mutability": "constant", + "name": "r", + "nameLocation": "909:1:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "892:101:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17543, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "892:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137", + "id": 17544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "916:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1", + "typeString": "int_const 2188...(69 digits omitted)...5617" + }, + "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17548, + "mutability": "constant", + "name": "q", + "nameLocation": "1039:1:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "1022:100:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17546, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1022:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833", + "id": 17547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1045:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1", + "typeString": "int_const 2188...(69 digits omitted)...8583" + }, + "value": "21888242871839275222246405745257275088696311157297823662689037894645226208583" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17551, + "mutability": "constant", + "name": "alphax", + "nameLocation": "1175:6:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "1158:104:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17549, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1158:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3230343931313932383035333930343835323939313533303039373733353934353334393430313839323631383636323238343437393138303638363538343731393730343831373633303432", + "id": 17550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1185:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_20491192805390485299153009773594534940189261866228447918068658471970481763042_by_1", + "typeString": "int_const 2049...(69 digits omitted)...3042" + }, + "value": "20491192805390485299153009773594534940189261866228447918068658471970481763042" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17554, + "mutability": "constant", + "name": "alphay", + "nameLocation": "1285:6:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "1268:103:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17552, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1268:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "39333833343835333633303533323930323030393138333437313536313537383336353636353632393637393934303339373132323733343439393032363231323636313738353435393538", + "id": 17553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1295:76:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_9383485363053290200918347156157836566562967994039712273449902621266178545958_by_1", + "typeString": "int_const 9383...(68 digits omitted)...5958" + }, + "value": "9383485363053290200918347156157836566562967994039712273449902621266178545958" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17557, + "mutability": "constant", + "name": "betax1", + "nameLocation": "1394:6:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "1377:103:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17555, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1377:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34323532383232383738373538333030383539313233383937393831343530353931333533353333303733343133313937373731373638363531343432363635373532323539333937313332", + "id": 17556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1404:76:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_4252822878758300859123897981450591353533073413197771768651442665752259397132_by_1", + "typeString": "int_const 4252...(68 digits omitted)...7132" + }, + "value": "4252822878758300859123897981450591353533073413197771768651442665752259397132" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17560, + "mutability": "constant", + "name": "betax2", + "nameLocation": "1503:6:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "1486:103:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17558, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1486:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "36333735363134333531363838373235323036343033393438323632383638393632373933363235373434303433373934333035373135323232303131353238343539363536373338373331", + "id": 17559, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1513:76:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_6375614351688725206403948262868962793625744043794305715222011528459656738731_by_1", + "typeString": "int_const 6375...(68 digits omitted)...8731" + }, + "value": "6375614351688725206403948262868962793625744043794305715222011528459656738731" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17563, + "mutability": "constant", + "name": "betay1", + "nameLocation": "1612:6:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "1595:104:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17561, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1595:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383437303335313035353238373435343033323838323332363931313437353834373238313931313632373332323939383635333338333737313539363932333530303539313336363739", + "id": 17562, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1622:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_21847035105528745403288232691147584728191162732299865338377159692350059136679_by_1", + "typeString": "int_const 2184...(69 digits omitted)...6679" + }, + "value": "21847035105528745403288232691147584728191162732299865338377159692350059136679" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17566, + "mutability": "constant", + "name": "betay2", + "nameLocation": "1722:6:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "1705:104:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17564, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1705:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130353035323432363236333730323632323737353532393031303832303934333536363937343039383335363830323230353930393731383733313731313430333731333331323036383536", + "id": 17565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1732:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_10505242626370262277552901082094356697409835680220590971873171140371331206856_by_1", + "typeString": "int_const 1050...(69 digits omitted)...6856" + }, + "value": "10505242626370262277552901082094356697409835680220590971873171140371331206856" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17569, + "mutability": "constant", + "name": "gammax1", + "nameLocation": "1832:7:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "1815:104:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17567, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1815:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334", + "id": 17568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1842:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1", + "typeString": "int_const 1155...(69 digits omitted)...5634" + }, + "value": "11559732032986387107991004021392285783925812861821192530917403151452391805634" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17572, + "mutability": "constant", + "name": "gammax2", + "nameLocation": "1942:7:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "1925:104:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1925:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831", + "id": 17571, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1952:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1", + "typeString": "int_const 1085...(69 digits omitted)...2781" + }, + "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17575, + "mutability": "constant", + "name": "gammay1", + "nameLocation": "2052:7:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "2035:103:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2035:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331", + "id": 17574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2062:76:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1", + "typeString": "int_const 4082...(68 digits omitted)...3531" + }, + "value": "4082367875863433681332203403145435568316851327593401208105741076214120093531" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17578, + "mutability": "constant", + "name": "gammay2", + "nameLocation": "2161:7:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "2144:103:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17576, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2144:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330", + "id": 17577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2171:76:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1", + "typeString": "int_const 8495...(68 digits omitted)...1930" + }, + "value": "8495653923123431417604973247489272438418190587263600148770280649306958101930" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17581, + "mutability": "constant", + "name": "deltax1", + "nameLocation": "2270:7:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "2253:104:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17579, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2253:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3137363139393738303636393831303233383135373836313937353339383931383334353935343637313031383030313638303035343430363032373630373236323532343139323234313832", + "id": 17580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2280:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_17619978066981023815786197539891834595467101800168005440602760726252419224182_by_1", + "typeString": "int_const 1761...(69 digits omitted)...4182" + }, + "value": "17619978066981023815786197539891834595467101800168005440602760726252419224182" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17584, + "mutability": "constant", + "name": "deltax2", + "nameLocation": "2380:7:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "2363:104:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2363:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3138393737363731373531353539303936353536393532303839373733393539343539393937383338313930303736383035333335353835353233343339343135383238363633303431303931", + "id": 17583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2390:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_18977671751559096556952089773959459997838190076805335585523439415828663041091_by_1", + "typeString": "int_const 1897...(69 digits omitted)...1091" + }, + "value": "18977671751559096556952089773959459997838190076805335585523439415828663041091" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17587, + "mutability": "constant", + "name": "deltay1", + "nameLocation": "2490:7:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "2473:104:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17585, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2473:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3230393038393333343933353830333437353436323534373338343938313734313534383338373034383936343333383536373639323232323533313933343939353431383131383238363838", + "id": 17586, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2500:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_20908933493580347546254738498174154838704896433856769222253193499541811828688_by_1", + "typeString": "int_const 2090...(69 digits omitted)...8688" + }, + "value": "20908933493580347546254738498174154838704896433856769222253193499541811828688" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17590, + "mutability": "constant", + "name": "deltay2", + "nameLocation": "2600:7:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "2583:104:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17588, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2583:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3134323238323233393130363338313833393433383438363330393732363232353339313038383832313532363631393236383536323135393531353136383436333133343337323237313030", + "id": 17589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2610:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_14228223910638183943848630972622539108882152661926856215951516846313437227100_by_1", + "typeString": "int_const 1422...(69 digits omitted)...7100" + }, + "value": "14228223910638183943848630972622539108882152661926856215951516846313437227100" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17593, + "mutability": "constant", + "name": "IC0x", + "nameLocation": "2716:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "2699:101:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17591, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2699:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3138393936323739393830303338373131373538313933363930333534393430373135373832353631323335333830333432323836343037353534313335373430323031353133373739323739", + "id": 17592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2723:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_18996279980038711758193690354940715782561235380342286407554135740201513779279_by_1", + "typeString": "int_const 1899...(69 digits omitted)...9279" + }, + "value": "18996279980038711758193690354940715782561235380342286407554135740201513779279" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17596, + "mutability": "constant", + "name": "IC0y", + "nameLocation": "2823:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "2806:101:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2806:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3131363235383837333935323539363335353030363730343634343936313837373137393538393634373036363434303831333238333537303330313337353430313933363734373032303135", + "id": 17595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2830:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_11625887395259635500670464496187717958964706644081328357030137540193674702015_by_1", + "typeString": "int_const 1162...(69 digits omitted)...2015" + }, + "value": "11625887395259635500670464496187717958964706644081328357030137540193674702015" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17599, + "mutability": "constant", + "name": "IC1x", + "nameLocation": "2935:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "2918:100:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17597, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2918:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "32383033333732333032353432323739303631393932383031383036363334323738393236323931313934303032363139363130333930323931353332373532363234353733303134313733", + "id": 17598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2942:76:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_2803372302542279061992801806634278926291194002619610390291532752624573014173_by_1", + "typeString": "int_const 2803...(68 digits omitted)...4173" + }, + "value": "2803372302542279061992801806634278926291194002619610390291532752624573014173" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17602, + "mutability": "constant", + "name": "IC1y", + "nameLocation": "3041:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "3024:101:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3024:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130323939353430353038353630373538383236303937343835303334373331313532353933343431353836353535353431393936353335393136363735383832393037333735343734343335", + "id": 17601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3048:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_10299540508560758826097485034731152593441586555541996535916675882907375474435_by_1", + "typeString": "int_const 1029...(69 digits omitted)...4435" + }, + "value": "10299540508560758826097485034731152593441586555541996535916675882907375474435" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17605, + "mutability": "constant", + "name": "IC2x", + "nameLocation": "3153:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "3136:100:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3136:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "33353135353537303638353337323438313534343835303837353834313330313730393534383536333034393835323731383839313836343532383931393234343537363430303632393730", + "id": 17604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3160:76:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_3515557068537248154485087584130170954856304985271889186452891924457640062970_by_1", + "typeString": "int_const 3515...(68 digits omitted)...2970" + }, + "value": "3515557068537248154485087584130170954856304985271889186452891924457640062970" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17608, + "mutability": "constant", + "name": "IC2y", + "nameLocation": "3259:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "3242:100:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17606, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3242:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31343730383137323334333731373639353932353732383835343738383435353434333634353430383737393035393633393731333736393631373933303136343035303038303533363833", + "id": 17607, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3266:76:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1470817234371769592572885478845544364540877905963971376961793016405008053683_by_1", + "typeString": "int_const 1470...(68 digits omitted)...3683" + }, + "value": "1470817234371769592572885478845544364540877905963971376961793016405008053683" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17611, + "mutability": "constant", + "name": "IC3x", + "nameLocation": "3370:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "3353:100:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3353:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "39383832363233323738383232383534393136303730343030333537303134303536343232383936333934353532333432383038333536383433353038373437383136393834313732363434", + "id": 17610, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3377:76:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_9882623278822854916070400357014056422896394552342808356843508747816984172644_by_1", + "typeString": "int_const 9882...(68 digits omitted)...2644" + }, + "value": "9882623278822854916070400357014056422896394552342808356843508747816984172644" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17614, + "mutability": "constant", + "name": "IC3y", + "nameLocation": "3476:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "3459:101:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3459:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3135353331373137353539313831343834343632383530373635303535383736383633323733363634393330333135373132303839303634323432333339303439303838323536333330343337", + "id": 17613, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3483:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_15531717559181484462850765055876863273664930315712089064242339049088256330437_by_1", + "typeString": "int_const 1553...(69 digits omitted)...0437" + }, + "value": "15531717559181484462850765055876863273664930315712089064242339049088256330437" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17617, + "mutability": "constant", + "name": "IC4x", + "nameLocation": "3588:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "3571:100:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17615, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3571:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31393031383938363934333638363738313636353737323039353837363835333435363936323732353936343832393232363533303439373637393236353130353632323938353938393734", + "id": 17616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3595:76:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1901898694368678166577209587685345696272596482922653049767926510562298598974_by_1", + "typeString": "int_const 1901...(68 digits omitted)...8974" + }, + "value": "1901898694368678166577209587685345696272596482922653049767926510562298598974" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17620, + "mutability": "constant", + "name": "IC4y", + "nameLocation": "3694:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "3677:100:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3677:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "35303538353732343436363530373230333433373830383936303139383934373039373135363635333737303232393838353335303330323432383735393834373231333038323633373631", + "id": 17619, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3701:76:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_5058572446650720343780896019894709715665377022988535030242875984721308263761_by_1", + "typeString": "int_const 5058...(68 digits omitted)...3761" + }, + "value": "5058572446650720343780896019894709715665377022988535030242875984721308263761" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17623, + "mutability": "constant", + "name": "IC5x", + "nameLocation": "3805:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "3788:101:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17621, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3788:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3230343331383338323131353436303738383438313432363433353834333936333533313437323235313639333537303035343835313933343135383530313136373231393339333133363938", + "id": 17622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3812:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_20431838211546078848142643584396353147225169357005485193415850116721939313698_by_1", + "typeString": "int_const 2043...(69 digits omitted)...3698" + }, + "value": "20431838211546078848142643584396353147225169357005485193415850116721939313698" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17626, + "mutability": "constant", + "name": "IC5y", + "nameLocation": "3912:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "3895:101:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3895:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3132363734363837363237343633393838313334393034333336353039373435373935363134393434333633373432313635363732323439313039323537393335343536393835363438383835", + "id": 17625, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3919:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_12674687627463988134904336509745795614944363742165672249109257935456985648885_by_1", + "typeString": "int_const 1267...(69 digits omitted)...8885" + }, + "value": "12674687627463988134904336509745795614944363742165672249109257935456985648885" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17629, + "mutability": "constant", + "name": "IC6x", + "nameLocation": "4024:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "4007:100:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17627, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4007:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34303134343335393931393336323138303436373236353135373336333035393132383735323039333732303237353031323136313831313732313930363036333136333238373437343732", + "id": 17628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4031:76:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_4014435991936218046726515736305912875209372027501216181172190606316328747472_by_1", + "typeString": "int_const 4014...(68 digits omitted)...7472" + }, + "value": "4014435991936218046726515736305912875209372027501216181172190606316328747472" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17632, + "mutability": "constant", + "name": "IC6y", + "nameLocation": "4130:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "4113:101:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17630, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4113:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3136393132353835303137333532313035383730393839373936363535383534393638373931323139373239323337363334343835383436353835303634363936313334333734303435393334", + "id": 17631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4137:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_16912585017352105870989796655854968791219729237634485846585064696134374045934_by_1", + "typeString": "int_const 1691...(69 digits omitted)...5934" + }, + "value": "16912585017352105870989796655854968791219729237634485846585064696134374045934" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17635, + "mutability": "constant", + "name": "IC7x", + "nameLocation": "4242:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "4225:101:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17633, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4225:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3132353533313331313037393835343231343434343132333332313738393536313533353630313836393237363137313231383631343138393339323837333230313738393430393735363832", + "id": 17634, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4249:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_12553131107985421444412332178956153560186927617121861418939287320178940975682_by_1", + "typeString": "int_const 1255...(69 digits omitted)...5682" + }, + "value": "12553131107985421444412332178956153560186927617121861418939287320178940975682" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17638, + "mutability": "constant", + "name": "IC7y", + "nameLocation": "4349:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "4332:101:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17636, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4332:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3135323131333734353037393637313632323530383235303330313237323638353232353631353535343634373232323533363637353034333836353937383332323837333538313138373737", + "id": 17637, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4356:77:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_15211374507967162250825030127268522561555464722253667504386597832287358118777_by_1", + "typeString": "int_const 1521...(69 digits omitted)...8777" + }, + "value": "15211374507967162250825030127268522561555464722253667504386597832287358118777" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17641, + "mutability": "constant", + "name": "IC8x", + "nameLocation": "4461:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "4444:100:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17639, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4444:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "39333630383232333835313732353232363433363539343034393030333836373238363530313839383236323339313536353634393535353839353531383635313838383138373739323434", + "id": 17640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4468:76:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_9360822385172522643659404900386728650189826239156564955589551865188818779244_by_1", + "typeString": "int_const 9360...(68 digits omitted)...9244" + }, + "value": "9360822385172522643659404900386728650189826239156564955589551865188818779244" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17644, + "mutability": "constant", + "name": "IC8y", + "nameLocation": "4567:4:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "4550:100:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17642, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4550:7:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31363030373430393737393732393830323035333036383935313038393933333336353633363335333239343937303139383330303635383137383130313933353930313533393732373734", + "id": 17643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4574:76:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_1600740977972980205306895108993336563635329497019830065817810193590153972774_by_1", + "typeString": "int_const 1600...(68 digits omitted)...2774" + }, + "value": "1600740977972980205306895108993336563635329497019830065817810193590153972774" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17647, + "mutability": "constant", + "name": "pVk", + "nameLocation": "4698:3:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "4682:23:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 17645, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4682:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "30", + "id": 17646, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4704:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17650, + "mutability": "constant", + "name": "pPairing", + "nameLocation": "4727:8:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "4711:30:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 17648, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4711:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "313238", + "id": 17649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4738:3:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17653, + "mutability": "constant", + "name": "pLastMem", + "nameLocation": "4764:8:40", + "nodeType": "VariableDeclaration", + "scope": 17679, + "src": "4748:30:40", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 17651, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4748:6:40", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "383936", + "id": 17652, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4775:3:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_896_by_1", + "typeString": "int_const 896" + }, + "value": "896" + }, + "visibility": "internal" + }, + { + "body": { + "id": 17677, + "nodeType": "Block", + "src": "4932:4853:40", + "statements": [ + { + "AST": { + "nativeSrc": "4951:4827:40", + "nodeType": "YulBlock", + "src": "4951:4827:40", + "statements": [ + { + "body": { + "nativeSrc": "4988:140:40", + "nodeType": "YulBlock", + "src": "4988:140:40", + "statements": [ + { + "body": { + "nativeSrc": "5026:88:40", + "nodeType": "YulBlock", + "src": "5026:88:40", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5055:1:40", + "nodeType": "YulLiteral", + "src": "5055:1:40", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5058:1:40", + "nodeType": "YulLiteral", + "src": "5058:1:40", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5048:6:40", + "nodeType": "YulIdentifier", + "src": "5048:6:40" + }, + "nativeSrc": "5048:12:40", + "nodeType": "YulFunctionCall", + "src": "5048:12:40" + }, + "nativeSrc": "5048:12:40", + "nodeType": "YulExpressionStatement", + "src": "5048:12:40" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5088:1:40", + "nodeType": "YulLiteral", + "src": "5088:1:40", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5091:4:40", + "nodeType": "YulLiteral", + "src": "5091:4:40", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "5081:6:40", + "nodeType": "YulIdentifier", + "src": "5081:6:40" + }, + "nativeSrc": "5081:15:40", + "nodeType": "YulFunctionCall", + "src": "5081:15:40" + }, + "nativeSrc": "5081:15:40", + "nodeType": "YulExpressionStatement", + "src": "5081:15:40" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "v", + "nativeSrc": "5019:1:40", + "nodeType": "YulIdentifier", + "src": "5019:1:40" + }, + { + "name": "r", + "nativeSrc": "5022:1:40", + "nodeType": "YulIdentifier", + "src": "5022:1:40" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5016:2:40", + "nodeType": "YulIdentifier", + "src": "5016:2:40" + }, + "nativeSrc": "5016:8:40", + "nodeType": "YulFunctionCall", + "src": "5016:8:40" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5009:6:40", + "nodeType": "YulIdentifier", + "src": "5009:6:40" + }, + "nativeSrc": "5009:16:40", + "nodeType": "YulFunctionCall", + "src": "5009:16:40" + }, + "nativeSrc": "5006:108:40", + "nodeType": "YulIf", + "src": "5006:108:40" + } + ] + }, + "name": "checkField", + "nativeSrc": "4965:163:40", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "v", + "nativeSrc": "4985:1:40", + "nodeType": "YulTypedName", + "src": "4985:1:40", + "type": "" + } + ], + "src": "4965:163:40" + }, + { + "body": { + "nativeSrc": "5265:705:40", + "nodeType": "YulBlock", + "src": "5265:705:40", + "statements": [ + { + "nativeSrc": "5283:11:40", + "nodeType": "YulVariableDeclaration", + "src": "5283:11:40", + "variables": [ + { + "name": "success", + "nativeSrc": "5287:7:40", + "nodeType": "YulTypedName", + "src": "5287:7:40", + "type": "" + } + ] + }, + { + "nativeSrc": "5311:22:40", + "nodeType": "YulVariableDeclaration", + "src": "5311:22:40", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5328:4:40", + "nodeType": "YulLiteral", + "src": "5328:4:40", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5322:5:40", + "nodeType": "YulIdentifier", + "src": "5322:5:40" + }, + "nativeSrc": "5322:11:40", + "nodeType": "YulFunctionCall", + "src": "5322:11:40" + }, + "variables": [ + { + "name": "mIn", + "nativeSrc": "5315:3:40", + "nodeType": "YulTypedName", + "src": "5315:3:40", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5357:3:40", + "nodeType": "YulIdentifier", + "src": "5357:3:40" + }, + { + "name": "x", + "nativeSrc": "5362:1:40", + "nodeType": "YulIdentifier", + "src": "5362:1:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5350:6:40", + "nodeType": "YulIdentifier", + "src": "5350:6:40" + }, + "nativeSrc": "5350:14:40", + "nodeType": "YulFunctionCall", + "src": "5350:14:40" + }, + "nativeSrc": "5350:14:40", + "nodeType": "YulExpressionStatement", + "src": "5350:14:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5392:3:40", + "nodeType": "YulIdentifier", + "src": "5392:3:40" + }, + { + "kind": "number", + "nativeSrc": "5397:2:40", + "nodeType": "YulLiteral", + "src": "5397:2:40", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5388:3:40", + "nodeType": "YulIdentifier", + "src": "5388:3:40" + }, + "nativeSrc": "5388:12:40", + "nodeType": "YulFunctionCall", + "src": "5388:12:40" + }, + { + "name": "y", + "nativeSrc": "5402:1:40", + "nodeType": "YulIdentifier", + "src": "5402:1:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5381:6:40", + "nodeType": "YulIdentifier", + "src": "5381:6:40" + }, + "nativeSrc": "5381:23:40", + "nodeType": "YulFunctionCall", + "src": "5381:23:40" + }, + "nativeSrc": "5381:23:40", + "nodeType": "YulExpressionStatement", + "src": "5381:23:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5432:3:40", + "nodeType": "YulIdentifier", + "src": "5432:3:40" + }, + { + "kind": "number", + "nativeSrc": "5437:2:40", + "nodeType": "YulLiteral", + "src": "5437:2:40", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5428:3:40", + "nodeType": "YulIdentifier", + "src": "5428:3:40" + }, + "nativeSrc": "5428:12:40", + "nodeType": "YulFunctionCall", + "src": "5428:12:40" + }, + { + "name": "s", + "nativeSrc": "5442:1:40", + "nodeType": "YulIdentifier", + "src": "5442:1:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5421:6:40", + "nodeType": "YulIdentifier", + "src": "5421:6:40" + }, + "nativeSrc": "5421:23:40", + "nodeType": "YulFunctionCall", + "src": "5421:23:40" + }, + "nativeSrc": "5421:23:40", + "nodeType": "YulExpressionStatement", + "src": "5421:23:40" + }, + { + "nativeSrc": "5462:60:40", + "nodeType": "YulAssignment", + "src": "5462:60:40", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "5488:3:40", + "nodeType": "YulIdentifier", + "src": "5488:3:40" + }, + "nativeSrc": "5488:5:40", + "nodeType": "YulFunctionCall", + "src": "5488:5:40" + }, + { + "kind": "number", + "nativeSrc": "5495:4:40", + "nodeType": "YulLiteral", + "src": "5495:4:40", + "type": "", + "value": "2000" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5484:3:40", + "nodeType": "YulIdentifier", + "src": "5484:3:40" + }, + "nativeSrc": "5484:16:40", + "nodeType": "YulFunctionCall", + "src": "5484:16:40" + }, + { + "kind": "number", + "nativeSrc": "5502:1:40", + "nodeType": "YulLiteral", + "src": "5502:1:40", + "type": "", + "value": "7" + }, + { + "name": "mIn", + "nativeSrc": "5505:3:40", + "nodeType": "YulIdentifier", + "src": "5505:3:40" + }, + { + "kind": "number", + "nativeSrc": "5510:2:40", + "nodeType": "YulLiteral", + "src": "5510:2:40", + "type": "", + "value": "96" + }, + { + "name": "mIn", + "nativeSrc": "5514:3:40", + "nodeType": "YulIdentifier", + "src": "5514:3:40" + }, + { + "kind": "number", + "nativeSrc": "5519:2:40", + "nodeType": "YulLiteral", + "src": "5519:2:40", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "5473:10:40", + "nodeType": "YulIdentifier", + "src": "5473:10:40" + }, + "nativeSrc": "5473:49:40", + "nodeType": "YulFunctionCall", + "src": "5473:49:40" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "5462:7:40", + "nodeType": "YulIdentifier", + "src": "5462:7:40" + } + ] + }, + { + "body": { + "nativeSrc": "5559:88:40", + "nodeType": "YulBlock", + "src": "5559:88:40", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5588:1:40", + "nodeType": "YulLiteral", + "src": "5588:1:40", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5591:1:40", + "nodeType": "YulLiteral", + "src": "5591:1:40", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5581:6:40", + "nodeType": "YulIdentifier", + "src": "5581:6:40" + }, + "nativeSrc": "5581:12:40", + "nodeType": "YulFunctionCall", + "src": "5581:12:40" + }, + "nativeSrc": "5581:12:40", + "nodeType": "YulExpressionStatement", + "src": "5581:12:40" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5621:1:40", + "nodeType": "YulLiteral", + "src": "5621:1:40", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5624:4:40", + "nodeType": "YulLiteral", + "src": "5624:4:40", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "5614:6:40", + "nodeType": "YulIdentifier", + "src": "5614:6:40" + }, + "nativeSrc": "5614:15:40", + "nodeType": "YulFunctionCall", + "src": "5614:15:40" + }, + "nativeSrc": "5614:15:40", + "nodeType": "YulExpressionStatement", + "src": "5614:15:40" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "success", + "nativeSrc": "5550:7:40", + "nodeType": "YulIdentifier", + "src": "5550:7:40" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5543:6:40", + "nodeType": "YulIdentifier", + "src": "5543:6:40" + }, + "nativeSrc": "5543:15:40", + "nodeType": "YulFunctionCall", + "src": "5543:15:40" + }, + "nativeSrc": "5540:107:40", + "nodeType": "YulIf", + "src": "5540:107:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5676:3:40", + "nodeType": "YulIdentifier", + "src": "5676:3:40" + }, + { + "kind": "number", + "nativeSrc": "5681:2:40", + "nodeType": "YulLiteral", + "src": "5681:2:40", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5672:3:40", + "nodeType": "YulIdentifier", + "src": "5672:3:40" + }, + "nativeSrc": "5672:12:40", + "nodeType": "YulFunctionCall", + "src": "5672:12:40" + }, + { + "arguments": [ + { + "name": "pR", + "nativeSrc": "5692:2:40", + "nodeType": "YulIdentifier", + "src": "5692:2:40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5686:5:40", + "nodeType": "YulIdentifier", + "src": "5686:5:40" + }, + "nativeSrc": "5686:9:40", + "nodeType": "YulFunctionCall", + "src": "5686:9:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5665:6:40", + "nodeType": "YulIdentifier", + "src": "5665:6:40" + }, + "nativeSrc": "5665:31:40", + "nodeType": "YulFunctionCall", + "src": "5665:31:40" + }, + "nativeSrc": "5665:31:40", + "nodeType": "YulExpressionStatement", + "src": "5665:31:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5724:3:40", + "nodeType": "YulIdentifier", + "src": "5724:3:40" + }, + { + "kind": "number", + "nativeSrc": "5729:2:40", + "nodeType": "YulLiteral", + "src": "5729:2:40", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5720:3:40", + "nodeType": "YulIdentifier", + "src": "5720:3:40" + }, + "nativeSrc": "5720:12:40", + "nodeType": "YulFunctionCall", + "src": "5720:12:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pR", + "nativeSrc": "5744:2:40", + "nodeType": "YulIdentifier", + "src": "5744:2:40" + }, + { + "kind": "number", + "nativeSrc": "5748:2:40", + "nodeType": "YulLiteral", + "src": "5748:2:40", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5740:3:40", + "nodeType": "YulIdentifier", + "src": "5740:3:40" + }, + "nativeSrc": "5740:11:40", + "nodeType": "YulFunctionCall", + "src": "5740:11:40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5734:5:40", + "nodeType": "YulIdentifier", + "src": "5734:5:40" + }, + "nativeSrc": "5734:18:40", + "nodeType": "YulFunctionCall", + "src": "5734:18:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5713:6:40", + "nodeType": "YulIdentifier", + "src": "5713:6:40" + }, + "nativeSrc": "5713:40:40", + "nodeType": "YulFunctionCall", + "src": "5713:40:40" + }, + "nativeSrc": "5713:40:40", + "nodeType": "YulExpressionStatement", + "src": "5713:40:40" + }, + { + "nativeSrc": "5771:60:40", + "nodeType": "YulAssignment", + "src": "5771:60:40", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "5797:3:40", + "nodeType": "YulIdentifier", + "src": "5797:3:40" + }, + "nativeSrc": "5797:5:40", + "nodeType": "YulFunctionCall", + "src": "5797:5:40" + }, + { + "kind": "number", + "nativeSrc": "5804:4:40", + "nodeType": "YulLiteral", + "src": "5804:4:40", + "type": "", + "value": "2000" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5793:3:40", + "nodeType": "YulIdentifier", + "src": "5793:3:40" + }, + "nativeSrc": "5793:16:40", + "nodeType": "YulFunctionCall", + "src": "5793:16:40" + }, + { + "kind": "number", + "nativeSrc": "5811:1:40", + "nodeType": "YulLiteral", + "src": "5811:1:40", + "type": "", + "value": "6" + }, + { + "name": "mIn", + "nativeSrc": "5814:3:40", + "nodeType": "YulIdentifier", + "src": "5814:3:40" + }, + { + "kind": "number", + "nativeSrc": "5819:3:40", + "nodeType": "YulLiteral", + "src": "5819:3:40", + "type": "", + "value": "128" + }, + { + "name": "pR", + "nativeSrc": "5824:2:40", + "nodeType": "YulIdentifier", + "src": "5824:2:40" + }, + { + "kind": "number", + "nativeSrc": "5828:2:40", + "nodeType": "YulLiteral", + "src": "5828:2:40", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "5782:10:40", + "nodeType": "YulIdentifier", + "src": "5782:10:40" + }, + "nativeSrc": "5782:49:40", + "nodeType": "YulFunctionCall", + "src": "5782:49:40" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "5771:7:40", + "nodeType": "YulIdentifier", + "src": "5771:7:40" + } + ] + }, + { + "body": { + "nativeSrc": "5868:88:40", + "nodeType": "YulBlock", + "src": "5868:88:40", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5897:1:40", + "nodeType": "YulLiteral", + "src": "5897:1:40", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5900:1:40", + "nodeType": "YulLiteral", + "src": "5900:1:40", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5890:6:40", + "nodeType": "YulIdentifier", + "src": "5890:6:40" + }, + "nativeSrc": "5890:12:40", + "nodeType": "YulFunctionCall", + "src": "5890:12:40" + }, + "nativeSrc": "5890:12:40", + "nodeType": "YulExpressionStatement", + "src": "5890:12:40" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5930:1:40", + "nodeType": "YulLiteral", + "src": "5930:1:40", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5933:4:40", + "nodeType": "YulLiteral", + "src": "5933:4:40", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "5923:6:40", + "nodeType": "YulIdentifier", + "src": "5923:6:40" + }, + "nativeSrc": "5923:15:40", + "nodeType": "YulFunctionCall", + "src": "5923:15:40" + }, + "nativeSrc": "5923:15:40", + "nodeType": "YulExpressionStatement", + "src": "5923:15:40" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "success", + "nativeSrc": "5859:7:40", + "nodeType": "YulIdentifier", + "src": "5859:7:40" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5852:6:40", + "nodeType": "YulIdentifier", + "src": "5852:6:40" + }, + "nativeSrc": "5852:15:40", + "nodeType": "YulFunctionCall", + "src": "5852:15:40" + }, + "nativeSrc": "5849:107:40", + "nodeType": "YulIf", + "src": "5849:107:40" + } + ] + }, + "name": "g1_mulAccC", + "nativeSrc": "5232:738:40", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pR", + "nativeSrc": "5252:2:40", + "nodeType": "YulTypedName", + "src": "5252:2:40", + "type": "" + }, + { + "name": "x", + "nativeSrc": "5256:1:40", + "nodeType": "YulTypedName", + "src": "5256:1:40", + "type": "" + }, + { + "name": "y", + "nativeSrc": "5259:1:40", + "nodeType": "YulTypedName", + "src": "5259:1:40", + "type": "" + }, + { + "name": "s", + "nativeSrc": "5262:1:40", + "nodeType": "YulTypedName", + "src": "5262:1:40", + "type": "" + } + ], + "src": "5232:738:40" + }, + { + "body": { + "nativeSrc": "6044:2820:40", + "nodeType": "YulBlock", + "src": "6044:2820:40", + "statements": [ + { + "nativeSrc": "6062:36:40", + "nodeType": "YulVariableDeclaration", + "src": "6062:36:40", + "value": { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "6083:4:40", + "nodeType": "YulIdentifier", + "src": "6083:4:40" + }, + { + "name": "pPairing", + "nativeSrc": "6089:8:40", + "nodeType": "YulIdentifier", + "src": "6089:8:40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6079:3:40", + "nodeType": "YulIdentifier", + "src": "6079:3:40" + }, + "nativeSrc": "6079:19:40", + "nodeType": "YulFunctionCall", + "src": "6079:19:40" + }, + "variables": [ + { + "name": "_pPairing", + "nativeSrc": "6066:9:40", + "nodeType": "YulTypedName", + "src": "6066:9:40", + "type": "" + } + ] + }, + { + "nativeSrc": "6115:26:40", + "nodeType": "YulVariableDeclaration", + "src": "6115:26:40", + "value": { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "6131:4:40", + "nodeType": "YulIdentifier", + "src": "6131:4:40" + }, + { + "name": "pVk", + "nativeSrc": "6137:3:40", + "nodeType": "YulIdentifier", + "src": "6137:3:40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6127:3:40", + "nodeType": "YulIdentifier", + "src": "6127:3:40" + }, + "nativeSrc": "6127:14:40", + "nodeType": "YulFunctionCall", + "src": "6127:14:40" + }, + "variables": [ + { + "name": "_pVk", + "nativeSrc": "6119:4:40", + "nodeType": "YulTypedName", + "src": "6119:4:40", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6166:4:40", + "nodeType": "YulIdentifier", + "src": "6166:4:40" + }, + { + "name": "IC0x", + "nativeSrc": "6172:4:40", + "nodeType": "YulIdentifier", + "src": "6172:4:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6159:6:40", + "nodeType": "YulIdentifier", + "src": "6159:6:40" + }, + "nativeSrc": "6159:18:40", + "nodeType": "YulFunctionCall", + "src": "6159:18:40" + }, + "nativeSrc": "6159:18:40", + "nodeType": "YulExpressionStatement", + "src": "6159:18:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6205:4:40", + "nodeType": "YulIdentifier", + "src": "6205:4:40" + }, + { + "kind": "number", + "nativeSrc": "6211:2:40", + "nodeType": "YulLiteral", + "src": "6211:2:40", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6201:3:40", + "nodeType": "YulIdentifier", + "src": "6201:3:40" + }, + "nativeSrc": "6201:13:40", + "nodeType": "YulFunctionCall", + "src": "6201:13:40" + }, + { + "name": "IC0y", + "nativeSrc": "6216:4:40", + "nodeType": "YulIdentifier", + "src": "6216:4:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6194:6:40", + "nodeType": "YulIdentifier", + "src": "6194:6:40" + }, + "nativeSrc": "6194:27:40", + "nodeType": "YulFunctionCall", + "src": "6194:27:40" + }, + "nativeSrc": "6194:27:40", + "nodeType": "YulExpressionStatement", + "src": "6194:27:40" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6322:4:40", + "nodeType": "YulIdentifier", + "src": "6322:4:40" + }, + { + "name": "IC1x", + "nativeSrc": "6328:4:40", + "nodeType": "YulIdentifier", + "src": "6328:4:40" + }, + { + "name": "IC1y", + "nativeSrc": "6334:4:40", + "nodeType": "YulIdentifier", + "src": "6334:4:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6357:10:40", + "nodeType": "YulIdentifier", + "src": "6357:10:40" + }, + { + "kind": "number", + "nativeSrc": "6369:1:40", + "nodeType": "YulLiteral", + "src": "6369:1:40", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6353:3:40", + "nodeType": "YulIdentifier", + "src": "6353:3:40" + }, + "nativeSrc": "6353:18:40", + "nodeType": "YulFunctionCall", + "src": "6353:18:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6340:12:40", + "nodeType": "YulIdentifier", + "src": "6340:12:40" + }, + "nativeSrc": "6340:32:40", + "nodeType": "YulFunctionCall", + "src": "6340:32:40" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6311:10:40", + "nodeType": "YulIdentifier", + "src": "6311:10:40" + }, + "nativeSrc": "6311:62:40", + "nodeType": "YulFunctionCall", + "src": "6311:62:40" + }, + "nativeSrc": "6311:62:40", + "nodeType": "YulExpressionStatement", + "src": "6311:62:40" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6418:4:40", + "nodeType": "YulIdentifier", + "src": "6418:4:40" + }, + { + "name": "IC2x", + "nativeSrc": "6424:4:40", + "nodeType": "YulIdentifier", + "src": "6424:4:40" + }, + { + "name": "IC2y", + "nativeSrc": "6430:4:40", + "nodeType": "YulIdentifier", + "src": "6430:4:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6453:10:40", + "nodeType": "YulIdentifier", + "src": "6453:10:40" + }, + { + "kind": "number", + "nativeSrc": "6465:2:40", + "nodeType": "YulLiteral", + "src": "6465:2:40", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6449:3:40", + "nodeType": "YulIdentifier", + "src": "6449:3:40" + }, + "nativeSrc": "6449:19:40", + "nodeType": "YulFunctionCall", + "src": "6449:19:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6436:12:40", + "nodeType": "YulIdentifier", + "src": "6436:12:40" + }, + "nativeSrc": "6436:33:40", + "nodeType": "YulFunctionCall", + "src": "6436:33:40" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6407:10:40", + "nodeType": "YulIdentifier", + "src": "6407:10:40" + }, + "nativeSrc": "6407:63:40", + "nodeType": "YulFunctionCall", + "src": "6407:63:40" + }, + "nativeSrc": "6407:63:40", + "nodeType": "YulExpressionStatement", + "src": "6407:63:40" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6515:4:40", + "nodeType": "YulIdentifier", + "src": "6515:4:40" + }, + { + "name": "IC3x", + "nativeSrc": "6521:4:40", + "nodeType": "YulIdentifier", + "src": "6521:4:40" + }, + { + "name": "IC3y", + "nativeSrc": "6527:4:40", + "nodeType": "YulIdentifier", + "src": "6527:4:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6550:10:40", + "nodeType": "YulIdentifier", + "src": "6550:10:40" + }, + { + "kind": "number", + "nativeSrc": "6562:2:40", + "nodeType": "YulLiteral", + "src": "6562:2:40", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6546:3:40", + "nodeType": "YulIdentifier", + "src": "6546:3:40" + }, + "nativeSrc": "6546:19:40", + "nodeType": "YulFunctionCall", + "src": "6546:19:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6533:12:40", + "nodeType": "YulIdentifier", + "src": "6533:12:40" + }, + "nativeSrc": "6533:33:40", + "nodeType": "YulFunctionCall", + "src": "6533:33:40" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6504:10:40", + "nodeType": "YulIdentifier", + "src": "6504:10:40" + }, + "nativeSrc": "6504:63:40", + "nodeType": "YulFunctionCall", + "src": "6504:63:40" + }, + "nativeSrc": "6504:63:40", + "nodeType": "YulExpressionStatement", + "src": "6504:63:40" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6612:4:40", + "nodeType": "YulIdentifier", + "src": "6612:4:40" + }, + { + "name": "IC4x", + "nativeSrc": "6618:4:40", + "nodeType": "YulIdentifier", + "src": "6618:4:40" + }, + { + "name": "IC4y", + "nativeSrc": "6624:4:40", + "nodeType": "YulIdentifier", + "src": "6624:4:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6647:10:40", + "nodeType": "YulIdentifier", + "src": "6647:10:40" + }, + { + "kind": "number", + "nativeSrc": "6659:2:40", + "nodeType": "YulLiteral", + "src": "6659:2:40", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6643:3:40", + "nodeType": "YulIdentifier", + "src": "6643:3:40" + }, + "nativeSrc": "6643:19:40", + "nodeType": "YulFunctionCall", + "src": "6643:19:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6630:12:40", + "nodeType": "YulIdentifier", + "src": "6630:12:40" + }, + "nativeSrc": "6630:33:40", + "nodeType": "YulFunctionCall", + "src": "6630:33:40" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6601:10:40", + "nodeType": "YulIdentifier", + "src": "6601:10:40" + }, + "nativeSrc": "6601:63:40", + "nodeType": "YulFunctionCall", + "src": "6601:63:40" + }, + "nativeSrc": "6601:63:40", + "nodeType": "YulExpressionStatement", + "src": "6601:63:40" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6709:4:40", + "nodeType": "YulIdentifier", + "src": "6709:4:40" + }, + { + "name": "IC5x", + "nativeSrc": "6715:4:40", + "nodeType": "YulIdentifier", + "src": "6715:4:40" + }, + { + "name": "IC5y", + "nativeSrc": "6721:4:40", + "nodeType": "YulIdentifier", + "src": "6721:4:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6744:10:40", + "nodeType": "YulIdentifier", + "src": "6744:10:40" + }, + { + "kind": "number", + "nativeSrc": "6756:3:40", + "nodeType": "YulLiteral", + "src": "6756:3:40", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6740:3:40", + "nodeType": "YulIdentifier", + "src": "6740:3:40" + }, + "nativeSrc": "6740:20:40", + "nodeType": "YulFunctionCall", + "src": "6740:20:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6727:12:40", + "nodeType": "YulIdentifier", + "src": "6727:12:40" + }, + "nativeSrc": "6727:34:40", + "nodeType": "YulFunctionCall", + "src": "6727:34:40" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6698:10:40", + "nodeType": "YulIdentifier", + "src": "6698:10:40" + }, + "nativeSrc": "6698:64:40", + "nodeType": "YulFunctionCall", + "src": "6698:64:40" + }, + "nativeSrc": "6698:64:40", + "nodeType": "YulExpressionStatement", + "src": "6698:64:40" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6807:4:40", + "nodeType": "YulIdentifier", + "src": "6807:4:40" + }, + { + "name": "IC6x", + "nativeSrc": "6813:4:40", + "nodeType": "YulIdentifier", + "src": "6813:4:40" + }, + { + "name": "IC6y", + "nativeSrc": "6819:4:40", + "nodeType": "YulIdentifier", + "src": "6819:4:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6842:10:40", + "nodeType": "YulIdentifier", + "src": "6842:10:40" + }, + { + "kind": "number", + "nativeSrc": "6854:3:40", + "nodeType": "YulLiteral", + "src": "6854:3:40", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6838:3:40", + "nodeType": "YulIdentifier", + "src": "6838:3:40" + }, + "nativeSrc": "6838:20:40", + "nodeType": "YulFunctionCall", + "src": "6838:20:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6825:12:40", + "nodeType": "YulIdentifier", + "src": "6825:12:40" + }, + "nativeSrc": "6825:34:40", + "nodeType": "YulFunctionCall", + "src": "6825:34:40" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6796:10:40", + "nodeType": "YulIdentifier", + "src": "6796:10:40" + }, + "nativeSrc": "6796:64:40", + "nodeType": "YulFunctionCall", + "src": "6796:64:40" + }, + "nativeSrc": "6796:64:40", + "nodeType": "YulExpressionStatement", + "src": "6796:64:40" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6905:4:40", + "nodeType": "YulIdentifier", + "src": "6905:4:40" + }, + { + "name": "IC7x", + "nativeSrc": "6911:4:40", + "nodeType": "YulIdentifier", + "src": "6911:4:40" + }, + { + "name": "IC7y", + "nativeSrc": "6917:4:40", + "nodeType": "YulIdentifier", + "src": "6917:4:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6940:10:40", + "nodeType": "YulIdentifier", + "src": "6940:10:40" + }, + { + "kind": "number", + "nativeSrc": "6952:3:40", + "nodeType": "YulLiteral", + "src": "6952:3:40", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6936:3:40", + "nodeType": "YulIdentifier", + "src": "6936:3:40" + }, + "nativeSrc": "6936:20:40", + "nodeType": "YulFunctionCall", + "src": "6936:20:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6923:12:40", + "nodeType": "YulIdentifier", + "src": "6923:12:40" + }, + "nativeSrc": "6923:34:40", + "nodeType": "YulFunctionCall", + "src": "6923:34:40" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6894:10:40", + "nodeType": "YulIdentifier", + "src": "6894:10:40" + }, + "nativeSrc": "6894:64:40", + "nodeType": "YulFunctionCall", + "src": "6894:64:40" + }, + "nativeSrc": "6894:64:40", + "nodeType": "YulExpressionStatement", + "src": "6894:64:40" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "7003:4:40", + "nodeType": "YulIdentifier", + "src": "7003:4:40" + }, + { + "name": "IC8x", + "nativeSrc": "7009:4:40", + "nodeType": "YulIdentifier", + "src": "7009:4:40" + }, + { + "name": "IC8y", + "nativeSrc": "7015:4:40", + "nodeType": "YulIdentifier", + "src": "7015:4:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "7038:10:40", + "nodeType": "YulIdentifier", + "src": "7038:10:40" + }, + { + "kind": "number", + "nativeSrc": "7050:3:40", + "nodeType": "YulLiteral", + "src": "7050:3:40", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7034:3:40", + "nodeType": "YulIdentifier", + "src": "7034:3:40" + }, + "nativeSrc": "7034:20:40", + "nodeType": "YulFunctionCall", + "src": "7034:20:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7021:12:40", + "nodeType": "YulIdentifier", + "src": "7021:12:40" + }, + "nativeSrc": "7021:34:40", + "nodeType": "YulFunctionCall", + "src": "7021:34:40" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6992:10:40", + "nodeType": "YulIdentifier", + "src": "6992:10:40" + }, + "nativeSrc": "6992:64:40", + "nodeType": "YulFunctionCall", + "src": "6992:64:40" + }, + "nativeSrc": "6992:64:40", + "nodeType": "YulExpressionStatement", + "src": "6992:64:40" + }, + { + "expression": { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7120:9:40", + "nodeType": "YulIdentifier", + "src": "7120:9:40" + }, + { + "arguments": [ + { + "name": "pA", + "nativeSrc": "7144:2:40", + "nodeType": "YulIdentifier", + "src": "7144:2:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7131:12:40", + "nodeType": "YulIdentifier", + "src": "7131:12:40" + }, + "nativeSrc": "7131:16:40", + "nodeType": "YulFunctionCall", + "src": "7131:16:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7113:6:40", + "nodeType": "YulIdentifier", + "src": "7113:6:40" + }, + "nativeSrc": "7113:35:40", + "nodeType": "YulFunctionCall", + "src": "7113:35:40" + }, + "nativeSrc": "7113:35:40", + "nodeType": "YulExpressionStatement", + "src": "7113:35:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7176:9:40", + "nodeType": "YulIdentifier", + "src": "7176:9:40" + }, + { + "kind": "number", + "nativeSrc": "7187:2:40", + "nodeType": "YulLiteral", + "src": "7187:2:40", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7172:3:40", + "nodeType": "YulIdentifier", + "src": "7172:3:40" + }, + "nativeSrc": "7172:18:40", + "nodeType": "YulFunctionCall", + "src": "7172:18:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "q", + "nativeSrc": "7200:1:40", + "nodeType": "YulIdentifier", + "src": "7200:1:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pA", + "nativeSrc": "7220:2:40", + "nodeType": "YulIdentifier", + "src": "7220:2:40" + }, + { + "kind": "number", + "nativeSrc": "7224:2:40", + "nodeType": "YulLiteral", + "src": "7224:2:40", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7216:3:40", + "nodeType": "YulIdentifier", + "src": "7216:3:40" + }, + "nativeSrc": "7216:11:40", + "nodeType": "YulFunctionCall", + "src": "7216:11:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7203:12:40", + "nodeType": "YulIdentifier", + "src": "7203:12:40" + }, + "nativeSrc": "7203:25:40", + "nodeType": "YulFunctionCall", + "src": "7203:25:40" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7196:3:40", + "nodeType": "YulIdentifier", + "src": "7196:3:40" + }, + "nativeSrc": "7196:33:40", + "nodeType": "YulFunctionCall", + "src": "7196:33:40" + }, + { + "name": "q", + "nativeSrc": "7231:1:40", + "nodeType": "YulIdentifier", + "src": "7231:1:40" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "7192:3:40", + "nodeType": "YulIdentifier", + "src": "7192:3:40" + }, + "nativeSrc": "7192:41:40", + "nodeType": "YulFunctionCall", + "src": "7192:41:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7165:6:40", + "nodeType": "YulIdentifier", + "src": "7165:6:40" + }, + "nativeSrc": "7165:69:40", + "nodeType": "YulFunctionCall", + "src": "7165:69:40" + }, + "nativeSrc": "7165:69:40", + "nodeType": "YulExpressionStatement", + "src": "7165:69:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7284:9:40", + "nodeType": "YulIdentifier", + "src": "7284:9:40" + }, + { + "kind": "number", + "nativeSrc": "7295:2:40", + "nodeType": "YulLiteral", + "src": "7295:2:40", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7280:3:40", + "nodeType": "YulIdentifier", + "src": "7280:3:40" + }, + "nativeSrc": "7280:18:40", + "nodeType": "YulFunctionCall", + "src": "7280:18:40" + }, + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7313:2:40", + "nodeType": "YulIdentifier", + "src": "7313:2:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7300:12:40", + "nodeType": "YulIdentifier", + "src": "7300:12:40" + }, + "nativeSrc": "7300:16:40", + "nodeType": "YulFunctionCall", + "src": "7300:16:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7273:6:40", + "nodeType": "YulIdentifier", + "src": "7273:6:40" + }, + "nativeSrc": "7273:44:40", + "nodeType": "YulFunctionCall", + "src": "7273:44:40" + }, + "nativeSrc": "7273:44:40", + "nodeType": "YulExpressionStatement", + "src": "7273:44:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7345:9:40", + "nodeType": "YulIdentifier", + "src": "7345:9:40" + }, + { + "kind": "number", + "nativeSrc": "7356:2:40", + "nodeType": "YulLiteral", + "src": "7356:2:40", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7341:3:40", + "nodeType": "YulIdentifier", + "src": "7341:3:40" + }, + "nativeSrc": "7341:18:40", + "nodeType": "YulFunctionCall", + "src": "7341:18:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7378:2:40", + "nodeType": "YulIdentifier", + "src": "7378:2:40" + }, + { + "kind": "number", + "nativeSrc": "7382:2:40", + "nodeType": "YulLiteral", + "src": "7382:2:40", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7374:3:40", + "nodeType": "YulIdentifier", + "src": "7374:3:40" + }, + "nativeSrc": "7374:11:40", + "nodeType": "YulFunctionCall", + "src": "7374:11:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7361:12:40", + "nodeType": "YulIdentifier", + "src": "7361:12:40" + }, + "nativeSrc": "7361:25:40", + "nodeType": "YulFunctionCall", + "src": "7361:25:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7334:6:40", + "nodeType": "YulIdentifier", + "src": "7334:6:40" + }, + "nativeSrc": "7334:53:40", + "nodeType": "YulFunctionCall", + "src": "7334:53:40" + }, + "nativeSrc": "7334:53:40", + "nodeType": "YulExpressionStatement", + "src": "7334:53:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7415:9:40", + "nodeType": "YulIdentifier", + "src": "7415:9:40" + }, + { + "kind": "number", + "nativeSrc": "7426:3:40", + "nodeType": "YulLiteral", + "src": "7426:3:40", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7411:3:40", + "nodeType": "YulIdentifier", + "src": "7411:3:40" + }, + "nativeSrc": "7411:19:40", + "nodeType": "YulFunctionCall", + "src": "7411:19:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7449:2:40", + "nodeType": "YulIdentifier", + "src": "7449:2:40" + }, + { + "kind": "number", + "nativeSrc": "7453:2:40", + "nodeType": "YulLiteral", + "src": "7453:2:40", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7445:3:40", + "nodeType": "YulIdentifier", + "src": "7445:3:40" + }, + "nativeSrc": "7445:11:40", + "nodeType": "YulFunctionCall", + "src": "7445:11:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7432:12:40", + "nodeType": "YulIdentifier", + "src": "7432:12:40" + }, + "nativeSrc": "7432:25:40", + "nodeType": "YulFunctionCall", + "src": "7432:25:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7404:6:40", + "nodeType": "YulIdentifier", + "src": "7404:6:40" + }, + "nativeSrc": "7404:54:40", + "nodeType": "YulFunctionCall", + "src": "7404:54:40" + }, + "nativeSrc": "7404:54:40", + "nodeType": "YulExpressionStatement", + "src": "7404:54:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7486:9:40", + "nodeType": "YulIdentifier", + "src": "7486:9:40" + }, + { + "kind": "number", + "nativeSrc": "7497:3:40", + "nodeType": "YulLiteral", + "src": "7497:3:40", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7482:3:40", + "nodeType": "YulIdentifier", + "src": "7482:3:40" + }, + "nativeSrc": "7482:19:40", + "nodeType": "YulFunctionCall", + "src": "7482:19:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7520:2:40", + "nodeType": "YulIdentifier", + "src": "7520:2:40" + }, + { + "kind": "number", + "nativeSrc": "7524:2:40", + "nodeType": "YulLiteral", + "src": "7524:2:40", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7516:3:40", + "nodeType": "YulIdentifier", + "src": "7516:3:40" + }, + "nativeSrc": "7516:11:40", + "nodeType": "YulFunctionCall", + "src": "7516:11:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7503:12:40", + "nodeType": "YulIdentifier", + "src": "7503:12:40" + }, + "nativeSrc": "7503:25:40", + "nodeType": "YulFunctionCall", + "src": "7503:25:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7475:6:40", + "nodeType": "YulIdentifier", + "src": "7475:6:40" + }, + "nativeSrc": "7475:54:40", + "nodeType": "YulFunctionCall", + "src": "7475:54:40" + }, + "nativeSrc": "7475:54:40", + "nodeType": "YulExpressionStatement", + "src": "7475:54:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7584:9:40", + "nodeType": "YulIdentifier", + "src": "7584:9:40" + }, + { + "kind": "number", + "nativeSrc": "7595:3:40", + "nodeType": "YulLiteral", + "src": "7595:3:40", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7580:3:40", + "nodeType": "YulIdentifier", + "src": "7580:3:40" + }, + "nativeSrc": "7580:19:40", + "nodeType": "YulFunctionCall", + "src": "7580:19:40" + }, + { + "name": "alphax", + "nativeSrc": "7601:6:40", + "nodeType": "YulIdentifier", + "src": "7601:6:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7573:6:40", + "nodeType": "YulIdentifier", + "src": "7573:6:40" + }, + "nativeSrc": "7573:35:40", + "nodeType": "YulFunctionCall", + "src": "7573:35:40" + }, + "nativeSrc": "7573:35:40", + "nodeType": "YulExpressionStatement", + "src": "7573:35:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7636:9:40", + "nodeType": "YulIdentifier", + "src": "7636:9:40" + }, + { + "kind": "number", + "nativeSrc": "7647:3:40", + "nodeType": "YulLiteral", + "src": "7647:3:40", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7632:3:40", + "nodeType": "YulIdentifier", + "src": "7632:3:40" + }, + "nativeSrc": "7632:19:40", + "nodeType": "YulFunctionCall", + "src": "7632:19:40" + }, + { + "name": "alphay", + "nativeSrc": "7653:6:40", + "nodeType": "YulIdentifier", + "src": "7653:6:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7625:6:40", + "nodeType": "YulIdentifier", + "src": "7625:6:40" + }, + "nativeSrc": "7625:35:40", + "nodeType": "YulFunctionCall", + "src": "7625:35:40" + }, + "nativeSrc": "7625:35:40", + "nodeType": "YulExpressionStatement", + "src": "7625:35:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7714:9:40", + "nodeType": "YulIdentifier", + "src": "7714:9:40" + }, + { + "kind": "number", + "nativeSrc": "7725:3:40", + "nodeType": "YulLiteral", + "src": "7725:3:40", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7710:3:40", + "nodeType": "YulIdentifier", + "src": "7710:3:40" + }, + "nativeSrc": "7710:19:40", + "nodeType": "YulFunctionCall", + "src": "7710:19:40" + }, + { + "name": "betax1", + "nativeSrc": "7731:6:40", + "nodeType": "YulIdentifier", + "src": "7731:6:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7703:6:40", + "nodeType": "YulIdentifier", + "src": "7703:6:40" + }, + "nativeSrc": "7703:35:40", + "nodeType": "YulFunctionCall", + "src": "7703:35:40" + }, + "nativeSrc": "7703:35:40", + "nodeType": "YulExpressionStatement", + "src": "7703:35:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7766:9:40", + "nodeType": "YulIdentifier", + "src": "7766:9:40" + }, + { + "kind": "number", + "nativeSrc": "7777:3:40", + "nodeType": "YulLiteral", + "src": "7777:3:40", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7762:3:40", + "nodeType": "YulIdentifier", + "src": "7762:3:40" + }, + "nativeSrc": "7762:19:40", + "nodeType": "YulFunctionCall", + "src": "7762:19:40" + }, + { + "name": "betax2", + "nativeSrc": "7783:6:40", + "nodeType": "YulIdentifier", + "src": "7783:6:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7755:6:40", + "nodeType": "YulIdentifier", + "src": "7755:6:40" + }, + "nativeSrc": "7755:35:40", + "nodeType": "YulFunctionCall", + "src": "7755:35:40" + }, + "nativeSrc": "7755:35:40", + "nodeType": "YulExpressionStatement", + "src": "7755:35:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7818:9:40", + "nodeType": "YulIdentifier", + "src": "7818:9:40" + }, + { + "kind": "number", + "nativeSrc": "7829:3:40", + "nodeType": "YulLiteral", + "src": "7829:3:40", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7814:3:40", + "nodeType": "YulIdentifier", + "src": "7814:3:40" + }, + "nativeSrc": "7814:19:40", + "nodeType": "YulFunctionCall", + "src": "7814:19:40" + }, + { + "name": "betay1", + "nativeSrc": "7835:6:40", + "nodeType": "YulIdentifier", + "src": "7835:6:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7807:6:40", + "nodeType": "YulIdentifier", + "src": "7807:6:40" + }, + "nativeSrc": "7807:35:40", + "nodeType": "YulFunctionCall", + "src": "7807:35:40" + }, + "nativeSrc": "7807:35:40", + "nodeType": "YulExpressionStatement", + "src": "7807:35:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7870:9:40", + "nodeType": "YulIdentifier", + "src": "7870:9:40" + }, + { + "kind": "number", + "nativeSrc": "7881:3:40", + "nodeType": "YulLiteral", + "src": "7881:3:40", + "type": "", + "value": "352" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7866:3:40", + "nodeType": "YulIdentifier", + "src": "7866:3:40" + }, + "nativeSrc": "7866:19:40", + "nodeType": "YulFunctionCall", + "src": "7866:19:40" + }, + { + "name": "betay2", + "nativeSrc": "7887:6:40", + "nodeType": "YulIdentifier", + "src": "7887:6:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7859:6:40", + "nodeType": "YulIdentifier", + "src": "7859:6:40" + }, + "nativeSrc": "7859:35:40", + "nodeType": "YulFunctionCall", + "src": "7859:35:40" + }, + "nativeSrc": "7859:35:40", + "nodeType": "YulExpressionStatement", + "src": "7859:35:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7947:9:40", + "nodeType": "YulIdentifier", + "src": "7947:9:40" + }, + { + "kind": "number", + "nativeSrc": "7958:3:40", + "nodeType": "YulLiteral", + "src": "7958:3:40", + "type": "", + "value": "384" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7943:3:40", + "nodeType": "YulIdentifier", + "src": "7943:3:40" + }, + "nativeSrc": "7943:19:40", + "nodeType": "YulFunctionCall", + "src": "7943:19:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "7974:4:40", + "nodeType": "YulIdentifier", + "src": "7974:4:40" + }, + { + "name": "pVk", + "nativeSrc": "7980:3:40", + "nodeType": "YulIdentifier", + "src": "7980:3:40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7970:3:40", + "nodeType": "YulIdentifier", + "src": "7970:3:40" + }, + "nativeSrc": "7970:14:40", + "nodeType": "YulFunctionCall", + "src": "7970:14:40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7964:5:40", + "nodeType": "YulIdentifier", + "src": "7964:5:40" + }, + "nativeSrc": "7964:21:40", + "nodeType": "YulFunctionCall", + "src": "7964:21:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7936:6:40", + "nodeType": "YulIdentifier", + "src": "7936:6:40" + }, + "nativeSrc": "7936:50:40", + "nodeType": "YulFunctionCall", + "src": "7936:50:40" + }, + "nativeSrc": "7936:50:40", + "nodeType": "YulExpressionStatement", + "src": "7936:50:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8014:9:40", + "nodeType": "YulIdentifier", + "src": "8014:9:40" + }, + { + "kind": "number", + "nativeSrc": "8025:3:40", + "nodeType": "YulLiteral", + "src": "8025:3:40", + "type": "", + "value": "416" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8010:3:40", + "nodeType": "YulIdentifier", + "src": "8010:3:40" + }, + "nativeSrc": "8010:19:40", + "nodeType": "YulFunctionCall", + "src": "8010:19:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "8041:4:40", + "nodeType": "YulIdentifier", + "src": "8041:4:40" + }, + { + "arguments": [ + { + "name": "pVk", + "nativeSrc": "8051:3:40", + "nodeType": "YulIdentifier", + "src": "8051:3:40" + }, + { + "kind": "number", + "nativeSrc": "8056:2:40", + "nodeType": "YulLiteral", + "src": "8056:2:40", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8047:3:40", + "nodeType": "YulIdentifier", + "src": "8047:3:40" + }, + "nativeSrc": "8047:12:40", + "nodeType": "YulFunctionCall", + "src": "8047:12:40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8037:3:40", + "nodeType": "YulIdentifier", + "src": "8037:3:40" + }, + "nativeSrc": "8037:23:40", + "nodeType": "YulFunctionCall", + "src": "8037:23:40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8031:5:40", + "nodeType": "YulIdentifier", + "src": "8031:5:40" + }, + "nativeSrc": "8031:30:40", + "nodeType": "YulFunctionCall", + "src": "8031:30:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8003:6:40", + "nodeType": "YulIdentifier", + "src": "8003:6:40" + }, + "nativeSrc": "8003:59:40", + "nodeType": "YulFunctionCall", + "src": "8003:59:40" + }, + "nativeSrc": "8003:59:40", + "nodeType": "YulExpressionStatement", + "src": "8003:59:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8118:9:40", + "nodeType": "YulIdentifier", + "src": "8118:9:40" + }, + { + "kind": "number", + "nativeSrc": "8129:3:40", + "nodeType": "YulLiteral", + "src": "8129:3:40", + "type": "", + "value": "448" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8114:3:40", + "nodeType": "YulIdentifier", + "src": "8114:3:40" + }, + "nativeSrc": "8114:19:40", + "nodeType": "YulFunctionCall", + "src": "8114:19:40" + }, + { + "name": "gammax1", + "nativeSrc": "8135:7:40", + "nodeType": "YulIdentifier", + "src": "8135:7:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8107:6:40", + "nodeType": "YulIdentifier", + "src": "8107:6:40" + }, + "nativeSrc": "8107:36:40", + "nodeType": "YulFunctionCall", + "src": "8107:36:40" + }, + "nativeSrc": "8107:36:40", + "nodeType": "YulExpressionStatement", + "src": "8107:36:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8171:9:40", + "nodeType": "YulIdentifier", + "src": "8171:9:40" + }, + { + "kind": "number", + "nativeSrc": "8182:3:40", + "nodeType": "YulLiteral", + "src": "8182:3:40", + "type": "", + "value": "480" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8167:3:40", + "nodeType": "YulIdentifier", + "src": "8167:3:40" + }, + "nativeSrc": "8167:19:40", + "nodeType": "YulFunctionCall", + "src": "8167:19:40" + }, + { + "name": "gammax2", + "nativeSrc": "8188:7:40", + "nodeType": "YulIdentifier", + "src": "8188:7:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8160:6:40", + "nodeType": "YulIdentifier", + "src": "8160:6:40" + }, + "nativeSrc": "8160:36:40", + "nodeType": "YulFunctionCall", + "src": "8160:36:40" + }, + "nativeSrc": "8160:36:40", + "nodeType": "YulExpressionStatement", + "src": "8160:36:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8224:9:40", + "nodeType": "YulIdentifier", + "src": "8224:9:40" + }, + { + "kind": "number", + "nativeSrc": "8235:3:40", + "nodeType": "YulLiteral", + "src": "8235:3:40", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8220:3:40", + "nodeType": "YulIdentifier", + "src": "8220:3:40" + }, + "nativeSrc": "8220:19:40", + "nodeType": "YulFunctionCall", + "src": "8220:19:40" + }, + { + "name": "gammay1", + "nativeSrc": "8241:7:40", + "nodeType": "YulIdentifier", + "src": "8241:7:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8213:6:40", + "nodeType": "YulIdentifier", + "src": "8213:6:40" + }, + "nativeSrc": "8213:36:40", + "nodeType": "YulFunctionCall", + "src": "8213:36:40" + }, + "nativeSrc": "8213:36:40", + "nodeType": "YulExpressionStatement", + "src": "8213:36:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8277:9:40", + "nodeType": "YulIdentifier", + "src": "8277:9:40" + }, + { + "kind": "number", + "nativeSrc": "8288:3:40", + "nodeType": "YulLiteral", + "src": "8288:3:40", + "type": "", + "value": "544" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8273:3:40", + "nodeType": "YulIdentifier", + "src": "8273:3:40" + }, + "nativeSrc": "8273:19:40", + "nodeType": "YulFunctionCall", + "src": "8273:19:40" + }, + { + "name": "gammay2", + "nativeSrc": "8294:7:40", + "nodeType": "YulIdentifier", + "src": "8294:7:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8266:6:40", + "nodeType": "YulIdentifier", + "src": "8266:6:40" + }, + "nativeSrc": "8266:36:40", + "nodeType": "YulFunctionCall", + "src": "8266:36:40" + }, + "nativeSrc": "8266:36:40", + "nodeType": "YulExpressionStatement", + "src": "8266:36:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8352:9:40", + "nodeType": "YulIdentifier", + "src": "8352:9:40" + }, + { + "kind": "number", + "nativeSrc": "8363:3:40", + "nodeType": "YulLiteral", + "src": "8363:3:40", + "type": "", + "value": "576" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8348:3:40", + "nodeType": "YulIdentifier", + "src": "8348:3:40" + }, + "nativeSrc": "8348:19:40", + "nodeType": "YulFunctionCall", + "src": "8348:19:40" + }, + { + "arguments": [ + { + "name": "pC", + "nativeSrc": "8382:2:40", + "nodeType": "YulIdentifier", + "src": "8382:2:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8369:12:40", + "nodeType": "YulIdentifier", + "src": "8369:12:40" + }, + "nativeSrc": "8369:16:40", + "nodeType": "YulFunctionCall", + "src": "8369:16:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8341:6:40", + "nodeType": "YulIdentifier", + "src": "8341:6:40" + }, + "nativeSrc": "8341:45:40", + "nodeType": "YulFunctionCall", + "src": "8341:45:40" + }, + "nativeSrc": "8341:45:40", + "nodeType": "YulExpressionStatement", + "src": "8341:45:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8414:9:40", + "nodeType": "YulIdentifier", + "src": "8414:9:40" + }, + { + "kind": "number", + "nativeSrc": "8425:3:40", + "nodeType": "YulLiteral", + "src": "8425:3:40", + "type": "", + "value": "608" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8410:3:40", + "nodeType": "YulIdentifier", + "src": "8410:3:40" + }, + "nativeSrc": "8410:19:40", + "nodeType": "YulFunctionCall", + "src": "8410:19:40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pC", + "nativeSrc": "8448:2:40", + "nodeType": "YulIdentifier", + "src": "8448:2:40" + }, + { + "kind": "number", + "nativeSrc": "8452:2:40", + "nodeType": "YulLiteral", + "src": "8452:2:40", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8444:3:40", + "nodeType": "YulIdentifier", + "src": "8444:3:40" + }, + "nativeSrc": "8444:11:40", + "nodeType": "YulFunctionCall", + "src": "8444:11:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8431:12:40", + "nodeType": "YulIdentifier", + "src": "8431:12:40" + }, + "nativeSrc": "8431:25:40", + "nodeType": "YulFunctionCall", + "src": "8431:25:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8403:6:40", + "nodeType": "YulIdentifier", + "src": "8403:6:40" + }, + "nativeSrc": "8403:54:40", + "nodeType": "YulFunctionCall", + "src": "8403:54:40" + }, + "nativeSrc": "8403:54:40", + "nodeType": "YulExpressionStatement", + "src": "8403:54:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8512:9:40", + "nodeType": "YulIdentifier", + "src": "8512:9:40" + }, + { + "kind": "number", + "nativeSrc": "8523:3:40", + "nodeType": "YulLiteral", + "src": "8523:3:40", + "type": "", + "value": "640" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8508:3:40", + "nodeType": "YulIdentifier", + "src": "8508:3:40" + }, + "nativeSrc": "8508:19:40", + "nodeType": "YulFunctionCall", + "src": "8508:19:40" + }, + { + "name": "deltax1", + "nativeSrc": "8529:7:40", + "nodeType": "YulIdentifier", + "src": "8529:7:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8501:6:40", + "nodeType": "YulIdentifier", + "src": "8501:6:40" + }, + "nativeSrc": "8501:36:40", + "nodeType": "YulFunctionCall", + "src": "8501:36:40" + }, + "nativeSrc": "8501:36:40", + "nodeType": "YulExpressionStatement", + "src": "8501:36:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8565:9:40", + "nodeType": "YulIdentifier", + "src": "8565:9:40" + }, + { + "kind": "number", + "nativeSrc": "8576:3:40", + "nodeType": "YulLiteral", + "src": "8576:3:40", + "type": "", + "value": "672" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8561:3:40", + "nodeType": "YulIdentifier", + "src": "8561:3:40" + }, + "nativeSrc": "8561:19:40", + "nodeType": "YulFunctionCall", + "src": "8561:19:40" + }, + { + "name": "deltax2", + "nativeSrc": "8582:7:40", + "nodeType": "YulIdentifier", + "src": "8582:7:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8554:6:40", + "nodeType": "YulIdentifier", + "src": "8554:6:40" + }, + "nativeSrc": "8554:36:40", + "nodeType": "YulFunctionCall", + "src": "8554:36:40" + }, + "nativeSrc": "8554:36:40", + "nodeType": "YulExpressionStatement", + "src": "8554:36:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8618:9:40", + "nodeType": "YulIdentifier", + "src": "8618:9:40" + }, + { + "kind": "number", + "nativeSrc": "8629:3:40", + "nodeType": "YulLiteral", + "src": "8629:3:40", + "type": "", + "value": "704" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8614:3:40", + "nodeType": "YulIdentifier", + "src": "8614:3:40" + }, + "nativeSrc": "8614:19:40", + "nodeType": "YulFunctionCall", + "src": "8614:19:40" + }, + { + "name": "deltay1", + "nativeSrc": "8635:7:40", + "nodeType": "YulIdentifier", + "src": "8635:7:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8607:6:40", + "nodeType": "YulIdentifier", + "src": "8607:6:40" + }, + "nativeSrc": "8607:36:40", + "nodeType": "YulFunctionCall", + "src": "8607:36:40" + }, + "nativeSrc": "8607:36:40", + "nodeType": "YulExpressionStatement", + "src": "8607:36:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8671:9:40", + "nodeType": "YulIdentifier", + "src": "8671:9:40" + }, + { + "kind": "number", + "nativeSrc": "8682:3:40", + "nodeType": "YulLiteral", + "src": "8682:3:40", + "type": "", + "value": "736" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8667:3:40", + "nodeType": "YulIdentifier", + "src": "8667:3:40" + }, + "nativeSrc": "8667:19:40", + "nodeType": "YulFunctionCall", + "src": "8667:19:40" + }, + { + "name": "deltay2", + "nativeSrc": "8688:7:40", + "nodeType": "YulIdentifier", + "src": "8688:7:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8660:6:40", + "nodeType": "YulIdentifier", + "src": "8660:6:40" + }, + "nativeSrc": "8660:36:40", + "nodeType": "YulFunctionCall", + "src": "8660:36:40" + }, + "nativeSrc": "8660:36:40", + "nodeType": "YulExpressionStatement", + "src": "8660:36:40" + }, + { + "nativeSrc": "8715:79:40", + "nodeType": "YulVariableDeclaration", + "src": "8715:79:40", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "8745:3:40", + "nodeType": "YulIdentifier", + "src": "8745:3:40" + }, + "nativeSrc": "8745:5:40", + "nodeType": "YulFunctionCall", + "src": "8745:5:40" + }, + { + "kind": "number", + "nativeSrc": "8752:4:40", + "nodeType": "YulLiteral", + "src": "8752:4:40", + "type": "", + "value": "2000" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8741:3:40", + "nodeType": "YulIdentifier", + "src": "8741:3:40" + }, + "nativeSrc": "8741:16:40", + "nodeType": "YulFunctionCall", + "src": "8741:16:40" + }, + { + "kind": "number", + "nativeSrc": "8759:1:40", + "nodeType": "YulLiteral", + "src": "8759:1:40", + "type": "", + "value": "8" + }, + { + "name": "_pPairing", + "nativeSrc": "8762:9:40", + "nodeType": "YulIdentifier", + "src": "8762:9:40" + }, + { + "kind": "number", + "nativeSrc": "8773:3:40", + "nodeType": "YulLiteral", + "src": "8773:3:40", + "type": "", + "value": "768" + }, + { + "name": "_pPairing", + "nativeSrc": "8778:9:40", + "nodeType": "YulIdentifier", + "src": "8778:9:40" + }, + { + "kind": "number", + "nativeSrc": "8789:4:40", + "nodeType": "YulLiteral", + "src": "8789:4:40", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "8730:10:40", + "nodeType": "YulIdentifier", + "src": "8730:10:40" + }, + "nativeSrc": "8730:64:40", + "nodeType": "YulFunctionCall", + "src": "8730:64:40" + }, + "variables": [ + { + "name": "success", + "nativeSrc": "8719:7:40", + "nodeType": "YulTypedName", + "src": "8719:7:40", + "type": "" + } + ] + }, + { + "nativeSrc": "8812:38:40", + "nodeType": "YulAssignment", + "src": "8812:38:40", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "8824:7:40", + "nodeType": "YulIdentifier", + "src": "8824:7:40" + }, + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8839:9:40", + "nodeType": "YulIdentifier", + "src": "8839:9:40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8833:5:40", + "nodeType": "YulIdentifier", + "src": "8833:5:40" + }, + "nativeSrc": "8833:16:40", + "nodeType": "YulFunctionCall", + "src": "8833:16:40" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8820:3:40", + "nodeType": "YulIdentifier", + "src": "8820:3:40" + }, + "nativeSrc": "8820:30:40", + "nodeType": "YulFunctionCall", + "src": "8820:30:40" + }, + "variableNames": [ + { + "name": "isOk", + "nativeSrc": "8812:4:40", + "nodeType": "YulIdentifier", + "src": "8812:4:40" + } + ] + } + ] + }, + "name": "checkPairing", + "nativeSrc": "5984:2880:40", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pA", + "nativeSrc": "6006:2:40", + "nodeType": "YulTypedName", + "src": "6006:2:40", + "type": "" + }, + { + "name": "pB", + "nativeSrc": "6010:2:40", + "nodeType": "YulTypedName", + "src": "6010:2:40", + "type": "" + }, + { + "name": "pC", + "nativeSrc": "6014:2:40", + "nodeType": "YulTypedName", + "src": "6014:2:40", + "type": "" + }, + { + "name": "pubSignals", + "nativeSrc": "6018:10:40", + "nodeType": "YulTypedName", + "src": "6018:10:40", + "type": "" + }, + { + "name": "pMem", + "nativeSrc": "6030:4:40", + "nodeType": "YulTypedName", + "src": "6030:4:40", + "type": "" + } + ], + "returnVariables": [ + { + "name": "isOk", + "nativeSrc": "6039:4:40", + "nodeType": "YulTypedName", + "src": "6039:4:40", + "type": "" + } + ], + "src": "5984:2880:40" + }, + { + "nativeSrc": "8878:23:40", + "nodeType": "YulVariableDeclaration", + "src": "8878:23:40", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8896:4:40", + "nodeType": "YulLiteral", + "src": "8896:4:40", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8890:5:40", + "nodeType": "YulIdentifier", + "src": "8890:5:40" + }, + "nativeSrc": "8890:11:40", + "nodeType": "YulFunctionCall", + "src": "8890:11:40" + }, + "variables": [ + { + "name": "pMem", + "nativeSrc": "8882:4:40", + "nodeType": "YulTypedName", + "src": "8882:4:40", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8921:4:40", + "nodeType": "YulLiteral", + "src": "8921:4:40", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "8931:4:40", + "nodeType": "YulIdentifier", + "src": "8931:4:40" + }, + { + "name": "pLastMem", + "nativeSrc": "8937:8:40", + "nodeType": "YulIdentifier", + "src": "8937:8:40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8927:3:40", + "nodeType": "YulIdentifier", + "src": "8927:3:40" + }, + "nativeSrc": "8927:19:40", + "nodeType": "YulFunctionCall", + "src": "8927:19:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8914:6:40", + "nodeType": "YulIdentifier", + "src": "8914:6:40" + }, + "nativeSrc": "8914:33:40", + "nodeType": "YulFunctionCall", + "src": "8914:33:40" + }, + "nativeSrc": "8914:33:40", + "nodeType": "YulExpressionStatement", + "src": "8914:33:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9053:11:40", + "nodeType": "YulIdentifier", + "src": "9053:11:40" + }, + { + "kind": "number", + "nativeSrc": "9066:1:40", + "nodeType": "YulLiteral", + "src": "9066:1:40", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9049:3:40", + "nodeType": "YulIdentifier", + "src": "9049:3:40" + }, + "nativeSrc": "9049:19:40", + "nodeType": "YulFunctionCall", + "src": "9049:19:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9036:12:40", + "nodeType": "YulIdentifier", + "src": "9036:12:40" + }, + "nativeSrc": "9036:33:40", + "nodeType": "YulFunctionCall", + "src": "9036:33:40" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9025:10:40", + "nodeType": "YulIdentifier", + "src": "9025:10:40" + }, + "nativeSrc": "9025:45:40", + "nodeType": "YulFunctionCall", + "src": "9025:45:40" + }, + "nativeSrc": "9025:45:40", + "nodeType": "YulExpressionStatement", + "src": "9025:45:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9124:11:40", + "nodeType": "YulIdentifier", + "src": "9124:11:40" + }, + { + "kind": "number", + "nativeSrc": "9137:2:40", + "nodeType": "YulLiteral", + "src": "9137:2:40", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9120:3:40", + "nodeType": "YulIdentifier", + "src": "9120:3:40" + }, + "nativeSrc": "9120:20:40", + "nodeType": "YulFunctionCall", + "src": "9120:20:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9107:12:40", + "nodeType": "YulIdentifier", + "src": "9107:12:40" + }, + "nativeSrc": "9107:34:40", + "nodeType": "YulFunctionCall", + "src": "9107:34:40" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9096:10:40", + "nodeType": "YulIdentifier", + "src": "9096:10:40" + }, + "nativeSrc": "9096:46:40", + "nodeType": "YulFunctionCall", + "src": "9096:46:40" + }, + "nativeSrc": "9096:46:40", + "nodeType": "YulExpressionStatement", + "src": "9096:46:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9196:11:40", + "nodeType": "YulIdentifier", + "src": "9196:11:40" + }, + { + "kind": "number", + "nativeSrc": "9209:2:40", + "nodeType": "YulLiteral", + "src": "9209:2:40", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9192:3:40", + "nodeType": "YulIdentifier", + "src": "9192:3:40" + }, + "nativeSrc": "9192:20:40", + "nodeType": "YulFunctionCall", + "src": "9192:20:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9179:12:40", + "nodeType": "YulIdentifier", + "src": "9179:12:40" + }, + "nativeSrc": "9179:34:40", + "nodeType": "YulFunctionCall", + "src": "9179:34:40" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9168:10:40", + "nodeType": "YulIdentifier", + "src": "9168:10:40" + }, + "nativeSrc": "9168:46:40", + "nodeType": "YulFunctionCall", + "src": "9168:46:40" + }, + "nativeSrc": "9168:46:40", + "nodeType": "YulExpressionStatement", + "src": "9168:46:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9268:11:40", + "nodeType": "YulIdentifier", + "src": "9268:11:40" + }, + { + "kind": "number", + "nativeSrc": "9281:2:40", + "nodeType": "YulLiteral", + "src": "9281:2:40", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9264:3:40", + "nodeType": "YulIdentifier", + "src": "9264:3:40" + }, + "nativeSrc": "9264:20:40", + "nodeType": "YulFunctionCall", + "src": "9264:20:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9251:12:40", + "nodeType": "YulIdentifier", + "src": "9251:12:40" + }, + "nativeSrc": "9251:34:40", + "nodeType": "YulFunctionCall", + "src": "9251:34:40" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9240:10:40", + "nodeType": "YulIdentifier", + "src": "9240:10:40" + }, + "nativeSrc": "9240:46:40", + "nodeType": "YulFunctionCall", + "src": "9240:46:40" + }, + "nativeSrc": "9240:46:40", + "nodeType": "YulExpressionStatement", + "src": "9240:46:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9340:11:40", + "nodeType": "YulIdentifier", + "src": "9340:11:40" + }, + { + "kind": "number", + "nativeSrc": "9353:3:40", + "nodeType": "YulLiteral", + "src": "9353:3:40", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9336:3:40", + "nodeType": "YulIdentifier", + "src": "9336:3:40" + }, + "nativeSrc": "9336:21:40", + "nodeType": "YulFunctionCall", + "src": "9336:21:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9323:12:40", + "nodeType": "YulIdentifier", + "src": "9323:12:40" + }, + "nativeSrc": "9323:35:40", + "nodeType": "YulFunctionCall", + "src": "9323:35:40" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9312:10:40", + "nodeType": "YulIdentifier", + "src": "9312:10:40" + }, + "nativeSrc": "9312:47:40", + "nodeType": "YulFunctionCall", + "src": "9312:47:40" + }, + "nativeSrc": "9312:47:40", + "nodeType": "YulExpressionStatement", + "src": "9312:47:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9413:11:40", + "nodeType": "YulIdentifier", + "src": "9413:11:40" + }, + { + "kind": "number", + "nativeSrc": "9426:3:40", + "nodeType": "YulLiteral", + "src": "9426:3:40", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9409:3:40", + "nodeType": "YulIdentifier", + "src": "9409:3:40" + }, + "nativeSrc": "9409:21:40", + "nodeType": "YulFunctionCall", + "src": "9409:21:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9396:12:40", + "nodeType": "YulIdentifier", + "src": "9396:12:40" + }, + "nativeSrc": "9396:35:40", + "nodeType": "YulFunctionCall", + "src": "9396:35:40" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9385:10:40", + "nodeType": "YulIdentifier", + "src": "9385:10:40" + }, + "nativeSrc": "9385:47:40", + "nodeType": "YulFunctionCall", + "src": "9385:47:40" + }, + "nativeSrc": "9385:47:40", + "nodeType": "YulExpressionStatement", + "src": "9385:47:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9486:11:40", + "nodeType": "YulIdentifier", + "src": "9486:11:40" + }, + { + "kind": "number", + "nativeSrc": "9499:3:40", + "nodeType": "YulLiteral", + "src": "9499:3:40", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9482:3:40", + "nodeType": "YulIdentifier", + "src": "9482:3:40" + }, + "nativeSrc": "9482:21:40", + "nodeType": "YulFunctionCall", + "src": "9482:21:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9469:12:40", + "nodeType": "YulIdentifier", + "src": "9469:12:40" + }, + "nativeSrc": "9469:35:40", + "nodeType": "YulFunctionCall", + "src": "9469:35:40" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9458:10:40", + "nodeType": "YulIdentifier", + "src": "9458:10:40" + }, + "nativeSrc": "9458:47:40", + "nodeType": "YulFunctionCall", + "src": "9458:47:40" + }, + "nativeSrc": "9458:47:40", + "nodeType": "YulExpressionStatement", + "src": "9458:47:40" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9559:11:40", + "nodeType": "YulIdentifier", + "src": "9559:11:40" + }, + { + "kind": "number", + "nativeSrc": "9572:3:40", + "nodeType": "YulLiteral", + "src": "9572:3:40", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9555:3:40", + "nodeType": "YulIdentifier", + "src": "9555:3:40" + }, + "nativeSrc": "9555:21:40", + "nodeType": "YulFunctionCall", + "src": "9555:21:40" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9542:12:40", + "nodeType": "YulIdentifier", + "src": "9542:12:40" + }, + "nativeSrc": "9542:35:40", + "nodeType": "YulFunctionCall", + "src": "9542:35:40" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9531:10:40", + "nodeType": "YulIdentifier", + "src": "9531:10:40" + }, + "nativeSrc": "9531:47:40", + "nodeType": "YulFunctionCall", + "src": "9531:47:40" + }, + "nativeSrc": "9531:47:40", + "nodeType": "YulExpressionStatement", + "src": "9531:47:40" + }, + { + "nativeSrc": "9645:61:40", + "nodeType": "YulVariableDeclaration", + "src": "9645:61:40", + "value": { + "arguments": [ + { + "name": "_pA", + "nativeSrc": "9673:3:40", + "nodeType": "YulIdentifier", + "src": "9673:3:40" + }, + { + "name": "_pB", + "nativeSrc": "9678:3:40", + "nodeType": "YulIdentifier", + "src": "9678:3:40" + }, + { + "name": "_pC", + "nativeSrc": "9683:3:40", + "nodeType": "YulIdentifier", + "src": "9683:3:40" + }, + { + "name": "_pubSignals", + "nativeSrc": "9688:11:40", + "nodeType": "YulIdentifier", + "src": "9688:11:40" + }, + { + "name": "pMem", + "nativeSrc": "9701:4:40", + "nodeType": "YulIdentifier", + "src": "9701:4:40" + } + ], + "functionName": { + "name": "checkPairing", + "nativeSrc": "9660:12:40", + "nodeType": "YulIdentifier", + "src": "9660:12:40" + }, + "nativeSrc": "9660:46:40", + "nodeType": "YulFunctionCall", + "src": "9660:46:40" + }, + "variables": [ + { + "name": "isValid", + "nativeSrc": "9649:7:40", + "nodeType": "YulTypedName", + "src": "9649:7:40", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9727:1:40", + "nodeType": "YulLiteral", + "src": "9727:1:40", + "type": "", + "value": "0" + }, + { + "name": "isValid", + "nativeSrc": "9730:7:40", + "nodeType": "YulIdentifier", + "src": "9730:7:40" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9720:6:40", + "nodeType": "YulIdentifier", + "src": "9720:6:40" + }, + "nativeSrc": "9720:18:40", + "nodeType": "YulFunctionCall", + "src": "9720:18:40" + }, + "nativeSrc": "9720:18:40", + "nodeType": "YulExpressionStatement", + "src": "9720:18:40" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9759:1:40", + "nodeType": "YulLiteral", + "src": "9759:1:40", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9762:4:40", + "nodeType": "YulLiteral", + "src": "9762:4:40", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "9752:6:40", + "nodeType": "YulIdentifier", + "src": "9752:6:40" + }, + "nativeSrc": "9752:15:40", + "nodeType": "YulFunctionCall", + "src": "9752:15:40" + }, + "nativeSrc": "9752:15:40", + "nodeType": "YulExpressionStatement", + "src": "9752:15:40" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 17593, + "isOffset": false, + "isSlot": false, + "src": "6172:4:40", + "valueSize": 1 + }, + { + "declaration": 17596, + "isOffset": false, + "isSlot": false, + "src": "6216:4:40", + "valueSize": 1 + }, + { + "declaration": 17599, + "isOffset": false, + "isSlot": false, + "src": "6328:4:40", + "valueSize": 1 + }, + { + "declaration": 17602, + "isOffset": false, + "isSlot": false, + "src": "6334:4:40", + "valueSize": 1 + }, + { + "declaration": 17605, + "isOffset": false, + "isSlot": false, + "src": "6424:4:40", + "valueSize": 1 + }, + { + "declaration": 17608, + "isOffset": false, + "isSlot": false, + "src": "6430:4:40", + "valueSize": 1 + }, + { + "declaration": 17611, + "isOffset": false, + "isSlot": false, + "src": "6521:4:40", + "valueSize": 1 + }, + { + "declaration": 17614, + "isOffset": false, + "isSlot": false, + "src": "6527:4:40", + "valueSize": 1 + }, + { + "declaration": 17617, + "isOffset": false, + "isSlot": false, + "src": "6618:4:40", + "valueSize": 1 + }, + { + "declaration": 17620, + "isOffset": false, + "isSlot": false, + "src": "6624:4:40", + "valueSize": 1 + }, + { + "declaration": 17623, + "isOffset": false, + "isSlot": false, + "src": "6715:4:40", + "valueSize": 1 + }, + { + "declaration": 17626, + "isOffset": false, + "isSlot": false, + "src": "6721:4:40", + "valueSize": 1 + }, + { + "declaration": 17629, + "isOffset": false, + "isSlot": false, + "src": "6813:4:40", + "valueSize": 1 + }, + { + "declaration": 17632, + "isOffset": false, + "isSlot": false, + "src": "6819:4:40", + "valueSize": 1 + }, + { + "declaration": 17635, + "isOffset": false, + "isSlot": false, + "src": "6911:4:40", + "valueSize": 1 + }, + { + "declaration": 17638, + "isOffset": false, + "isSlot": false, + "src": "6917:4:40", + "valueSize": 1 + }, + { + "declaration": 17641, + "isOffset": false, + "isSlot": false, + "src": "7009:4:40", + "valueSize": 1 + }, + { + "declaration": 17644, + "isOffset": false, + "isSlot": false, + "src": "7015:4:40", + "valueSize": 1 + }, + { + "declaration": 17657, + "isOffset": false, + "isSlot": false, + "src": "9673:3:40", + "valueSize": 1 + }, + { + "declaration": 17663, + "isOffset": false, + "isSlot": false, + "src": "9678:3:40", + "valueSize": 1 + }, + { + "declaration": 17667, + "isOffset": false, + "isSlot": false, + "src": "9683:3:40", + "valueSize": 1 + }, + { + "declaration": 17671, + "isOffset": false, + "isSlot": false, + "src": "9053:11:40", + "valueSize": 1 + }, + { + "declaration": 17671, + "isOffset": false, + "isSlot": false, + "src": "9124:11:40", + "valueSize": 1 + }, + { + "declaration": 17671, + "isOffset": false, + "isSlot": false, + "src": "9196:11:40", + "valueSize": 1 + }, + { + "declaration": 17671, + "isOffset": false, + "isSlot": false, + "src": "9268:11:40", + "valueSize": 1 + }, + { + "declaration": 17671, + "isOffset": false, + "isSlot": false, + "src": "9340:11:40", + "valueSize": 1 + }, + { + "declaration": 17671, + "isOffset": false, + "isSlot": false, + "src": "9413:11:40", + "valueSize": 1 + }, + { + "declaration": 17671, + "isOffset": false, + "isSlot": false, + "src": "9486:11:40", + "valueSize": 1 + }, + { + "declaration": 17671, + "isOffset": false, + "isSlot": false, + "src": "9559:11:40", + "valueSize": 1 + }, + { + "declaration": 17671, + "isOffset": false, + "isSlot": false, + "src": "9688:11:40", + "valueSize": 1 + }, + { + "declaration": 17551, + "isOffset": false, + "isSlot": false, + "src": "7601:6:40", + "valueSize": 1 + }, + { + "declaration": 17554, + "isOffset": false, + "isSlot": false, + "src": "7653:6:40", + "valueSize": 1 + }, + { + "declaration": 17557, + "isOffset": false, + "isSlot": false, + "src": "7731:6:40", + "valueSize": 1 + }, + { + "declaration": 17560, + "isOffset": false, + "isSlot": false, + "src": "7783:6:40", + "valueSize": 1 + }, + { + "declaration": 17563, + "isOffset": false, + "isSlot": false, + "src": "7835:6:40", + "valueSize": 1 + }, + { + "declaration": 17566, + "isOffset": false, + "isSlot": false, + "src": "7887:6:40", + "valueSize": 1 + }, + { + "declaration": 17581, + "isOffset": false, + "isSlot": false, + "src": "8529:7:40", + "valueSize": 1 + }, + { + "declaration": 17584, + "isOffset": false, + "isSlot": false, + "src": "8582:7:40", + "valueSize": 1 + }, + { + "declaration": 17587, + "isOffset": false, + "isSlot": false, + "src": "8635:7:40", + "valueSize": 1 + }, + { + "declaration": 17590, + "isOffset": false, + "isSlot": false, + "src": "8688:7:40", + "valueSize": 1 + }, + { + "declaration": 17569, + "isOffset": false, + "isSlot": false, + "src": "8135:7:40", + "valueSize": 1 + }, + { + "declaration": 17572, + "isOffset": false, + "isSlot": false, + "src": "8188:7:40", + "valueSize": 1 + }, + { + "declaration": 17575, + "isOffset": false, + "isSlot": false, + "src": "8241:7:40", + "valueSize": 1 + }, + { + "declaration": 17578, + "isOffset": false, + "isSlot": false, + "src": "8294:7:40", + "valueSize": 1 + }, + { + "declaration": 17653, + "isOffset": false, + "isSlot": false, + "src": "8937:8:40", + "valueSize": 1 + }, + { + "declaration": 17650, + "isOffset": false, + "isSlot": false, + "src": "6089:8:40", + "valueSize": 1 + }, + { + "declaration": 17647, + "isOffset": false, + "isSlot": false, + "src": "6137:3:40", + "valueSize": 1 + }, + { + "declaration": 17647, + "isOffset": false, + "isSlot": false, + "src": "7980:3:40", + "valueSize": 1 + }, + { + "declaration": 17647, + "isOffset": false, + "isSlot": false, + "src": "8051:3:40", + "valueSize": 1 + }, + { + "declaration": 17548, + "isOffset": false, + "isSlot": false, + "src": "7200:1:40", + "valueSize": 1 + }, + { + "declaration": 17548, + "isOffset": false, + "isSlot": false, + "src": "7231:1:40", + "valueSize": 1 + }, + { + "declaration": 17545, + "isOffset": false, + "isSlot": false, + "src": "5022:1:40", + "valueSize": 1 + } + ], + "id": 17676, + "nodeType": "InlineAssembly", + "src": "4942:4836:40" + } + ] + }, + "functionSelector": "c9219a7a", + "id": 17678, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyProof", + "nameLocation": "4794:11:40", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17672, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17657, + "mutability": "mutable", + "name": "_pA", + "nameLocation": "4823:3:40", + "nodeType": "VariableDeclaration", + "scope": 17678, + "src": "4806:20:40", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 17654, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4806:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17656, + "length": { + "hexValue": "32", + "id": 17655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4811:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4806:7:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17663, + "mutability": "mutable", + "name": "_pB", + "nameLocation": "4848:3:40", + "nodeType": "VariableDeclaration", + "scope": 17678, + "src": "4828:23:40", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptr", + "typeString": "uint256[2][2]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 17658, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4828:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17660, + "length": { + "hexValue": "32", + "id": 17659, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4833:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4828:7:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "id": 17662, + "length": { + "hexValue": "32", + "id": 17661, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4836:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4828:10:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17667, + "mutability": "mutable", + "name": "_pC", + "nameLocation": "4870:3:40", + "nodeType": "VariableDeclaration", + "scope": 17678, + "src": "4853:20:40", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 17664, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4853:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17666, + "length": { + "hexValue": "32", + "id": 17665, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4858:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4853:7:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17671, + "mutability": "mutable", + "name": "_pubSignals", + "nameLocation": "4892:11:40", + "nodeType": "VariableDeclaration", + "scope": 17678, + "src": "4875:28:40", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8]" + }, + "typeName": { + "baseType": { + "id": 17668, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4875:4:40", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17670, + "length": { + "hexValue": "38", + "id": 17669, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4880:1:40", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "nodeType": "ArrayTypeName", + "src": "4875:7:40", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", + "typeString": "uint256[8]" + } + }, + "visibility": "internal" + } + ], + "src": "4805:99:40" + }, + "returnParameters": { + "id": 17675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17674, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 17678, + "src": "4926:4:40", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 17673, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4926:4:40", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4925:6:40" + }, + "scope": 17679, + "src": "4785:5000:40", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 17680, + "src": "831:8957:40", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "798:8991:40" + }, + "id": 40 + }, + "contracts/verifiers/idcard/Verifier_idcard_sha224.sol": { + "ast": { + "absolutePath": "contracts/verifiers/idcard/Verifier_idcard_sha224.sol", + "exportedSymbols": { + "Verifier_idcard_sha224": [ + 17818 + ] + }, + "id": 17819, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17681, + "literals": [ + "solidity", + ">=", + "0.7", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "798:31:41" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Verifier_idcard_sha224", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 17818, + "linearizedBaseContracts": [ + 17818 + ], + "name": "Verifier_idcard_sha224", + "nameLocation": "840:22:41", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 17684, + "mutability": "constant", + "name": "r", + "nameLocation": "911:1:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "894:101:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17682, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "894:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137", + "id": 17683, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "918:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1", + "typeString": "int_const 2188...(69 digits omitted)...5617" + }, + "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17687, + "mutability": "constant", + "name": "q", + "nameLocation": "1041:1:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "1024:100:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17685, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1024:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833", + "id": 17686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1047:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1", + "typeString": "int_const 2188...(69 digits omitted)...8583" + }, + "value": "21888242871839275222246405745257275088696311157297823662689037894645226208583" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17690, + "mutability": "constant", + "name": "alphax", + "nameLocation": "1177:6:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "1160:104:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1160:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3230343931313932383035333930343835323939313533303039373733353934353334393430313839323631383636323238343437393138303638363538343731393730343831373633303432", + "id": 17689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1187:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_20491192805390485299153009773594534940189261866228447918068658471970481763042_by_1", + "typeString": "int_const 2049...(69 digits omitted)...3042" + }, + "value": "20491192805390485299153009773594534940189261866228447918068658471970481763042" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17693, + "mutability": "constant", + "name": "alphay", + "nameLocation": "1287:6:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "1270:103:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17691, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1270:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "39333833343835333633303533323930323030393138333437313536313537383336353636353632393637393934303339373132323733343439393032363231323636313738353435393538", + "id": 17692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1297:76:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_9383485363053290200918347156157836566562967994039712273449902621266178545958_by_1", + "typeString": "int_const 9383...(68 digits omitted)...5958" + }, + "value": "9383485363053290200918347156157836566562967994039712273449902621266178545958" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17696, + "mutability": "constant", + "name": "betax1", + "nameLocation": "1396:6:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "1379:103:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1379:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34323532383232383738373538333030383539313233383937393831343530353931333533353333303733343133313937373731373638363531343432363635373532323539333937313332", + "id": 17695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1406:76:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_4252822878758300859123897981450591353533073413197771768651442665752259397132_by_1", + "typeString": "int_const 4252...(68 digits omitted)...7132" + }, + "value": "4252822878758300859123897981450591353533073413197771768651442665752259397132" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17699, + "mutability": "constant", + "name": "betax2", + "nameLocation": "1505:6:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "1488:103:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1488:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "36333735363134333531363838373235323036343033393438323632383638393632373933363235373434303433373934333035373135323232303131353238343539363536373338373331", + "id": 17698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1515:76:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_6375614351688725206403948262868962793625744043794305715222011528459656738731_by_1", + "typeString": "int_const 6375...(68 digits omitted)...8731" + }, + "value": "6375614351688725206403948262868962793625744043794305715222011528459656738731" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17702, + "mutability": "constant", + "name": "betay1", + "nameLocation": "1614:6:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "1597:104:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17700, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1597:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383437303335313035353238373435343033323838323332363931313437353834373238313931313632373332323939383635333338333737313539363932333530303539313336363739", + "id": 17701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1624:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_21847035105528745403288232691147584728191162732299865338377159692350059136679_by_1", + "typeString": "int_const 2184...(69 digits omitted)...6679" + }, + "value": "21847035105528745403288232691147584728191162732299865338377159692350059136679" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17705, + "mutability": "constant", + "name": "betay2", + "nameLocation": "1724:6:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "1707:104:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1707:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130353035323432363236333730323632323737353532393031303832303934333536363937343039383335363830323230353930393731383733313731313430333731333331323036383536", + "id": 17704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1734:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_10505242626370262277552901082094356697409835680220590971873171140371331206856_by_1", + "typeString": "int_const 1050...(69 digits omitted)...6856" + }, + "value": "10505242626370262277552901082094356697409835680220590971873171140371331206856" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17708, + "mutability": "constant", + "name": "gammax1", + "nameLocation": "1834:7:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "1817:104:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17706, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1817:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334", + "id": 17707, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1844:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1", + "typeString": "int_const 1155...(69 digits omitted)...5634" + }, + "value": "11559732032986387107991004021392285783925812861821192530917403151452391805634" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17711, + "mutability": "constant", + "name": "gammax2", + "nameLocation": "1944:7:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "1927:104:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17709, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1927:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831", + "id": 17710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1954:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1", + "typeString": "int_const 1085...(69 digits omitted)...2781" + }, + "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17714, + "mutability": "constant", + "name": "gammay1", + "nameLocation": "2054:7:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "2037:103:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17712, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2037:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331", + "id": 17713, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2064:76:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1", + "typeString": "int_const 4082...(68 digits omitted)...3531" + }, + "value": "4082367875863433681332203403145435568316851327593401208105741076214120093531" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17717, + "mutability": "constant", + "name": "gammay2", + "nameLocation": "2163:7:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "2146:103:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2146:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330", + "id": 17716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2173:76:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1", + "typeString": "int_const 8495...(68 digits omitted)...1930" + }, + "value": "8495653923123431417604973247489272438418190587263600148770280649306958101930" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17720, + "mutability": "constant", + "name": "deltax1", + "nameLocation": "2272:7:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "2255:104:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17718, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2255:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3131353238363736343531373639343739383933383930353836303136373335313337393138373338343638333235333733383036373931313632383034373232333335353430303931363837", + "id": 17719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2282:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_11528676451769479893890586016735137918738468325373806791162804722335540091687_by_1", + "typeString": "int_const 1152...(69 digits omitted)...1687" + }, + "value": "11528676451769479893890586016735137918738468325373806791162804722335540091687" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17723, + "mutability": "constant", + "name": "deltax2", + "nameLocation": "2382:7:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "2365:103:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17721, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2365:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31363639383337323937313134343939373838333237323938353831303430373637383338353631343530313237363132393830353136343035363237393131393436343035343632353334", + "id": 17722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2392:76:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_1669837297114499788327298581040767838561450127612980516405627911946405462534_by_1", + "typeString": "int_const 1669...(68 digits omitted)...2534" + }, + "value": "1669837297114499788327298581040767838561450127612980516405627911946405462534" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17726, + "mutability": "constant", + "name": "deltay1", + "nameLocation": "2491:7:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "2474:103:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2474:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "36393431353539393938343039323932303239363433303631363932383639313131363932393632393732393833363339343637373038313635353739323032303537303636333535333933", + "id": 17725, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2501:76:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_6941559998409292029643061692869111692962972983639467708165579202057066355393_by_1", + "typeString": "int_const 6941...(68 digits omitted)...5393" + }, + "value": "6941559998409292029643061692869111692962972983639467708165579202057066355393" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17729, + "mutability": "constant", + "name": "deltay2", + "nameLocation": "2600:7:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "2583:103:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17727, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2583:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "35383330343236333838313439313731313932323337343137343236313233363238333837303535383537373334333132323238313339393233303331363835393632373830313538363833", + "id": 17728, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2610:76:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_5830426388149171192237417426123628387055857734312228139923031685962780158683_by_1", + "typeString": "int_const 5830...(68 digits omitted)...8683" + }, + "value": "5830426388149171192237417426123628387055857734312228139923031685962780158683" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17732, + "mutability": "constant", + "name": "IC0x", + "nameLocation": "2715:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "2698:100:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2698:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "37393536353439303634373330393036313131333737323430303331313433313432333430333635303431333232333838363737383834333335383734313738383737363836373837373634", + "id": 17731, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2722:76:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_7956549064730906111377240031143142340365041322388677884335874178877686787764_by_1", + "typeString": "int_const 7956...(68 digits omitted)...7764" + }, + "value": "7956549064730906111377240031143142340365041322388677884335874178877686787764" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17735, + "mutability": "constant", + "name": "IC0y", + "nameLocation": "2821:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "2804:101:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17733, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2804:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231373930373234343338313534333835323032303530323130393739333632363931383432363031303537333636353137373935393937373235383139323231363931303636373131373535", + "id": 17734, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2828:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_21790724438154385202050210979362691842601057366517795997725819221691066711755_by_1", + "typeString": "int_const 2179...(69 digits omitted)...1755" + }, + "value": "21790724438154385202050210979362691842601057366517795997725819221691066711755" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17738, + "mutability": "constant", + "name": "IC1x", + "nameLocation": "2933:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "2916:99:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17736, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2916:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "313934343936373335323539353330323939373438343036323235393631313434383733363735303635373434313832323931333134373733333738313535373332363630363234373835", + "id": 17737, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2940:75:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_194496735259530299748406225961144873675065744182291314773378155732660624785_by_1", + "typeString": "int_const 1944...(67 digits omitted)...4785" + }, + "value": "194496735259530299748406225961144873675065744182291314773378155732660624785" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17741, + "mutability": "constant", + "name": "IC1y", + "nameLocation": "3038:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "3021:101:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17739, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3021:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3131393937353230333234363238333331313339373538343937373335313532393032353634313930383934373635393232363236383534343235353331393337303039343432303535393933", + "id": 17740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3045:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_11997520324628331139758497735152902564190894765922626854425531937009442055993_by_1", + "typeString": "int_const 1199...(69 digits omitted)...5993" + }, + "value": "11997520324628331139758497735152902564190894765922626854425531937009442055993" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17744, + "mutability": "constant", + "name": "IC2x", + "nameLocation": "3150:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "3133:101:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17742, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3133:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3230373135363539383939323036333633303039393539303031333532313532373036393338333135303331383739303934363538333133373630373239393232353539383636303732363837", + "id": 17743, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3157:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_20715659899206363009959001352152706938315031879094658313760729922559866072687_by_1", + "typeString": "int_const 2071...(69 digits omitted)...2687" + }, + "value": "20715659899206363009959001352152706938315031879094658313760729922559866072687" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17747, + "mutability": "constant", + "name": "IC2y", + "nameLocation": "3257:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "3240:100:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17745, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3240:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "37323036393331333839363534383834373539353530363939383535383932313339353336303139323930383234303839303733303636363634383236303734303036363731323338313330", + "id": 17746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3264:76:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_7206931389654884759550699855892139536019290824089073066664826074006671238130_by_1", + "typeString": "int_const 7206...(68 digits omitted)...8130" + }, + "value": "7206931389654884759550699855892139536019290824089073066664826074006671238130" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17750, + "mutability": "constant", + "name": "IC3x", + "nameLocation": "3368:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "3351:101:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17748, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3351:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3135363437363030303231353038363039363131333836343636313839303039313035383135333635333832333438303235313530373435393030353536323533323037343438313034343136", + "id": 17749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3375:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_15647600021508609611386466189009105815365382348025150745900556253207448104416_by_1", + "typeString": "int_const 1564...(69 digits omitted)...4416" + }, + "value": "15647600021508609611386466189009105815365382348025150745900556253207448104416" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17753, + "mutability": "constant", + "name": "IC3y", + "nameLocation": "3475:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "3458:101:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17751, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3458:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231353035383636373739313339373336333739363033353438383230313731393533323034393034303731373734363131353832333031383732363636313433373439363634323233373832", + "id": 17752, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3482:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_21505866779139736379603548820171953204904071774611582301872666143749664223782_by_1", + "typeString": "int_const 2150...(69 digits omitted)...3782" + }, + "value": "21505866779139736379603548820171953204904071774611582301872666143749664223782" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17756, + "mutability": "constant", + "name": "IC4x", + "nameLocation": "3587:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "3570:101:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3570:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3230373535333635313139353339373933323834333938333639383039313833373134373734373138323734313239373138383836303038383430393339323530373039333638303536343433", + "id": 17755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3594:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_20755365119539793284398369809183714774718274129718886008840939250709368056443_by_1", + "typeString": "int_const 2075...(69 digits omitted)...6443" + }, + "value": "20755365119539793284398369809183714774718274129718886008840939250709368056443" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17759, + "mutability": "constant", + "name": "IC4y", + "nameLocation": "3694:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "3677:100:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17757, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3677:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31353134303936303939393039393638393932393938333939363439353930323932393032373433323436313136373539383637303134303831393032383237313333363037373430303331", + "id": 17758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3701:76:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_1514096099909968992998399649590292902743246116759867014081902827133607740031_by_1", + "typeString": "int_const 1514...(68 digits omitted)...0031" + }, + "value": "1514096099909968992998399649590292902743246116759867014081902827133607740031" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17762, + "mutability": "constant", + "name": "IC5x", + "nameLocation": "3805:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "3788:99:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17760, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3788:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "353436353033353637333430363136353033343837363237323632383132373338343832333433393732313135383039393130353131363335313337353439313435373834353233303739", + "id": 17761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3812:75:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_546503567340616503487627262812738482343972115809910511635137549145784523079_by_1", + "typeString": "int_const 5465...(67 digits omitted)...3079" + }, + "value": "546503567340616503487627262812738482343972115809910511635137549145784523079" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17765, + "mutability": "constant", + "name": "IC5y", + "nameLocation": "3910:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "3893:101:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17763, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3893:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3139363432393333343536373238333436323339373135343132333935353236373337373939343037303836333639333731383336313339303330343436343130333133393831313237313433", + "id": 17764, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3917:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_19642933456728346239715412395526737799407086369371836139030446410313981127143_by_1", + "typeString": "int_const 1964...(69 digits omitted)...7143" + }, + "value": "19642933456728346239715412395526737799407086369371836139030446410313981127143" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17768, + "mutability": "constant", + "name": "IC6x", + "nameLocation": "4022:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "4005:100:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17766, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4005:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "38363535333837353534303432353838343739373634383431343231313133343631393034363438333339393437353739353934383838323332333133343831353430313430323130363035", + "id": 17767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4029:76:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_8655387554042588479764841421113461904648339947579594888232313481540140210605_by_1", + "typeString": "int_const 8655...(68 digits omitted)...0605" + }, + "value": "8655387554042588479764841421113461904648339947579594888232313481540140210605" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17771, + "mutability": "constant", + "name": "IC6y", + "nameLocation": "4128:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "4111:100:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4111:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "36313934353832393632363037393833333739363430313137363830313531333836303034303832333739373032323736363433323532333039353632373536333932363339373935303336", + "id": 17770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4135:76:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_6194582962607983379640117680151386004082379702276643252309562756392639795036_by_1", + "typeString": "int_const 6194...(68 digits omitted)...5036" + }, + "value": "6194582962607983379640117680151386004082379702276643252309562756392639795036" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17774, + "mutability": "constant", + "name": "IC7x", + "nameLocation": "4239:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "4222:101:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4222:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3139393938393537373732333634353230303439323136303330363433343233353339383436313734383034393539343933303731383337313536323334353630313134303533333732303435", + "id": 17773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4246:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_19998957772364520049216030643423539846174804959493071837156234560114053372045_by_1", + "typeString": "int_const 1999...(69 digits omitted)...2045" + }, + "value": "19998957772364520049216030643423539846174804959493071837156234560114053372045" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17777, + "mutability": "constant", + "name": "IC7y", + "nameLocation": "4346:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "4329:100:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17775, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4329:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "37383736303636323133313838333539393836323637373835373036323734353034303031343630313735373036373435383238353333383930353730303031353030363732343133373232", + "id": 17776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4353:76:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_7876066213188359986267785706274504001460175706745828533890570001500672413722_by_1", + "typeString": "int_const 7876...(68 digits omitted)...3722" + }, + "value": "7876066213188359986267785706274504001460175706745828533890570001500672413722" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17780, + "mutability": "constant", + "name": "IC8x", + "nameLocation": "4457:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "4440:101:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17778, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4440:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3137393139363436343239303339373731363834383536393830353530303236303630383230313337373234353533323031313433303339333136313537353130383231363831333334393539", + "id": 17779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4464:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_17919646429039771684856980550026060820137724553201143039316157510821681334959_by_1", + "typeString": "int_const 1791...(69 digits omitted)...4959" + }, + "value": "17919646429039771684856980550026060820137724553201143039316157510821681334959" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17783, + "mutability": "constant", + "name": "IC8y", + "nameLocation": "4564:4:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "4547:101:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17781, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4547:7:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3132323532373434333639323737353732313431363139353431353938393538343038393230313835313539363430323831363736313638373238313039303236313133343631343234393433", + "id": 17782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4571:77:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_12252744369277572141619541598958408920185159640281676168728109026113461424943_by_1", + "typeString": "int_const 1225...(69 digits omitted)...4943" + }, + "value": "12252744369277572141619541598958408920185159640281676168728109026113461424943" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17786, + "mutability": "constant", + "name": "pVk", + "nameLocation": "4696:3:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "4680:23:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 17784, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4680:6:41", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "30", + "id": 17785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4702:1:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17789, + "mutability": "constant", + "name": "pPairing", + "nameLocation": "4725:8:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "4709:30:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 17787, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4709:6:41", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "313238", + "id": 17788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4736:3:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17792, + "mutability": "constant", + "name": "pLastMem", + "nameLocation": "4762:8:41", + "nodeType": "VariableDeclaration", + "scope": 17818, + "src": "4746:30:41", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 17790, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4746:6:41", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "383936", + "id": 17791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4773:3:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_896_by_1", + "typeString": "int_const 896" + }, + "value": "896" + }, + "visibility": "internal" + }, + { + "body": { + "id": 17816, + "nodeType": "Block", + "src": "4930:4853:41", + "statements": [ + { + "AST": { + "nativeSrc": "4949:4827:41", + "nodeType": "YulBlock", + "src": "4949:4827:41", + "statements": [ + { + "body": { + "nativeSrc": "4986:140:41", + "nodeType": "YulBlock", + "src": "4986:140:41", + "statements": [ + { + "body": { + "nativeSrc": "5024:88:41", + "nodeType": "YulBlock", + "src": "5024:88:41", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5053:1:41", + "nodeType": "YulLiteral", + "src": "5053:1:41", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5056:1:41", + "nodeType": "YulLiteral", + "src": "5056:1:41", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5046:6:41", + "nodeType": "YulIdentifier", + "src": "5046:6:41" + }, + "nativeSrc": "5046:12:41", + "nodeType": "YulFunctionCall", + "src": "5046:12:41" + }, + "nativeSrc": "5046:12:41", + "nodeType": "YulExpressionStatement", + "src": "5046:12:41" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5086:1:41", + "nodeType": "YulLiteral", + "src": "5086:1:41", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5089:4:41", + "nodeType": "YulLiteral", + "src": "5089:4:41", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "5079:6:41", + "nodeType": "YulIdentifier", + "src": "5079:6:41" + }, + "nativeSrc": "5079:15:41", + "nodeType": "YulFunctionCall", + "src": "5079:15:41" + }, + "nativeSrc": "5079:15:41", + "nodeType": "YulExpressionStatement", + "src": "5079:15:41" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "v", + "nativeSrc": "5017:1:41", + "nodeType": "YulIdentifier", + "src": "5017:1:41" + }, + { + "name": "r", + "nativeSrc": "5020:1:41", + "nodeType": "YulIdentifier", + "src": "5020:1:41" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5014:2:41", + "nodeType": "YulIdentifier", + "src": "5014:2:41" + }, + "nativeSrc": "5014:8:41", + "nodeType": "YulFunctionCall", + "src": "5014:8:41" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5007:6:41", + "nodeType": "YulIdentifier", + "src": "5007:6:41" + }, + "nativeSrc": "5007:16:41", + "nodeType": "YulFunctionCall", + "src": "5007:16:41" + }, + "nativeSrc": "5004:108:41", + "nodeType": "YulIf", + "src": "5004:108:41" + } + ] + }, + "name": "checkField", + "nativeSrc": "4963:163:41", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "v", + "nativeSrc": "4983:1:41", + "nodeType": "YulTypedName", + "src": "4983:1:41", + "type": "" + } + ], + "src": "4963:163:41" + }, + { + "body": { + "nativeSrc": "5263:705:41", + "nodeType": "YulBlock", + "src": "5263:705:41", + "statements": [ + { + "nativeSrc": "5281:11:41", + "nodeType": "YulVariableDeclaration", + "src": "5281:11:41", + "variables": [ + { + "name": "success", + "nativeSrc": "5285:7:41", + "nodeType": "YulTypedName", + "src": "5285:7:41", + "type": "" + } + ] + }, + { + "nativeSrc": "5309:22:41", + "nodeType": "YulVariableDeclaration", + "src": "5309:22:41", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5326:4:41", + "nodeType": "YulLiteral", + "src": "5326:4:41", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5320:5:41", + "nodeType": "YulIdentifier", + "src": "5320:5:41" + }, + "nativeSrc": "5320:11:41", + "nodeType": "YulFunctionCall", + "src": "5320:11:41" + }, + "variables": [ + { + "name": "mIn", + "nativeSrc": "5313:3:41", + "nodeType": "YulTypedName", + "src": "5313:3:41", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5355:3:41", + "nodeType": "YulIdentifier", + "src": "5355:3:41" + }, + { + "name": "x", + "nativeSrc": "5360:1:41", + "nodeType": "YulIdentifier", + "src": "5360:1:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5348:6:41", + "nodeType": "YulIdentifier", + "src": "5348:6:41" + }, + "nativeSrc": "5348:14:41", + "nodeType": "YulFunctionCall", + "src": "5348:14:41" + }, + "nativeSrc": "5348:14:41", + "nodeType": "YulExpressionStatement", + "src": "5348:14:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5390:3:41", + "nodeType": "YulIdentifier", + "src": "5390:3:41" + }, + { + "kind": "number", + "nativeSrc": "5395:2:41", + "nodeType": "YulLiteral", + "src": "5395:2:41", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5386:3:41", + "nodeType": "YulIdentifier", + "src": "5386:3:41" + }, + "nativeSrc": "5386:12:41", + "nodeType": "YulFunctionCall", + "src": "5386:12:41" + }, + { + "name": "y", + "nativeSrc": "5400:1:41", + "nodeType": "YulIdentifier", + "src": "5400:1:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5379:6:41", + "nodeType": "YulIdentifier", + "src": "5379:6:41" + }, + "nativeSrc": "5379:23:41", + "nodeType": "YulFunctionCall", + "src": "5379:23:41" + }, + "nativeSrc": "5379:23:41", + "nodeType": "YulExpressionStatement", + "src": "5379:23:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5430:3:41", + "nodeType": "YulIdentifier", + "src": "5430:3:41" + }, + { + "kind": "number", + "nativeSrc": "5435:2:41", + "nodeType": "YulLiteral", + "src": "5435:2:41", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5426:3:41", + "nodeType": "YulIdentifier", + "src": "5426:3:41" + }, + "nativeSrc": "5426:12:41", + "nodeType": "YulFunctionCall", + "src": "5426:12:41" + }, + { + "name": "s", + "nativeSrc": "5440:1:41", + "nodeType": "YulIdentifier", + "src": "5440:1:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5419:6:41", + "nodeType": "YulIdentifier", + "src": "5419:6:41" + }, + "nativeSrc": "5419:23:41", + "nodeType": "YulFunctionCall", + "src": "5419:23:41" + }, + "nativeSrc": "5419:23:41", + "nodeType": "YulExpressionStatement", + "src": "5419:23:41" + }, + { + "nativeSrc": "5460:60:41", + "nodeType": "YulAssignment", + "src": "5460:60:41", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "5486:3:41", + "nodeType": "YulIdentifier", + "src": "5486:3:41" + }, + "nativeSrc": "5486:5:41", + "nodeType": "YulFunctionCall", + "src": "5486:5:41" + }, + { + "kind": "number", + "nativeSrc": "5493:4:41", + "nodeType": "YulLiteral", + "src": "5493:4:41", + "type": "", + "value": "2000" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5482:3:41", + "nodeType": "YulIdentifier", + "src": "5482:3:41" + }, + "nativeSrc": "5482:16:41", + "nodeType": "YulFunctionCall", + "src": "5482:16:41" + }, + { + "kind": "number", + "nativeSrc": "5500:1:41", + "nodeType": "YulLiteral", + "src": "5500:1:41", + "type": "", + "value": "7" + }, + { + "name": "mIn", + "nativeSrc": "5503:3:41", + "nodeType": "YulIdentifier", + "src": "5503:3:41" + }, + { + "kind": "number", + "nativeSrc": "5508:2:41", + "nodeType": "YulLiteral", + "src": "5508:2:41", + "type": "", + "value": "96" + }, + { + "name": "mIn", + "nativeSrc": "5512:3:41", + "nodeType": "YulIdentifier", + "src": "5512:3:41" + }, + { + "kind": "number", + "nativeSrc": "5517:2:41", + "nodeType": "YulLiteral", + "src": "5517:2:41", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "5471:10:41", + "nodeType": "YulIdentifier", + "src": "5471:10:41" + }, + "nativeSrc": "5471:49:41", + "nodeType": "YulFunctionCall", + "src": "5471:49:41" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "5460:7:41", + "nodeType": "YulIdentifier", + "src": "5460:7:41" + } + ] + }, + { + "body": { + "nativeSrc": "5557:88:41", + "nodeType": "YulBlock", + "src": "5557:88:41", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5586:1:41", + "nodeType": "YulLiteral", + "src": "5586:1:41", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5589:1:41", + "nodeType": "YulLiteral", + "src": "5589:1:41", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5579:6:41", + "nodeType": "YulIdentifier", + "src": "5579:6:41" + }, + "nativeSrc": "5579:12:41", + "nodeType": "YulFunctionCall", + "src": "5579:12:41" + }, + "nativeSrc": "5579:12:41", + "nodeType": "YulExpressionStatement", + "src": "5579:12:41" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5619:1:41", + "nodeType": "YulLiteral", + "src": "5619:1:41", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5622:4:41", + "nodeType": "YulLiteral", + "src": "5622:4:41", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "5612:6:41", + "nodeType": "YulIdentifier", + "src": "5612:6:41" + }, + "nativeSrc": "5612:15:41", + "nodeType": "YulFunctionCall", + "src": "5612:15:41" + }, + "nativeSrc": "5612:15:41", + "nodeType": "YulExpressionStatement", + "src": "5612:15:41" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "success", + "nativeSrc": "5548:7:41", + "nodeType": "YulIdentifier", + "src": "5548:7:41" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5541:6:41", + "nodeType": "YulIdentifier", + "src": "5541:6:41" + }, + "nativeSrc": "5541:15:41", + "nodeType": "YulFunctionCall", + "src": "5541:15:41" + }, + "nativeSrc": "5538:107:41", + "nodeType": "YulIf", + "src": "5538:107:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5674:3:41", + "nodeType": "YulIdentifier", + "src": "5674:3:41" + }, + { + "kind": "number", + "nativeSrc": "5679:2:41", + "nodeType": "YulLiteral", + "src": "5679:2:41", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5670:3:41", + "nodeType": "YulIdentifier", + "src": "5670:3:41" + }, + "nativeSrc": "5670:12:41", + "nodeType": "YulFunctionCall", + "src": "5670:12:41" + }, + { + "arguments": [ + { + "name": "pR", + "nativeSrc": "5690:2:41", + "nodeType": "YulIdentifier", + "src": "5690:2:41" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5684:5:41", + "nodeType": "YulIdentifier", + "src": "5684:5:41" + }, + "nativeSrc": "5684:9:41", + "nodeType": "YulFunctionCall", + "src": "5684:9:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5663:6:41", + "nodeType": "YulIdentifier", + "src": "5663:6:41" + }, + "nativeSrc": "5663:31:41", + "nodeType": "YulFunctionCall", + "src": "5663:31:41" + }, + "nativeSrc": "5663:31:41", + "nodeType": "YulExpressionStatement", + "src": "5663:31:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5722:3:41", + "nodeType": "YulIdentifier", + "src": "5722:3:41" + }, + { + "kind": "number", + "nativeSrc": "5727:2:41", + "nodeType": "YulLiteral", + "src": "5727:2:41", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5718:3:41", + "nodeType": "YulIdentifier", + "src": "5718:3:41" + }, + "nativeSrc": "5718:12:41", + "nodeType": "YulFunctionCall", + "src": "5718:12:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pR", + "nativeSrc": "5742:2:41", + "nodeType": "YulIdentifier", + "src": "5742:2:41" + }, + { + "kind": "number", + "nativeSrc": "5746:2:41", + "nodeType": "YulLiteral", + "src": "5746:2:41", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5738:3:41", + "nodeType": "YulIdentifier", + "src": "5738:3:41" + }, + "nativeSrc": "5738:11:41", + "nodeType": "YulFunctionCall", + "src": "5738:11:41" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5732:5:41", + "nodeType": "YulIdentifier", + "src": "5732:5:41" + }, + "nativeSrc": "5732:18:41", + "nodeType": "YulFunctionCall", + "src": "5732:18:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5711:6:41", + "nodeType": "YulIdentifier", + "src": "5711:6:41" + }, + "nativeSrc": "5711:40:41", + "nodeType": "YulFunctionCall", + "src": "5711:40:41" + }, + "nativeSrc": "5711:40:41", + "nodeType": "YulExpressionStatement", + "src": "5711:40:41" + }, + { + "nativeSrc": "5769:60:41", + "nodeType": "YulAssignment", + "src": "5769:60:41", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "5795:3:41", + "nodeType": "YulIdentifier", + "src": "5795:3:41" + }, + "nativeSrc": "5795:5:41", + "nodeType": "YulFunctionCall", + "src": "5795:5:41" + }, + { + "kind": "number", + "nativeSrc": "5802:4:41", + "nodeType": "YulLiteral", + "src": "5802:4:41", + "type": "", + "value": "2000" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5791:3:41", + "nodeType": "YulIdentifier", + "src": "5791:3:41" + }, + "nativeSrc": "5791:16:41", + "nodeType": "YulFunctionCall", + "src": "5791:16:41" + }, + { + "kind": "number", + "nativeSrc": "5809:1:41", + "nodeType": "YulLiteral", + "src": "5809:1:41", + "type": "", + "value": "6" + }, + { + "name": "mIn", + "nativeSrc": "5812:3:41", + "nodeType": "YulIdentifier", + "src": "5812:3:41" + }, + { + "kind": "number", + "nativeSrc": "5817:3:41", + "nodeType": "YulLiteral", + "src": "5817:3:41", + "type": "", + "value": "128" + }, + { + "name": "pR", + "nativeSrc": "5822:2:41", + "nodeType": "YulIdentifier", + "src": "5822:2:41" + }, + { + "kind": "number", + "nativeSrc": "5826:2:41", + "nodeType": "YulLiteral", + "src": "5826:2:41", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "5780:10:41", + "nodeType": "YulIdentifier", + "src": "5780:10:41" + }, + "nativeSrc": "5780:49:41", + "nodeType": "YulFunctionCall", + "src": "5780:49:41" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "5769:7:41", + "nodeType": "YulIdentifier", + "src": "5769:7:41" + } + ] + }, + { + "body": { + "nativeSrc": "5866:88:41", + "nodeType": "YulBlock", + "src": "5866:88:41", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5895:1:41", + "nodeType": "YulLiteral", + "src": "5895:1:41", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5898:1:41", + "nodeType": "YulLiteral", + "src": "5898:1:41", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5888:6:41", + "nodeType": "YulIdentifier", + "src": "5888:6:41" + }, + "nativeSrc": "5888:12:41", + "nodeType": "YulFunctionCall", + "src": "5888:12:41" + }, + "nativeSrc": "5888:12:41", + "nodeType": "YulExpressionStatement", + "src": "5888:12:41" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5928:1:41", + "nodeType": "YulLiteral", + "src": "5928:1:41", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5931:4:41", + "nodeType": "YulLiteral", + "src": "5931:4:41", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "5921:6:41", + "nodeType": "YulIdentifier", + "src": "5921:6:41" + }, + "nativeSrc": "5921:15:41", + "nodeType": "YulFunctionCall", + "src": "5921:15:41" + }, + "nativeSrc": "5921:15:41", + "nodeType": "YulExpressionStatement", + "src": "5921:15:41" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "success", + "nativeSrc": "5857:7:41", + "nodeType": "YulIdentifier", + "src": "5857:7:41" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5850:6:41", + "nodeType": "YulIdentifier", + "src": "5850:6:41" + }, + "nativeSrc": "5850:15:41", + "nodeType": "YulFunctionCall", + "src": "5850:15:41" + }, + "nativeSrc": "5847:107:41", + "nodeType": "YulIf", + "src": "5847:107:41" + } + ] + }, + "name": "g1_mulAccC", + "nativeSrc": "5230:738:41", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pR", + "nativeSrc": "5250:2:41", + "nodeType": "YulTypedName", + "src": "5250:2:41", + "type": "" + }, + { + "name": "x", + "nativeSrc": "5254:1:41", + "nodeType": "YulTypedName", + "src": "5254:1:41", + "type": "" + }, + { + "name": "y", + "nativeSrc": "5257:1:41", + "nodeType": "YulTypedName", + "src": "5257:1:41", + "type": "" + }, + { + "name": "s", + "nativeSrc": "5260:1:41", + "nodeType": "YulTypedName", + "src": "5260:1:41", + "type": "" + } + ], + "src": "5230:738:41" + }, + { + "body": { + "nativeSrc": "6042:2820:41", + "nodeType": "YulBlock", + "src": "6042:2820:41", + "statements": [ + { + "nativeSrc": "6060:36:41", + "nodeType": "YulVariableDeclaration", + "src": "6060:36:41", + "value": { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "6081:4:41", + "nodeType": "YulIdentifier", + "src": "6081:4:41" + }, + { + "name": "pPairing", + "nativeSrc": "6087:8:41", + "nodeType": "YulIdentifier", + "src": "6087:8:41" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6077:3:41", + "nodeType": "YulIdentifier", + "src": "6077:3:41" + }, + "nativeSrc": "6077:19:41", + "nodeType": "YulFunctionCall", + "src": "6077:19:41" + }, + "variables": [ + { + "name": "_pPairing", + "nativeSrc": "6064:9:41", + "nodeType": "YulTypedName", + "src": "6064:9:41", + "type": "" + } + ] + }, + { + "nativeSrc": "6113:26:41", + "nodeType": "YulVariableDeclaration", + "src": "6113:26:41", + "value": { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "6129:4:41", + "nodeType": "YulIdentifier", + "src": "6129:4:41" + }, + { + "name": "pVk", + "nativeSrc": "6135:3:41", + "nodeType": "YulIdentifier", + "src": "6135:3:41" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6125:3:41", + "nodeType": "YulIdentifier", + "src": "6125:3:41" + }, + "nativeSrc": "6125:14:41", + "nodeType": "YulFunctionCall", + "src": "6125:14:41" + }, + "variables": [ + { + "name": "_pVk", + "nativeSrc": "6117:4:41", + "nodeType": "YulTypedName", + "src": "6117:4:41", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6164:4:41", + "nodeType": "YulIdentifier", + "src": "6164:4:41" + }, + { + "name": "IC0x", + "nativeSrc": "6170:4:41", + "nodeType": "YulIdentifier", + "src": "6170:4:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6157:6:41", + "nodeType": "YulIdentifier", + "src": "6157:6:41" + }, + "nativeSrc": "6157:18:41", + "nodeType": "YulFunctionCall", + "src": "6157:18:41" + }, + "nativeSrc": "6157:18:41", + "nodeType": "YulExpressionStatement", + "src": "6157:18:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6203:4:41", + "nodeType": "YulIdentifier", + "src": "6203:4:41" + }, + { + "kind": "number", + "nativeSrc": "6209:2:41", + "nodeType": "YulLiteral", + "src": "6209:2:41", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6199:3:41", + "nodeType": "YulIdentifier", + "src": "6199:3:41" + }, + "nativeSrc": "6199:13:41", + "nodeType": "YulFunctionCall", + "src": "6199:13:41" + }, + { + "name": "IC0y", + "nativeSrc": "6214:4:41", + "nodeType": "YulIdentifier", + "src": "6214:4:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6192:6:41", + "nodeType": "YulIdentifier", + "src": "6192:6:41" + }, + "nativeSrc": "6192:27:41", + "nodeType": "YulFunctionCall", + "src": "6192:27:41" + }, + "nativeSrc": "6192:27:41", + "nodeType": "YulExpressionStatement", + "src": "6192:27:41" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6320:4:41", + "nodeType": "YulIdentifier", + "src": "6320:4:41" + }, + { + "name": "IC1x", + "nativeSrc": "6326:4:41", + "nodeType": "YulIdentifier", + "src": "6326:4:41" + }, + { + "name": "IC1y", + "nativeSrc": "6332:4:41", + "nodeType": "YulIdentifier", + "src": "6332:4:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6355:10:41", + "nodeType": "YulIdentifier", + "src": "6355:10:41" + }, + { + "kind": "number", + "nativeSrc": "6367:1:41", + "nodeType": "YulLiteral", + "src": "6367:1:41", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6351:3:41", + "nodeType": "YulIdentifier", + "src": "6351:3:41" + }, + "nativeSrc": "6351:18:41", + "nodeType": "YulFunctionCall", + "src": "6351:18:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6338:12:41", + "nodeType": "YulIdentifier", + "src": "6338:12:41" + }, + "nativeSrc": "6338:32:41", + "nodeType": "YulFunctionCall", + "src": "6338:32:41" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6309:10:41", + "nodeType": "YulIdentifier", + "src": "6309:10:41" + }, + "nativeSrc": "6309:62:41", + "nodeType": "YulFunctionCall", + "src": "6309:62:41" + }, + "nativeSrc": "6309:62:41", + "nodeType": "YulExpressionStatement", + "src": "6309:62:41" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6416:4:41", + "nodeType": "YulIdentifier", + "src": "6416:4:41" + }, + { + "name": "IC2x", + "nativeSrc": "6422:4:41", + "nodeType": "YulIdentifier", + "src": "6422:4:41" + }, + { + "name": "IC2y", + "nativeSrc": "6428:4:41", + "nodeType": "YulIdentifier", + "src": "6428:4:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6451:10:41", + "nodeType": "YulIdentifier", + "src": "6451:10:41" + }, + { + "kind": "number", + "nativeSrc": "6463:2:41", + "nodeType": "YulLiteral", + "src": "6463:2:41", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6447:3:41", + "nodeType": "YulIdentifier", + "src": "6447:3:41" + }, + "nativeSrc": "6447:19:41", + "nodeType": "YulFunctionCall", + "src": "6447:19:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6434:12:41", + "nodeType": "YulIdentifier", + "src": "6434:12:41" + }, + "nativeSrc": "6434:33:41", + "nodeType": "YulFunctionCall", + "src": "6434:33:41" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6405:10:41", + "nodeType": "YulIdentifier", + "src": "6405:10:41" + }, + "nativeSrc": "6405:63:41", + "nodeType": "YulFunctionCall", + "src": "6405:63:41" + }, + "nativeSrc": "6405:63:41", + "nodeType": "YulExpressionStatement", + "src": "6405:63:41" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6513:4:41", + "nodeType": "YulIdentifier", + "src": "6513:4:41" + }, + { + "name": "IC3x", + "nativeSrc": "6519:4:41", + "nodeType": "YulIdentifier", + "src": "6519:4:41" + }, + { + "name": "IC3y", + "nativeSrc": "6525:4:41", + "nodeType": "YulIdentifier", + "src": "6525:4:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6548:10:41", + "nodeType": "YulIdentifier", + "src": "6548:10:41" + }, + { + "kind": "number", + "nativeSrc": "6560:2:41", + "nodeType": "YulLiteral", + "src": "6560:2:41", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6544:3:41", + "nodeType": "YulIdentifier", + "src": "6544:3:41" + }, + "nativeSrc": "6544:19:41", + "nodeType": "YulFunctionCall", + "src": "6544:19:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6531:12:41", + "nodeType": "YulIdentifier", + "src": "6531:12:41" + }, + "nativeSrc": "6531:33:41", + "nodeType": "YulFunctionCall", + "src": "6531:33:41" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6502:10:41", + "nodeType": "YulIdentifier", + "src": "6502:10:41" + }, + "nativeSrc": "6502:63:41", + "nodeType": "YulFunctionCall", + "src": "6502:63:41" + }, + "nativeSrc": "6502:63:41", + "nodeType": "YulExpressionStatement", + "src": "6502:63:41" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6610:4:41", + "nodeType": "YulIdentifier", + "src": "6610:4:41" + }, + { + "name": "IC4x", + "nativeSrc": "6616:4:41", + "nodeType": "YulIdentifier", + "src": "6616:4:41" + }, + { + "name": "IC4y", + "nativeSrc": "6622:4:41", + "nodeType": "YulIdentifier", + "src": "6622:4:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6645:10:41", + "nodeType": "YulIdentifier", + "src": "6645:10:41" + }, + { + "kind": "number", + "nativeSrc": "6657:2:41", + "nodeType": "YulLiteral", + "src": "6657:2:41", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6641:3:41", + "nodeType": "YulIdentifier", + "src": "6641:3:41" + }, + "nativeSrc": "6641:19:41", + "nodeType": "YulFunctionCall", + "src": "6641:19:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6628:12:41", + "nodeType": "YulIdentifier", + "src": "6628:12:41" + }, + "nativeSrc": "6628:33:41", + "nodeType": "YulFunctionCall", + "src": "6628:33:41" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6599:10:41", + "nodeType": "YulIdentifier", + "src": "6599:10:41" + }, + "nativeSrc": "6599:63:41", + "nodeType": "YulFunctionCall", + "src": "6599:63:41" + }, + "nativeSrc": "6599:63:41", + "nodeType": "YulExpressionStatement", + "src": "6599:63:41" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6707:4:41", + "nodeType": "YulIdentifier", + "src": "6707:4:41" + }, + { + "name": "IC5x", + "nativeSrc": "6713:4:41", + "nodeType": "YulIdentifier", + "src": "6713:4:41" + }, + { + "name": "IC5y", + "nativeSrc": "6719:4:41", + "nodeType": "YulIdentifier", + "src": "6719:4:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6742:10:41", + "nodeType": "YulIdentifier", + "src": "6742:10:41" + }, + { + "kind": "number", + "nativeSrc": "6754:3:41", + "nodeType": "YulLiteral", + "src": "6754:3:41", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6738:3:41", + "nodeType": "YulIdentifier", + "src": "6738:3:41" + }, + "nativeSrc": "6738:20:41", + "nodeType": "YulFunctionCall", + "src": "6738:20:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6725:12:41", + "nodeType": "YulIdentifier", + "src": "6725:12:41" + }, + "nativeSrc": "6725:34:41", + "nodeType": "YulFunctionCall", + "src": "6725:34:41" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6696:10:41", + "nodeType": "YulIdentifier", + "src": "6696:10:41" + }, + "nativeSrc": "6696:64:41", + "nodeType": "YulFunctionCall", + "src": "6696:64:41" + }, + "nativeSrc": "6696:64:41", + "nodeType": "YulExpressionStatement", + "src": "6696:64:41" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6805:4:41", + "nodeType": "YulIdentifier", + "src": "6805:4:41" + }, + { + "name": "IC6x", + "nativeSrc": "6811:4:41", + "nodeType": "YulIdentifier", + "src": "6811:4:41" + }, + { + "name": "IC6y", + "nativeSrc": "6817:4:41", + "nodeType": "YulIdentifier", + "src": "6817:4:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6840:10:41", + "nodeType": "YulIdentifier", + "src": "6840:10:41" + }, + { + "kind": "number", + "nativeSrc": "6852:3:41", + "nodeType": "YulLiteral", + "src": "6852:3:41", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6836:3:41", + "nodeType": "YulIdentifier", + "src": "6836:3:41" + }, + "nativeSrc": "6836:20:41", + "nodeType": "YulFunctionCall", + "src": "6836:20:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6823:12:41", + "nodeType": "YulIdentifier", + "src": "6823:12:41" + }, + "nativeSrc": "6823:34:41", + "nodeType": "YulFunctionCall", + "src": "6823:34:41" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6794:10:41", + "nodeType": "YulIdentifier", + "src": "6794:10:41" + }, + "nativeSrc": "6794:64:41", + "nodeType": "YulFunctionCall", + "src": "6794:64:41" + }, + "nativeSrc": "6794:64:41", + "nodeType": "YulExpressionStatement", + "src": "6794:64:41" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6903:4:41", + "nodeType": "YulIdentifier", + "src": "6903:4:41" + }, + { + "name": "IC7x", + "nativeSrc": "6909:4:41", + "nodeType": "YulIdentifier", + "src": "6909:4:41" + }, + { + "name": "IC7y", + "nativeSrc": "6915:4:41", + "nodeType": "YulIdentifier", + "src": "6915:4:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6938:10:41", + "nodeType": "YulIdentifier", + "src": "6938:10:41" + }, + { + "kind": "number", + "nativeSrc": "6950:3:41", + "nodeType": "YulLiteral", + "src": "6950:3:41", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6934:3:41", + "nodeType": "YulIdentifier", + "src": "6934:3:41" + }, + "nativeSrc": "6934:20:41", + "nodeType": "YulFunctionCall", + "src": "6934:20:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6921:12:41", + "nodeType": "YulIdentifier", + "src": "6921:12:41" + }, + "nativeSrc": "6921:34:41", + "nodeType": "YulFunctionCall", + "src": "6921:34:41" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6892:10:41", + "nodeType": "YulIdentifier", + "src": "6892:10:41" + }, + "nativeSrc": "6892:64:41", + "nodeType": "YulFunctionCall", + "src": "6892:64:41" + }, + "nativeSrc": "6892:64:41", + "nodeType": "YulExpressionStatement", + "src": "6892:64:41" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "7001:4:41", + "nodeType": "YulIdentifier", + "src": "7001:4:41" + }, + { + "name": "IC8x", + "nativeSrc": "7007:4:41", + "nodeType": "YulIdentifier", + "src": "7007:4:41" + }, + { + "name": "IC8y", + "nativeSrc": "7013:4:41", + "nodeType": "YulIdentifier", + "src": "7013:4:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "7036:10:41", + "nodeType": "YulIdentifier", + "src": "7036:10:41" + }, + { + "kind": "number", + "nativeSrc": "7048:3:41", + "nodeType": "YulLiteral", + "src": "7048:3:41", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7032:3:41", + "nodeType": "YulIdentifier", + "src": "7032:3:41" + }, + "nativeSrc": "7032:20:41", + "nodeType": "YulFunctionCall", + "src": "7032:20:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7019:12:41", + "nodeType": "YulIdentifier", + "src": "7019:12:41" + }, + "nativeSrc": "7019:34:41", + "nodeType": "YulFunctionCall", + "src": "7019:34:41" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6990:10:41", + "nodeType": "YulIdentifier", + "src": "6990:10:41" + }, + "nativeSrc": "6990:64:41", + "nodeType": "YulFunctionCall", + "src": "6990:64:41" + }, + "nativeSrc": "6990:64:41", + "nodeType": "YulExpressionStatement", + "src": "6990:64:41" + }, + { + "expression": { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7118:9:41", + "nodeType": "YulIdentifier", + "src": "7118:9:41" + }, + { + "arguments": [ + { + "name": "pA", + "nativeSrc": "7142:2:41", + "nodeType": "YulIdentifier", + "src": "7142:2:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7129:12:41", + "nodeType": "YulIdentifier", + "src": "7129:12:41" + }, + "nativeSrc": "7129:16:41", + "nodeType": "YulFunctionCall", + "src": "7129:16:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7111:6:41", + "nodeType": "YulIdentifier", + "src": "7111:6:41" + }, + "nativeSrc": "7111:35:41", + "nodeType": "YulFunctionCall", + "src": "7111:35:41" + }, + "nativeSrc": "7111:35:41", + "nodeType": "YulExpressionStatement", + "src": "7111:35:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7174:9:41", + "nodeType": "YulIdentifier", + "src": "7174:9:41" + }, + { + "kind": "number", + "nativeSrc": "7185:2:41", + "nodeType": "YulLiteral", + "src": "7185:2:41", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7170:3:41", + "nodeType": "YulIdentifier", + "src": "7170:3:41" + }, + "nativeSrc": "7170:18:41", + "nodeType": "YulFunctionCall", + "src": "7170:18:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "q", + "nativeSrc": "7198:1:41", + "nodeType": "YulIdentifier", + "src": "7198:1:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pA", + "nativeSrc": "7218:2:41", + "nodeType": "YulIdentifier", + "src": "7218:2:41" + }, + { + "kind": "number", + "nativeSrc": "7222:2:41", + "nodeType": "YulLiteral", + "src": "7222:2:41", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7214:3:41", + "nodeType": "YulIdentifier", + "src": "7214:3:41" + }, + "nativeSrc": "7214:11:41", + "nodeType": "YulFunctionCall", + "src": "7214:11:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7201:12:41", + "nodeType": "YulIdentifier", + "src": "7201:12:41" + }, + "nativeSrc": "7201:25:41", + "nodeType": "YulFunctionCall", + "src": "7201:25:41" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7194:3:41", + "nodeType": "YulIdentifier", + "src": "7194:3:41" + }, + "nativeSrc": "7194:33:41", + "nodeType": "YulFunctionCall", + "src": "7194:33:41" + }, + { + "name": "q", + "nativeSrc": "7229:1:41", + "nodeType": "YulIdentifier", + "src": "7229:1:41" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "7190:3:41", + "nodeType": "YulIdentifier", + "src": "7190:3:41" + }, + "nativeSrc": "7190:41:41", + "nodeType": "YulFunctionCall", + "src": "7190:41:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7163:6:41", + "nodeType": "YulIdentifier", + "src": "7163:6:41" + }, + "nativeSrc": "7163:69:41", + "nodeType": "YulFunctionCall", + "src": "7163:69:41" + }, + "nativeSrc": "7163:69:41", + "nodeType": "YulExpressionStatement", + "src": "7163:69:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7282:9:41", + "nodeType": "YulIdentifier", + "src": "7282:9:41" + }, + { + "kind": "number", + "nativeSrc": "7293:2:41", + "nodeType": "YulLiteral", + "src": "7293:2:41", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7278:3:41", + "nodeType": "YulIdentifier", + "src": "7278:3:41" + }, + "nativeSrc": "7278:18:41", + "nodeType": "YulFunctionCall", + "src": "7278:18:41" + }, + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7311:2:41", + "nodeType": "YulIdentifier", + "src": "7311:2:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7298:12:41", + "nodeType": "YulIdentifier", + "src": "7298:12:41" + }, + "nativeSrc": "7298:16:41", + "nodeType": "YulFunctionCall", + "src": "7298:16:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7271:6:41", + "nodeType": "YulIdentifier", + "src": "7271:6:41" + }, + "nativeSrc": "7271:44:41", + "nodeType": "YulFunctionCall", + "src": "7271:44:41" + }, + "nativeSrc": "7271:44:41", + "nodeType": "YulExpressionStatement", + "src": "7271:44:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7343:9:41", + "nodeType": "YulIdentifier", + "src": "7343:9:41" + }, + { + "kind": "number", + "nativeSrc": "7354:2:41", + "nodeType": "YulLiteral", + "src": "7354:2:41", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7339:3:41", + "nodeType": "YulIdentifier", + "src": "7339:3:41" + }, + "nativeSrc": "7339:18:41", + "nodeType": "YulFunctionCall", + "src": "7339:18:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7376:2:41", + "nodeType": "YulIdentifier", + "src": "7376:2:41" + }, + { + "kind": "number", + "nativeSrc": "7380:2:41", + "nodeType": "YulLiteral", + "src": "7380:2:41", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7372:3:41", + "nodeType": "YulIdentifier", + "src": "7372:3:41" + }, + "nativeSrc": "7372:11:41", + "nodeType": "YulFunctionCall", + "src": "7372:11:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7359:12:41", + "nodeType": "YulIdentifier", + "src": "7359:12:41" + }, + "nativeSrc": "7359:25:41", + "nodeType": "YulFunctionCall", + "src": "7359:25:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7332:6:41", + "nodeType": "YulIdentifier", + "src": "7332:6:41" + }, + "nativeSrc": "7332:53:41", + "nodeType": "YulFunctionCall", + "src": "7332:53:41" + }, + "nativeSrc": "7332:53:41", + "nodeType": "YulExpressionStatement", + "src": "7332:53:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7413:9:41", + "nodeType": "YulIdentifier", + "src": "7413:9:41" + }, + { + "kind": "number", + "nativeSrc": "7424:3:41", + "nodeType": "YulLiteral", + "src": "7424:3:41", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7409:3:41", + "nodeType": "YulIdentifier", + "src": "7409:3:41" + }, + "nativeSrc": "7409:19:41", + "nodeType": "YulFunctionCall", + "src": "7409:19:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7447:2:41", + "nodeType": "YulIdentifier", + "src": "7447:2:41" + }, + { + "kind": "number", + "nativeSrc": "7451:2:41", + "nodeType": "YulLiteral", + "src": "7451:2:41", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7443:3:41", + "nodeType": "YulIdentifier", + "src": "7443:3:41" + }, + "nativeSrc": "7443:11:41", + "nodeType": "YulFunctionCall", + "src": "7443:11:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7430:12:41", + "nodeType": "YulIdentifier", + "src": "7430:12:41" + }, + "nativeSrc": "7430:25:41", + "nodeType": "YulFunctionCall", + "src": "7430:25:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7402:6:41", + "nodeType": "YulIdentifier", + "src": "7402:6:41" + }, + "nativeSrc": "7402:54:41", + "nodeType": "YulFunctionCall", + "src": "7402:54:41" + }, + "nativeSrc": "7402:54:41", + "nodeType": "YulExpressionStatement", + "src": "7402:54:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7484:9:41", + "nodeType": "YulIdentifier", + "src": "7484:9:41" + }, + { + "kind": "number", + "nativeSrc": "7495:3:41", + "nodeType": "YulLiteral", + "src": "7495:3:41", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7480:3:41", + "nodeType": "YulIdentifier", + "src": "7480:3:41" + }, + "nativeSrc": "7480:19:41", + "nodeType": "YulFunctionCall", + "src": "7480:19:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7518:2:41", + "nodeType": "YulIdentifier", + "src": "7518:2:41" + }, + { + "kind": "number", + "nativeSrc": "7522:2:41", + "nodeType": "YulLiteral", + "src": "7522:2:41", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7514:3:41", + "nodeType": "YulIdentifier", + "src": "7514:3:41" + }, + "nativeSrc": "7514:11:41", + "nodeType": "YulFunctionCall", + "src": "7514:11:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7501:12:41", + "nodeType": "YulIdentifier", + "src": "7501:12:41" + }, + "nativeSrc": "7501:25:41", + "nodeType": "YulFunctionCall", + "src": "7501:25:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7473:6:41", + "nodeType": "YulIdentifier", + "src": "7473:6:41" + }, + "nativeSrc": "7473:54:41", + "nodeType": "YulFunctionCall", + "src": "7473:54:41" + }, + "nativeSrc": "7473:54:41", + "nodeType": "YulExpressionStatement", + "src": "7473:54:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7582:9:41", + "nodeType": "YulIdentifier", + "src": "7582:9:41" + }, + { + "kind": "number", + "nativeSrc": "7593:3:41", + "nodeType": "YulLiteral", + "src": "7593:3:41", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7578:3:41", + "nodeType": "YulIdentifier", + "src": "7578:3:41" + }, + "nativeSrc": "7578:19:41", + "nodeType": "YulFunctionCall", + "src": "7578:19:41" + }, + { + "name": "alphax", + "nativeSrc": "7599:6:41", + "nodeType": "YulIdentifier", + "src": "7599:6:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7571:6:41", + "nodeType": "YulIdentifier", + "src": "7571:6:41" + }, + "nativeSrc": "7571:35:41", + "nodeType": "YulFunctionCall", + "src": "7571:35:41" + }, + "nativeSrc": "7571:35:41", + "nodeType": "YulExpressionStatement", + "src": "7571:35:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7634:9:41", + "nodeType": "YulIdentifier", + "src": "7634:9:41" + }, + { + "kind": "number", + "nativeSrc": "7645:3:41", + "nodeType": "YulLiteral", + "src": "7645:3:41", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7630:3:41", + "nodeType": "YulIdentifier", + "src": "7630:3:41" + }, + "nativeSrc": "7630:19:41", + "nodeType": "YulFunctionCall", + "src": "7630:19:41" + }, + { + "name": "alphay", + "nativeSrc": "7651:6:41", + "nodeType": "YulIdentifier", + "src": "7651:6:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7623:6:41", + "nodeType": "YulIdentifier", + "src": "7623:6:41" + }, + "nativeSrc": "7623:35:41", + "nodeType": "YulFunctionCall", + "src": "7623:35:41" + }, + "nativeSrc": "7623:35:41", + "nodeType": "YulExpressionStatement", + "src": "7623:35:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7712:9:41", + "nodeType": "YulIdentifier", + "src": "7712:9:41" + }, + { + "kind": "number", + "nativeSrc": "7723:3:41", + "nodeType": "YulLiteral", + "src": "7723:3:41", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7708:3:41", + "nodeType": "YulIdentifier", + "src": "7708:3:41" + }, + "nativeSrc": "7708:19:41", + "nodeType": "YulFunctionCall", + "src": "7708:19:41" + }, + { + "name": "betax1", + "nativeSrc": "7729:6:41", + "nodeType": "YulIdentifier", + "src": "7729:6:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7701:6:41", + "nodeType": "YulIdentifier", + "src": "7701:6:41" + }, + "nativeSrc": "7701:35:41", + "nodeType": "YulFunctionCall", + "src": "7701:35:41" + }, + "nativeSrc": "7701:35:41", + "nodeType": "YulExpressionStatement", + "src": "7701:35:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7764:9:41", + "nodeType": "YulIdentifier", + "src": "7764:9:41" + }, + { + "kind": "number", + "nativeSrc": "7775:3:41", + "nodeType": "YulLiteral", + "src": "7775:3:41", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7760:3:41", + "nodeType": "YulIdentifier", + "src": "7760:3:41" + }, + "nativeSrc": "7760:19:41", + "nodeType": "YulFunctionCall", + "src": "7760:19:41" + }, + { + "name": "betax2", + "nativeSrc": "7781:6:41", + "nodeType": "YulIdentifier", + "src": "7781:6:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7753:6:41", + "nodeType": "YulIdentifier", + "src": "7753:6:41" + }, + "nativeSrc": "7753:35:41", + "nodeType": "YulFunctionCall", + "src": "7753:35:41" + }, + "nativeSrc": "7753:35:41", + "nodeType": "YulExpressionStatement", + "src": "7753:35:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7816:9:41", + "nodeType": "YulIdentifier", + "src": "7816:9:41" + }, + { + "kind": "number", + "nativeSrc": "7827:3:41", + "nodeType": "YulLiteral", + "src": "7827:3:41", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7812:3:41", + "nodeType": "YulIdentifier", + "src": "7812:3:41" + }, + "nativeSrc": "7812:19:41", + "nodeType": "YulFunctionCall", + "src": "7812:19:41" + }, + { + "name": "betay1", + "nativeSrc": "7833:6:41", + "nodeType": "YulIdentifier", + "src": "7833:6:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7805:6:41", + "nodeType": "YulIdentifier", + "src": "7805:6:41" + }, + "nativeSrc": "7805:35:41", + "nodeType": "YulFunctionCall", + "src": "7805:35:41" + }, + "nativeSrc": "7805:35:41", + "nodeType": "YulExpressionStatement", + "src": "7805:35:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7868:9:41", + "nodeType": "YulIdentifier", + "src": "7868:9:41" + }, + { + "kind": "number", + "nativeSrc": "7879:3:41", + "nodeType": "YulLiteral", + "src": "7879:3:41", + "type": "", + "value": "352" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7864:3:41", + "nodeType": "YulIdentifier", + "src": "7864:3:41" + }, + "nativeSrc": "7864:19:41", + "nodeType": "YulFunctionCall", + "src": "7864:19:41" + }, + { + "name": "betay2", + "nativeSrc": "7885:6:41", + "nodeType": "YulIdentifier", + "src": "7885:6:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7857:6:41", + "nodeType": "YulIdentifier", + "src": "7857:6:41" + }, + "nativeSrc": "7857:35:41", + "nodeType": "YulFunctionCall", + "src": "7857:35:41" + }, + "nativeSrc": "7857:35:41", + "nodeType": "YulExpressionStatement", + "src": "7857:35:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7945:9:41", + "nodeType": "YulIdentifier", + "src": "7945:9:41" + }, + { + "kind": "number", + "nativeSrc": "7956:3:41", + "nodeType": "YulLiteral", + "src": "7956:3:41", + "type": "", + "value": "384" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7941:3:41", + "nodeType": "YulIdentifier", + "src": "7941:3:41" + }, + "nativeSrc": "7941:19:41", + "nodeType": "YulFunctionCall", + "src": "7941:19:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "7972:4:41", + "nodeType": "YulIdentifier", + "src": "7972:4:41" + }, + { + "name": "pVk", + "nativeSrc": "7978:3:41", + "nodeType": "YulIdentifier", + "src": "7978:3:41" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7968:3:41", + "nodeType": "YulIdentifier", + "src": "7968:3:41" + }, + "nativeSrc": "7968:14:41", + "nodeType": "YulFunctionCall", + "src": "7968:14:41" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7962:5:41", + "nodeType": "YulIdentifier", + "src": "7962:5:41" + }, + "nativeSrc": "7962:21:41", + "nodeType": "YulFunctionCall", + "src": "7962:21:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7934:6:41", + "nodeType": "YulIdentifier", + "src": "7934:6:41" + }, + "nativeSrc": "7934:50:41", + "nodeType": "YulFunctionCall", + "src": "7934:50:41" + }, + "nativeSrc": "7934:50:41", + "nodeType": "YulExpressionStatement", + "src": "7934:50:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8012:9:41", + "nodeType": "YulIdentifier", + "src": "8012:9:41" + }, + { + "kind": "number", + "nativeSrc": "8023:3:41", + "nodeType": "YulLiteral", + "src": "8023:3:41", + "type": "", + "value": "416" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8008:3:41", + "nodeType": "YulIdentifier", + "src": "8008:3:41" + }, + "nativeSrc": "8008:19:41", + "nodeType": "YulFunctionCall", + "src": "8008:19:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "8039:4:41", + "nodeType": "YulIdentifier", + "src": "8039:4:41" + }, + { + "arguments": [ + { + "name": "pVk", + "nativeSrc": "8049:3:41", + "nodeType": "YulIdentifier", + "src": "8049:3:41" + }, + { + "kind": "number", + "nativeSrc": "8054:2:41", + "nodeType": "YulLiteral", + "src": "8054:2:41", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8045:3:41", + "nodeType": "YulIdentifier", + "src": "8045:3:41" + }, + "nativeSrc": "8045:12:41", + "nodeType": "YulFunctionCall", + "src": "8045:12:41" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8035:3:41", + "nodeType": "YulIdentifier", + "src": "8035:3:41" + }, + "nativeSrc": "8035:23:41", + "nodeType": "YulFunctionCall", + "src": "8035:23:41" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8029:5:41", + "nodeType": "YulIdentifier", + "src": "8029:5:41" + }, + "nativeSrc": "8029:30:41", + "nodeType": "YulFunctionCall", + "src": "8029:30:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8001:6:41", + "nodeType": "YulIdentifier", + "src": "8001:6:41" + }, + "nativeSrc": "8001:59:41", + "nodeType": "YulFunctionCall", + "src": "8001:59:41" + }, + "nativeSrc": "8001:59:41", + "nodeType": "YulExpressionStatement", + "src": "8001:59:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8116:9:41", + "nodeType": "YulIdentifier", + "src": "8116:9:41" + }, + { + "kind": "number", + "nativeSrc": "8127:3:41", + "nodeType": "YulLiteral", + "src": "8127:3:41", + "type": "", + "value": "448" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8112:3:41", + "nodeType": "YulIdentifier", + "src": "8112:3:41" + }, + "nativeSrc": "8112:19:41", + "nodeType": "YulFunctionCall", + "src": "8112:19:41" + }, + { + "name": "gammax1", + "nativeSrc": "8133:7:41", + "nodeType": "YulIdentifier", + "src": "8133:7:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8105:6:41", + "nodeType": "YulIdentifier", + "src": "8105:6:41" + }, + "nativeSrc": "8105:36:41", + "nodeType": "YulFunctionCall", + "src": "8105:36:41" + }, + "nativeSrc": "8105:36:41", + "nodeType": "YulExpressionStatement", + "src": "8105:36:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8169:9:41", + "nodeType": "YulIdentifier", + "src": "8169:9:41" + }, + { + "kind": "number", + "nativeSrc": "8180:3:41", + "nodeType": "YulLiteral", + "src": "8180:3:41", + "type": "", + "value": "480" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8165:3:41", + "nodeType": "YulIdentifier", + "src": "8165:3:41" + }, + "nativeSrc": "8165:19:41", + "nodeType": "YulFunctionCall", + "src": "8165:19:41" + }, + { + "name": "gammax2", + "nativeSrc": "8186:7:41", + "nodeType": "YulIdentifier", + "src": "8186:7:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8158:6:41", + "nodeType": "YulIdentifier", + "src": "8158:6:41" + }, + "nativeSrc": "8158:36:41", + "nodeType": "YulFunctionCall", + "src": "8158:36:41" + }, + "nativeSrc": "8158:36:41", + "nodeType": "YulExpressionStatement", + "src": "8158:36:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8222:9:41", + "nodeType": "YulIdentifier", + "src": "8222:9:41" + }, + { + "kind": "number", + "nativeSrc": "8233:3:41", + "nodeType": "YulLiteral", + "src": "8233:3:41", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8218:3:41", + "nodeType": "YulIdentifier", + "src": "8218:3:41" + }, + "nativeSrc": "8218:19:41", + "nodeType": "YulFunctionCall", + "src": "8218:19:41" + }, + { + "name": "gammay1", + "nativeSrc": "8239:7:41", + "nodeType": "YulIdentifier", + "src": "8239:7:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8211:6:41", + "nodeType": "YulIdentifier", + "src": "8211:6:41" + }, + "nativeSrc": "8211:36:41", + "nodeType": "YulFunctionCall", + "src": "8211:36:41" + }, + "nativeSrc": "8211:36:41", + "nodeType": "YulExpressionStatement", + "src": "8211:36:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8275:9:41", + "nodeType": "YulIdentifier", + "src": "8275:9:41" + }, + { + "kind": "number", + "nativeSrc": "8286:3:41", + "nodeType": "YulLiteral", + "src": "8286:3:41", + "type": "", + "value": "544" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8271:3:41", + "nodeType": "YulIdentifier", + "src": "8271:3:41" + }, + "nativeSrc": "8271:19:41", + "nodeType": "YulFunctionCall", + "src": "8271:19:41" + }, + { + "name": "gammay2", + "nativeSrc": "8292:7:41", + "nodeType": "YulIdentifier", + "src": "8292:7:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8264:6:41", + "nodeType": "YulIdentifier", + "src": "8264:6:41" + }, + "nativeSrc": "8264:36:41", + "nodeType": "YulFunctionCall", + "src": "8264:36:41" + }, + "nativeSrc": "8264:36:41", + "nodeType": "YulExpressionStatement", + "src": "8264:36:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8350:9:41", + "nodeType": "YulIdentifier", + "src": "8350:9:41" + }, + { + "kind": "number", + "nativeSrc": "8361:3:41", + "nodeType": "YulLiteral", + "src": "8361:3:41", + "type": "", + "value": "576" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8346:3:41", + "nodeType": "YulIdentifier", + "src": "8346:3:41" + }, + "nativeSrc": "8346:19:41", + "nodeType": "YulFunctionCall", + "src": "8346:19:41" + }, + { + "arguments": [ + { + "name": "pC", + "nativeSrc": "8380:2:41", + "nodeType": "YulIdentifier", + "src": "8380:2:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8367:12:41", + "nodeType": "YulIdentifier", + "src": "8367:12:41" + }, + "nativeSrc": "8367:16:41", + "nodeType": "YulFunctionCall", + "src": "8367:16:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8339:6:41", + "nodeType": "YulIdentifier", + "src": "8339:6:41" + }, + "nativeSrc": "8339:45:41", + "nodeType": "YulFunctionCall", + "src": "8339:45:41" + }, + "nativeSrc": "8339:45:41", + "nodeType": "YulExpressionStatement", + "src": "8339:45:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8412:9:41", + "nodeType": "YulIdentifier", + "src": "8412:9:41" + }, + { + "kind": "number", + "nativeSrc": "8423:3:41", + "nodeType": "YulLiteral", + "src": "8423:3:41", + "type": "", + "value": "608" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8408:3:41", + "nodeType": "YulIdentifier", + "src": "8408:3:41" + }, + "nativeSrc": "8408:19:41", + "nodeType": "YulFunctionCall", + "src": "8408:19:41" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pC", + "nativeSrc": "8446:2:41", + "nodeType": "YulIdentifier", + "src": "8446:2:41" + }, + { + "kind": "number", + "nativeSrc": "8450:2:41", + "nodeType": "YulLiteral", + "src": "8450:2:41", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8442:3:41", + "nodeType": "YulIdentifier", + "src": "8442:3:41" + }, + "nativeSrc": "8442:11:41", + "nodeType": "YulFunctionCall", + "src": "8442:11:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8429:12:41", + "nodeType": "YulIdentifier", + "src": "8429:12:41" + }, + "nativeSrc": "8429:25:41", + "nodeType": "YulFunctionCall", + "src": "8429:25:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8401:6:41", + "nodeType": "YulIdentifier", + "src": "8401:6:41" + }, + "nativeSrc": "8401:54:41", + "nodeType": "YulFunctionCall", + "src": "8401:54:41" + }, + "nativeSrc": "8401:54:41", + "nodeType": "YulExpressionStatement", + "src": "8401:54:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8510:9:41", + "nodeType": "YulIdentifier", + "src": "8510:9:41" + }, + { + "kind": "number", + "nativeSrc": "8521:3:41", + "nodeType": "YulLiteral", + "src": "8521:3:41", + "type": "", + "value": "640" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8506:3:41", + "nodeType": "YulIdentifier", + "src": "8506:3:41" + }, + "nativeSrc": "8506:19:41", + "nodeType": "YulFunctionCall", + "src": "8506:19:41" + }, + { + "name": "deltax1", + "nativeSrc": "8527:7:41", + "nodeType": "YulIdentifier", + "src": "8527:7:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8499:6:41", + "nodeType": "YulIdentifier", + "src": "8499:6:41" + }, + "nativeSrc": "8499:36:41", + "nodeType": "YulFunctionCall", + "src": "8499:36:41" + }, + "nativeSrc": "8499:36:41", + "nodeType": "YulExpressionStatement", + "src": "8499:36:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8563:9:41", + "nodeType": "YulIdentifier", + "src": "8563:9:41" + }, + { + "kind": "number", + "nativeSrc": "8574:3:41", + "nodeType": "YulLiteral", + "src": "8574:3:41", + "type": "", + "value": "672" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8559:3:41", + "nodeType": "YulIdentifier", + "src": "8559:3:41" + }, + "nativeSrc": "8559:19:41", + "nodeType": "YulFunctionCall", + "src": "8559:19:41" + }, + { + "name": "deltax2", + "nativeSrc": "8580:7:41", + "nodeType": "YulIdentifier", + "src": "8580:7:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8552:6:41", + "nodeType": "YulIdentifier", + "src": "8552:6:41" + }, + "nativeSrc": "8552:36:41", + "nodeType": "YulFunctionCall", + "src": "8552:36:41" + }, + "nativeSrc": "8552:36:41", + "nodeType": "YulExpressionStatement", + "src": "8552:36:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8616:9:41", + "nodeType": "YulIdentifier", + "src": "8616:9:41" + }, + { + "kind": "number", + "nativeSrc": "8627:3:41", + "nodeType": "YulLiteral", + "src": "8627:3:41", + "type": "", + "value": "704" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8612:3:41", + "nodeType": "YulIdentifier", + "src": "8612:3:41" + }, + "nativeSrc": "8612:19:41", + "nodeType": "YulFunctionCall", + "src": "8612:19:41" + }, + { + "name": "deltay1", + "nativeSrc": "8633:7:41", + "nodeType": "YulIdentifier", + "src": "8633:7:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8605:6:41", + "nodeType": "YulIdentifier", + "src": "8605:6:41" + }, + "nativeSrc": "8605:36:41", + "nodeType": "YulFunctionCall", + "src": "8605:36:41" + }, + "nativeSrc": "8605:36:41", + "nodeType": "YulExpressionStatement", + "src": "8605:36:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8669:9:41", + "nodeType": "YulIdentifier", + "src": "8669:9:41" + }, + { + "kind": "number", + "nativeSrc": "8680:3:41", + "nodeType": "YulLiteral", + "src": "8680:3:41", + "type": "", + "value": "736" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8665:3:41", + "nodeType": "YulIdentifier", + "src": "8665:3:41" + }, + "nativeSrc": "8665:19:41", + "nodeType": "YulFunctionCall", + "src": "8665:19:41" + }, + { + "name": "deltay2", + "nativeSrc": "8686:7:41", + "nodeType": "YulIdentifier", + "src": "8686:7:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8658:6:41", + "nodeType": "YulIdentifier", + "src": "8658:6:41" + }, + "nativeSrc": "8658:36:41", + "nodeType": "YulFunctionCall", + "src": "8658:36:41" + }, + "nativeSrc": "8658:36:41", + "nodeType": "YulExpressionStatement", + "src": "8658:36:41" + }, + { + "nativeSrc": "8713:79:41", + "nodeType": "YulVariableDeclaration", + "src": "8713:79:41", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "8743:3:41", + "nodeType": "YulIdentifier", + "src": "8743:3:41" + }, + "nativeSrc": "8743:5:41", + "nodeType": "YulFunctionCall", + "src": "8743:5:41" + }, + { + "kind": "number", + "nativeSrc": "8750:4:41", + "nodeType": "YulLiteral", + "src": "8750:4:41", + "type": "", + "value": "2000" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8739:3:41", + "nodeType": "YulIdentifier", + "src": "8739:3:41" + }, + "nativeSrc": "8739:16:41", + "nodeType": "YulFunctionCall", + "src": "8739:16:41" + }, + { + "kind": "number", + "nativeSrc": "8757:1:41", + "nodeType": "YulLiteral", + "src": "8757:1:41", + "type": "", + "value": "8" + }, + { + "name": "_pPairing", + "nativeSrc": "8760:9:41", + "nodeType": "YulIdentifier", + "src": "8760:9:41" + }, + { + "kind": "number", + "nativeSrc": "8771:3:41", + "nodeType": "YulLiteral", + "src": "8771:3:41", + "type": "", + "value": "768" + }, + { + "name": "_pPairing", + "nativeSrc": "8776:9:41", + "nodeType": "YulIdentifier", + "src": "8776:9:41" + }, + { + "kind": "number", + "nativeSrc": "8787:4:41", + "nodeType": "YulLiteral", + "src": "8787:4:41", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "8728:10:41", + "nodeType": "YulIdentifier", + "src": "8728:10:41" + }, + "nativeSrc": "8728:64:41", + "nodeType": "YulFunctionCall", + "src": "8728:64:41" + }, + "variables": [ + { + "name": "success", + "nativeSrc": "8717:7:41", + "nodeType": "YulTypedName", + "src": "8717:7:41", + "type": "" + } + ] + }, + { + "nativeSrc": "8810:38:41", + "nodeType": "YulAssignment", + "src": "8810:38:41", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "8822:7:41", + "nodeType": "YulIdentifier", + "src": "8822:7:41" + }, + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8837:9:41", + "nodeType": "YulIdentifier", + "src": "8837:9:41" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8831:5:41", + "nodeType": "YulIdentifier", + "src": "8831:5:41" + }, + "nativeSrc": "8831:16:41", + "nodeType": "YulFunctionCall", + "src": "8831:16:41" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8818:3:41", + "nodeType": "YulIdentifier", + "src": "8818:3:41" + }, + "nativeSrc": "8818:30:41", + "nodeType": "YulFunctionCall", + "src": "8818:30:41" + }, + "variableNames": [ + { + "name": "isOk", + "nativeSrc": "8810:4:41", + "nodeType": "YulIdentifier", + "src": "8810:4:41" + } + ] + } + ] + }, + "name": "checkPairing", + "nativeSrc": "5982:2880:41", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pA", + "nativeSrc": "6004:2:41", + "nodeType": "YulTypedName", + "src": "6004:2:41", + "type": "" + }, + { + "name": "pB", + "nativeSrc": "6008:2:41", + "nodeType": "YulTypedName", + "src": "6008:2:41", + "type": "" + }, + { + "name": "pC", + "nativeSrc": "6012:2:41", + "nodeType": "YulTypedName", + "src": "6012:2:41", + "type": "" + }, + { + "name": "pubSignals", + "nativeSrc": "6016:10:41", + "nodeType": "YulTypedName", + "src": "6016:10:41", + "type": "" + }, + { + "name": "pMem", + "nativeSrc": "6028:4:41", + "nodeType": "YulTypedName", + "src": "6028:4:41", + "type": "" + } + ], + "returnVariables": [ + { + "name": "isOk", + "nativeSrc": "6037:4:41", + "nodeType": "YulTypedName", + "src": "6037:4:41", + "type": "" + } + ], + "src": "5982:2880:41" + }, + { + "nativeSrc": "8876:23:41", + "nodeType": "YulVariableDeclaration", + "src": "8876:23:41", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8894:4:41", + "nodeType": "YulLiteral", + "src": "8894:4:41", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8888:5:41", + "nodeType": "YulIdentifier", + "src": "8888:5:41" + }, + "nativeSrc": "8888:11:41", + "nodeType": "YulFunctionCall", + "src": "8888:11:41" + }, + "variables": [ + { + "name": "pMem", + "nativeSrc": "8880:4:41", + "nodeType": "YulTypedName", + "src": "8880:4:41", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8919:4:41", + "nodeType": "YulLiteral", + "src": "8919:4:41", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "8929:4:41", + "nodeType": "YulIdentifier", + "src": "8929:4:41" + }, + { + "name": "pLastMem", + "nativeSrc": "8935:8:41", + "nodeType": "YulIdentifier", + "src": "8935:8:41" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8925:3:41", + "nodeType": "YulIdentifier", + "src": "8925:3:41" + }, + "nativeSrc": "8925:19:41", + "nodeType": "YulFunctionCall", + "src": "8925:19:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8912:6:41", + "nodeType": "YulIdentifier", + "src": "8912:6:41" + }, + "nativeSrc": "8912:33:41", + "nodeType": "YulFunctionCall", + "src": "8912:33:41" + }, + "nativeSrc": "8912:33:41", + "nodeType": "YulExpressionStatement", + "src": "8912:33:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9051:11:41", + "nodeType": "YulIdentifier", + "src": "9051:11:41" + }, + { + "kind": "number", + "nativeSrc": "9064:1:41", + "nodeType": "YulLiteral", + "src": "9064:1:41", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9047:3:41", + "nodeType": "YulIdentifier", + "src": "9047:3:41" + }, + "nativeSrc": "9047:19:41", + "nodeType": "YulFunctionCall", + "src": "9047:19:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9034:12:41", + "nodeType": "YulIdentifier", + "src": "9034:12:41" + }, + "nativeSrc": "9034:33:41", + "nodeType": "YulFunctionCall", + "src": "9034:33:41" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9023:10:41", + "nodeType": "YulIdentifier", + "src": "9023:10:41" + }, + "nativeSrc": "9023:45:41", + "nodeType": "YulFunctionCall", + "src": "9023:45:41" + }, + "nativeSrc": "9023:45:41", + "nodeType": "YulExpressionStatement", + "src": "9023:45:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9122:11:41", + "nodeType": "YulIdentifier", + "src": "9122:11:41" + }, + { + "kind": "number", + "nativeSrc": "9135:2:41", + "nodeType": "YulLiteral", + "src": "9135:2:41", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9118:3:41", + "nodeType": "YulIdentifier", + "src": "9118:3:41" + }, + "nativeSrc": "9118:20:41", + "nodeType": "YulFunctionCall", + "src": "9118:20:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9105:12:41", + "nodeType": "YulIdentifier", + "src": "9105:12:41" + }, + "nativeSrc": "9105:34:41", + "nodeType": "YulFunctionCall", + "src": "9105:34:41" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9094:10:41", + "nodeType": "YulIdentifier", + "src": "9094:10:41" + }, + "nativeSrc": "9094:46:41", + "nodeType": "YulFunctionCall", + "src": "9094:46:41" + }, + "nativeSrc": "9094:46:41", + "nodeType": "YulExpressionStatement", + "src": "9094:46:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9194:11:41", + "nodeType": "YulIdentifier", + "src": "9194:11:41" + }, + { + "kind": "number", + "nativeSrc": "9207:2:41", + "nodeType": "YulLiteral", + "src": "9207:2:41", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9190:3:41", + "nodeType": "YulIdentifier", + "src": "9190:3:41" + }, + "nativeSrc": "9190:20:41", + "nodeType": "YulFunctionCall", + "src": "9190:20:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9177:12:41", + "nodeType": "YulIdentifier", + "src": "9177:12:41" + }, + "nativeSrc": "9177:34:41", + "nodeType": "YulFunctionCall", + "src": "9177:34:41" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9166:10:41", + "nodeType": "YulIdentifier", + "src": "9166:10:41" + }, + "nativeSrc": "9166:46:41", + "nodeType": "YulFunctionCall", + "src": "9166:46:41" + }, + "nativeSrc": "9166:46:41", + "nodeType": "YulExpressionStatement", + "src": "9166:46:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9266:11:41", + "nodeType": "YulIdentifier", + "src": "9266:11:41" + }, + { + "kind": "number", + "nativeSrc": "9279:2:41", + "nodeType": "YulLiteral", + "src": "9279:2:41", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9262:3:41", + "nodeType": "YulIdentifier", + "src": "9262:3:41" + }, + "nativeSrc": "9262:20:41", + "nodeType": "YulFunctionCall", + "src": "9262:20:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9249:12:41", + "nodeType": "YulIdentifier", + "src": "9249:12:41" + }, + "nativeSrc": "9249:34:41", + "nodeType": "YulFunctionCall", + "src": "9249:34:41" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9238:10:41", + "nodeType": "YulIdentifier", + "src": "9238:10:41" + }, + "nativeSrc": "9238:46:41", + "nodeType": "YulFunctionCall", + "src": "9238:46:41" + }, + "nativeSrc": "9238:46:41", + "nodeType": "YulExpressionStatement", + "src": "9238:46:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9338:11:41", + "nodeType": "YulIdentifier", + "src": "9338:11:41" + }, + { + "kind": "number", + "nativeSrc": "9351:3:41", + "nodeType": "YulLiteral", + "src": "9351:3:41", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9334:3:41", + "nodeType": "YulIdentifier", + "src": "9334:3:41" + }, + "nativeSrc": "9334:21:41", + "nodeType": "YulFunctionCall", + "src": "9334:21:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9321:12:41", + "nodeType": "YulIdentifier", + "src": "9321:12:41" + }, + "nativeSrc": "9321:35:41", + "nodeType": "YulFunctionCall", + "src": "9321:35:41" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9310:10:41", + "nodeType": "YulIdentifier", + "src": "9310:10:41" + }, + "nativeSrc": "9310:47:41", + "nodeType": "YulFunctionCall", + "src": "9310:47:41" + }, + "nativeSrc": "9310:47:41", + "nodeType": "YulExpressionStatement", + "src": "9310:47:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9411:11:41", + "nodeType": "YulIdentifier", + "src": "9411:11:41" + }, + { + "kind": "number", + "nativeSrc": "9424:3:41", + "nodeType": "YulLiteral", + "src": "9424:3:41", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9407:3:41", + "nodeType": "YulIdentifier", + "src": "9407:3:41" + }, + "nativeSrc": "9407:21:41", + "nodeType": "YulFunctionCall", + "src": "9407:21:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9394:12:41", + "nodeType": "YulIdentifier", + "src": "9394:12:41" + }, + "nativeSrc": "9394:35:41", + "nodeType": "YulFunctionCall", + "src": "9394:35:41" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9383:10:41", + "nodeType": "YulIdentifier", + "src": "9383:10:41" + }, + "nativeSrc": "9383:47:41", + "nodeType": "YulFunctionCall", + "src": "9383:47:41" + }, + "nativeSrc": "9383:47:41", + "nodeType": "YulExpressionStatement", + "src": "9383:47:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9484:11:41", + "nodeType": "YulIdentifier", + "src": "9484:11:41" + }, + { + "kind": "number", + "nativeSrc": "9497:3:41", + "nodeType": "YulLiteral", + "src": "9497:3:41", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9480:3:41", + "nodeType": "YulIdentifier", + "src": "9480:3:41" + }, + "nativeSrc": "9480:21:41", + "nodeType": "YulFunctionCall", + "src": "9480:21:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9467:12:41", + "nodeType": "YulIdentifier", + "src": "9467:12:41" + }, + "nativeSrc": "9467:35:41", + "nodeType": "YulFunctionCall", + "src": "9467:35:41" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9456:10:41", + "nodeType": "YulIdentifier", + "src": "9456:10:41" + }, + "nativeSrc": "9456:47:41", + "nodeType": "YulFunctionCall", + "src": "9456:47:41" + }, + "nativeSrc": "9456:47:41", + "nodeType": "YulExpressionStatement", + "src": "9456:47:41" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9557:11:41", + "nodeType": "YulIdentifier", + "src": "9557:11:41" + }, + { + "kind": "number", + "nativeSrc": "9570:3:41", + "nodeType": "YulLiteral", + "src": "9570:3:41", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9553:3:41", + "nodeType": "YulIdentifier", + "src": "9553:3:41" + }, + "nativeSrc": "9553:21:41", + "nodeType": "YulFunctionCall", + "src": "9553:21:41" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9540:12:41", + "nodeType": "YulIdentifier", + "src": "9540:12:41" + }, + "nativeSrc": "9540:35:41", + "nodeType": "YulFunctionCall", + "src": "9540:35:41" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9529:10:41", + "nodeType": "YulIdentifier", + "src": "9529:10:41" + }, + "nativeSrc": "9529:47:41", + "nodeType": "YulFunctionCall", + "src": "9529:47:41" + }, + "nativeSrc": "9529:47:41", + "nodeType": "YulExpressionStatement", + "src": "9529:47:41" + }, + { + "nativeSrc": "9643:61:41", + "nodeType": "YulVariableDeclaration", + "src": "9643:61:41", + "value": { + "arguments": [ + { + "name": "_pA", + "nativeSrc": "9671:3:41", + "nodeType": "YulIdentifier", + "src": "9671:3:41" + }, + { + "name": "_pB", + "nativeSrc": "9676:3:41", + "nodeType": "YulIdentifier", + "src": "9676:3:41" + }, + { + "name": "_pC", + "nativeSrc": "9681:3:41", + "nodeType": "YulIdentifier", + "src": "9681:3:41" + }, + { + "name": "_pubSignals", + "nativeSrc": "9686:11:41", + "nodeType": "YulIdentifier", + "src": "9686:11:41" + }, + { + "name": "pMem", + "nativeSrc": "9699:4:41", + "nodeType": "YulIdentifier", + "src": "9699:4:41" + } + ], + "functionName": { + "name": "checkPairing", + "nativeSrc": "9658:12:41", + "nodeType": "YulIdentifier", + "src": "9658:12:41" + }, + "nativeSrc": "9658:46:41", + "nodeType": "YulFunctionCall", + "src": "9658:46:41" + }, + "variables": [ + { + "name": "isValid", + "nativeSrc": "9647:7:41", + "nodeType": "YulTypedName", + "src": "9647:7:41", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9725:1:41", + "nodeType": "YulLiteral", + "src": "9725:1:41", + "type": "", + "value": "0" + }, + { + "name": "isValid", + "nativeSrc": "9728:7:41", + "nodeType": "YulIdentifier", + "src": "9728:7:41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9718:6:41", + "nodeType": "YulIdentifier", + "src": "9718:6:41" + }, + "nativeSrc": "9718:18:41", + "nodeType": "YulFunctionCall", + "src": "9718:18:41" + }, + "nativeSrc": "9718:18:41", + "nodeType": "YulExpressionStatement", + "src": "9718:18:41" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9757:1:41", + "nodeType": "YulLiteral", + "src": "9757:1:41", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9760:4:41", + "nodeType": "YulLiteral", + "src": "9760:4:41", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "9750:6:41", + "nodeType": "YulIdentifier", + "src": "9750:6:41" + }, + "nativeSrc": "9750:15:41", + "nodeType": "YulFunctionCall", + "src": "9750:15:41" + }, + "nativeSrc": "9750:15:41", + "nodeType": "YulExpressionStatement", + "src": "9750:15:41" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 17732, + "isOffset": false, + "isSlot": false, + "src": "6170:4:41", + "valueSize": 1 + }, + { + "declaration": 17735, + "isOffset": false, + "isSlot": false, + "src": "6214:4:41", + "valueSize": 1 + }, + { + "declaration": 17738, + "isOffset": false, + "isSlot": false, + "src": "6326:4:41", + "valueSize": 1 + }, + { + "declaration": 17741, + "isOffset": false, + "isSlot": false, + "src": "6332:4:41", + "valueSize": 1 + }, + { + "declaration": 17744, + "isOffset": false, + "isSlot": false, + "src": "6422:4:41", + "valueSize": 1 + }, + { + "declaration": 17747, + "isOffset": false, + "isSlot": false, + "src": "6428:4:41", + "valueSize": 1 + }, + { + "declaration": 17750, + "isOffset": false, + "isSlot": false, + "src": "6519:4:41", + "valueSize": 1 + }, + { + "declaration": 17753, + "isOffset": false, + "isSlot": false, + "src": "6525:4:41", + "valueSize": 1 + }, + { + "declaration": 17756, + "isOffset": false, + "isSlot": false, + "src": "6616:4:41", + "valueSize": 1 + }, + { + "declaration": 17759, + "isOffset": false, + "isSlot": false, + "src": "6622:4:41", + "valueSize": 1 + }, + { + "declaration": 17762, + "isOffset": false, + "isSlot": false, + "src": "6713:4:41", + "valueSize": 1 + }, + { + "declaration": 17765, + "isOffset": false, + "isSlot": false, + "src": "6719:4:41", + "valueSize": 1 + }, + { + "declaration": 17768, + "isOffset": false, + "isSlot": false, + "src": "6811:4:41", + "valueSize": 1 + }, + { + "declaration": 17771, + "isOffset": false, + "isSlot": false, + "src": "6817:4:41", + "valueSize": 1 + }, + { + "declaration": 17774, + "isOffset": false, + "isSlot": false, + "src": "6909:4:41", + "valueSize": 1 + }, + { + "declaration": 17777, + "isOffset": false, + "isSlot": false, + "src": "6915:4:41", + "valueSize": 1 + }, + { + "declaration": 17780, + "isOffset": false, + "isSlot": false, + "src": "7007:4:41", + "valueSize": 1 + }, + { + "declaration": 17783, + "isOffset": false, + "isSlot": false, + "src": "7013:4:41", + "valueSize": 1 + }, + { + "declaration": 17796, + "isOffset": false, + "isSlot": false, + "src": "9671:3:41", + "valueSize": 1 + }, + { + "declaration": 17802, + "isOffset": false, + "isSlot": false, + "src": "9676:3:41", + "valueSize": 1 + }, + { + "declaration": 17806, + "isOffset": false, + "isSlot": false, + "src": "9681:3:41", + "valueSize": 1 + }, + { + "declaration": 17810, + "isOffset": false, + "isSlot": false, + "src": "9051:11:41", + "valueSize": 1 + }, + { + "declaration": 17810, + "isOffset": false, + "isSlot": false, + "src": "9122:11:41", + "valueSize": 1 + }, + { + "declaration": 17810, + "isOffset": false, + "isSlot": false, + "src": "9194:11:41", + "valueSize": 1 + }, + { + "declaration": 17810, + "isOffset": false, + "isSlot": false, + "src": "9266:11:41", + "valueSize": 1 + }, + { + "declaration": 17810, + "isOffset": false, + "isSlot": false, + "src": "9338:11:41", + "valueSize": 1 + }, + { + "declaration": 17810, + "isOffset": false, + "isSlot": false, + "src": "9411:11:41", + "valueSize": 1 + }, + { + "declaration": 17810, + "isOffset": false, + "isSlot": false, + "src": "9484:11:41", + "valueSize": 1 + }, + { + "declaration": 17810, + "isOffset": false, + "isSlot": false, + "src": "9557:11:41", + "valueSize": 1 + }, + { + "declaration": 17810, + "isOffset": false, + "isSlot": false, + "src": "9686:11:41", + "valueSize": 1 + }, + { + "declaration": 17690, + "isOffset": false, + "isSlot": false, + "src": "7599:6:41", + "valueSize": 1 + }, + { + "declaration": 17693, + "isOffset": false, + "isSlot": false, + "src": "7651:6:41", + "valueSize": 1 + }, + { + "declaration": 17696, + "isOffset": false, + "isSlot": false, + "src": "7729:6:41", + "valueSize": 1 + }, + { + "declaration": 17699, + "isOffset": false, + "isSlot": false, + "src": "7781:6:41", + "valueSize": 1 + }, + { + "declaration": 17702, + "isOffset": false, + "isSlot": false, + "src": "7833:6:41", + "valueSize": 1 + }, + { + "declaration": 17705, + "isOffset": false, + "isSlot": false, + "src": "7885:6:41", + "valueSize": 1 + }, + { + "declaration": 17720, + "isOffset": false, + "isSlot": false, + "src": "8527:7:41", + "valueSize": 1 + }, + { + "declaration": 17723, + "isOffset": false, + "isSlot": false, + "src": "8580:7:41", + "valueSize": 1 + }, + { + "declaration": 17726, + "isOffset": false, + "isSlot": false, + "src": "8633:7:41", + "valueSize": 1 + }, + { + "declaration": 17729, + "isOffset": false, + "isSlot": false, + "src": "8686:7:41", + "valueSize": 1 + }, + { + "declaration": 17708, + "isOffset": false, + "isSlot": false, + "src": "8133:7:41", + "valueSize": 1 + }, + { + "declaration": 17711, + "isOffset": false, + "isSlot": false, + "src": "8186:7:41", + "valueSize": 1 + }, + { + "declaration": 17714, + "isOffset": false, + "isSlot": false, + "src": "8239:7:41", + "valueSize": 1 + }, + { + "declaration": 17717, + "isOffset": false, + "isSlot": false, + "src": "8292:7:41", + "valueSize": 1 + }, + { + "declaration": 17792, + "isOffset": false, + "isSlot": false, + "src": "8935:8:41", + "valueSize": 1 + }, + { + "declaration": 17789, + "isOffset": false, + "isSlot": false, + "src": "6087:8:41", + "valueSize": 1 + }, + { + "declaration": 17786, + "isOffset": false, + "isSlot": false, + "src": "6135:3:41", + "valueSize": 1 + }, + { + "declaration": 17786, + "isOffset": false, + "isSlot": false, + "src": "7978:3:41", + "valueSize": 1 + }, + { + "declaration": 17786, + "isOffset": false, + "isSlot": false, + "src": "8049:3:41", + "valueSize": 1 + }, + { + "declaration": 17687, + "isOffset": false, + "isSlot": false, + "src": "7198:1:41", + "valueSize": 1 + }, + { + "declaration": 17687, + "isOffset": false, + "isSlot": false, + "src": "7229:1:41", + "valueSize": 1 + }, + { + "declaration": 17684, + "isOffset": false, + "isSlot": false, + "src": "5020:1:41", + "valueSize": 1 + } + ], + "id": 17815, + "nodeType": "InlineAssembly", + "src": "4940:4836:41" + } + ] + }, + "functionSelector": "c9219a7a", + "id": 17817, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyProof", + "nameLocation": "4792:11:41", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17796, + "mutability": "mutable", + "name": "_pA", + "nameLocation": "4821:3:41", + "nodeType": "VariableDeclaration", + "scope": 17817, + "src": "4804:20:41", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 17793, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4804:4:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17795, + "length": { + "hexValue": "32", + "id": 17794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4809:1:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4804:7:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17802, + "mutability": "mutable", + "name": "_pB", + "nameLocation": "4846:3:41", + "nodeType": "VariableDeclaration", + "scope": 17817, + "src": "4826:23:41", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptr", + "typeString": "uint256[2][2]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 17797, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4826:4:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17799, + "length": { + "hexValue": "32", + "id": 17798, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4831:1:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4826:7:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "id": 17801, + "length": { + "hexValue": "32", + "id": 17800, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4834:1:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4826:10:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17806, + "mutability": "mutable", + "name": "_pC", + "nameLocation": "4868:3:41", + "nodeType": "VariableDeclaration", + "scope": 17817, + "src": "4851:20:41", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 17803, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4851:4:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17805, + "length": { + "hexValue": "32", + "id": 17804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4856:1:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4851:7:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17810, + "mutability": "mutable", + "name": "_pubSignals", + "nameLocation": "4890:11:41", + "nodeType": "VariableDeclaration", + "scope": 17817, + "src": "4873:28:41", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8]" + }, + "typeName": { + "baseType": { + "id": 17807, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4873:4:41", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17809, + "length": { + "hexValue": "38", + "id": 17808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4878:1:41", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "nodeType": "ArrayTypeName", + "src": "4873:7:41", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", + "typeString": "uint256[8]" + } + }, + "visibility": "internal" + } + ], + "src": "4803:99:41" + }, + "returnParameters": { + "id": 17814, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17813, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 17817, + "src": "4924:4:41", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 17812, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4924:4:41", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4923:6:41" + }, + "scope": 17818, + "src": "4783:5000:41", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 17819, + "src": "831:8955:41", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "798:8989:41" + }, + "id": 41 + }, + "contracts/verifiers/idcard/Verifier_idcard_sha256.sol": { + "ast": { + "absolutePath": "contracts/verifiers/idcard/Verifier_idcard_sha256.sol", + "exportedSymbols": { + "Verifier_idcard_sha256": [ + 17957 + ] + }, + "id": 17958, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17820, + "literals": [ + "solidity", + ">=", + "0.7", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "798:31:42" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Verifier_idcard_sha256", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 17957, + "linearizedBaseContracts": [ + 17957 + ], + "name": "Verifier_idcard_sha256", + "nameLocation": "840:22:42", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 17823, + "mutability": "constant", + "name": "r", + "nameLocation": "911:1:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "894:101:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17821, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "894:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137", + "id": 17822, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "918:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1", + "typeString": "int_const 2188...(69 digits omitted)...5617" + }, + "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17826, + "mutability": "constant", + "name": "q", + "nameLocation": "1041:1:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "1024:100:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17824, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1024:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833", + "id": 17825, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1047:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1", + "typeString": "int_const 2188...(69 digits omitted)...8583" + }, + "value": "21888242871839275222246405745257275088696311157297823662689037894645226208583" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17829, + "mutability": "constant", + "name": "alphax", + "nameLocation": "1177:6:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "1160:104:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17827, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1160:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3230343931313932383035333930343835323939313533303039373733353934353334393430313839323631383636323238343437393138303638363538343731393730343831373633303432", + "id": 17828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1187:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_20491192805390485299153009773594534940189261866228447918068658471970481763042_by_1", + "typeString": "int_const 2049...(69 digits omitted)...3042" + }, + "value": "20491192805390485299153009773594534940189261866228447918068658471970481763042" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17832, + "mutability": "constant", + "name": "alphay", + "nameLocation": "1287:6:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "1270:103:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1270:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "39333833343835333633303533323930323030393138333437313536313537383336353636353632393637393934303339373132323733343439393032363231323636313738353435393538", + "id": 17831, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1297:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_9383485363053290200918347156157836566562967994039712273449902621266178545958_by_1", + "typeString": "int_const 9383...(68 digits omitted)...5958" + }, + "value": "9383485363053290200918347156157836566562967994039712273449902621266178545958" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17835, + "mutability": "constant", + "name": "betax1", + "nameLocation": "1396:6:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "1379:103:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17833, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1379:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34323532383232383738373538333030383539313233383937393831343530353931333533353333303733343133313937373731373638363531343432363635373532323539333937313332", + "id": 17834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1406:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_4252822878758300859123897981450591353533073413197771768651442665752259397132_by_1", + "typeString": "int_const 4252...(68 digits omitted)...7132" + }, + "value": "4252822878758300859123897981450591353533073413197771768651442665752259397132" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17838, + "mutability": "constant", + "name": "betax2", + "nameLocation": "1505:6:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "1488:103:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1488:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "36333735363134333531363838373235323036343033393438323632383638393632373933363235373434303433373934333035373135323232303131353238343539363536373338373331", + "id": 17837, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1515:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_6375614351688725206403948262868962793625744043794305715222011528459656738731_by_1", + "typeString": "int_const 6375...(68 digits omitted)...8731" + }, + "value": "6375614351688725206403948262868962793625744043794305715222011528459656738731" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17841, + "mutability": "constant", + "name": "betay1", + "nameLocation": "1614:6:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "1597:104:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1597:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383437303335313035353238373435343033323838323332363931313437353834373238313931313632373332323939383635333338333737313539363932333530303539313336363739", + "id": 17840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1624:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_21847035105528745403288232691147584728191162732299865338377159692350059136679_by_1", + "typeString": "int_const 2184...(69 digits omitted)...6679" + }, + "value": "21847035105528745403288232691147584728191162732299865338377159692350059136679" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17844, + "mutability": "constant", + "name": "betay2", + "nameLocation": "1724:6:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "1707:104:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17842, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1707:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130353035323432363236333730323632323737353532393031303832303934333536363937343039383335363830323230353930393731383733313731313430333731333331323036383536", + "id": 17843, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1734:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_10505242626370262277552901082094356697409835680220590971873171140371331206856_by_1", + "typeString": "int_const 1050...(69 digits omitted)...6856" + }, + "value": "10505242626370262277552901082094356697409835680220590971873171140371331206856" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17847, + "mutability": "constant", + "name": "gammax1", + "nameLocation": "1834:7:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "1817:104:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1817:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334", + "id": 17846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1844:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1", + "typeString": "int_const 1155...(69 digits omitted)...5634" + }, + "value": "11559732032986387107991004021392285783925812861821192530917403151452391805634" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17850, + "mutability": "constant", + "name": "gammax2", + "nameLocation": "1944:7:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "1927:104:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17848, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1927:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831", + "id": 17849, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1954:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1", + "typeString": "int_const 1085...(69 digits omitted)...2781" + }, + "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17853, + "mutability": "constant", + "name": "gammay1", + "nameLocation": "2054:7:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "2037:103:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17851, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2037:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331", + "id": 17852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2064:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1", + "typeString": "int_const 4082...(68 digits omitted)...3531" + }, + "value": "4082367875863433681332203403145435568316851327593401208105741076214120093531" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17856, + "mutability": "constant", + "name": "gammay2", + "nameLocation": "2163:7:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "2146:103:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2146:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330", + "id": 17855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2173:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1", + "typeString": "int_const 8495...(68 digits omitted)...1930" + }, + "value": "8495653923123431417604973247489272438418190587263600148770280649306958101930" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17859, + "mutability": "constant", + "name": "deltax1", + "nameLocation": "2272:7:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "2255:103:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17857, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2255:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "37313038313732303932353733383832313035373134313530343230383139393033383734393239323733353433393831333336303737303936353438353735323333383336363938303531", + "id": 17858, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2282:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_7108172092573882105714150420819903874929273543981336077096548575233836698051_by_1", + "typeString": "int_const 7108...(68 digits omitted)...8051" + }, + "value": "7108172092573882105714150420819903874929273543981336077096548575233836698051" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17862, + "mutability": "constant", + "name": "deltax2", + "nameLocation": "2381:7:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "2364:103:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17860, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2364:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "39363935343339303638393535353033313736303030313632313839323039343533323630393730353232313739343237323236383236333932343835393530383834373332303333373239", + "id": 17861, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2391:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_9695439068955503176000162189209453260970522179427226826392485950884732033729_by_1", + "typeString": "int_const 9695...(68 digits omitted)...3729" + }, + "value": "9695439068955503176000162189209453260970522179427226826392485950884732033729" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17865, + "mutability": "constant", + "name": "deltay1", + "nameLocation": "2490:7:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "2473:104:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17863, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2473:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3136363234353833333235373731353034393033353335303534363337333337313434343736393936373235393839313133373131383336393237313132333435343431303133393139393330", + "id": 17864, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2500:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_16624583325771504903535054637337144476996725989113711836927112345441013919930_by_1", + "typeString": "int_const 1662...(69 digits omitted)...9930" + }, + "value": "16624583325771504903535054637337144476996725989113711836927112345441013919930" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17868, + "mutability": "constant", + "name": "deltay2", + "nameLocation": "2600:7:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "2583:104:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17866, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2583:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3139323736393635383434343536343833303830333030353130383537313630343932323533323235343134313532393730363438373335383933323531363635333539343238323336363330", + "id": 17867, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2610:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_19276965844456483080300510857160492253225414152970648735893251665359428236630_by_1", + "typeString": "int_const 1927...(69 digits omitted)...6630" + }, + "value": "19276965844456483080300510857160492253225414152970648735893251665359428236630" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17871, + "mutability": "constant", + "name": "IC0x", + "nameLocation": "2716:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "2699:100:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17869, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2699:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "35383037303733373834313532303235393836363639373138393732373235303637343931353038353239353439323630323131383237373931313833343037393438393135343336303533", + "id": 17870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2723:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_5807073784152025986669718972725067491508529549260211827791183407948915436053_by_1", + "typeString": "int_const 5807...(68 digits omitted)...6053" + }, + "value": "5807073784152025986669718972725067491508529549260211827791183407948915436053" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17874, + "mutability": "constant", + "name": "IC0y", + "nameLocation": "2822:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "2805:100:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17872, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2805:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "33313533393436383733393639343939333332383232333834383131303130343732313534373130353738393230343331363735373535383030343634383635393639373336363633303336", + "id": 17873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2829:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_3153946873969499332822384811010472154710578920431675755800464865969736663036_by_1", + "typeString": "int_const 3153...(68 digits omitted)...3036" + }, + "value": "3153946873969499332822384811010472154710578920431675755800464865969736663036" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17877, + "mutability": "constant", + "name": "IC1x", + "nameLocation": "2933:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "2916:100:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17875, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2916:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "35323833373231353837373938343838303233393135303935363431363338363034313536393936303431363630353039323531333638353632313330313039373536303539373939353939", + "id": 17876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2940:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_5283721587798488023915095641638604156996041660509251368562130109756059799599_by_1", + "typeString": "int_const 5283...(68 digits omitted)...9599" + }, + "value": "5283721587798488023915095641638604156996041660509251368562130109756059799599" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17880, + "mutability": "constant", + "name": "IC1y", + "nameLocation": "3039:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "3022:100:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17878, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3022:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "32323531343435393330323730363131313538393236313932333234313038313539373136383033383431323035323531303331373033393136363231303533383437343431303037333832", + "id": 17879, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3046:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_2251445930270611158926192324108159716803841205251031703916621053847441007382_by_1", + "typeString": "int_const 2251...(68 digits omitted)...7382" + }, + "value": "2251445930270611158926192324108159716803841205251031703916621053847441007382" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17883, + "mutability": "constant", + "name": "IC2x", + "nameLocation": "3150:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "3133:101:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17881, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3133:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231343037303532353632343438393838393532373338333538343236333832333930383333323936323534373632323539383237373738373936333739343738353535303038363932303030", + "id": 17882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3157:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_21407052562448988952738358426382390833296254762259827778796379478555008692000_by_1", + "typeString": "int_const 2140...(69 digits omitted)...2000" + }, + "value": "21407052562448988952738358426382390833296254762259827778796379478555008692000" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17886, + "mutability": "constant", + "name": "IC2y", + "nameLocation": "3257:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "3240:101:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3240:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3138353931373437373136333833353531303839393330373737393235393434353831333736373633303338383434373239383333363730313834353733303134393637303735363933393633", + "id": 17885, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3264:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_18591747716383551089930777925944581376763038844729833670184573014967075693963_by_1", + "typeString": "int_const 1859...(69 digits omitted)...3963" + }, + "value": "18591747716383551089930777925944581376763038844729833670184573014967075693963" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17889, + "mutability": "constant", + "name": "IC3x", + "nameLocation": "3369:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "3352:101:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17887, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3352:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3136303634313738333434343836383039323438363434323731363535393732313432323135343733303037353639323235323530393536323537343033343238393431373535393834323136", + "id": 17888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3376:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_16064178344486809248644271655972142215473007569225250956257403428941755984216_by_1", + "typeString": "int_const 1606...(69 digits omitted)...4216" + }, + "value": "16064178344486809248644271655972142215473007569225250956257403428941755984216" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17892, + "mutability": "constant", + "name": "IC3y", + "nameLocation": "3476:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "3459:101:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17890, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3459:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3136303632363735373031393331393139393930393137333535373036353033343832303434343737373735393230323336343237353236353033343132393239353239333939393138353632", + "id": 17891, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3483:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_16062675701931919990917355706503482044477775920236427526503412929529399918562_by_1", + "typeString": "int_const 1606...(69 digits omitted)...8562" + }, + "value": "16062675701931919990917355706503482044477775920236427526503412929529399918562" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17895, + "mutability": "constant", + "name": "IC4x", + "nameLocation": "3588:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "3571:100:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17893, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3571:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31353436323735343137383633333937323338353831323235353438333433353338373037303035333138333234333533373538343939323434313132383937323635383336323338323239", + "id": 17894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3595:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_1546275417863397238581225548343538707005318324353758499244112897265836238229_by_1", + "typeString": "int_const 1546...(68 digits omitted)...8229" + }, + "value": "1546275417863397238581225548343538707005318324353758499244112897265836238229" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17898, + "mutability": "constant", + "name": "IC4y", + "nameLocation": "3694:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "3677:101:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17896, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3677:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3133303633373534333233383631343832333736323836393935303335313933323833373438393530323135393532363432353637313537383031303032323734373931343935393138373836", + "id": 17897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3701:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_13063754323861482376286995035193283748950215952642567157801002274791495918786_by_1", + "typeString": "int_const 1306...(69 digits omitted)...8786" + }, + "value": "13063754323861482376286995035193283748950215952642567157801002274791495918786" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17901, + "mutability": "constant", + "name": "IC5x", + "nameLocation": "3806:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "3789:100:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17899, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3789:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31313431303739333133303231353635313139343932383333393331373930353935353738313833363333323939363936303335383631363531323736353234323735313131313233373833", + "id": 17900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3813:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_1141079313021565119492833931790595578183633299696035861651276524275111123783_by_1", + "typeString": "int_const 1141...(68 digits omitted)...3783" + }, + "value": "1141079313021565119492833931790595578183633299696035861651276524275111123783" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17904, + "mutability": "constant", + "name": "IC5y", + "nameLocation": "3912:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "3895:100:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17902, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3895:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "37313636303834333130313533393330343830393237363338373231313732353438353233363630373530393731323034353434303738343530363238333433323131393139323432393235", + "id": 17903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3919:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_7166084310153930480927638721172548523660750971204544078450628343211919242925_by_1", + "typeString": "int_const 7166...(68 digits omitted)...2925" + }, + "value": "7166084310153930480927638721172548523660750971204544078450628343211919242925" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17907, + "mutability": "constant", + "name": "IC6x", + "nameLocation": "4023:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "4006:100:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17905, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4006:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31393731313739353239393038383839343536313231363337333835383635383731303830323934393136313936383835323538343839393038313436343139373831363539323832313630", + "id": 17906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4030:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_1971179529908889456121637385865871080294916196885258489908146419781659282160_by_1", + "typeString": "int_const 1971...(68 digits omitted)...2160" + }, + "value": "1971179529908889456121637385865871080294916196885258489908146419781659282160" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17910, + "mutability": "constant", + "name": "IC6y", + "nameLocation": "4129:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "4112:98:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17908, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4112:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3530353739353734343338313431333735313836333938303939303238333932363739323035393134353331353436353139343830383735363231393137323937393633383536343431", + "id": 17909, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4136:74:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_50579574438141375186398099028392679205914531546519480875621917297963856441_by_1", + "typeString": "int_const 5057...(66 digits omitted)...6441" + }, + "value": "50579574438141375186398099028392679205914531546519480875621917297963856441" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17913, + "mutability": "constant", + "name": "IC7x", + "nameLocation": "4238:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "4221:100:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4221:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "39313030313939373535343539373135373133353139333933333137303433323830303235363135323837383839373434313830323735343631323836303034333332373738303133303336", + "id": 17912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4245:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_9100199755459715713519393317043280025615287889744180275461286004332778013036_by_1", + "typeString": "int_const 9100...(68 digits omitted)...3036" + }, + "value": "9100199755459715713519393317043280025615287889744180275461286004332778013036" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17916, + "mutability": "constant", + "name": "IC7y", + "nameLocation": "4344:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "4327:100:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17914, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4327:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "37303631313635313037323538373936343331373636363036353436333638313433343138363836313030313233323037333835393931323634323132343834313934373533353638373431", + "id": 17915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4351:76:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_7061165107258796431766606546368143418686100123207385991264212484194753568741_by_1", + "typeString": "int_const 7061...(68 digits omitted)...8741" + }, + "value": "7061165107258796431766606546368143418686100123207385991264212484194753568741" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17919, + "mutability": "constant", + "name": "IC8x", + "nameLocation": "4455:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "4438:101:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17917, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4438:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3137333634393732363431383938313632353939343333363934303038353338363233343435323133333336303030383030383930353632323334363234373333323834323436343933373830", + "id": 17918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4462:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_17364972641898162599433694008538623445213336000800890562234624733284246493780_by_1", + "typeString": "int_const 1736...(69 digits omitted)...3780" + }, + "value": "17364972641898162599433694008538623445213336000800890562234624733284246493780" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17922, + "mutability": "constant", + "name": "IC8y", + "nameLocation": "4562:4:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "4545:101:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17920, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4545:7:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3132373436383439353939393834353932323334393735343730373536353933373736373436353533353133353032383537343931343531313838393630333630363735333038383136323137", + "id": 17921, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4569:77:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_12746849599984592234975470756593776746553513502857491451188960360675308816217_by_1", + "typeString": "int_const 1274...(69 digits omitted)...6217" + }, + "value": "12746849599984592234975470756593776746553513502857491451188960360675308816217" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17925, + "mutability": "constant", + "name": "pVk", + "nameLocation": "4694:3:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "4678:23:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 17923, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4678:6:42", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "30", + "id": 17924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4700:1:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17928, + "mutability": "constant", + "name": "pPairing", + "nameLocation": "4723:8:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "4707:30:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 17926, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4707:6:42", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "313238", + "id": 17927, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4734:3:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17931, + "mutability": "constant", + "name": "pLastMem", + "nameLocation": "4760:8:42", + "nodeType": "VariableDeclaration", + "scope": 17957, + "src": "4744:30:42", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 17929, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4744:6:42", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "383936", + "id": 17930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4771:3:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_896_by_1", + "typeString": "int_const 896" + }, + "value": "896" + }, + "visibility": "internal" + }, + { + "body": { + "id": 17955, + "nodeType": "Block", + "src": "4928:4853:42", + "statements": [ + { + "AST": { + "nativeSrc": "4947:4827:42", + "nodeType": "YulBlock", + "src": "4947:4827:42", + "statements": [ + { + "body": { + "nativeSrc": "4984:140:42", + "nodeType": "YulBlock", + "src": "4984:140:42", + "statements": [ + { + "body": { + "nativeSrc": "5022:88:42", + "nodeType": "YulBlock", + "src": "5022:88:42", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5051:1:42", + "nodeType": "YulLiteral", + "src": "5051:1:42", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5054:1:42", + "nodeType": "YulLiteral", + "src": "5054:1:42", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5044:6:42", + "nodeType": "YulIdentifier", + "src": "5044:6:42" + }, + "nativeSrc": "5044:12:42", + "nodeType": "YulFunctionCall", + "src": "5044:12:42" + }, + "nativeSrc": "5044:12:42", + "nodeType": "YulExpressionStatement", + "src": "5044:12:42" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5084:1:42", + "nodeType": "YulLiteral", + "src": "5084:1:42", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5087:4:42", + "nodeType": "YulLiteral", + "src": "5087:4:42", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "5077:6:42", + "nodeType": "YulIdentifier", + "src": "5077:6:42" + }, + "nativeSrc": "5077:15:42", + "nodeType": "YulFunctionCall", + "src": "5077:15:42" + }, + "nativeSrc": "5077:15:42", + "nodeType": "YulExpressionStatement", + "src": "5077:15:42" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "v", + "nativeSrc": "5015:1:42", + "nodeType": "YulIdentifier", + "src": "5015:1:42" + }, + { + "name": "r", + "nativeSrc": "5018:1:42", + "nodeType": "YulIdentifier", + "src": "5018:1:42" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5012:2:42", + "nodeType": "YulIdentifier", + "src": "5012:2:42" + }, + "nativeSrc": "5012:8:42", + "nodeType": "YulFunctionCall", + "src": "5012:8:42" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5005:6:42", + "nodeType": "YulIdentifier", + "src": "5005:6:42" + }, + "nativeSrc": "5005:16:42", + "nodeType": "YulFunctionCall", + "src": "5005:16:42" + }, + "nativeSrc": "5002:108:42", + "nodeType": "YulIf", + "src": "5002:108:42" + } + ] + }, + "name": "checkField", + "nativeSrc": "4961:163:42", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "v", + "nativeSrc": "4981:1:42", + "nodeType": "YulTypedName", + "src": "4981:1:42", + "type": "" + } + ], + "src": "4961:163:42" + }, + { + "body": { + "nativeSrc": "5261:705:42", + "nodeType": "YulBlock", + "src": "5261:705:42", + "statements": [ + { + "nativeSrc": "5279:11:42", + "nodeType": "YulVariableDeclaration", + "src": "5279:11:42", + "variables": [ + { + "name": "success", + "nativeSrc": "5283:7:42", + "nodeType": "YulTypedName", + "src": "5283:7:42", + "type": "" + } + ] + }, + { + "nativeSrc": "5307:22:42", + "nodeType": "YulVariableDeclaration", + "src": "5307:22:42", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5324:4:42", + "nodeType": "YulLiteral", + "src": "5324:4:42", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5318:5:42", + "nodeType": "YulIdentifier", + "src": "5318:5:42" + }, + "nativeSrc": "5318:11:42", + "nodeType": "YulFunctionCall", + "src": "5318:11:42" + }, + "variables": [ + { + "name": "mIn", + "nativeSrc": "5311:3:42", + "nodeType": "YulTypedName", + "src": "5311:3:42", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5353:3:42", + "nodeType": "YulIdentifier", + "src": "5353:3:42" + }, + { + "name": "x", + "nativeSrc": "5358:1:42", + "nodeType": "YulIdentifier", + "src": "5358:1:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5346:6:42", + "nodeType": "YulIdentifier", + "src": "5346:6:42" + }, + "nativeSrc": "5346:14:42", + "nodeType": "YulFunctionCall", + "src": "5346:14:42" + }, + "nativeSrc": "5346:14:42", + "nodeType": "YulExpressionStatement", + "src": "5346:14:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5388:3:42", + "nodeType": "YulIdentifier", + "src": "5388:3:42" + }, + { + "kind": "number", + "nativeSrc": "5393:2:42", + "nodeType": "YulLiteral", + "src": "5393:2:42", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5384:3:42", + "nodeType": "YulIdentifier", + "src": "5384:3:42" + }, + "nativeSrc": "5384:12:42", + "nodeType": "YulFunctionCall", + "src": "5384:12:42" + }, + { + "name": "y", + "nativeSrc": "5398:1:42", + "nodeType": "YulIdentifier", + "src": "5398:1:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5377:6:42", + "nodeType": "YulIdentifier", + "src": "5377:6:42" + }, + "nativeSrc": "5377:23:42", + "nodeType": "YulFunctionCall", + "src": "5377:23:42" + }, + "nativeSrc": "5377:23:42", + "nodeType": "YulExpressionStatement", + "src": "5377:23:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5428:3:42", + "nodeType": "YulIdentifier", + "src": "5428:3:42" + }, + { + "kind": "number", + "nativeSrc": "5433:2:42", + "nodeType": "YulLiteral", + "src": "5433:2:42", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5424:3:42", + "nodeType": "YulIdentifier", + "src": "5424:3:42" + }, + "nativeSrc": "5424:12:42", + "nodeType": "YulFunctionCall", + "src": "5424:12:42" + }, + { + "name": "s", + "nativeSrc": "5438:1:42", + "nodeType": "YulIdentifier", + "src": "5438:1:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5417:6:42", + "nodeType": "YulIdentifier", + "src": "5417:6:42" + }, + "nativeSrc": "5417:23:42", + "nodeType": "YulFunctionCall", + "src": "5417:23:42" + }, + "nativeSrc": "5417:23:42", + "nodeType": "YulExpressionStatement", + "src": "5417:23:42" + }, + { + "nativeSrc": "5458:60:42", + "nodeType": "YulAssignment", + "src": "5458:60:42", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "5484:3:42", + "nodeType": "YulIdentifier", + "src": "5484:3:42" + }, + "nativeSrc": "5484:5:42", + "nodeType": "YulFunctionCall", + "src": "5484:5:42" + }, + { + "kind": "number", + "nativeSrc": "5491:4:42", + "nodeType": "YulLiteral", + "src": "5491:4:42", + "type": "", + "value": "2000" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5480:3:42", + "nodeType": "YulIdentifier", + "src": "5480:3:42" + }, + "nativeSrc": "5480:16:42", + "nodeType": "YulFunctionCall", + "src": "5480:16:42" + }, + { + "kind": "number", + "nativeSrc": "5498:1:42", + "nodeType": "YulLiteral", + "src": "5498:1:42", + "type": "", + "value": "7" + }, + { + "name": "mIn", + "nativeSrc": "5501:3:42", + "nodeType": "YulIdentifier", + "src": "5501:3:42" + }, + { + "kind": "number", + "nativeSrc": "5506:2:42", + "nodeType": "YulLiteral", + "src": "5506:2:42", + "type": "", + "value": "96" + }, + { + "name": "mIn", + "nativeSrc": "5510:3:42", + "nodeType": "YulIdentifier", + "src": "5510:3:42" + }, + { + "kind": "number", + "nativeSrc": "5515:2:42", + "nodeType": "YulLiteral", + "src": "5515:2:42", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "5469:10:42", + "nodeType": "YulIdentifier", + "src": "5469:10:42" + }, + "nativeSrc": "5469:49:42", + "nodeType": "YulFunctionCall", + "src": "5469:49:42" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "5458:7:42", + "nodeType": "YulIdentifier", + "src": "5458:7:42" + } + ] + }, + { + "body": { + "nativeSrc": "5555:88:42", + "nodeType": "YulBlock", + "src": "5555:88:42", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5584:1:42", + "nodeType": "YulLiteral", + "src": "5584:1:42", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5587:1:42", + "nodeType": "YulLiteral", + "src": "5587:1:42", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5577:6:42", + "nodeType": "YulIdentifier", + "src": "5577:6:42" + }, + "nativeSrc": "5577:12:42", + "nodeType": "YulFunctionCall", + "src": "5577:12:42" + }, + "nativeSrc": "5577:12:42", + "nodeType": "YulExpressionStatement", + "src": "5577:12:42" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5617:1:42", + "nodeType": "YulLiteral", + "src": "5617:1:42", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5620:4:42", + "nodeType": "YulLiteral", + "src": "5620:4:42", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "5610:6:42", + "nodeType": "YulIdentifier", + "src": "5610:6:42" + }, + "nativeSrc": "5610:15:42", + "nodeType": "YulFunctionCall", + "src": "5610:15:42" + }, + "nativeSrc": "5610:15:42", + "nodeType": "YulExpressionStatement", + "src": "5610:15:42" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "success", + "nativeSrc": "5546:7:42", + "nodeType": "YulIdentifier", + "src": "5546:7:42" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5539:6:42", + "nodeType": "YulIdentifier", + "src": "5539:6:42" + }, + "nativeSrc": "5539:15:42", + "nodeType": "YulFunctionCall", + "src": "5539:15:42" + }, + "nativeSrc": "5536:107:42", + "nodeType": "YulIf", + "src": "5536:107:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5672:3:42", + "nodeType": "YulIdentifier", + "src": "5672:3:42" + }, + { + "kind": "number", + "nativeSrc": "5677:2:42", + "nodeType": "YulLiteral", + "src": "5677:2:42", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5668:3:42", + "nodeType": "YulIdentifier", + "src": "5668:3:42" + }, + "nativeSrc": "5668:12:42", + "nodeType": "YulFunctionCall", + "src": "5668:12:42" + }, + { + "arguments": [ + { + "name": "pR", + "nativeSrc": "5688:2:42", + "nodeType": "YulIdentifier", + "src": "5688:2:42" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5682:5:42", + "nodeType": "YulIdentifier", + "src": "5682:5:42" + }, + "nativeSrc": "5682:9:42", + "nodeType": "YulFunctionCall", + "src": "5682:9:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5661:6:42", + "nodeType": "YulIdentifier", + "src": "5661:6:42" + }, + "nativeSrc": "5661:31:42", + "nodeType": "YulFunctionCall", + "src": "5661:31:42" + }, + "nativeSrc": "5661:31:42", + "nodeType": "YulExpressionStatement", + "src": "5661:31:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5720:3:42", + "nodeType": "YulIdentifier", + "src": "5720:3:42" + }, + { + "kind": "number", + "nativeSrc": "5725:2:42", + "nodeType": "YulLiteral", + "src": "5725:2:42", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5716:3:42", + "nodeType": "YulIdentifier", + "src": "5716:3:42" + }, + "nativeSrc": "5716:12:42", + "nodeType": "YulFunctionCall", + "src": "5716:12:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pR", + "nativeSrc": "5740:2:42", + "nodeType": "YulIdentifier", + "src": "5740:2:42" + }, + { + "kind": "number", + "nativeSrc": "5744:2:42", + "nodeType": "YulLiteral", + "src": "5744:2:42", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5736:3:42", + "nodeType": "YulIdentifier", + "src": "5736:3:42" + }, + "nativeSrc": "5736:11:42", + "nodeType": "YulFunctionCall", + "src": "5736:11:42" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5730:5:42", + "nodeType": "YulIdentifier", + "src": "5730:5:42" + }, + "nativeSrc": "5730:18:42", + "nodeType": "YulFunctionCall", + "src": "5730:18:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5709:6:42", + "nodeType": "YulIdentifier", + "src": "5709:6:42" + }, + "nativeSrc": "5709:40:42", + "nodeType": "YulFunctionCall", + "src": "5709:40:42" + }, + "nativeSrc": "5709:40:42", + "nodeType": "YulExpressionStatement", + "src": "5709:40:42" + }, + { + "nativeSrc": "5767:60:42", + "nodeType": "YulAssignment", + "src": "5767:60:42", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "5793:3:42", + "nodeType": "YulIdentifier", + "src": "5793:3:42" + }, + "nativeSrc": "5793:5:42", + "nodeType": "YulFunctionCall", + "src": "5793:5:42" + }, + { + "kind": "number", + "nativeSrc": "5800:4:42", + "nodeType": "YulLiteral", + "src": "5800:4:42", + "type": "", + "value": "2000" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5789:3:42", + "nodeType": "YulIdentifier", + "src": "5789:3:42" + }, + "nativeSrc": "5789:16:42", + "nodeType": "YulFunctionCall", + "src": "5789:16:42" + }, + { + "kind": "number", + "nativeSrc": "5807:1:42", + "nodeType": "YulLiteral", + "src": "5807:1:42", + "type": "", + "value": "6" + }, + { + "name": "mIn", + "nativeSrc": "5810:3:42", + "nodeType": "YulIdentifier", + "src": "5810:3:42" + }, + { + "kind": "number", + "nativeSrc": "5815:3:42", + "nodeType": "YulLiteral", + "src": "5815:3:42", + "type": "", + "value": "128" + }, + { + "name": "pR", + "nativeSrc": "5820:2:42", + "nodeType": "YulIdentifier", + "src": "5820:2:42" + }, + { + "kind": "number", + "nativeSrc": "5824:2:42", + "nodeType": "YulLiteral", + "src": "5824:2:42", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "5778:10:42", + "nodeType": "YulIdentifier", + "src": "5778:10:42" + }, + "nativeSrc": "5778:49:42", + "nodeType": "YulFunctionCall", + "src": "5778:49:42" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "5767:7:42", + "nodeType": "YulIdentifier", + "src": "5767:7:42" + } + ] + }, + { + "body": { + "nativeSrc": "5864:88:42", + "nodeType": "YulBlock", + "src": "5864:88:42", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5893:1:42", + "nodeType": "YulLiteral", + "src": "5893:1:42", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5896:1:42", + "nodeType": "YulLiteral", + "src": "5896:1:42", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5886:6:42", + "nodeType": "YulIdentifier", + "src": "5886:6:42" + }, + "nativeSrc": "5886:12:42", + "nodeType": "YulFunctionCall", + "src": "5886:12:42" + }, + "nativeSrc": "5886:12:42", + "nodeType": "YulExpressionStatement", + "src": "5886:12:42" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5926:1:42", + "nodeType": "YulLiteral", + "src": "5926:1:42", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5929:4:42", + "nodeType": "YulLiteral", + "src": "5929:4:42", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "5919:6:42", + "nodeType": "YulIdentifier", + "src": "5919:6:42" + }, + "nativeSrc": "5919:15:42", + "nodeType": "YulFunctionCall", + "src": "5919:15:42" + }, + "nativeSrc": "5919:15:42", + "nodeType": "YulExpressionStatement", + "src": "5919:15:42" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "success", + "nativeSrc": "5855:7:42", + "nodeType": "YulIdentifier", + "src": "5855:7:42" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5848:6:42", + "nodeType": "YulIdentifier", + "src": "5848:6:42" + }, + "nativeSrc": "5848:15:42", + "nodeType": "YulFunctionCall", + "src": "5848:15:42" + }, + "nativeSrc": "5845:107:42", + "nodeType": "YulIf", + "src": "5845:107:42" + } + ] + }, + "name": "g1_mulAccC", + "nativeSrc": "5228:738:42", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pR", + "nativeSrc": "5248:2:42", + "nodeType": "YulTypedName", + "src": "5248:2:42", + "type": "" + }, + { + "name": "x", + "nativeSrc": "5252:1:42", + "nodeType": "YulTypedName", + "src": "5252:1:42", + "type": "" + }, + { + "name": "y", + "nativeSrc": "5255:1:42", + "nodeType": "YulTypedName", + "src": "5255:1:42", + "type": "" + }, + { + "name": "s", + "nativeSrc": "5258:1:42", + "nodeType": "YulTypedName", + "src": "5258:1:42", + "type": "" + } + ], + "src": "5228:738:42" + }, + { + "body": { + "nativeSrc": "6040:2820:42", + "nodeType": "YulBlock", + "src": "6040:2820:42", + "statements": [ + { + "nativeSrc": "6058:36:42", + "nodeType": "YulVariableDeclaration", + "src": "6058:36:42", + "value": { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "6079:4:42", + "nodeType": "YulIdentifier", + "src": "6079:4:42" + }, + { + "name": "pPairing", + "nativeSrc": "6085:8:42", + "nodeType": "YulIdentifier", + "src": "6085:8:42" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6075:3:42", + "nodeType": "YulIdentifier", + "src": "6075:3:42" + }, + "nativeSrc": "6075:19:42", + "nodeType": "YulFunctionCall", + "src": "6075:19:42" + }, + "variables": [ + { + "name": "_pPairing", + "nativeSrc": "6062:9:42", + "nodeType": "YulTypedName", + "src": "6062:9:42", + "type": "" + } + ] + }, + { + "nativeSrc": "6111:26:42", + "nodeType": "YulVariableDeclaration", + "src": "6111:26:42", + "value": { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "6127:4:42", + "nodeType": "YulIdentifier", + "src": "6127:4:42" + }, + { + "name": "pVk", + "nativeSrc": "6133:3:42", + "nodeType": "YulIdentifier", + "src": "6133:3:42" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6123:3:42", + "nodeType": "YulIdentifier", + "src": "6123:3:42" + }, + "nativeSrc": "6123:14:42", + "nodeType": "YulFunctionCall", + "src": "6123:14:42" + }, + "variables": [ + { + "name": "_pVk", + "nativeSrc": "6115:4:42", + "nodeType": "YulTypedName", + "src": "6115:4:42", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6162:4:42", + "nodeType": "YulIdentifier", + "src": "6162:4:42" + }, + { + "name": "IC0x", + "nativeSrc": "6168:4:42", + "nodeType": "YulIdentifier", + "src": "6168:4:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6155:6:42", + "nodeType": "YulIdentifier", + "src": "6155:6:42" + }, + "nativeSrc": "6155:18:42", + "nodeType": "YulFunctionCall", + "src": "6155:18:42" + }, + "nativeSrc": "6155:18:42", + "nodeType": "YulExpressionStatement", + "src": "6155:18:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6201:4:42", + "nodeType": "YulIdentifier", + "src": "6201:4:42" + }, + { + "kind": "number", + "nativeSrc": "6207:2:42", + "nodeType": "YulLiteral", + "src": "6207:2:42", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6197:3:42", + "nodeType": "YulIdentifier", + "src": "6197:3:42" + }, + "nativeSrc": "6197:13:42", + "nodeType": "YulFunctionCall", + "src": "6197:13:42" + }, + { + "name": "IC0y", + "nativeSrc": "6212:4:42", + "nodeType": "YulIdentifier", + "src": "6212:4:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6190:6:42", + "nodeType": "YulIdentifier", + "src": "6190:6:42" + }, + "nativeSrc": "6190:27:42", + "nodeType": "YulFunctionCall", + "src": "6190:27:42" + }, + "nativeSrc": "6190:27:42", + "nodeType": "YulExpressionStatement", + "src": "6190:27:42" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6318:4:42", + "nodeType": "YulIdentifier", + "src": "6318:4:42" + }, + { + "name": "IC1x", + "nativeSrc": "6324:4:42", + "nodeType": "YulIdentifier", + "src": "6324:4:42" + }, + { + "name": "IC1y", + "nativeSrc": "6330:4:42", + "nodeType": "YulIdentifier", + "src": "6330:4:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6353:10:42", + "nodeType": "YulIdentifier", + "src": "6353:10:42" + }, + { + "kind": "number", + "nativeSrc": "6365:1:42", + "nodeType": "YulLiteral", + "src": "6365:1:42", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6349:3:42", + "nodeType": "YulIdentifier", + "src": "6349:3:42" + }, + "nativeSrc": "6349:18:42", + "nodeType": "YulFunctionCall", + "src": "6349:18:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6336:12:42", + "nodeType": "YulIdentifier", + "src": "6336:12:42" + }, + "nativeSrc": "6336:32:42", + "nodeType": "YulFunctionCall", + "src": "6336:32:42" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6307:10:42", + "nodeType": "YulIdentifier", + "src": "6307:10:42" + }, + "nativeSrc": "6307:62:42", + "nodeType": "YulFunctionCall", + "src": "6307:62:42" + }, + "nativeSrc": "6307:62:42", + "nodeType": "YulExpressionStatement", + "src": "6307:62:42" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6414:4:42", + "nodeType": "YulIdentifier", + "src": "6414:4:42" + }, + { + "name": "IC2x", + "nativeSrc": "6420:4:42", + "nodeType": "YulIdentifier", + "src": "6420:4:42" + }, + { + "name": "IC2y", + "nativeSrc": "6426:4:42", + "nodeType": "YulIdentifier", + "src": "6426:4:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6449:10:42", + "nodeType": "YulIdentifier", + "src": "6449:10:42" + }, + { + "kind": "number", + "nativeSrc": "6461:2:42", + "nodeType": "YulLiteral", + "src": "6461:2:42", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6445:3:42", + "nodeType": "YulIdentifier", + "src": "6445:3:42" + }, + "nativeSrc": "6445:19:42", + "nodeType": "YulFunctionCall", + "src": "6445:19:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6432:12:42", + "nodeType": "YulIdentifier", + "src": "6432:12:42" + }, + "nativeSrc": "6432:33:42", + "nodeType": "YulFunctionCall", + "src": "6432:33:42" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6403:10:42", + "nodeType": "YulIdentifier", + "src": "6403:10:42" + }, + "nativeSrc": "6403:63:42", + "nodeType": "YulFunctionCall", + "src": "6403:63:42" + }, + "nativeSrc": "6403:63:42", + "nodeType": "YulExpressionStatement", + "src": "6403:63:42" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6511:4:42", + "nodeType": "YulIdentifier", + "src": "6511:4:42" + }, + { + "name": "IC3x", + "nativeSrc": "6517:4:42", + "nodeType": "YulIdentifier", + "src": "6517:4:42" + }, + { + "name": "IC3y", + "nativeSrc": "6523:4:42", + "nodeType": "YulIdentifier", + "src": "6523:4:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6546:10:42", + "nodeType": "YulIdentifier", + "src": "6546:10:42" + }, + { + "kind": "number", + "nativeSrc": "6558:2:42", + "nodeType": "YulLiteral", + "src": "6558:2:42", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6542:3:42", + "nodeType": "YulIdentifier", + "src": "6542:3:42" + }, + "nativeSrc": "6542:19:42", + "nodeType": "YulFunctionCall", + "src": "6542:19:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6529:12:42", + "nodeType": "YulIdentifier", + "src": "6529:12:42" + }, + "nativeSrc": "6529:33:42", + "nodeType": "YulFunctionCall", + "src": "6529:33:42" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6500:10:42", + "nodeType": "YulIdentifier", + "src": "6500:10:42" + }, + "nativeSrc": "6500:63:42", + "nodeType": "YulFunctionCall", + "src": "6500:63:42" + }, + "nativeSrc": "6500:63:42", + "nodeType": "YulExpressionStatement", + "src": "6500:63:42" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6608:4:42", + "nodeType": "YulIdentifier", + "src": "6608:4:42" + }, + { + "name": "IC4x", + "nativeSrc": "6614:4:42", + "nodeType": "YulIdentifier", + "src": "6614:4:42" + }, + { + "name": "IC4y", + "nativeSrc": "6620:4:42", + "nodeType": "YulIdentifier", + "src": "6620:4:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6643:10:42", + "nodeType": "YulIdentifier", + "src": "6643:10:42" + }, + { + "kind": "number", + "nativeSrc": "6655:2:42", + "nodeType": "YulLiteral", + "src": "6655:2:42", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6639:3:42", + "nodeType": "YulIdentifier", + "src": "6639:3:42" + }, + "nativeSrc": "6639:19:42", + "nodeType": "YulFunctionCall", + "src": "6639:19:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6626:12:42", + "nodeType": "YulIdentifier", + "src": "6626:12:42" + }, + "nativeSrc": "6626:33:42", + "nodeType": "YulFunctionCall", + "src": "6626:33:42" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6597:10:42", + "nodeType": "YulIdentifier", + "src": "6597:10:42" + }, + "nativeSrc": "6597:63:42", + "nodeType": "YulFunctionCall", + "src": "6597:63:42" + }, + "nativeSrc": "6597:63:42", + "nodeType": "YulExpressionStatement", + "src": "6597:63:42" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6705:4:42", + "nodeType": "YulIdentifier", + "src": "6705:4:42" + }, + { + "name": "IC5x", + "nativeSrc": "6711:4:42", + "nodeType": "YulIdentifier", + "src": "6711:4:42" + }, + { + "name": "IC5y", + "nativeSrc": "6717:4:42", + "nodeType": "YulIdentifier", + "src": "6717:4:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6740:10:42", + "nodeType": "YulIdentifier", + "src": "6740:10:42" + }, + { + "kind": "number", + "nativeSrc": "6752:3:42", + "nodeType": "YulLiteral", + "src": "6752:3:42", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6736:3:42", + "nodeType": "YulIdentifier", + "src": "6736:3:42" + }, + "nativeSrc": "6736:20:42", + "nodeType": "YulFunctionCall", + "src": "6736:20:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6723:12:42", + "nodeType": "YulIdentifier", + "src": "6723:12:42" + }, + "nativeSrc": "6723:34:42", + "nodeType": "YulFunctionCall", + "src": "6723:34:42" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6694:10:42", + "nodeType": "YulIdentifier", + "src": "6694:10:42" + }, + "nativeSrc": "6694:64:42", + "nodeType": "YulFunctionCall", + "src": "6694:64:42" + }, + "nativeSrc": "6694:64:42", + "nodeType": "YulExpressionStatement", + "src": "6694:64:42" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6803:4:42", + "nodeType": "YulIdentifier", + "src": "6803:4:42" + }, + { + "name": "IC6x", + "nativeSrc": "6809:4:42", + "nodeType": "YulIdentifier", + "src": "6809:4:42" + }, + { + "name": "IC6y", + "nativeSrc": "6815:4:42", + "nodeType": "YulIdentifier", + "src": "6815:4:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6838:10:42", + "nodeType": "YulIdentifier", + "src": "6838:10:42" + }, + { + "kind": "number", + "nativeSrc": "6850:3:42", + "nodeType": "YulLiteral", + "src": "6850:3:42", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6834:3:42", + "nodeType": "YulIdentifier", + "src": "6834:3:42" + }, + "nativeSrc": "6834:20:42", + "nodeType": "YulFunctionCall", + "src": "6834:20:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6821:12:42", + "nodeType": "YulIdentifier", + "src": "6821:12:42" + }, + "nativeSrc": "6821:34:42", + "nodeType": "YulFunctionCall", + "src": "6821:34:42" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6792:10:42", + "nodeType": "YulIdentifier", + "src": "6792:10:42" + }, + "nativeSrc": "6792:64:42", + "nodeType": "YulFunctionCall", + "src": "6792:64:42" + }, + "nativeSrc": "6792:64:42", + "nodeType": "YulExpressionStatement", + "src": "6792:64:42" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6901:4:42", + "nodeType": "YulIdentifier", + "src": "6901:4:42" + }, + { + "name": "IC7x", + "nativeSrc": "6907:4:42", + "nodeType": "YulIdentifier", + "src": "6907:4:42" + }, + { + "name": "IC7y", + "nativeSrc": "6913:4:42", + "nodeType": "YulIdentifier", + "src": "6913:4:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6936:10:42", + "nodeType": "YulIdentifier", + "src": "6936:10:42" + }, + { + "kind": "number", + "nativeSrc": "6948:3:42", + "nodeType": "YulLiteral", + "src": "6948:3:42", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6932:3:42", + "nodeType": "YulIdentifier", + "src": "6932:3:42" + }, + "nativeSrc": "6932:20:42", + "nodeType": "YulFunctionCall", + "src": "6932:20:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6919:12:42", + "nodeType": "YulIdentifier", + "src": "6919:12:42" + }, + "nativeSrc": "6919:34:42", + "nodeType": "YulFunctionCall", + "src": "6919:34:42" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6890:10:42", + "nodeType": "YulIdentifier", + "src": "6890:10:42" + }, + "nativeSrc": "6890:64:42", + "nodeType": "YulFunctionCall", + "src": "6890:64:42" + }, + "nativeSrc": "6890:64:42", + "nodeType": "YulExpressionStatement", + "src": "6890:64:42" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6999:4:42", + "nodeType": "YulIdentifier", + "src": "6999:4:42" + }, + { + "name": "IC8x", + "nativeSrc": "7005:4:42", + "nodeType": "YulIdentifier", + "src": "7005:4:42" + }, + { + "name": "IC8y", + "nativeSrc": "7011:4:42", + "nodeType": "YulIdentifier", + "src": "7011:4:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "7034:10:42", + "nodeType": "YulIdentifier", + "src": "7034:10:42" + }, + { + "kind": "number", + "nativeSrc": "7046:3:42", + "nodeType": "YulLiteral", + "src": "7046:3:42", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7030:3:42", + "nodeType": "YulIdentifier", + "src": "7030:3:42" + }, + "nativeSrc": "7030:20:42", + "nodeType": "YulFunctionCall", + "src": "7030:20:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7017:12:42", + "nodeType": "YulIdentifier", + "src": "7017:12:42" + }, + "nativeSrc": "7017:34:42", + "nodeType": "YulFunctionCall", + "src": "7017:34:42" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6988:10:42", + "nodeType": "YulIdentifier", + "src": "6988:10:42" + }, + "nativeSrc": "6988:64:42", + "nodeType": "YulFunctionCall", + "src": "6988:64:42" + }, + "nativeSrc": "6988:64:42", + "nodeType": "YulExpressionStatement", + "src": "6988:64:42" + }, + { + "expression": { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7116:9:42", + "nodeType": "YulIdentifier", + "src": "7116:9:42" + }, + { + "arguments": [ + { + "name": "pA", + "nativeSrc": "7140:2:42", + "nodeType": "YulIdentifier", + "src": "7140:2:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7127:12:42", + "nodeType": "YulIdentifier", + "src": "7127:12:42" + }, + "nativeSrc": "7127:16:42", + "nodeType": "YulFunctionCall", + "src": "7127:16:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7109:6:42", + "nodeType": "YulIdentifier", + "src": "7109:6:42" + }, + "nativeSrc": "7109:35:42", + "nodeType": "YulFunctionCall", + "src": "7109:35:42" + }, + "nativeSrc": "7109:35:42", + "nodeType": "YulExpressionStatement", + "src": "7109:35:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7172:9:42", + "nodeType": "YulIdentifier", + "src": "7172:9:42" + }, + { + "kind": "number", + "nativeSrc": "7183:2:42", + "nodeType": "YulLiteral", + "src": "7183:2:42", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7168:3:42", + "nodeType": "YulIdentifier", + "src": "7168:3:42" + }, + "nativeSrc": "7168:18:42", + "nodeType": "YulFunctionCall", + "src": "7168:18:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "q", + "nativeSrc": "7196:1:42", + "nodeType": "YulIdentifier", + "src": "7196:1:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pA", + "nativeSrc": "7216:2:42", + "nodeType": "YulIdentifier", + "src": "7216:2:42" + }, + { + "kind": "number", + "nativeSrc": "7220:2:42", + "nodeType": "YulLiteral", + "src": "7220:2:42", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7212:3:42", + "nodeType": "YulIdentifier", + "src": "7212:3:42" + }, + "nativeSrc": "7212:11:42", + "nodeType": "YulFunctionCall", + "src": "7212:11:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7199:12:42", + "nodeType": "YulIdentifier", + "src": "7199:12:42" + }, + "nativeSrc": "7199:25:42", + "nodeType": "YulFunctionCall", + "src": "7199:25:42" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7192:3:42", + "nodeType": "YulIdentifier", + "src": "7192:3:42" + }, + "nativeSrc": "7192:33:42", + "nodeType": "YulFunctionCall", + "src": "7192:33:42" + }, + { + "name": "q", + "nativeSrc": "7227:1:42", + "nodeType": "YulIdentifier", + "src": "7227:1:42" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "7188:3:42", + "nodeType": "YulIdentifier", + "src": "7188:3:42" + }, + "nativeSrc": "7188:41:42", + "nodeType": "YulFunctionCall", + "src": "7188:41:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7161:6:42", + "nodeType": "YulIdentifier", + "src": "7161:6:42" + }, + "nativeSrc": "7161:69:42", + "nodeType": "YulFunctionCall", + "src": "7161:69:42" + }, + "nativeSrc": "7161:69:42", + "nodeType": "YulExpressionStatement", + "src": "7161:69:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7280:9:42", + "nodeType": "YulIdentifier", + "src": "7280:9:42" + }, + { + "kind": "number", + "nativeSrc": "7291:2:42", + "nodeType": "YulLiteral", + "src": "7291:2:42", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7276:3:42", + "nodeType": "YulIdentifier", + "src": "7276:3:42" + }, + "nativeSrc": "7276:18:42", + "nodeType": "YulFunctionCall", + "src": "7276:18:42" + }, + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7309:2:42", + "nodeType": "YulIdentifier", + "src": "7309:2:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7296:12:42", + "nodeType": "YulIdentifier", + "src": "7296:12:42" + }, + "nativeSrc": "7296:16:42", + "nodeType": "YulFunctionCall", + "src": "7296:16:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7269:6:42", + "nodeType": "YulIdentifier", + "src": "7269:6:42" + }, + "nativeSrc": "7269:44:42", + "nodeType": "YulFunctionCall", + "src": "7269:44:42" + }, + "nativeSrc": "7269:44:42", + "nodeType": "YulExpressionStatement", + "src": "7269:44:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7341:9:42", + "nodeType": "YulIdentifier", + "src": "7341:9:42" + }, + { + "kind": "number", + "nativeSrc": "7352:2:42", + "nodeType": "YulLiteral", + "src": "7352:2:42", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7337:3:42", + "nodeType": "YulIdentifier", + "src": "7337:3:42" + }, + "nativeSrc": "7337:18:42", + "nodeType": "YulFunctionCall", + "src": "7337:18:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7374:2:42", + "nodeType": "YulIdentifier", + "src": "7374:2:42" + }, + { + "kind": "number", + "nativeSrc": "7378:2:42", + "nodeType": "YulLiteral", + "src": "7378:2:42", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7370:3:42", + "nodeType": "YulIdentifier", + "src": "7370:3:42" + }, + "nativeSrc": "7370:11:42", + "nodeType": "YulFunctionCall", + "src": "7370:11:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7357:12:42", + "nodeType": "YulIdentifier", + "src": "7357:12:42" + }, + "nativeSrc": "7357:25:42", + "nodeType": "YulFunctionCall", + "src": "7357:25:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7330:6:42", + "nodeType": "YulIdentifier", + "src": "7330:6:42" + }, + "nativeSrc": "7330:53:42", + "nodeType": "YulFunctionCall", + "src": "7330:53:42" + }, + "nativeSrc": "7330:53:42", + "nodeType": "YulExpressionStatement", + "src": "7330:53:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7411:9:42", + "nodeType": "YulIdentifier", + "src": "7411:9:42" + }, + { + "kind": "number", + "nativeSrc": "7422:3:42", + "nodeType": "YulLiteral", + "src": "7422:3:42", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7407:3:42", + "nodeType": "YulIdentifier", + "src": "7407:3:42" + }, + "nativeSrc": "7407:19:42", + "nodeType": "YulFunctionCall", + "src": "7407:19:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7445:2:42", + "nodeType": "YulIdentifier", + "src": "7445:2:42" + }, + { + "kind": "number", + "nativeSrc": "7449:2:42", + "nodeType": "YulLiteral", + "src": "7449:2:42", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7441:3:42", + "nodeType": "YulIdentifier", + "src": "7441:3:42" + }, + "nativeSrc": "7441:11:42", + "nodeType": "YulFunctionCall", + "src": "7441:11:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7428:12:42", + "nodeType": "YulIdentifier", + "src": "7428:12:42" + }, + "nativeSrc": "7428:25:42", + "nodeType": "YulFunctionCall", + "src": "7428:25:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7400:6:42", + "nodeType": "YulIdentifier", + "src": "7400:6:42" + }, + "nativeSrc": "7400:54:42", + "nodeType": "YulFunctionCall", + "src": "7400:54:42" + }, + "nativeSrc": "7400:54:42", + "nodeType": "YulExpressionStatement", + "src": "7400:54:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7482:9:42", + "nodeType": "YulIdentifier", + "src": "7482:9:42" + }, + { + "kind": "number", + "nativeSrc": "7493:3:42", + "nodeType": "YulLiteral", + "src": "7493:3:42", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7478:3:42", + "nodeType": "YulIdentifier", + "src": "7478:3:42" + }, + "nativeSrc": "7478:19:42", + "nodeType": "YulFunctionCall", + "src": "7478:19:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7516:2:42", + "nodeType": "YulIdentifier", + "src": "7516:2:42" + }, + { + "kind": "number", + "nativeSrc": "7520:2:42", + "nodeType": "YulLiteral", + "src": "7520:2:42", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7512:3:42", + "nodeType": "YulIdentifier", + "src": "7512:3:42" + }, + "nativeSrc": "7512:11:42", + "nodeType": "YulFunctionCall", + "src": "7512:11:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7499:12:42", + "nodeType": "YulIdentifier", + "src": "7499:12:42" + }, + "nativeSrc": "7499:25:42", + "nodeType": "YulFunctionCall", + "src": "7499:25:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7471:6:42", + "nodeType": "YulIdentifier", + "src": "7471:6:42" + }, + "nativeSrc": "7471:54:42", + "nodeType": "YulFunctionCall", + "src": "7471:54:42" + }, + "nativeSrc": "7471:54:42", + "nodeType": "YulExpressionStatement", + "src": "7471:54:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7580:9:42", + "nodeType": "YulIdentifier", + "src": "7580:9:42" + }, + { + "kind": "number", + "nativeSrc": "7591:3:42", + "nodeType": "YulLiteral", + "src": "7591:3:42", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7576:3:42", + "nodeType": "YulIdentifier", + "src": "7576:3:42" + }, + "nativeSrc": "7576:19:42", + "nodeType": "YulFunctionCall", + "src": "7576:19:42" + }, + { + "name": "alphax", + "nativeSrc": "7597:6:42", + "nodeType": "YulIdentifier", + "src": "7597:6:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7569:6:42", + "nodeType": "YulIdentifier", + "src": "7569:6:42" + }, + "nativeSrc": "7569:35:42", + "nodeType": "YulFunctionCall", + "src": "7569:35:42" + }, + "nativeSrc": "7569:35:42", + "nodeType": "YulExpressionStatement", + "src": "7569:35:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7632:9:42", + "nodeType": "YulIdentifier", + "src": "7632:9:42" + }, + { + "kind": "number", + "nativeSrc": "7643:3:42", + "nodeType": "YulLiteral", + "src": "7643:3:42", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7628:3:42", + "nodeType": "YulIdentifier", + "src": "7628:3:42" + }, + "nativeSrc": "7628:19:42", + "nodeType": "YulFunctionCall", + "src": "7628:19:42" + }, + { + "name": "alphay", + "nativeSrc": "7649:6:42", + "nodeType": "YulIdentifier", + "src": "7649:6:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7621:6:42", + "nodeType": "YulIdentifier", + "src": "7621:6:42" + }, + "nativeSrc": "7621:35:42", + "nodeType": "YulFunctionCall", + "src": "7621:35:42" + }, + "nativeSrc": "7621:35:42", + "nodeType": "YulExpressionStatement", + "src": "7621:35:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7710:9:42", + "nodeType": "YulIdentifier", + "src": "7710:9:42" + }, + { + "kind": "number", + "nativeSrc": "7721:3:42", + "nodeType": "YulLiteral", + "src": "7721:3:42", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7706:3:42", + "nodeType": "YulIdentifier", + "src": "7706:3:42" + }, + "nativeSrc": "7706:19:42", + "nodeType": "YulFunctionCall", + "src": "7706:19:42" + }, + { + "name": "betax1", + "nativeSrc": "7727:6:42", + "nodeType": "YulIdentifier", + "src": "7727:6:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7699:6:42", + "nodeType": "YulIdentifier", + "src": "7699:6:42" + }, + "nativeSrc": "7699:35:42", + "nodeType": "YulFunctionCall", + "src": "7699:35:42" + }, + "nativeSrc": "7699:35:42", + "nodeType": "YulExpressionStatement", + "src": "7699:35:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7762:9:42", + "nodeType": "YulIdentifier", + "src": "7762:9:42" + }, + { + "kind": "number", + "nativeSrc": "7773:3:42", + "nodeType": "YulLiteral", + "src": "7773:3:42", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7758:3:42", + "nodeType": "YulIdentifier", + "src": "7758:3:42" + }, + "nativeSrc": "7758:19:42", + "nodeType": "YulFunctionCall", + "src": "7758:19:42" + }, + { + "name": "betax2", + "nativeSrc": "7779:6:42", + "nodeType": "YulIdentifier", + "src": "7779:6:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7751:6:42", + "nodeType": "YulIdentifier", + "src": "7751:6:42" + }, + "nativeSrc": "7751:35:42", + "nodeType": "YulFunctionCall", + "src": "7751:35:42" + }, + "nativeSrc": "7751:35:42", + "nodeType": "YulExpressionStatement", + "src": "7751:35:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7814:9:42", + "nodeType": "YulIdentifier", + "src": "7814:9:42" + }, + { + "kind": "number", + "nativeSrc": "7825:3:42", + "nodeType": "YulLiteral", + "src": "7825:3:42", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7810:3:42", + "nodeType": "YulIdentifier", + "src": "7810:3:42" + }, + "nativeSrc": "7810:19:42", + "nodeType": "YulFunctionCall", + "src": "7810:19:42" + }, + { + "name": "betay1", + "nativeSrc": "7831:6:42", + "nodeType": "YulIdentifier", + "src": "7831:6:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7803:6:42", + "nodeType": "YulIdentifier", + "src": "7803:6:42" + }, + "nativeSrc": "7803:35:42", + "nodeType": "YulFunctionCall", + "src": "7803:35:42" + }, + "nativeSrc": "7803:35:42", + "nodeType": "YulExpressionStatement", + "src": "7803:35:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7866:9:42", + "nodeType": "YulIdentifier", + "src": "7866:9:42" + }, + { + "kind": "number", + "nativeSrc": "7877:3:42", + "nodeType": "YulLiteral", + "src": "7877:3:42", + "type": "", + "value": "352" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7862:3:42", + "nodeType": "YulIdentifier", + "src": "7862:3:42" + }, + "nativeSrc": "7862:19:42", + "nodeType": "YulFunctionCall", + "src": "7862:19:42" + }, + { + "name": "betay2", + "nativeSrc": "7883:6:42", + "nodeType": "YulIdentifier", + "src": "7883:6:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7855:6:42", + "nodeType": "YulIdentifier", + "src": "7855:6:42" + }, + "nativeSrc": "7855:35:42", + "nodeType": "YulFunctionCall", + "src": "7855:35:42" + }, + "nativeSrc": "7855:35:42", + "nodeType": "YulExpressionStatement", + "src": "7855:35:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7943:9:42", + "nodeType": "YulIdentifier", + "src": "7943:9:42" + }, + { + "kind": "number", + "nativeSrc": "7954:3:42", + "nodeType": "YulLiteral", + "src": "7954:3:42", + "type": "", + "value": "384" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7939:3:42", + "nodeType": "YulIdentifier", + "src": "7939:3:42" + }, + "nativeSrc": "7939:19:42", + "nodeType": "YulFunctionCall", + "src": "7939:19:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "7970:4:42", + "nodeType": "YulIdentifier", + "src": "7970:4:42" + }, + { + "name": "pVk", + "nativeSrc": "7976:3:42", + "nodeType": "YulIdentifier", + "src": "7976:3:42" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7966:3:42", + "nodeType": "YulIdentifier", + "src": "7966:3:42" + }, + "nativeSrc": "7966:14:42", + "nodeType": "YulFunctionCall", + "src": "7966:14:42" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7960:5:42", + "nodeType": "YulIdentifier", + "src": "7960:5:42" + }, + "nativeSrc": "7960:21:42", + "nodeType": "YulFunctionCall", + "src": "7960:21:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7932:6:42", + "nodeType": "YulIdentifier", + "src": "7932:6:42" + }, + "nativeSrc": "7932:50:42", + "nodeType": "YulFunctionCall", + "src": "7932:50:42" + }, + "nativeSrc": "7932:50:42", + "nodeType": "YulExpressionStatement", + "src": "7932:50:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8010:9:42", + "nodeType": "YulIdentifier", + "src": "8010:9:42" + }, + { + "kind": "number", + "nativeSrc": "8021:3:42", + "nodeType": "YulLiteral", + "src": "8021:3:42", + "type": "", + "value": "416" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8006:3:42", + "nodeType": "YulIdentifier", + "src": "8006:3:42" + }, + "nativeSrc": "8006:19:42", + "nodeType": "YulFunctionCall", + "src": "8006:19:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "8037:4:42", + "nodeType": "YulIdentifier", + "src": "8037:4:42" + }, + { + "arguments": [ + { + "name": "pVk", + "nativeSrc": "8047:3:42", + "nodeType": "YulIdentifier", + "src": "8047:3:42" + }, + { + "kind": "number", + "nativeSrc": "8052:2:42", + "nodeType": "YulLiteral", + "src": "8052:2:42", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8043:3:42", + "nodeType": "YulIdentifier", + "src": "8043:3:42" + }, + "nativeSrc": "8043:12:42", + "nodeType": "YulFunctionCall", + "src": "8043:12:42" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8033:3:42", + "nodeType": "YulIdentifier", + "src": "8033:3:42" + }, + "nativeSrc": "8033:23:42", + "nodeType": "YulFunctionCall", + "src": "8033:23:42" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8027:5:42", + "nodeType": "YulIdentifier", + "src": "8027:5:42" + }, + "nativeSrc": "8027:30:42", + "nodeType": "YulFunctionCall", + "src": "8027:30:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7999:6:42", + "nodeType": "YulIdentifier", + "src": "7999:6:42" + }, + "nativeSrc": "7999:59:42", + "nodeType": "YulFunctionCall", + "src": "7999:59:42" + }, + "nativeSrc": "7999:59:42", + "nodeType": "YulExpressionStatement", + "src": "7999:59:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8114:9:42", + "nodeType": "YulIdentifier", + "src": "8114:9:42" + }, + { + "kind": "number", + "nativeSrc": "8125:3:42", + "nodeType": "YulLiteral", + "src": "8125:3:42", + "type": "", + "value": "448" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8110:3:42", + "nodeType": "YulIdentifier", + "src": "8110:3:42" + }, + "nativeSrc": "8110:19:42", + "nodeType": "YulFunctionCall", + "src": "8110:19:42" + }, + { + "name": "gammax1", + "nativeSrc": "8131:7:42", + "nodeType": "YulIdentifier", + "src": "8131:7:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8103:6:42", + "nodeType": "YulIdentifier", + "src": "8103:6:42" + }, + "nativeSrc": "8103:36:42", + "nodeType": "YulFunctionCall", + "src": "8103:36:42" + }, + "nativeSrc": "8103:36:42", + "nodeType": "YulExpressionStatement", + "src": "8103:36:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8167:9:42", + "nodeType": "YulIdentifier", + "src": "8167:9:42" + }, + { + "kind": "number", + "nativeSrc": "8178:3:42", + "nodeType": "YulLiteral", + "src": "8178:3:42", + "type": "", + "value": "480" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8163:3:42", + "nodeType": "YulIdentifier", + "src": "8163:3:42" + }, + "nativeSrc": "8163:19:42", + "nodeType": "YulFunctionCall", + "src": "8163:19:42" + }, + { + "name": "gammax2", + "nativeSrc": "8184:7:42", + "nodeType": "YulIdentifier", + "src": "8184:7:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8156:6:42", + "nodeType": "YulIdentifier", + "src": "8156:6:42" + }, + "nativeSrc": "8156:36:42", + "nodeType": "YulFunctionCall", + "src": "8156:36:42" + }, + "nativeSrc": "8156:36:42", + "nodeType": "YulExpressionStatement", + "src": "8156:36:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8220:9:42", + "nodeType": "YulIdentifier", + "src": "8220:9:42" + }, + { + "kind": "number", + "nativeSrc": "8231:3:42", + "nodeType": "YulLiteral", + "src": "8231:3:42", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8216:3:42", + "nodeType": "YulIdentifier", + "src": "8216:3:42" + }, + "nativeSrc": "8216:19:42", + "nodeType": "YulFunctionCall", + "src": "8216:19:42" + }, + { + "name": "gammay1", + "nativeSrc": "8237:7:42", + "nodeType": "YulIdentifier", + "src": "8237:7:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8209:6:42", + "nodeType": "YulIdentifier", + "src": "8209:6:42" + }, + "nativeSrc": "8209:36:42", + "nodeType": "YulFunctionCall", + "src": "8209:36:42" + }, + "nativeSrc": "8209:36:42", + "nodeType": "YulExpressionStatement", + "src": "8209:36:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8273:9:42", + "nodeType": "YulIdentifier", + "src": "8273:9:42" + }, + { + "kind": "number", + "nativeSrc": "8284:3:42", + "nodeType": "YulLiteral", + "src": "8284:3:42", + "type": "", + "value": "544" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8269:3:42", + "nodeType": "YulIdentifier", + "src": "8269:3:42" + }, + "nativeSrc": "8269:19:42", + "nodeType": "YulFunctionCall", + "src": "8269:19:42" + }, + { + "name": "gammay2", + "nativeSrc": "8290:7:42", + "nodeType": "YulIdentifier", + "src": "8290:7:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8262:6:42", + "nodeType": "YulIdentifier", + "src": "8262:6:42" + }, + "nativeSrc": "8262:36:42", + "nodeType": "YulFunctionCall", + "src": "8262:36:42" + }, + "nativeSrc": "8262:36:42", + "nodeType": "YulExpressionStatement", + "src": "8262:36:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8348:9:42", + "nodeType": "YulIdentifier", + "src": "8348:9:42" + }, + { + "kind": "number", + "nativeSrc": "8359:3:42", + "nodeType": "YulLiteral", + "src": "8359:3:42", + "type": "", + "value": "576" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8344:3:42", + "nodeType": "YulIdentifier", + "src": "8344:3:42" + }, + "nativeSrc": "8344:19:42", + "nodeType": "YulFunctionCall", + "src": "8344:19:42" + }, + { + "arguments": [ + { + "name": "pC", + "nativeSrc": "8378:2:42", + "nodeType": "YulIdentifier", + "src": "8378:2:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8365:12:42", + "nodeType": "YulIdentifier", + "src": "8365:12:42" + }, + "nativeSrc": "8365:16:42", + "nodeType": "YulFunctionCall", + "src": "8365:16:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8337:6:42", + "nodeType": "YulIdentifier", + "src": "8337:6:42" + }, + "nativeSrc": "8337:45:42", + "nodeType": "YulFunctionCall", + "src": "8337:45:42" + }, + "nativeSrc": "8337:45:42", + "nodeType": "YulExpressionStatement", + "src": "8337:45:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8410:9:42", + "nodeType": "YulIdentifier", + "src": "8410:9:42" + }, + { + "kind": "number", + "nativeSrc": "8421:3:42", + "nodeType": "YulLiteral", + "src": "8421:3:42", + "type": "", + "value": "608" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8406:3:42", + "nodeType": "YulIdentifier", + "src": "8406:3:42" + }, + "nativeSrc": "8406:19:42", + "nodeType": "YulFunctionCall", + "src": "8406:19:42" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pC", + "nativeSrc": "8444:2:42", + "nodeType": "YulIdentifier", + "src": "8444:2:42" + }, + { + "kind": "number", + "nativeSrc": "8448:2:42", + "nodeType": "YulLiteral", + "src": "8448:2:42", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8440:3:42", + "nodeType": "YulIdentifier", + "src": "8440:3:42" + }, + "nativeSrc": "8440:11:42", + "nodeType": "YulFunctionCall", + "src": "8440:11:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8427:12:42", + "nodeType": "YulIdentifier", + "src": "8427:12:42" + }, + "nativeSrc": "8427:25:42", + "nodeType": "YulFunctionCall", + "src": "8427:25:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8399:6:42", + "nodeType": "YulIdentifier", + "src": "8399:6:42" + }, + "nativeSrc": "8399:54:42", + "nodeType": "YulFunctionCall", + "src": "8399:54:42" + }, + "nativeSrc": "8399:54:42", + "nodeType": "YulExpressionStatement", + "src": "8399:54:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8508:9:42", + "nodeType": "YulIdentifier", + "src": "8508:9:42" + }, + { + "kind": "number", + "nativeSrc": "8519:3:42", + "nodeType": "YulLiteral", + "src": "8519:3:42", + "type": "", + "value": "640" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8504:3:42", + "nodeType": "YulIdentifier", + "src": "8504:3:42" + }, + "nativeSrc": "8504:19:42", + "nodeType": "YulFunctionCall", + "src": "8504:19:42" + }, + { + "name": "deltax1", + "nativeSrc": "8525:7:42", + "nodeType": "YulIdentifier", + "src": "8525:7:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8497:6:42", + "nodeType": "YulIdentifier", + "src": "8497:6:42" + }, + "nativeSrc": "8497:36:42", + "nodeType": "YulFunctionCall", + "src": "8497:36:42" + }, + "nativeSrc": "8497:36:42", + "nodeType": "YulExpressionStatement", + "src": "8497:36:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8561:9:42", + "nodeType": "YulIdentifier", + "src": "8561:9:42" + }, + { + "kind": "number", + "nativeSrc": "8572:3:42", + "nodeType": "YulLiteral", + "src": "8572:3:42", + "type": "", + "value": "672" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8557:3:42", + "nodeType": "YulIdentifier", + "src": "8557:3:42" + }, + "nativeSrc": "8557:19:42", + "nodeType": "YulFunctionCall", + "src": "8557:19:42" + }, + { + "name": "deltax2", + "nativeSrc": "8578:7:42", + "nodeType": "YulIdentifier", + "src": "8578:7:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8550:6:42", + "nodeType": "YulIdentifier", + "src": "8550:6:42" + }, + "nativeSrc": "8550:36:42", + "nodeType": "YulFunctionCall", + "src": "8550:36:42" + }, + "nativeSrc": "8550:36:42", + "nodeType": "YulExpressionStatement", + "src": "8550:36:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8614:9:42", + "nodeType": "YulIdentifier", + "src": "8614:9:42" + }, + { + "kind": "number", + "nativeSrc": "8625:3:42", + "nodeType": "YulLiteral", + "src": "8625:3:42", + "type": "", + "value": "704" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8610:3:42", + "nodeType": "YulIdentifier", + "src": "8610:3:42" + }, + "nativeSrc": "8610:19:42", + "nodeType": "YulFunctionCall", + "src": "8610:19:42" + }, + { + "name": "deltay1", + "nativeSrc": "8631:7:42", + "nodeType": "YulIdentifier", + "src": "8631:7:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8603:6:42", + "nodeType": "YulIdentifier", + "src": "8603:6:42" + }, + "nativeSrc": "8603:36:42", + "nodeType": "YulFunctionCall", + "src": "8603:36:42" + }, + "nativeSrc": "8603:36:42", + "nodeType": "YulExpressionStatement", + "src": "8603:36:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8667:9:42", + "nodeType": "YulIdentifier", + "src": "8667:9:42" + }, + { + "kind": "number", + "nativeSrc": "8678:3:42", + "nodeType": "YulLiteral", + "src": "8678:3:42", + "type": "", + "value": "736" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8663:3:42", + "nodeType": "YulIdentifier", + "src": "8663:3:42" + }, + "nativeSrc": "8663:19:42", + "nodeType": "YulFunctionCall", + "src": "8663:19:42" + }, + { + "name": "deltay2", + "nativeSrc": "8684:7:42", + "nodeType": "YulIdentifier", + "src": "8684:7:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8656:6:42", + "nodeType": "YulIdentifier", + "src": "8656:6:42" + }, + "nativeSrc": "8656:36:42", + "nodeType": "YulFunctionCall", + "src": "8656:36:42" + }, + "nativeSrc": "8656:36:42", + "nodeType": "YulExpressionStatement", + "src": "8656:36:42" + }, + { + "nativeSrc": "8711:79:42", + "nodeType": "YulVariableDeclaration", + "src": "8711:79:42", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "8741:3:42", + "nodeType": "YulIdentifier", + "src": "8741:3:42" + }, + "nativeSrc": "8741:5:42", + "nodeType": "YulFunctionCall", + "src": "8741:5:42" + }, + { + "kind": "number", + "nativeSrc": "8748:4:42", + "nodeType": "YulLiteral", + "src": "8748:4:42", + "type": "", + "value": "2000" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8737:3:42", + "nodeType": "YulIdentifier", + "src": "8737:3:42" + }, + "nativeSrc": "8737:16:42", + "nodeType": "YulFunctionCall", + "src": "8737:16:42" + }, + { + "kind": "number", + "nativeSrc": "8755:1:42", + "nodeType": "YulLiteral", + "src": "8755:1:42", + "type": "", + "value": "8" + }, + { + "name": "_pPairing", + "nativeSrc": "8758:9:42", + "nodeType": "YulIdentifier", + "src": "8758:9:42" + }, + { + "kind": "number", + "nativeSrc": "8769:3:42", + "nodeType": "YulLiteral", + "src": "8769:3:42", + "type": "", + "value": "768" + }, + { + "name": "_pPairing", + "nativeSrc": "8774:9:42", + "nodeType": "YulIdentifier", + "src": "8774:9:42" + }, + { + "kind": "number", + "nativeSrc": "8785:4:42", + "nodeType": "YulLiteral", + "src": "8785:4:42", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "8726:10:42", + "nodeType": "YulIdentifier", + "src": "8726:10:42" + }, + "nativeSrc": "8726:64:42", + "nodeType": "YulFunctionCall", + "src": "8726:64:42" + }, + "variables": [ + { + "name": "success", + "nativeSrc": "8715:7:42", + "nodeType": "YulTypedName", + "src": "8715:7:42", + "type": "" + } + ] + }, + { + "nativeSrc": "8808:38:42", + "nodeType": "YulAssignment", + "src": "8808:38:42", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "8820:7:42", + "nodeType": "YulIdentifier", + "src": "8820:7:42" + }, + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8835:9:42", + "nodeType": "YulIdentifier", + "src": "8835:9:42" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8829:5:42", + "nodeType": "YulIdentifier", + "src": "8829:5:42" + }, + "nativeSrc": "8829:16:42", + "nodeType": "YulFunctionCall", + "src": "8829:16:42" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8816:3:42", + "nodeType": "YulIdentifier", + "src": "8816:3:42" + }, + "nativeSrc": "8816:30:42", + "nodeType": "YulFunctionCall", + "src": "8816:30:42" + }, + "variableNames": [ + { + "name": "isOk", + "nativeSrc": "8808:4:42", + "nodeType": "YulIdentifier", + "src": "8808:4:42" + } + ] + } + ] + }, + "name": "checkPairing", + "nativeSrc": "5980:2880:42", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pA", + "nativeSrc": "6002:2:42", + "nodeType": "YulTypedName", + "src": "6002:2:42", + "type": "" + }, + { + "name": "pB", + "nativeSrc": "6006:2:42", + "nodeType": "YulTypedName", + "src": "6006:2:42", + "type": "" + }, + { + "name": "pC", + "nativeSrc": "6010:2:42", + "nodeType": "YulTypedName", + "src": "6010:2:42", + "type": "" + }, + { + "name": "pubSignals", + "nativeSrc": "6014:10:42", + "nodeType": "YulTypedName", + "src": "6014:10:42", + "type": "" + }, + { + "name": "pMem", + "nativeSrc": "6026:4:42", + "nodeType": "YulTypedName", + "src": "6026:4:42", + "type": "" + } + ], + "returnVariables": [ + { + "name": "isOk", + "nativeSrc": "6035:4:42", + "nodeType": "YulTypedName", + "src": "6035:4:42", + "type": "" + } + ], + "src": "5980:2880:42" + }, + { + "nativeSrc": "8874:23:42", + "nodeType": "YulVariableDeclaration", + "src": "8874:23:42", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8892:4:42", + "nodeType": "YulLiteral", + "src": "8892:4:42", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8886:5:42", + "nodeType": "YulIdentifier", + "src": "8886:5:42" + }, + "nativeSrc": "8886:11:42", + "nodeType": "YulFunctionCall", + "src": "8886:11:42" + }, + "variables": [ + { + "name": "pMem", + "nativeSrc": "8878:4:42", + "nodeType": "YulTypedName", + "src": "8878:4:42", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8917:4:42", + "nodeType": "YulLiteral", + "src": "8917:4:42", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "8927:4:42", + "nodeType": "YulIdentifier", + "src": "8927:4:42" + }, + { + "name": "pLastMem", + "nativeSrc": "8933:8:42", + "nodeType": "YulIdentifier", + "src": "8933:8:42" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8923:3:42", + "nodeType": "YulIdentifier", + "src": "8923:3:42" + }, + "nativeSrc": "8923:19:42", + "nodeType": "YulFunctionCall", + "src": "8923:19:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8910:6:42", + "nodeType": "YulIdentifier", + "src": "8910:6:42" + }, + "nativeSrc": "8910:33:42", + "nodeType": "YulFunctionCall", + "src": "8910:33:42" + }, + "nativeSrc": "8910:33:42", + "nodeType": "YulExpressionStatement", + "src": "8910:33:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9049:11:42", + "nodeType": "YulIdentifier", + "src": "9049:11:42" + }, + { + "kind": "number", + "nativeSrc": "9062:1:42", + "nodeType": "YulLiteral", + "src": "9062:1:42", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9045:3:42", + "nodeType": "YulIdentifier", + "src": "9045:3:42" + }, + "nativeSrc": "9045:19:42", + "nodeType": "YulFunctionCall", + "src": "9045:19:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9032:12:42", + "nodeType": "YulIdentifier", + "src": "9032:12:42" + }, + "nativeSrc": "9032:33:42", + "nodeType": "YulFunctionCall", + "src": "9032:33:42" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9021:10:42", + "nodeType": "YulIdentifier", + "src": "9021:10:42" + }, + "nativeSrc": "9021:45:42", + "nodeType": "YulFunctionCall", + "src": "9021:45:42" + }, + "nativeSrc": "9021:45:42", + "nodeType": "YulExpressionStatement", + "src": "9021:45:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9120:11:42", + "nodeType": "YulIdentifier", + "src": "9120:11:42" + }, + { + "kind": "number", + "nativeSrc": "9133:2:42", + "nodeType": "YulLiteral", + "src": "9133:2:42", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9116:3:42", + "nodeType": "YulIdentifier", + "src": "9116:3:42" + }, + "nativeSrc": "9116:20:42", + "nodeType": "YulFunctionCall", + "src": "9116:20:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9103:12:42", + "nodeType": "YulIdentifier", + "src": "9103:12:42" + }, + "nativeSrc": "9103:34:42", + "nodeType": "YulFunctionCall", + "src": "9103:34:42" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9092:10:42", + "nodeType": "YulIdentifier", + "src": "9092:10:42" + }, + "nativeSrc": "9092:46:42", + "nodeType": "YulFunctionCall", + "src": "9092:46:42" + }, + "nativeSrc": "9092:46:42", + "nodeType": "YulExpressionStatement", + "src": "9092:46:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9192:11:42", + "nodeType": "YulIdentifier", + "src": "9192:11:42" + }, + { + "kind": "number", + "nativeSrc": "9205:2:42", + "nodeType": "YulLiteral", + "src": "9205:2:42", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9188:3:42", + "nodeType": "YulIdentifier", + "src": "9188:3:42" + }, + "nativeSrc": "9188:20:42", + "nodeType": "YulFunctionCall", + "src": "9188:20:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9175:12:42", + "nodeType": "YulIdentifier", + "src": "9175:12:42" + }, + "nativeSrc": "9175:34:42", + "nodeType": "YulFunctionCall", + "src": "9175:34:42" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9164:10:42", + "nodeType": "YulIdentifier", + "src": "9164:10:42" + }, + "nativeSrc": "9164:46:42", + "nodeType": "YulFunctionCall", + "src": "9164:46:42" + }, + "nativeSrc": "9164:46:42", + "nodeType": "YulExpressionStatement", + "src": "9164:46:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9264:11:42", + "nodeType": "YulIdentifier", + "src": "9264:11:42" + }, + { + "kind": "number", + "nativeSrc": "9277:2:42", + "nodeType": "YulLiteral", + "src": "9277:2:42", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9260:3:42", + "nodeType": "YulIdentifier", + "src": "9260:3:42" + }, + "nativeSrc": "9260:20:42", + "nodeType": "YulFunctionCall", + "src": "9260:20:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9247:12:42", + "nodeType": "YulIdentifier", + "src": "9247:12:42" + }, + "nativeSrc": "9247:34:42", + "nodeType": "YulFunctionCall", + "src": "9247:34:42" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9236:10:42", + "nodeType": "YulIdentifier", + "src": "9236:10:42" + }, + "nativeSrc": "9236:46:42", + "nodeType": "YulFunctionCall", + "src": "9236:46:42" + }, + "nativeSrc": "9236:46:42", + "nodeType": "YulExpressionStatement", + "src": "9236:46:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9336:11:42", + "nodeType": "YulIdentifier", + "src": "9336:11:42" + }, + { + "kind": "number", + "nativeSrc": "9349:3:42", + "nodeType": "YulLiteral", + "src": "9349:3:42", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9332:3:42", + "nodeType": "YulIdentifier", + "src": "9332:3:42" + }, + "nativeSrc": "9332:21:42", + "nodeType": "YulFunctionCall", + "src": "9332:21:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9319:12:42", + "nodeType": "YulIdentifier", + "src": "9319:12:42" + }, + "nativeSrc": "9319:35:42", + "nodeType": "YulFunctionCall", + "src": "9319:35:42" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9308:10:42", + "nodeType": "YulIdentifier", + "src": "9308:10:42" + }, + "nativeSrc": "9308:47:42", + "nodeType": "YulFunctionCall", + "src": "9308:47:42" + }, + "nativeSrc": "9308:47:42", + "nodeType": "YulExpressionStatement", + "src": "9308:47:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9409:11:42", + "nodeType": "YulIdentifier", + "src": "9409:11:42" + }, + { + "kind": "number", + "nativeSrc": "9422:3:42", + "nodeType": "YulLiteral", + "src": "9422:3:42", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9405:3:42", + "nodeType": "YulIdentifier", + "src": "9405:3:42" + }, + "nativeSrc": "9405:21:42", + "nodeType": "YulFunctionCall", + "src": "9405:21:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9392:12:42", + "nodeType": "YulIdentifier", + "src": "9392:12:42" + }, + "nativeSrc": "9392:35:42", + "nodeType": "YulFunctionCall", + "src": "9392:35:42" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9381:10:42", + "nodeType": "YulIdentifier", + "src": "9381:10:42" + }, + "nativeSrc": "9381:47:42", + "nodeType": "YulFunctionCall", + "src": "9381:47:42" + }, + "nativeSrc": "9381:47:42", + "nodeType": "YulExpressionStatement", + "src": "9381:47:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9482:11:42", + "nodeType": "YulIdentifier", + "src": "9482:11:42" + }, + { + "kind": "number", + "nativeSrc": "9495:3:42", + "nodeType": "YulLiteral", + "src": "9495:3:42", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9478:3:42", + "nodeType": "YulIdentifier", + "src": "9478:3:42" + }, + "nativeSrc": "9478:21:42", + "nodeType": "YulFunctionCall", + "src": "9478:21:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9465:12:42", + "nodeType": "YulIdentifier", + "src": "9465:12:42" + }, + "nativeSrc": "9465:35:42", + "nodeType": "YulFunctionCall", + "src": "9465:35:42" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9454:10:42", + "nodeType": "YulIdentifier", + "src": "9454:10:42" + }, + "nativeSrc": "9454:47:42", + "nodeType": "YulFunctionCall", + "src": "9454:47:42" + }, + "nativeSrc": "9454:47:42", + "nodeType": "YulExpressionStatement", + "src": "9454:47:42" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9555:11:42", + "nodeType": "YulIdentifier", + "src": "9555:11:42" + }, + { + "kind": "number", + "nativeSrc": "9568:3:42", + "nodeType": "YulLiteral", + "src": "9568:3:42", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9551:3:42", + "nodeType": "YulIdentifier", + "src": "9551:3:42" + }, + "nativeSrc": "9551:21:42", + "nodeType": "YulFunctionCall", + "src": "9551:21:42" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9538:12:42", + "nodeType": "YulIdentifier", + "src": "9538:12:42" + }, + "nativeSrc": "9538:35:42", + "nodeType": "YulFunctionCall", + "src": "9538:35:42" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9527:10:42", + "nodeType": "YulIdentifier", + "src": "9527:10:42" + }, + "nativeSrc": "9527:47:42", + "nodeType": "YulFunctionCall", + "src": "9527:47:42" + }, + "nativeSrc": "9527:47:42", + "nodeType": "YulExpressionStatement", + "src": "9527:47:42" + }, + { + "nativeSrc": "9641:61:42", + "nodeType": "YulVariableDeclaration", + "src": "9641:61:42", + "value": { + "arguments": [ + { + "name": "_pA", + "nativeSrc": "9669:3:42", + "nodeType": "YulIdentifier", + "src": "9669:3:42" + }, + { + "name": "_pB", + "nativeSrc": "9674:3:42", + "nodeType": "YulIdentifier", + "src": "9674:3:42" + }, + { + "name": "_pC", + "nativeSrc": "9679:3:42", + "nodeType": "YulIdentifier", + "src": "9679:3:42" + }, + { + "name": "_pubSignals", + "nativeSrc": "9684:11:42", + "nodeType": "YulIdentifier", + "src": "9684:11:42" + }, + { + "name": "pMem", + "nativeSrc": "9697:4:42", + "nodeType": "YulIdentifier", + "src": "9697:4:42" + } + ], + "functionName": { + "name": "checkPairing", + "nativeSrc": "9656:12:42", + "nodeType": "YulIdentifier", + "src": "9656:12:42" + }, + "nativeSrc": "9656:46:42", + "nodeType": "YulFunctionCall", + "src": "9656:46:42" + }, + "variables": [ + { + "name": "isValid", + "nativeSrc": "9645:7:42", + "nodeType": "YulTypedName", + "src": "9645:7:42", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9723:1:42", + "nodeType": "YulLiteral", + "src": "9723:1:42", + "type": "", + "value": "0" + }, + { + "name": "isValid", + "nativeSrc": "9726:7:42", + "nodeType": "YulIdentifier", + "src": "9726:7:42" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9716:6:42", + "nodeType": "YulIdentifier", + "src": "9716:6:42" + }, + "nativeSrc": "9716:18:42", + "nodeType": "YulFunctionCall", + "src": "9716:18:42" + }, + "nativeSrc": "9716:18:42", + "nodeType": "YulExpressionStatement", + "src": "9716:18:42" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9755:1:42", + "nodeType": "YulLiteral", + "src": "9755:1:42", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9758:4:42", + "nodeType": "YulLiteral", + "src": "9758:4:42", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "9748:6:42", + "nodeType": "YulIdentifier", + "src": "9748:6:42" + }, + "nativeSrc": "9748:15:42", + "nodeType": "YulFunctionCall", + "src": "9748:15:42" + }, + "nativeSrc": "9748:15:42", + "nodeType": "YulExpressionStatement", + "src": "9748:15:42" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 17871, + "isOffset": false, + "isSlot": false, + "src": "6168:4:42", + "valueSize": 1 + }, + { + "declaration": 17874, + "isOffset": false, + "isSlot": false, + "src": "6212:4:42", + "valueSize": 1 + }, + { + "declaration": 17877, + "isOffset": false, + "isSlot": false, + "src": "6324:4:42", + "valueSize": 1 + }, + { + "declaration": 17880, + "isOffset": false, + "isSlot": false, + "src": "6330:4:42", + "valueSize": 1 + }, + { + "declaration": 17883, + "isOffset": false, + "isSlot": false, + "src": "6420:4:42", + "valueSize": 1 + }, + { + "declaration": 17886, + "isOffset": false, + "isSlot": false, + "src": "6426:4:42", + "valueSize": 1 + }, + { + "declaration": 17889, + "isOffset": false, + "isSlot": false, + "src": "6517:4:42", + "valueSize": 1 + }, + { + "declaration": 17892, + "isOffset": false, + "isSlot": false, + "src": "6523:4:42", + "valueSize": 1 + }, + { + "declaration": 17895, + "isOffset": false, + "isSlot": false, + "src": "6614:4:42", + "valueSize": 1 + }, + { + "declaration": 17898, + "isOffset": false, + "isSlot": false, + "src": "6620:4:42", + "valueSize": 1 + }, + { + "declaration": 17901, + "isOffset": false, + "isSlot": false, + "src": "6711:4:42", + "valueSize": 1 + }, + { + "declaration": 17904, + "isOffset": false, + "isSlot": false, + "src": "6717:4:42", + "valueSize": 1 + }, + { + "declaration": 17907, + "isOffset": false, + "isSlot": false, + "src": "6809:4:42", + "valueSize": 1 + }, + { + "declaration": 17910, + "isOffset": false, + "isSlot": false, + "src": "6815:4:42", + "valueSize": 1 + }, + { + "declaration": 17913, + "isOffset": false, + "isSlot": false, + "src": "6907:4:42", + "valueSize": 1 + }, + { + "declaration": 17916, + "isOffset": false, + "isSlot": false, + "src": "6913:4:42", + "valueSize": 1 + }, + { + "declaration": 17919, + "isOffset": false, + "isSlot": false, + "src": "7005:4:42", + "valueSize": 1 + }, + { + "declaration": 17922, + "isOffset": false, + "isSlot": false, + "src": "7011:4:42", + "valueSize": 1 + }, + { + "declaration": 17935, + "isOffset": false, + "isSlot": false, + "src": "9669:3:42", + "valueSize": 1 + }, + { + "declaration": 17941, + "isOffset": false, + "isSlot": false, + "src": "9674:3:42", + "valueSize": 1 + }, + { + "declaration": 17945, + "isOffset": false, + "isSlot": false, + "src": "9679:3:42", + "valueSize": 1 + }, + { + "declaration": 17949, + "isOffset": false, + "isSlot": false, + "src": "9049:11:42", + "valueSize": 1 + }, + { + "declaration": 17949, + "isOffset": false, + "isSlot": false, + "src": "9120:11:42", + "valueSize": 1 + }, + { + "declaration": 17949, + "isOffset": false, + "isSlot": false, + "src": "9192:11:42", + "valueSize": 1 + }, + { + "declaration": 17949, + "isOffset": false, + "isSlot": false, + "src": "9264:11:42", + "valueSize": 1 + }, + { + "declaration": 17949, + "isOffset": false, + "isSlot": false, + "src": "9336:11:42", + "valueSize": 1 + }, + { + "declaration": 17949, + "isOffset": false, + "isSlot": false, + "src": "9409:11:42", + "valueSize": 1 + }, + { + "declaration": 17949, + "isOffset": false, + "isSlot": false, + "src": "9482:11:42", + "valueSize": 1 + }, + { + "declaration": 17949, + "isOffset": false, + "isSlot": false, + "src": "9555:11:42", + "valueSize": 1 + }, + { + "declaration": 17949, + "isOffset": false, + "isSlot": false, + "src": "9684:11:42", + "valueSize": 1 + }, + { + "declaration": 17829, + "isOffset": false, + "isSlot": false, + "src": "7597:6:42", + "valueSize": 1 + }, + { + "declaration": 17832, + "isOffset": false, + "isSlot": false, + "src": "7649:6:42", + "valueSize": 1 + }, + { + "declaration": 17835, + "isOffset": false, + "isSlot": false, + "src": "7727:6:42", + "valueSize": 1 + }, + { + "declaration": 17838, + "isOffset": false, + "isSlot": false, + "src": "7779:6:42", + "valueSize": 1 + }, + { + "declaration": 17841, + "isOffset": false, + "isSlot": false, + "src": "7831:6:42", + "valueSize": 1 + }, + { + "declaration": 17844, + "isOffset": false, + "isSlot": false, + "src": "7883:6:42", + "valueSize": 1 + }, + { + "declaration": 17859, + "isOffset": false, + "isSlot": false, + "src": "8525:7:42", + "valueSize": 1 + }, + { + "declaration": 17862, + "isOffset": false, + "isSlot": false, + "src": "8578:7:42", + "valueSize": 1 + }, + { + "declaration": 17865, + "isOffset": false, + "isSlot": false, + "src": "8631:7:42", + "valueSize": 1 + }, + { + "declaration": 17868, + "isOffset": false, + "isSlot": false, + "src": "8684:7:42", + "valueSize": 1 + }, + { + "declaration": 17847, + "isOffset": false, + "isSlot": false, + "src": "8131:7:42", + "valueSize": 1 + }, + { + "declaration": 17850, + "isOffset": false, + "isSlot": false, + "src": "8184:7:42", + "valueSize": 1 + }, + { + "declaration": 17853, + "isOffset": false, + "isSlot": false, + "src": "8237:7:42", + "valueSize": 1 + }, + { + "declaration": 17856, + "isOffset": false, + "isSlot": false, + "src": "8290:7:42", + "valueSize": 1 + }, + { + "declaration": 17931, + "isOffset": false, + "isSlot": false, + "src": "8933:8:42", + "valueSize": 1 + }, + { + "declaration": 17928, + "isOffset": false, + "isSlot": false, + "src": "6085:8:42", + "valueSize": 1 + }, + { + "declaration": 17925, + "isOffset": false, + "isSlot": false, + "src": "6133:3:42", + "valueSize": 1 + }, + { + "declaration": 17925, + "isOffset": false, + "isSlot": false, + "src": "7976:3:42", + "valueSize": 1 + }, + { + "declaration": 17925, + "isOffset": false, + "isSlot": false, + "src": "8047:3:42", + "valueSize": 1 + }, + { + "declaration": 17826, + "isOffset": false, + "isSlot": false, + "src": "7196:1:42", + "valueSize": 1 + }, + { + "declaration": 17826, + "isOffset": false, + "isSlot": false, + "src": "7227:1:42", + "valueSize": 1 + }, + { + "declaration": 17823, + "isOffset": false, + "isSlot": false, + "src": "5018:1:42", + "valueSize": 1 + } + ], + "id": 17954, + "nodeType": "InlineAssembly", + "src": "4938:4836:42" + } + ] + }, + "functionSelector": "c9219a7a", + "id": 17956, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyProof", + "nameLocation": "4790:11:42", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 17950, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17935, + "mutability": "mutable", + "name": "_pA", + "nameLocation": "4819:3:42", + "nodeType": "VariableDeclaration", + "scope": 17956, + "src": "4802:20:42", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 17932, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4802:4:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17934, + "length": { + "hexValue": "32", + "id": 17933, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4807:1:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4802:7:42", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17941, + "mutability": "mutable", + "name": "_pB", + "nameLocation": "4844:3:42", + "nodeType": "VariableDeclaration", + "scope": 17956, + "src": "4824:23:42", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptr", + "typeString": "uint256[2][2]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 17936, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4824:4:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17938, + "length": { + "hexValue": "32", + "id": 17937, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4829:1:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4824:7:42", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "id": 17940, + "length": { + "hexValue": "32", + "id": 17939, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4832:1:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4824:10:42", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17945, + "mutability": "mutable", + "name": "_pC", + "nameLocation": "4866:3:42", + "nodeType": "VariableDeclaration", + "scope": 17956, + "src": "4849:20:42", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 17942, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4849:4:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17944, + "length": { + "hexValue": "32", + "id": 17943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4854:1:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4849:7:42", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17949, + "mutability": "mutable", + "name": "_pubSignals", + "nameLocation": "4888:11:42", + "nodeType": "VariableDeclaration", + "scope": 17956, + "src": "4871:28:42", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8]" + }, + "typeName": { + "baseType": { + "id": 17946, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4871:4:42", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 17948, + "length": { + "hexValue": "38", + "id": 17947, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4876:1:42", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "nodeType": "ArrayTypeName", + "src": "4871:7:42", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", + "typeString": "uint256[8]" + } + }, + "visibility": "internal" + } + ], + "src": "4801:99:42" + }, + "returnParameters": { + "id": 17953, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 17952, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 17956, + "src": "4922:4:42", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 17951, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4922:4:42", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4921:6:42" + }, + "scope": 17957, + "src": "4781:5000:42", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 17958, + "src": "831:8953:42", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "798:8987:42" + }, + "id": 42 + }, + "contracts/verifiers/idcard/Verifier_idcard_sha384.sol": { + "ast": { + "absolutePath": "contracts/verifiers/idcard/Verifier_idcard_sha384.sol", + "exportedSymbols": { + "Verifier_idcard_sha384": [ + 18096 + ] + }, + "id": 18097, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 17959, + "literals": [ + "solidity", + ">=", + "0.7", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "798:31:43" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Verifier_idcard_sha384", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 18096, + "linearizedBaseContracts": [ + 18096 + ], + "name": "Verifier_idcard_sha384", + "nameLocation": "840:22:43", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 17962, + "mutability": "constant", + "name": "r", + "nameLocation": "911:1:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "894:101:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17960, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "894:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137", + "id": 17961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "918:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1", + "typeString": "int_const 2188...(69 digits omitted)...5617" + }, + "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17965, + "mutability": "constant", + "name": "q", + "nameLocation": "1041:1:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "1024:100:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17963, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1024:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833", + "id": 17964, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1047:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1", + "typeString": "int_const 2188...(69 digits omitted)...8583" + }, + "value": "21888242871839275222246405745257275088696311157297823662689037894645226208583" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17968, + "mutability": "constant", + "name": "alphax", + "nameLocation": "1177:6:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "1160:104:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1160:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3230343931313932383035333930343835323939313533303039373733353934353334393430313839323631383636323238343437393138303638363538343731393730343831373633303432", + "id": 17967, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1187:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_20491192805390485299153009773594534940189261866228447918068658471970481763042_by_1", + "typeString": "int_const 2049...(69 digits omitted)...3042" + }, + "value": "20491192805390485299153009773594534940189261866228447918068658471970481763042" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17971, + "mutability": "constant", + "name": "alphay", + "nameLocation": "1287:6:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "1270:103:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1270:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "39333833343835333633303533323930323030393138333437313536313537383336353636353632393637393934303339373132323733343439393032363231323636313738353435393538", + "id": 17970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1297:76:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_9383485363053290200918347156157836566562967994039712273449902621266178545958_by_1", + "typeString": "int_const 9383...(68 digits omitted)...5958" + }, + "value": "9383485363053290200918347156157836566562967994039712273449902621266178545958" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17974, + "mutability": "constant", + "name": "betax1", + "nameLocation": "1396:6:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "1379:103:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1379:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34323532383232383738373538333030383539313233383937393831343530353931333533353333303733343133313937373731373638363531343432363635373532323539333937313332", + "id": 17973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1406:76:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_4252822878758300859123897981450591353533073413197771768651442665752259397132_by_1", + "typeString": "int_const 4252...(68 digits omitted)...7132" + }, + "value": "4252822878758300859123897981450591353533073413197771768651442665752259397132" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17977, + "mutability": "constant", + "name": "betax2", + "nameLocation": "1505:6:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "1488:103:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17975, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1488:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "36333735363134333531363838373235323036343033393438323632383638393632373933363235373434303433373934333035373135323232303131353238343539363536373338373331", + "id": 17976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1515:76:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_6375614351688725206403948262868962793625744043794305715222011528459656738731_by_1", + "typeString": "int_const 6375...(68 digits omitted)...8731" + }, + "value": "6375614351688725206403948262868962793625744043794305715222011528459656738731" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17980, + "mutability": "constant", + "name": "betay1", + "nameLocation": "1614:6:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "1597:104:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17978, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1597:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383437303335313035353238373435343033323838323332363931313437353834373238313931313632373332323939383635333338333737313539363932333530303539313336363739", + "id": 17979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1624:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_21847035105528745403288232691147584728191162732299865338377159692350059136679_by_1", + "typeString": "int_const 2184...(69 digits omitted)...6679" + }, + "value": "21847035105528745403288232691147584728191162732299865338377159692350059136679" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17983, + "mutability": "constant", + "name": "betay2", + "nameLocation": "1724:6:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "1707:104:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17981, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1707:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130353035323432363236333730323632323737353532393031303832303934333536363937343039383335363830323230353930393731383733313731313430333731333331323036383536", + "id": 17982, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1734:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_10505242626370262277552901082094356697409835680220590971873171140371331206856_by_1", + "typeString": "int_const 1050...(69 digits omitted)...6856" + }, + "value": "10505242626370262277552901082094356697409835680220590971873171140371331206856" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17986, + "mutability": "constant", + "name": "gammax1", + "nameLocation": "1834:7:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "1817:104:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17984, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1817:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334", + "id": 17985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1844:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1", + "typeString": "int_const 1155...(69 digits omitted)...5634" + }, + "value": "11559732032986387107991004021392285783925812861821192530917403151452391805634" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17989, + "mutability": "constant", + "name": "gammax2", + "nameLocation": "1944:7:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "1927:104:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17987, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1927:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831", + "id": 17988, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1954:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1", + "typeString": "int_const 1085...(69 digits omitted)...2781" + }, + "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17992, + "mutability": "constant", + "name": "gammay1", + "nameLocation": "2054:7:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "2037:103:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17990, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2037:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331", + "id": 17991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2064:76:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1", + "typeString": "int_const 4082...(68 digits omitted)...3531" + }, + "value": "4082367875863433681332203403145435568316851327593401208105741076214120093531" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17995, + "mutability": "constant", + "name": "gammay2", + "nameLocation": "2163:7:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "2146:103:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17993, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2146:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330", + "id": 17994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2173:76:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1", + "typeString": "int_const 8495...(68 digits omitted)...1930" + }, + "value": "8495653923123431417604973247489272438418190587263600148770280649306958101930" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 17998, + "mutability": "constant", + "name": "deltax1", + "nameLocation": "2272:7:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "2255:104:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2255:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3139363535323637383632373033323332303133383239353538343335313435303435383730383433393736393330333137353930333032383234303635313436383433333936373933323837", + "id": 17997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2282:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_19655267862703232013829558435145045870843976930317590302824065146843396793287_by_1", + "typeString": "int_const 1965...(69 digits omitted)...3287" + }, + "value": "19655267862703232013829558435145045870843976930317590302824065146843396793287" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18001, + "mutability": "constant", + "name": "deltax2", + "nameLocation": "2382:7:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "2365:104:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2365:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3134313935353439313235373130353531323834363036313435313735373337353330343738353238373433393236383939353731303233323630383833323535373136373631353934333935", + "id": 18000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2392:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_14195549125710551284606145175737530478528743926899571023260883255716761594395_by_1", + "typeString": "int_const 1419...(69 digits omitted)...4395" + }, + "value": "14195549125710551284606145175737530478528743926899571023260883255716761594395" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18004, + "mutability": "constant", + "name": "deltay1", + "nameLocation": "2492:7:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "2475:104:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18002, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2475:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3132333531353036333531373939383139323639373033333039343439363330363531313935373432373533323830353334383335303737313035333839353339343631373135333732373736", + "id": 18003, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2502:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_12351506351799819269703309449630651195742753280534835077105389539461715372776_by_1", + "typeString": "int_const 1235...(69 digits omitted)...2776" + }, + "value": "12351506351799819269703309449630651195742753280534835077105389539461715372776" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18007, + "mutability": "constant", + "name": "deltay2", + "nameLocation": "2602:7:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "2585:103:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18005, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2585:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "37373537343637323332323033343439333939393332393038343233343036303037323435323633333532383238343131383830323039363433323536303537313834363533303137393637", + "id": 18006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2612:76:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_7757467232203449399932908423406007245263352828411880209643256057184653017967_by_1", + "typeString": "int_const 7757...(68 digits omitted)...7967" + }, + "value": "7757467232203449399932908423406007245263352828411880209643256057184653017967" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18010, + "mutability": "constant", + "name": "IC0x", + "nameLocation": "2717:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "2700:101:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2700:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3131323730313838343432363135313130303534353932393035363835333033383636303730323131333731353631383935313532383238313238363133393739323438303535333038343330", + "id": 18009, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2724:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_11270188442615110054592905685303866070211371561895152828128613979248055308430_by_1", + "typeString": "int_const 1127...(69 digits omitted)...8430" + }, + "value": "11270188442615110054592905685303866070211371561895152828128613979248055308430" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18013, + "mutability": "constant", + "name": "IC0y", + "nameLocation": "2824:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "2807:101:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18011, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2807:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3137303934383238303432303632353034363532363139323332393731343434343431323834363330393135313031373737303239343036393131353734323331393931353836333336373234", + "id": 18012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2831:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_17094828042062504652619232971444441284630915101777029406911574231991586336724_by_1", + "typeString": "int_const 1709...(69 digits omitted)...6724" + }, + "value": "17094828042062504652619232971444441284630915101777029406911574231991586336724" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18016, + "mutability": "constant", + "name": "IC1x", + "nameLocation": "2936:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "2919:101:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18014, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2919:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3138373531363931383439333830343334373539373432313233313532373932323339353036303833313531343938353633393333393734303932333039323430323835373334343337313838", + "id": 18015, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2943:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_18751691849380434759742123152792239506083151498563933974092309240285734437188_by_1", + "typeString": "int_const 1875...(69 digits omitted)...7188" + }, + "value": "18751691849380434759742123152792239506083151498563933974092309240285734437188" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18019, + "mutability": "constant", + "name": "IC1y", + "nameLocation": "3043:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "3026:98:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18017, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3026:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3230303439363838333938393839363732383738363139313137353734353436393132313431303030373536313338343233323534383330363232303935353735363530323039353231", + "id": 18018, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3050:74:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_20049688398989672878619117574546912141000756138423254830622095575650209521_by_1", + "typeString": "int_const 2004...(66 digits omitted)...9521" + }, + "value": "20049688398989672878619117574546912141000756138423254830622095575650209521" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18022, + "mutability": "constant", + "name": "IC2x", + "nameLocation": "3152:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "3135:100:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3135:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "35393338333932333237333938333030383034393836353435303236353036313935373438363138303638363831343734353330343139363736383535333339303531373234333534363831", + "id": 18021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3159:76:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_5938392327398300804986545026506195748618068681474530419676855339051724354681_by_1", + "typeString": "int_const 5938...(68 digits omitted)...4681" + }, + "value": "5938392327398300804986545026506195748618068681474530419676855339051724354681" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18025, + "mutability": "constant", + "name": "IC2y", + "nameLocation": "3258:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "3241:100:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18023, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3241:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "38343936313733323031393732303535333030343933303732393734373437373330343032303434373934363134303231303333393031323530303235383136303936353833353331343931", + "id": 18024, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3265:76:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_8496173201972055300493072974747730402044794614021033901250025816096583531491_by_1", + "typeString": "int_const 8496...(68 digits omitted)...1491" + }, + "value": "8496173201972055300493072974747730402044794614021033901250025816096583531491" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18028, + "mutability": "constant", + "name": "IC3x", + "nameLocation": "3369:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "3352:101:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18026, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3352:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3138303030323332343835363035393533343439303638353838363935383932303730363936393032383037303634333935313437323731303538373632303037313035303139313236333334", + "id": 18027, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3376:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_18000232485605953449068588695892070696902807064395147271058762007105019126334_by_1", + "typeString": "int_const 1800...(69 digits omitted)...6334" + }, + "value": "18000232485605953449068588695892070696902807064395147271058762007105019126334" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18031, + "mutability": "constant", + "name": "IC3y", + "nameLocation": "3476:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "3459:101:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18029, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3459:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3133393233313535323731373431353232353339343034333235393636313233393337393730333635343434353337373235333733363535323535333838383533383837313431373938353632", + "id": 18030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3483:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_13923155271741522539404325966123937970365444537725373655255388853887141798562_by_1", + "typeString": "int_const 1392...(69 digits omitted)...8562" + }, + "value": "13923155271741522539404325966123937970365444537725373655255388853887141798562" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18034, + "mutability": "constant", + "name": "IC4x", + "nameLocation": "3588:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "3571:101:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18032, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3571:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3138303130343436383933313935353132353739373539363239333938383537383031303036303532393331393131353731363431353834363532313335383431373638393932303032363934", + "id": 18033, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3595:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_18010446893195512579759629398857801006052931911571641584652135841768992002694_by_1", + "typeString": "int_const 1801...(69 digits omitted)...2694" + }, + "value": "18010446893195512579759629398857801006052931911571641584652135841768992002694" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18037, + "mutability": "constant", + "name": "IC4y", + "nameLocation": "3695:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "3678:100:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18035, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3678:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "38323736363230323838323838383935333934303933353432353234333437393532363134333434353832383234303432383133333835313439363433333534323338393937383533343536", + "id": 18036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3702:76:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_8276620288288895394093542524347952614344582824042813385149643354238997853456_by_1", + "typeString": "int_const 8276...(68 digits omitted)...3456" + }, + "value": "8276620288288895394093542524347952614344582824042813385149643354238997853456" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18040, + "mutability": "constant", + "name": "IC5x", + "nameLocation": "3806:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "3789:100:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18038, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3789:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31373732323030323230323033393136343431393338393938373639353230313137353432303136313938323738333635353238353232393832383934393932333832363230343334303530", + "id": 18039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3813:76:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_1772200220203916441938998769520117542016198278365528522982894992382620434050_by_1", + "typeString": "int_const 1772...(68 digits omitted)...4050" + }, + "value": "1772200220203916441938998769520117542016198278365528522982894992382620434050" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18043, + "mutability": "constant", + "name": "IC5y", + "nameLocation": "3912:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "3895:101:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18041, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3895:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130373633323533323732353435373830303132323835353733363532373131383232383630353030393237333931383731353332353038383332333439313735373939373032393537383939", + "id": 18042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3919:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_10763253272545780012285573652711822860500927391871532508832349175799702957899_by_1", + "typeString": "int_const 1076...(69 digits omitted)...7899" + }, + "value": "10763253272545780012285573652711822860500927391871532508832349175799702957899" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18046, + "mutability": "constant", + "name": "IC6x", + "nameLocation": "4024:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "4007:100:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4007:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "32383435313636353630373739353130383330383335393934313138303530303431383236383230303634363538353733343233373433343333383030393236313831303839383630383636", + "id": 18045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4031:76:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_2845166560779510830835994118050041826820064658573423743433800926181089860866_by_1", + "typeString": "int_const 2845...(68 digits omitted)...0866" + }, + "value": "2845166560779510830835994118050041826820064658573423743433800926181089860866" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18049, + "mutability": "constant", + "name": "IC6y", + "nameLocation": "4130:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "4113:101:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4113:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3131323131353133343231313139323731313234313436343535383437353135393937383333373237383933373636353037353434373232383935323635313136383539373736343439373135", + "id": 18048, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4137:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_11211513421119271124146455847515997833727893766507544722895265116859776449715_by_1", + "typeString": "int_const 1121...(69 digits omitted)...9715" + }, + "value": "11211513421119271124146455847515997833727893766507544722895265116859776449715" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18052, + "mutability": "constant", + "name": "IC7x", + "nameLocation": "4242:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "4225:101:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18050, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4225:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3230313434383435323638323232343232343935353339393037373230363537393738393433343435303635383936363233353836313233313939373333313539303438333236393939373630", + "id": 18051, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4249:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_20144845268222422495539907720657978943445065896623586123199733159048326999760_by_1", + "typeString": "int_const 2014...(69 digits omitted)...9760" + }, + "value": "20144845268222422495539907720657978943445065896623586123199733159048326999760" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18055, + "mutability": "constant", + "name": "IC7y", + "nameLocation": "4349:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "4332:101:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18053, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4332:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3139373138343633323838363538303830393139383033373332343439333030313030353639363037303334343438303232313738303835333837313030373936323538363236323938373834", + "id": 18054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4356:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_19718463288658080919803732449300100569607034448022178085387100796258626298784_by_1", + "typeString": "int_const 1971...(69 digits omitted)...8784" + }, + "value": "19718463288658080919803732449300100569607034448022178085387100796258626298784" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18058, + "mutability": "constant", + "name": "IC8x", + "nameLocation": "4461:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "4444:100:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18056, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4444:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "37303538343832343831383035353534313338323035383531323939363739333039313638333136363533343131383234383337373235323336323730313832303537363834383930323339", + "id": 18057, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4468:76:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_7058482481805554138205851299679309168316653411824837725236270182057684890239_by_1", + "typeString": "int_const 7058...(68 digits omitted)...0239" + }, + "value": "7058482481805554138205851299679309168316653411824837725236270182057684890239" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18061, + "mutability": "constant", + "name": "IC8y", + "nameLocation": "4567:4:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "4550:101:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18059, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4550:7:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130383936343735353730353738313938343535383130303135353136373930383930383435333132393336333132353839343935373236393639373030363031313639333739383533333738", + "id": 18060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4574:77:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_10896475570578198455810015516790890845312936312589495726969700601169379853378_by_1", + "typeString": "int_const 1089...(69 digits omitted)...3378" + }, + "value": "10896475570578198455810015516790890845312936312589495726969700601169379853378" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18064, + "mutability": "constant", + "name": "pVk", + "nameLocation": "4699:3:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "4683:23:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 18062, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4683:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "30", + "id": 18063, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4705:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18067, + "mutability": "constant", + "name": "pPairing", + "nameLocation": "4728:8:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "4712:30:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 18065, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4712:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "313238", + "id": 18066, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4739:3:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18070, + "mutability": "constant", + "name": "pLastMem", + "nameLocation": "4765:8:43", + "nodeType": "VariableDeclaration", + "scope": 18096, + "src": "4749:30:43", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 18068, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4749:6:43", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "383936", + "id": 18069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4776:3:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_896_by_1", + "typeString": "int_const 896" + }, + "value": "896" + }, + "visibility": "internal" + }, + { + "body": { + "id": 18094, + "nodeType": "Block", + "src": "4933:4853:43", + "statements": [ + { + "AST": { + "nativeSrc": "4952:4827:43", + "nodeType": "YulBlock", + "src": "4952:4827:43", + "statements": [ + { + "body": { + "nativeSrc": "4989:140:43", + "nodeType": "YulBlock", + "src": "4989:140:43", + "statements": [ + { + "body": { + "nativeSrc": "5027:88:43", + "nodeType": "YulBlock", + "src": "5027:88:43", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5056:1:43", + "nodeType": "YulLiteral", + "src": "5056:1:43", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5059:1:43", + "nodeType": "YulLiteral", + "src": "5059:1:43", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5049:6:43", + "nodeType": "YulIdentifier", + "src": "5049:6:43" + }, + "nativeSrc": "5049:12:43", + "nodeType": "YulFunctionCall", + "src": "5049:12:43" + }, + "nativeSrc": "5049:12:43", + "nodeType": "YulExpressionStatement", + "src": "5049:12:43" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5089:1:43", + "nodeType": "YulLiteral", + "src": "5089:1:43", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5092:4:43", + "nodeType": "YulLiteral", + "src": "5092:4:43", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "5082:6:43", + "nodeType": "YulIdentifier", + "src": "5082:6:43" + }, + "nativeSrc": "5082:15:43", + "nodeType": "YulFunctionCall", + "src": "5082:15:43" + }, + "nativeSrc": "5082:15:43", + "nodeType": "YulExpressionStatement", + "src": "5082:15:43" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "v", + "nativeSrc": "5020:1:43", + "nodeType": "YulIdentifier", + "src": "5020:1:43" + }, + { + "name": "r", + "nativeSrc": "5023:1:43", + "nodeType": "YulIdentifier", + "src": "5023:1:43" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5017:2:43", + "nodeType": "YulIdentifier", + "src": "5017:2:43" + }, + "nativeSrc": "5017:8:43", + "nodeType": "YulFunctionCall", + "src": "5017:8:43" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5010:6:43", + "nodeType": "YulIdentifier", + "src": "5010:6:43" + }, + "nativeSrc": "5010:16:43", + "nodeType": "YulFunctionCall", + "src": "5010:16:43" + }, + "nativeSrc": "5007:108:43", + "nodeType": "YulIf", + "src": "5007:108:43" + } + ] + }, + "name": "checkField", + "nativeSrc": "4966:163:43", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "v", + "nativeSrc": "4986:1:43", + "nodeType": "YulTypedName", + "src": "4986:1:43", + "type": "" + } + ], + "src": "4966:163:43" + }, + { + "body": { + "nativeSrc": "5266:705:43", + "nodeType": "YulBlock", + "src": "5266:705:43", + "statements": [ + { + "nativeSrc": "5284:11:43", + "nodeType": "YulVariableDeclaration", + "src": "5284:11:43", + "variables": [ + { + "name": "success", + "nativeSrc": "5288:7:43", + "nodeType": "YulTypedName", + "src": "5288:7:43", + "type": "" + } + ] + }, + { + "nativeSrc": "5312:22:43", + "nodeType": "YulVariableDeclaration", + "src": "5312:22:43", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5329:4:43", + "nodeType": "YulLiteral", + "src": "5329:4:43", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5323:5:43", + "nodeType": "YulIdentifier", + "src": "5323:5:43" + }, + "nativeSrc": "5323:11:43", + "nodeType": "YulFunctionCall", + "src": "5323:11:43" + }, + "variables": [ + { + "name": "mIn", + "nativeSrc": "5316:3:43", + "nodeType": "YulTypedName", + "src": "5316:3:43", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5358:3:43", + "nodeType": "YulIdentifier", + "src": "5358:3:43" + }, + { + "name": "x", + "nativeSrc": "5363:1:43", + "nodeType": "YulIdentifier", + "src": "5363:1:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5351:6:43", + "nodeType": "YulIdentifier", + "src": "5351:6:43" + }, + "nativeSrc": "5351:14:43", + "nodeType": "YulFunctionCall", + "src": "5351:14:43" + }, + "nativeSrc": "5351:14:43", + "nodeType": "YulExpressionStatement", + "src": "5351:14:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5393:3:43", + "nodeType": "YulIdentifier", + "src": "5393:3:43" + }, + { + "kind": "number", + "nativeSrc": "5398:2:43", + "nodeType": "YulLiteral", + "src": "5398:2:43", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5389:3:43", + "nodeType": "YulIdentifier", + "src": "5389:3:43" + }, + "nativeSrc": "5389:12:43", + "nodeType": "YulFunctionCall", + "src": "5389:12:43" + }, + { + "name": "y", + "nativeSrc": "5403:1:43", + "nodeType": "YulIdentifier", + "src": "5403:1:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5382:6:43", + "nodeType": "YulIdentifier", + "src": "5382:6:43" + }, + "nativeSrc": "5382:23:43", + "nodeType": "YulFunctionCall", + "src": "5382:23:43" + }, + "nativeSrc": "5382:23:43", + "nodeType": "YulExpressionStatement", + "src": "5382:23:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5433:3:43", + "nodeType": "YulIdentifier", + "src": "5433:3:43" + }, + { + "kind": "number", + "nativeSrc": "5438:2:43", + "nodeType": "YulLiteral", + "src": "5438:2:43", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5429:3:43", + "nodeType": "YulIdentifier", + "src": "5429:3:43" + }, + "nativeSrc": "5429:12:43", + "nodeType": "YulFunctionCall", + "src": "5429:12:43" + }, + { + "name": "s", + "nativeSrc": "5443:1:43", + "nodeType": "YulIdentifier", + "src": "5443:1:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5422:6:43", + "nodeType": "YulIdentifier", + "src": "5422:6:43" + }, + "nativeSrc": "5422:23:43", + "nodeType": "YulFunctionCall", + "src": "5422:23:43" + }, + "nativeSrc": "5422:23:43", + "nodeType": "YulExpressionStatement", + "src": "5422:23:43" + }, + { + "nativeSrc": "5463:60:43", + "nodeType": "YulAssignment", + "src": "5463:60:43", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "5489:3:43", + "nodeType": "YulIdentifier", + "src": "5489:3:43" + }, + "nativeSrc": "5489:5:43", + "nodeType": "YulFunctionCall", + "src": "5489:5:43" + }, + { + "kind": "number", + "nativeSrc": "5496:4:43", + "nodeType": "YulLiteral", + "src": "5496:4:43", + "type": "", + "value": "2000" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5485:3:43", + "nodeType": "YulIdentifier", + "src": "5485:3:43" + }, + "nativeSrc": "5485:16:43", + "nodeType": "YulFunctionCall", + "src": "5485:16:43" + }, + { + "kind": "number", + "nativeSrc": "5503:1:43", + "nodeType": "YulLiteral", + "src": "5503:1:43", + "type": "", + "value": "7" + }, + { + "name": "mIn", + "nativeSrc": "5506:3:43", + "nodeType": "YulIdentifier", + "src": "5506:3:43" + }, + { + "kind": "number", + "nativeSrc": "5511:2:43", + "nodeType": "YulLiteral", + "src": "5511:2:43", + "type": "", + "value": "96" + }, + { + "name": "mIn", + "nativeSrc": "5515:3:43", + "nodeType": "YulIdentifier", + "src": "5515:3:43" + }, + { + "kind": "number", + "nativeSrc": "5520:2:43", + "nodeType": "YulLiteral", + "src": "5520:2:43", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "5474:10:43", + "nodeType": "YulIdentifier", + "src": "5474:10:43" + }, + "nativeSrc": "5474:49:43", + "nodeType": "YulFunctionCall", + "src": "5474:49:43" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "5463:7:43", + "nodeType": "YulIdentifier", + "src": "5463:7:43" + } + ] + }, + { + "body": { + "nativeSrc": "5560:88:43", + "nodeType": "YulBlock", + "src": "5560:88:43", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5589:1:43", + "nodeType": "YulLiteral", + "src": "5589:1:43", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5592:1:43", + "nodeType": "YulLiteral", + "src": "5592:1:43", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5582:6:43", + "nodeType": "YulIdentifier", + "src": "5582:6:43" + }, + "nativeSrc": "5582:12:43", + "nodeType": "YulFunctionCall", + "src": "5582:12:43" + }, + "nativeSrc": "5582:12:43", + "nodeType": "YulExpressionStatement", + "src": "5582:12:43" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5622:1:43", + "nodeType": "YulLiteral", + "src": "5622:1:43", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5625:4:43", + "nodeType": "YulLiteral", + "src": "5625:4:43", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "5615:6:43", + "nodeType": "YulIdentifier", + "src": "5615:6:43" + }, + "nativeSrc": "5615:15:43", + "nodeType": "YulFunctionCall", + "src": "5615:15:43" + }, + "nativeSrc": "5615:15:43", + "nodeType": "YulExpressionStatement", + "src": "5615:15:43" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "success", + "nativeSrc": "5551:7:43", + "nodeType": "YulIdentifier", + "src": "5551:7:43" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5544:6:43", + "nodeType": "YulIdentifier", + "src": "5544:6:43" + }, + "nativeSrc": "5544:15:43", + "nodeType": "YulFunctionCall", + "src": "5544:15:43" + }, + "nativeSrc": "5541:107:43", + "nodeType": "YulIf", + "src": "5541:107:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5677:3:43", + "nodeType": "YulIdentifier", + "src": "5677:3:43" + }, + { + "kind": "number", + "nativeSrc": "5682:2:43", + "nodeType": "YulLiteral", + "src": "5682:2:43", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5673:3:43", + "nodeType": "YulIdentifier", + "src": "5673:3:43" + }, + "nativeSrc": "5673:12:43", + "nodeType": "YulFunctionCall", + "src": "5673:12:43" + }, + { + "arguments": [ + { + "name": "pR", + "nativeSrc": "5693:2:43", + "nodeType": "YulIdentifier", + "src": "5693:2:43" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5687:5:43", + "nodeType": "YulIdentifier", + "src": "5687:5:43" + }, + "nativeSrc": "5687:9:43", + "nodeType": "YulFunctionCall", + "src": "5687:9:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5666:6:43", + "nodeType": "YulIdentifier", + "src": "5666:6:43" + }, + "nativeSrc": "5666:31:43", + "nodeType": "YulFunctionCall", + "src": "5666:31:43" + }, + "nativeSrc": "5666:31:43", + "nodeType": "YulExpressionStatement", + "src": "5666:31:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5725:3:43", + "nodeType": "YulIdentifier", + "src": "5725:3:43" + }, + { + "kind": "number", + "nativeSrc": "5730:2:43", + "nodeType": "YulLiteral", + "src": "5730:2:43", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5721:3:43", + "nodeType": "YulIdentifier", + "src": "5721:3:43" + }, + "nativeSrc": "5721:12:43", + "nodeType": "YulFunctionCall", + "src": "5721:12:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pR", + "nativeSrc": "5745:2:43", + "nodeType": "YulIdentifier", + "src": "5745:2:43" + }, + { + "kind": "number", + "nativeSrc": "5749:2:43", + "nodeType": "YulLiteral", + "src": "5749:2:43", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5741:3:43", + "nodeType": "YulIdentifier", + "src": "5741:3:43" + }, + "nativeSrc": "5741:11:43", + "nodeType": "YulFunctionCall", + "src": "5741:11:43" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5735:5:43", + "nodeType": "YulIdentifier", + "src": "5735:5:43" + }, + "nativeSrc": "5735:18:43", + "nodeType": "YulFunctionCall", + "src": "5735:18:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5714:6:43", + "nodeType": "YulIdentifier", + "src": "5714:6:43" + }, + "nativeSrc": "5714:40:43", + "nodeType": "YulFunctionCall", + "src": "5714:40:43" + }, + "nativeSrc": "5714:40:43", + "nodeType": "YulExpressionStatement", + "src": "5714:40:43" + }, + { + "nativeSrc": "5772:60:43", + "nodeType": "YulAssignment", + "src": "5772:60:43", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "5798:3:43", + "nodeType": "YulIdentifier", + "src": "5798:3:43" + }, + "nativeSrc": "5798:5:43", + "nodeType": "YulFunctionCall", + "src": "5798:5:43" + }, + { + "kind": "number", + "nativeSrc": "5805:4:43", + "nodeType": "YulLiteral", + "src": "5805:4:43", + "type": "", + "value": "2000" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5794:3:43", + "nodeType": "YulIdentifier", + "src": "5794:3:43" + }, + "nativeSrc": "5794:16:43", + "nodeType": "YulFunctionCall", + "src": "5794:16:43" + }, + { + "kind": "number", + "nativeSrc": "5812:1:43", + "nodeType": "YulLiteral", + "src": "5812:1:43", + "type": "", + "value": "6" + }, + { + "name": "mIn", + "nativeSrc": "5815:3:43", + "nodeType": "YulIdentifier", + "src": "5815:3:43" + }, + { + "kind": "number", + "nativeSrc": "5820:3:43", + "nodeType": "YulLiteral", + "src": "5820:3:43", + "type": "", + "value": "128" + }, + { + "name": "pR", + "nativeSrc": "5825:2:43", + "nodeType": "YulIdentifier", + "src": "5825:2:43" + }, + { + "kind": "number", + "nativeSrc": "5829:2:43", + "nodeType": "YulLiteral", + "src": "5829:2:43", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "5783:10:43", + "nodeType": "YulIdentifier", + "src": "5783:10:43" + }, + "nativeSrc": "5783:49:43", + "nodeType": "YulFunctionCall", + "src": "5783:49:43" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "5772:7:43", + "nodeType": "YulIdentifier", + "src": "5772:7:43" + } + ] + }, + { + "body": { + "nativeSrc": "5869:88:43", + "nodeType": "YulBlock", + "src": "5869:88:43", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5898:1:43", + "nodeType": "YulLiteral", + "src": "5898:1:43", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5901:1:43", + "nodeType": "YulLiteral", + "src": "5901:1:43", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5891:6:43", + "nodeType": "YulIdentifier", + "src": "5891:6:43" + }, + "nativeSrc": "5891:12:43", + "nodeType": "YulFunctionCall", + "src": "5891:12:43" + }, + "nativeSrc": "5891:12:43", + "nodeType": "YulExpressionStatement", + "src": "5891:12:43" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5931:1:43", + "nodeType": "YulLiteral", + "src": "5931:1:43", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5934:4:43", + "nodeType": "YulLiteral", + "src": "5934:4:43", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "5924:6:43", + "nodeType": "YulIdentifier", + "src": "5924:6:43" + }, + "nativeSrc": "5924:15:43", + "nodeType": "YulFunctionCall", + "src": "5924:15:43" + }, + "nativeSrc": "5924:15:43", + "nodeType": "YulExpressionStatement", + "src": "5924:15:43" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "success", + "nativeSrc": "5860:7:43", + "nodeType": "YulIdentifier", + "src": "5860:7:43" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5853:6:43", + "nodeType": "YulIdentifier", + "src": "5853:6:43" + }, + "nativeSrc": "5853:15:43", + "nodeType": "YulFunctionCall", + "src": "5853:15:43" + }, + "nativeSrc": "5850:107:43", + "nodeType": "YulIf", + "src": "5850:107:43" + } + ] + }, + "name": "g1_mulAccC", + "nativeSrc": "5233:738:43", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pR", + "nativeSrc": "5253:2:43", + "nodeType": "YulTypedName", + "src": "5253:2:43", + "type": "" + }, + { + "name": "x", + "nativeSrc": "5257:1:43", + "nodeType": "YulTypedName", + "src": "5257:1:43", + "type": "" + }, + { + "name": "y", + "nativeSrc": "5260:1:43", + "nodeType": "YulTypedName", + "src": "5260:1:43", + "type": "" + }, + { + "name": "s", + "nativeSrc": "5263:1:43", + "nodeType": "YulTypedName", + "src": "5263:1:43", + "type": "" + } + ], + "src": "5233:738:43" + }, + { + "body": { + "nativeSrc": "6045:2820:43", + "nodeType": "YulBlock", + "src": "6045:2820:43", + "statements": [ + { + "nativeSrc": "6063:36:43", + "nodeType": "YulVariableDeclaration", + "src": "6063:36:43", + "value": { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "6084:4:43", + "nodeType": "YulIdentifier", + "src": "6084:4:43" + }, + { + "name": "pPairing", + "nativeSrc": "6090:8:43", + "nodeType": "YulIdentifier", + "src": "6090:8:43" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6080:3:43", + "nodeType": "YulIdentifier", + "src": "6080:3:43" + }, + "nativeSrc": "6080:19:43", + "nodeType": "YulFunctionCall", + "src": "6080:19:43" + }, + "variables": [ + { + "name": "_pPairing", + "nativeSrc": "6067:9:43", + "nodeType": "YulTypedName", + "src": "6067:9:43", + "type": "" + } + ] + }, + { + "nativeSrc": "6116:26:43", + "nodeType": "YulVariableDeclaration", + "src": "6116:26:43", + "value": { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "6132:4:43", + "nodeType": "YulIdentifier", + "src": "6132:4:43" + }, + { + "name": "pVk", + "nativeSrc": "6138:3:43", + "nodeType": "YulIdentifier", + "src": "6138:3:43" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6128:3:43", + "nodeType": "YulIdentifier", + "src": "6128:3:43" + }, + "nativeSrc": "6128:14:43", + "nodeType": "YulFunctionCall", + "src": "6128:14:43" + }, + "variables": [ + { + "name": "_pVk", + "nativeSrc": "6120:4:43", + "nodeType": "YulTypedName", + "src": "6120:4:43", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6167:4:43", + "nodeType": "YulIdentifier", + "src": "6167:4:43" + }, + { + "name": "IC0x", + "nativeSrc": "6173:4:43", + "nodeType": "YulIdentifier", + "src": "6173:4:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6160:6:43", + "nodeType": "YulIdentifier", + "src": "6160:6:43" + }, + "nativeSrc": "6160:18:43", + "nodeType": "YulFunctionCall", + "src": "6160:18:43" + }, + "nativeSrc": "6160:18:43", + "nodeType": "YulExpressionStatement", + "src": "6160:18:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6206:4:43", + "nodeType": "YulIdentifier", + "src": "6206:4:43" + }, + { + "kind": "number", + "nativeSrc": "6212:2:43", + "nodeType": "YulLiteral", + "src": "6212:2:43", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6202:3:43", + "nodeType": "YulIdentifier", + "src": "6202:3:43" + }, + "nativeSrc": "6202:13:43", + "nodeType": "YulFunctionCall", + "src": "6202:13:43" + }, + { + "name": "IC0y", + "nativeSrc": "6217:4:43", + "nodeType": "YulIdentifier", + "src": "6217:4:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6195:6:43", + "nodeType": "YulIdentifier", + "src": "6195:6:43" + }, + "nativeSrc": "6195:27:43", + "nodeType": "YulFunctionCall", + "src": "6195:27:43" + }, + "nativeSrc": "6195:27:43", + "nodeType": "YulExpressionStatement", + "src": "6195:27:43" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6323:4:43", + "nodeType": "YulIdentifier", + "src": "6323:4:43" + }, + { + "name": "IC1x", + "nativeSrc": "6329:4:43", + "nodeType": "YulIdentifier", + "src": "6329:4:43" + }, + { + "name": "IC1y", + "nativeSrc": "6335:4:43", + "nodeType": "YulIdentifier", + "src": "6335:4:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6358:10:43", + "nodeType": "YulIdentifier", + "src": "6358:10:43" + }, + { + "kind": "number", + "nativeSrc": "6370:1:43", + "nodeType": "YulLiteral", + "src": "6370:1:43", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6354:3:43", + "nodeType": "YulIdentifier", + "src": "6354:3:43" + }, + "nativeSrc": "6354:18:43", + "nodeType": "YulFunctionCall", + "src": "6354:18:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6341:12:43", + "nodeType": "YulIdentifier", + "src": "6341:12:43" + }, + "nativeSrc": "6341:32:43", + "nodeType": "YulFunctionCall", + "src": "6341:32:43" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6312:10:43", + "nodeType": "YulIdentifier", + "src": "6312:10:43" + }, + "nativeSrc": "6312:62:43", + "nodeType": "YulFunctionCall", + "src": "6312:62:43" + }, + "nativeSrc": "6312:62:43", + "nodeType": "YulExpressionStatement", + "src": "6312:62:43" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6419:4:43", + "nodeType": "YulIdentifier", + "src": "6419:4:43" + }, + { + "name": "IC2x", + "nativeSrc": "6425:4:43", + "nodeType": "YulIdentifier", + "src": "6425:4:43" + }, + { + "name": "IC2y", + "nativeSrc": "6431:4:43", + "nodeType": "YulIdentifier", + "src": "6431:4:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6454:10:43", + "nodeType": "YulIdentifier", + "src": "6454:10:43" + }, + { + "kind": "number", + "nativeSrc": "6466:2:43", + "nodeType": "YulLiteral", + "src": "6466:2:43", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6450:3:43", + "nodeType": "YulIdentifier", + "src": "6450:3:43" + }, + "nativeSrc": "6450:19:43", + "nodeType": "YulFunctionCall", + "src": "6450:19:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6437:12:43", + "nodeType": "YulIdentifier", + "src": "6437:12:43" + }, + "nativeSrc": "6437:33:43", + "nodeType": "YulFunctionCall", + "src": "6437:33:43" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6408:10:43", + "nodeType": "YulIdentifier", + "src": "6408:10:43" + }, + "nativeSrc": "6408:63:43", + "nodeType": "YulFunctionCall", + "src": "6408:63:43" + }, + "nativeSrc": "6408:63:43", + "nodeType": "YulExpressionStatement", + "src": "6408:63:43" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6516:4:43", + "nodeType": "YulIdentifier", + "src": "6516:4:43" + }, + { + "name": "IC3x", + "nativeSrc": "6522:4:43", + "nodeType": "YulIdentifier", + "src": "6522:4:43" + }, + { + "name": "IC3y", + "nativeSrc": "6528:4:43", + "nodeType": "YulIdentifier", + "src": "6528:4:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6551:10:43", + "nodeType": "YulIdentifier", + "src": "6551:10:43" + }, + { + "kind": "number", + "nativeSrc": "6563:2:43", + "nodeType": "YulLiteral", + "src": "6563:2:43", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6547:3:43", + "nodeType": "YulIdentifier", + "src": "6547:3:43" + }, + "nativeSrc": "6547:19:43", + "nodeType": "YulFunctionCall", + "src": "6547:19:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6534:12:43", + "nodeType": "YulIdentifier", + "src": "6534:12:43" + }, + "nativeSrc": "6534:33:43", + "nodeType": "YulFunctionCall", + "src": "6534:33:43" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6505:10:43", + "nodeType": "YulIdentifier", + "src": "6505:10:43" + }, + "nativeSrc": "6505:63:43", + "nodeType": "YulFunctionCall", + "src": "6505:63:43" + }, + "nativeSrc": "6505:63:43", + "nodeType": "YulExpressionStatement", + "src": "6505:63:43" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6613:4:43", + "nodeType": "YulIdentifier", + "src": "6613:4:43" + }, + { + "name": "IC4x", + "nativeSrc": "6619:4:43", + "nodeType": "YulIdentifier", + "src": "6619:4:43" + }, + { + "name": "IC4y", + "nativeSrc": "6625:4:43", + "nodeType": "YulIdentifier", + "src": "6625:4:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6648:10:43", + "nodeType": "YulIdentifier", + "src": "6648:10:43" + }, + { + "kind": "number", + "nativeSrc": "6660:2:43", + "nodeType": "YulLiteral", + "src": "6660:2:43", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6644:3:43", + "nodeType": "YulIdentifier", + "src": "6644:3:43" + }, + "nativeSrc": "6644:19:43", + "nodeType": "YulFunctionCall", + "src": "6644:19:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6631:12:43", + "nodeType": "YulIdentifier", + "src": "6631:12:43" + }, + "nativeSrc": "6631:33:43", + "nodeType": "YulFunctionCall", + "src": "6631:33:43" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6602:10:43", + "nodeType": "YulIdentifier", + "src": "6602:10:43" + }, + "nativeSrc": "6602:63:43", + "nodeType": "YulFunctionCall", + "src": "6602:63:43" + }, + "nativeSrc": "6602:63:43", + "nodeType": "YulExpressionStatement", + "src": "6602:63:43" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6710:4:43", + "nodeType": "YulIdentifier", + "src": "6710:4:43" + }, + { + "name": "IC5x", + "nativeSrc": "6716:4:43", + "nodeType": "YulIdentifier", + "src": "6716:4:43" + }, + { + "name": "IC5y", + "nativeSrc": "6722:4:43", + "nodeType": "YulIdentifier", + "src": "6722:4:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6745:10:43", + "nodeType": "YulIdentifier", + "src": "6745:10:43" + }, + { + "kind": "number", + "nativeSrc": "6757:3:43", + "nodeType": "YulLiteral", + "src": "6757:3:43", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6741:3:43", + "nodeType": "YulIdentifier", + "src": "6741:3:43" + }, + "nativeSrc": "6741:20:43", + "nodeType": "YulFunctionCall", + "src": "6741:20:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6728:12:43", + "nodeType": "YulIdentifier", + "src": "6728:12:43" + }, + "nativeSrc": "6728:34:43", + "nodeType": "YulFunctionCall", + "src": "6728:34:43" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6699:10:43", + "nodeType": "YulIdentifier", + "src": "6699:10:43" + }, + "nativeSrc": "6699:64:43", + "nodeType": "YulFunctionCall", + "src": "6699:64:43" + }, + "nativeSrc": "6699:64:43", + "nodeType": "YulExpressionStatement", + "src": "6699:64:43" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6808:4:43", + "nodeType": "YulIdentifier", + "src": "6808:4:43" + }, + { + "name": "IC6x", + "nativeSrc": "6814:4:43", + "nodeType": "YulIdentifier", + "src": "6814:4:43" + }, + { + "name": "IC6y", + "nativeSrc": "6820:4:43", + "nodeType": "YulIdentifier", + "src": "6820:4:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6843:10:43", + "nodeType": "YulIdentifier", + "src": "6843:10:43" + }, + { + "kind": "number", + "nativeSrc": "6855:3:43", + "nodeType": "YulLiteral", + "src": "6855:3:43", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6839:3:43", + "nodeType": "YulIdentifier", + "src": "6839:3:43" + }, + "nativeSrc": "6839:20:43", + "nodeType": "YulFunctionCall", + "src": "6839:20:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6826:12:43", + "nodeType": "YulIdentifier", + "src": "6826:12:43" + }, + "nativeSrc": "6826:34:43", + "nodeType": "YulFunctionCall", + "src": "6826:34:43" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6797:10:43", + "nodeType": "YulIdentifier", + "src": "6797:10:43" + }, + "nativeSrc": "6797:64:43", + "nodeType": "YulFunctionCall", + "src": "6797:64:43" + }, + "nativeSrc": "6797:64:43", + "nodeType": "YulExpressionStatement", + "src": "6797:64:43" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6906:4:43", + "nodeType": "YulIdentifier", + "src": "6906:4:43" + }, + { + "name": "IC7x", + "nativeSrc": "6912:4:43", + "nodeType": "YulIdentifier", + "src": "6912:4:43" + }, + { + "name": "IC7y", + "nativeSrc": "6918:4:43", + "nodeType": "YulIdentifier", + "src": "6918:4:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6941:10:43", + "nodeType": "YulIdentifier", + "src": "6941:10:43" + }, + { + "kind": "number", + "nativeSrc": "6953:3:43", + "nodeType": "YulLiteral", + "src": "6953:3:43", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6937:3:43", + "nodeType": "YulIdentifier", + "src": "6937:3:43" + }, + "nativeSrc": "6937:20:43", + "nodeType": "YulFunctionCall", + "src": "6937:20:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6924:12:43", + "nodeType": "YulIdentifier", + "src": "6924:12:43" + }, + "nativeSrc": "6924:34:43", + "nodeType": "YulFunctionCall", + "src": "6924:34:43" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6895:10:43", + "nodeType": "YulIdentifier", + "src": "6895:10:43" + }, + "nativeSrc": "6895:64:43", + "nodeType": "YulFunctionCall", + "src": "6895:64:43" + }, + "nativeSrc": "6895:64:43", + "nodeType": "YulExpressionStatement", + "src": "6895:64:43" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "7004:4:43", + "nodeType": "YulIdentifier", + "src": "7004:4:43" + }, + { + "name": "IC8x", + "nativeSrc": "7010:4:43", + "nodeType": "YulIdentifier", + "src": "7010:4:43" + }, + { + "name": "IC8y", + "nativeSrc": "7016:4:43", + "nodeType": "YulIdentifier", + "src": "7016:4:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "7039:10:43", + "nodeType": "YulIdentifier", + "src": "7039:10:43" + }, + { + "kind": "number", + "nativeSrc": "7051:3:43", + "nodeType": "YulLiteral", + "src": "7051:3:43", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7035:3:43", + "nodeType": "YulIdentifier", + "src": "7035:3:43" + }, + "nativeSrc": "7035:20:43", + "nodeType": "YulFunctionCall", + "src": "7035:20:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7022:12:43", + "nodeType": "YulIdentifier", + "src": "7022:12:43" + }, + "nativeSrc": "7022:34:43", + "nodeType": "YulFunctionCall", + "src": "7022:34:43" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6993:10:43", + "nodeType": "YulIdentifier", + "src": "6993:10:43" + }, + "nativeSrc": "6993:64:43", + "nodeType": "YulFunctionCall", + "src": "6993:64:43" + }, + "nativeSrc": "6993:64:43", + "nodeType": "YulExpressionStatement", + "src": "6993:64:43" + }, + { + "expression": { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7121:9:43", + "nodeType": "YulIdentifier", + "src": "7121:9:43" + }, + { + "arguments": [ + { + "name": "pA", + "nativeSrc": "7145:2:43", + "nodeType": "YulIdentifier", + "src": "7145:2:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7132:12:43", + "nodeType": "YulIdentifier", + "src": "7132:12:43" + }, + "nativeSrc": "7132:16:43", + "nodeType": "YulFunctionCall", + "src": "7132:16:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7114:6:43", + "nodeType": "YulIdentifier", + "src": "7114:6:43" + }, + "nativeSrc": "7114:35:43", + "nodeType": "YulFunctionCall", + "src": "7114:35:43" + }, + "nativeSrc": "7114:35:43", + "nodeType": "YulExpressionStatement", + "src": "7114:35:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7177:9:43", + "nodeType": "YulIdentifier", + "src": "7177:9:43" + }, + { + "kind": "number", + "nativeSrc": "7188:2:43", + "nodeType": "YulLiteral", + "src": "7188:2:43", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7173:3:43", + "nodeType": "YulIdentifier", + "src": "7173:3:43" + }, + "nativeSrc": "7173:18:43", + "nodeType": "YulFunctionCall", + "src": "7173:18:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "q", + "nativeSrc": "7201:1:43", + "nodeType": "YulIdentifier", + "src": "7201:1:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pA", + "nativeSrc": "7221:2:43", + "nodeType": "YulIdentifier", + "src": "7221:2:43" + }, + { + "kind": "number", + "nativeSrc": "7225:2:43", + "nodeType": "YulLiteral", + "src": "7225:2:43", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7217:3:43", + "nodeType": "YulIdentifier", + "src": "7217:3:43" + }, + "nativeSrc": "7217:11:43", + "nodeType": "YulFunctionCall", + "src": "7217:11:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7204:12:43", + "nodeType": "YulIdentifier", + "src": "7204:12:43" + }, + "nativeSrc": "7204:25:43", + "nodeType": "YulFunctionCall", + "src": "7204:25:43" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7197:3:43", + "nodeType": "YulIdentifier", + "src": "7197:3:43" + }, + "nativeSrc": "7197:33:43", + "nodeType": "YulFunctionCall", + "src": "7197:33:43" + }, + { + "name": "q", + "nativeSrc": "7232:1:43", + "nodeType": "YulIdentifier", + "src": "7232:1:43" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "7193:3:43", + "nodeType": "YulIdentifier", + "src": "7193:3:43" + }, + "nativeSrc": "7193:41:43", + "nodeType": "YulFunctionCall", + "src": "7193:41:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7166:6:43", + "nodeType": "YulIdentifier", + "src": "7166:6:43" + }, + "nativeSrc": "7166:69:43", + "nodeType": "YulFunctionCall", + "src": "7166:69:43" + }, + "nativeSrc": "7166:69:43", + "nodeType": "YulExpressionStatement", + "src": "7166:69:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7285:9:43", + "nodeType": "YulIdentifier", + "src": "7285:9:43" + }, + { + "kind": "number", + "nativeSrc": "7296:2:43", + "nodeType": "YulLiteral", + "src": "7296:2:43", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7281:3:43", + "nodeType": "YulIdentifier", + "src": "7281:3:43" + }, + "nativeSrc": "7281:18:43", + "nodeType": "YulFunctionCall", + "src": "7281:18:43" + }, + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7314:2:43", + "nodeType": "YulIdentifier", + "src": "7314:2:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7301:12:43", + "nodeType": "YulIdentifier", + "src": "7301:12:43" + }, + "nativeSrc": "7301:16:43", + "nodeType": "YulFunctionCall", + "src": "7301:16:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7274:6:43", + "nodeType": "YulIdentifier", + "src": "7274:6:43" + }, + "nativeSrc": "7274:44:43", + "nodeType": "YulFunctionCall", + "src": "7274:44:43" + }, + "nativeSrc": "7274:44:43", + "nodeType": "YulExpressionStatement", + "src": "7274:44:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7346:9:43", + "nodeType": "YulIdentifier", + "src": "7346:9:43" + }, + { + "kind": "number", + "nativeSrc": "7357:2:43", + "nodeType": "YulLiteral", + "src": "7357:2:43", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7342:3:43", + "nodeType": "YulIdentifier", + "src": "7342:3:43" + }, + "nativeSrc": "7342:18:43", + "nodeType": "YulFunctionCall", + "src": "7342:18:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7379:2:43", + "nodeType": "YulIdentifier", + "src": "7379:2:43" + }, + { + "kind": "number", + "nativeSrc": "7383:2:43", + "nodeType": "YulLiteral", + "src": "7383:2:43", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7375:3:43", + "nodeType": "YulIdentifier", + "src": "7375:3:43" + }, + "nativeSrc": "7375:11:43", + "nodeType": "YulFunctionCall", + "src": "7375:11:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7362:12:43", + "nodeType": "YulIdentifier", + "src": "7362:12:43" + }, + "nativeSrc": "7362:25:43", + "nodeType": "YulFunctionCall", + "src": "7362:25:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7335:6:43", + "nodeType": "YulIdentifier", + "src": "7335:6:43" + }, + "nativeSrc": "7335:53:43", + "nodeType": "YulFunctionCall", + "src": "7335:53:43" + }, + "nativeSrc": "7335:53:43", + "nodeType": "YulExpressionStatement", + "src": "7335:53:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7416:9:43", + "nodeType": "YulIdentifier", + "src": "7416:9:43" + }, + { + "kind": "number", + "nativeSrc": "7427:3:43", + "nodeType": "YulLiteral", + "src": "7427:3:43", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7412:3:43", + "nodeType": "YulIdentifier", + "src": "7412:3:43" + }, + "nativeSrc": "7412:19:43", + "nodeType": "YulFunctionCall", + "src": "7412:19:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7450:2:43", + "nodeType": "YulIdentifier", + "src": "7450:2:43" + }, + { + "kind": "number", + "nativeSrc": "7454:2:43", + "nodeType": "YulLiteral", + "src": "7454:2:43", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7446:3:43", + "nodeType": "YulIdentifier", + "src": "7446:3:43" + }, + "nativeSrc": "7446:11:43", + "nodeType": "YulFunctionCall", + "src": "7446:11:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7433:12:43", + "nodeType": "YulIdentifier", + "src": "7433:12:43" + }, + "nativeSrc": "7433:25:43", + "nodeType": "YulFunctionCall", + "src": "7433:25:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7405:6:43", + "nodeType": "YulIdentifier", + "src": "7405:6:43" + }, + "nativeSrc": "7405:54:43", + "nodeType": "YulFunctionCall", + "src": "7405:54:43" + }, + "nativeSrc": "7405:54:43", + "nodeType": "YulExpressionStatement", + "src": "7405:54:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7487:9:43", + "nodeType": "YulIdentifier", + "src": "7487:9:43" + }, + { + "kind": "number", + "nativeSrc": "7498:3:43", + "nodeType": "YulLiteral", + "src": "7498:3:43", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7483:3:43", + "nodeType": "YulIdentifier", + "src": "7483:3:43" + }, + "nativeSrc": "7483:19:43", + "nodeType": "YulFunctionCall", + "src": "7483:19:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7521:2:43", + "nodeType": "YulIdentifier", + "src": "7521:2:43" + }, + { + "kind": "number", + "nativeSrc": "7525:2:43", + "nodeType": "YulLiteral", + "src": "7525:2:43", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7517:3:43", + "nodeType": "YulIdentifier", + "src": "7517:3:43" + }, + "nativeSrc": "7517:11:43", + "nodeType": "YulFunctionCall", + "src": "7517:11:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7504:12:43", + "nodeType": "YulIdentifier", + "src": "7504:12:43" + }, + "nativeSrc": "7504:25:43", + "nodeType": "YulFunctionCall", + "src": "7504:25:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7476:6:43", + "nodeType": "YulIdentifier", + "src": "7476:6:43" + }, + "nativeSrc": "7476:54:43", + "nodeType": "YulFunctionCall", + "src": "7476:54:43" + }, + "nativeSrc": "7476:54:43", + "nodeType": "YulExpressionStatement", + "src": "7476:54:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7585:9:43", + "nodeType": "YulIdentifier", + "src": "7585:9:43" + }, + { + "kind": "number", + "nativeSrc": "7596:3:43", + "nodeType": "YulLiteral", + "src": "7596:3:43", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7581:3:43", + "nodeType": "YulIdentifier", + "src": "7581:3:43" + }, + "nativeSrc": "7581:19:43", + "nodeType": "YulFunctionCall", + "src": "7581:19:43" + }, + { + "name": "alphax", + "nativeSrc": "7602:6:43", + "nodeType": "YulIdentifier", + "src": "7602:6:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7574:6:43", + "nodeType": "YulIdentifier", + "src": "7574:6:43" + }, + "nativeSrc": "7574:35:43", + "nodeType": "YulFunctionCall", + "src": "7574:35:43" + }, + "nativeSrc": "7574:35:43", + "nodeType": "YulExpressionStatement", + "src": "7574:35:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7637:9:43", + "nodeType": "YulIdentifier", + "src": "7637:9:43" + }, + { + "kind": "number", + "nativeSrc": "7648:3:43", + "nodeType": "YulLiteral", + "src": "7648:3:43", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7633:3:43", + "nodeType": "YulIdentifier", + "src": "7633:3:43" + }, + "nativeSrc": "7633:19:43", + "nodeType": "YulFunctionCall", + "src": "7633:19:43" + }, + { + "name": "alphay", + "nativeSrc": "7654:6:43", + "nodeType": "YulIdentifier", + "src": "7654:6:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7626:6:43", + "nodeType": "YulIdentifier", + "src": "7626:6:43" + }, + "nativeSrc": "7626:35:43", + "nodeType": "YulFunctionCall", + "src": "7626:35:43" + }, + "nativeSrc": "7626:35:43", + "nodeType": "YulExpressionStatement", + "src": "7626:35:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7715:9:43", + "nodeType": "YulIdentifier", + "src": "7715:9:43" + }, + { + "kind": "number", + "nativeSrc": "7726:3:43", + "nodeType": "YulLiteral", + "src": "7726:3:43", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7711:3:43", + "nodeType": "YulIdentifier", + "src": "7711:3:43" + }, + "nativeSrc": "7711:19:43", + "nodeType": "YulFunctionCall", + "src": "7711:19:43" + }, + { + "name": "betax1", + "nativeSrc": "7732:6:43", + "nodeType": "YulIdentifier", + "src": "7732:6:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7704:6:43", + "nodeType": "YulIdentifier", + "src": "7704:6:43" + }, + "nativeSrc": "7704:35:43", + "nodeType": "YulFunctionCall", + "src": "7704:35:43" + }, + "nativeSrc": "7704:35:43", + "nodeType": "YulExpressionStatement", + "src": "7704:35:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7767:9:43", + "nodeType": "YulIdentifier", + "src": "7767:9:43" + }, + { + "kind": "number", + "nativeSrc": "7778:3:43", + "nodeType": "YulLiteral", + "src": "7778:3:43", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7763:3:43", + "nodeType": "YulIdentifier", + "src": "7763:3:43" + }, + "nativeSrc": "7763:19:43", + "nodeType": "YulFunctionCall", + "src": "7763:19:43" + }, + { + "name": "betax2", + "nativeSrc": "7784:6:43", + "nodeType": "YulIdentifier", + "src": "7784:6:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7756:6:43", + "nodeType": "YulIdentifier", + "src": "7756:6:43" + }, + "nativeSrc": "7756:35:43", + "nodeType": "YulFunctionCall", + "src": "7756:35:43" + }, + "nativeSrc": "7756:35:43", + "nodeType": "YulExpressionStatement", + "src": "7756:35:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7819:9:43", + "nodeType": "YulIdentifier", + "src": "7819:9:43" + }, + { + "kind": "number", + "nativeSrc": "7830:3:43", + "nodeType": "YulLiteral", + "src": "7830:3:43", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7815:3:43", + "nodeType": "YulIdentifier", + "src": "7815:3:43" + }, + "nativeSrc": "7815:19:43", + "nodeType": "YulFunctionCall", + "src": "7815:19:43" + }, + { + "name": "betay1", + "nativeSrc": "7836:6:43", + "nodeType": "YulIdentifier", + "src": "7836:6:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7808:6:43", + "nodeType": "YulIdentifier", + "src": "7808:6:43" + }, + "nativeSrc": "7808:35:43", + "nodeType": "YulFunctionCall", + "src": "7808:35:43" + }, + "nativeSrc": "7808:35:43", + "nodeType": "YulExpressionStatement", + "src": "7808:35:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7871:9:43", + "nodeType": "YulIdentifier", + "src": "7871:9:43" + }, + { + "kind": "number", + "nativeSrc": "7882:3:43", + "nodeType": "YulLiteral", + "src": "7882:3:43", + "type": "", + "value": "352" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7867:3:43", + "nodeType": "YulIdentifier", + "src": "7867:3:43" + }, + "nativeSrc": "7867:19:43", + "nodeType": "YulFunctionCall", + "src": "7867:19:43" + }, + { + "name": "betay2", + "nativeSrc": "7888:6:43", + "nodeType": "YulIdentifier", + "src": "7888:6:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7860:6:43", + "nodeType": "YulIdentifier", + "src": "7860:6:43" + }, + "nativeSrc": "7860:35:43", + "nodeType": "YulFunctionCall", + "src": "7860:35:43" + }, + "nativeSrc": "7860:35:43", + "nodeType": "YulExpressionStatement", + "src": "7860:35:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7948:9:43", + "nodeType": "YulIdentifier", + "src": "7948:9:43" + }, + { + "kind": "number", + "nativeSrc": "7959:3:43", + "nodeType": "YulLiteral", + "src": "7959:3:43", + "type": "", + "value": "384" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7944:3:43", + "nodeType": "YulIdentifier", + "src": "7944:3:43" + }, + "nativeSrc": "7944:19:43", + "nodeType": "YulFunctionCall", + "src": "7944:19:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "7975:4:43", + "nodeType": "YulIdentifier", + "src": "7975:4:43" + }, + { + "name": "pVk", + "nativeSrc": "7981:3:43", + "nodeType": "YulIdentifier", + "src": "7981:3:43" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7971:3:43", + "nodeType": "YulIdentifier", + "src": "7971:3:43" + }, + "nativeSrc": "7971:14:43", + "nodeType": "YulFunctionCall", + "src": "7971:14:43" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7965:5:43", + "nodeType": "YulIdentifier", + "src": "7965:5:43" + }, + "nativeSrc": "7965:21:43", + "nodeType": "YulFunctionCall", + "src": "7965:21:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7937:6:43", + "nodeType": "YulIdentifier", + "src": "7937:6:43" + }, + "nativeSrc": "7937:50:43", + "nodeType": "YulFunctionCall", + "src": "7937:50:43" + }, + "nativeSrc": "7937:50:43", + "nodeType": "YulExpressionStatement", + "src": "7937:50:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8015:9:43", + "nodeType": "YulIdentifier", + "src": "8015:9:43" + }, + { + "kind": "number", + "nativeSrc": "8026:3:43", + "nodeType": "YulLiteral", + "src": "8026:3:43", + "type": "", + "value": "416" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8011:3:43", + "nodeType": "YulIdentifier", + "src": "8011:3:43" + }, + "nativeSrc": "8011:19:43", + "nodeType": "YulFunctionCall", + "src": "8011:19:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "8042:4:43", + "nodeType": "YulIdentifier", + "src": "8042:4:43" + }, + { + "arguments": [ + { + "name": "pVk", + "nativeSrc": "8052:3:43", + "nodeType": "YulIdentifier", + "src": "8052:3:43" + }, + { + "kind": "number", + "nativeSrc": "8057:2:43", + "nodeType": "YulLiteral", + "src": "8057:2:43", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8048:3:43", + "nodeType": "YulIdentifier", + "src": "8048:3:43" + }, + "nativeSrc": "8048:12:43", + "nodeType": "YulFunctionCall", + "src": "8048:12:43" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8038:3:43", + "nodeType": "YulIdentifier", + "src": "8038:3:43" + }, + "nativeSrc": "8038:23:43", + "nodeType": "YulFunctionCall", + "src": "8038:23:43" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8032:5:43", + "nodeType": "YulIdentifier", + "src": "8032:5:43" + }, + "nativeSrc": "8032:30:43", + "nodeType": "YulFunctionCall", + "src": "8032:30:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8004:6:43", + "nodeType": "YulIdentifier", + "src": "8004:6:43" + }, + "nativeSrc": "8004:59:43", + "nodeType": "YulFunctionCall", + "src": "8004:59:43" + }, + "nativeSrc": "8004:59:43", + "nodeType": "YulExpressionStatement", + "src": "8004:59:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8119:9:43", + "nodeType": "YulIdentifier", + "src": "8119:9:43" + }, + { + "kind": "number", + "nativeSrc": "8130:3:43", + "nodeType": "YulLiteral", + "src": "8130:3:43", + "type": "", + "value": "448" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8115:3:43", + "nodeType": "YulIdentifier", + "src": "8115:3:43" + }, + "nativeSrc": "8115:19:43", + "nodeType": "YulFunctionCall", + "src": "8115:19:43" + }, + { + "name": "gammax1", + "nativeSrc": "8136:7:43", + "nodeType": "YulIdentifier", + "src": "8136:7:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8108:6:43", + "nodeType": "YulIdentifier", + "src": "8108:6:43" + }, + "nativeSrc": "8108:36:43", + "nodeType": "YulFunctionCall", + "src": "8108:36:43" + }, + "nativeSrc": "8108:36:43", + "nodeType": "YulExpressionStatement", + "src": "8108:36:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8172:9:43", + "nodeType": "YulIdentifier", + "src": "8172:9:43" + }, + { + "kind": "number", + "nativeSrc": "8183:3:43", + "nodeType": "YulLiteral", + "src": "8183:3:43", + "type": "", + "value": "480" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8168:3:43", + "nodeType": "YulIdentifier", + "src": "8168:3:43" + }, + "nativeSrc": "8168:19:43", + "nodeType": "YulFunctionCall", + "src": "8168:19:43" + }, + { + "name": "gammax2", + "nativeSrc": "8189:7:43", + "nodeType": "YulIdentifier", + "src": "8189:7:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8161:6:43", + "nodeType": "YulIdentifier", + "src": "8161:6:43" + }, + "nativeSrc": "8161:36:43", + "nodeType": "YulFunctionCall", + "src": "8161:36:43" + }, + "nativeSrc": "8161:36:43", + "nodeType": "YulExpressionStatement", + "src": "8161:36:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8225:9:43", + "nodeType": "YulIdentifier", + "src": "8225:9:43" + }, + { + "kind": "number", + "nativeSrc": "8236:3:43", + "nodeType": "YulLiteral", + "src": "8236:3:43", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8221:3:43", + "nodeType": "YulIdentifier", + "src": "8221:3:43" + }, + "nativeSrc": "8221:19:43", + "nodeType": "YulFunctionCall", + "src": "8221:19:43" + }, + { + "name": "gammay1", + "nativeSrc": "8242:7:43", + "nodeType": "YulIdentifier", + "src": "8242:7:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8214:6:43", + "nodeType": "YulIdentifier", + "src": "8214:6:43" + }, + "nativeSrc": "8214:36:43", + "nodeType": "YulFunctionCall", + "src": "8214:36:43" + }, + "nativeSrc": "8214:36:43", + "nodeType": "YulExpressionStatement", + "src": "8214:36:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8278:9:43", + "nodeType": "YulIdentifier", + "src": "8278:9:43" + }, + { + "kind": "number", + "nativeSrc": "8289:3:43", + "nodeType": "YulLiteral", + "src": "8289:3:43", + "type": "", + "value": "544" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8274:3:43", + "nodeType": "YulIdentifier", + "src": "8274:3:43" + }, + "nativeSrc": "8274:19:43", + "nodeType": "YulFunctionCall", + "src": "8274:19:43" + }, + { + "name": "gammay2", + "nativeSrc": "8295:7:43", + "nodeType": "YulIdentifier", + "src": "8295:7:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8267:6:43", + "nodeType": "YulIdentifier", + "src": "8267:6:43" + }, + "nativeSrc": "8267:36:43", + "nodeType": "YulFunctionCall", + "src": "8267:36:43" + }, + "nativeSrc": "8267:36:43", + "nodeType": "YulExpressionStatement", + "src": "8267:36:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8353:9:43", + "nodeType": "YulIdentifier", + "src": "8353:9:43" + }, + { + "kind": "number", + "nativeSrc": "8364:3:43", + "nodeType": "YulLiteral", + "src": "8364:3:43", + "type": "", + "value": "576" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8349:3:43", + "nodeType": "YulIdentifier", + "src": "8349:3:43" + }, + "nativeSrc": "8349:19:43", + "nodeType": "YulFunctionCall", + "src": "8349:19:43" + }, + { + "arguments": [ + { + "name": "pC", + "nativeSrc": "8383:2:43", + "nodeType": "YulIdentifier", + "src": "8383:2:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8370:12:43", + "nodeType": "YulIdentifier", + "src": "8370:12:43" + }, + "nativeSrc": "8370:16:43", + "nodeType": "YulFunctionCall", + "src": "8370:16:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8342:6:43", + "nodeType": "YulIdentifier", + "src": "8342:6:43" + }, + "nativeSrc": "8342:45:43", + "nodeType": "YulFunctionCall", + "src": "8342:45:43" + }, + "nativeSrc": "8342:45:43", + "nodeType": "YulExpressionStatement", + "src": "8342:45:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8415:9:43", + "nodeType": "YulIdentifier", + "src": "8415:9:43" + }, + { + "kind": "number", + "nativeSrc": "8426:3:43", + "nodeType": "YulLiteral", + "src": "8426:3:43", + "type": "", + "value": "608" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8411:3:43", + "nodeType": "YulIdentifier", + "src": "8411:3:43" + }, + "nativeSrc": "8411:19:43", + "nodeType": "YulFunctionCall", + "src": "8411:19:43" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pC", + "nativeSrc": "8449:2:43", + "nodeType": "YulIdentifier", + "src": "8449:2:43" + }, + { + "kind": "number", + "nativeSrc": "8453:2:43", + "nodeType": "YulLiteral", + "src": "8453:2:43", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8445:3:43", + "nodeType": "YulIdentifier", + "src": "8445:3:43" + }, + "nativeSrc": "8445:11:43", + "nodeType": "YulFunctionCall", + "src": "8445:11:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8432:12:43", + "nodeType": "YulIdentifier", + "src": "8432:12:43" + }, + "nativeSrc": "8432:25:43", + "nodeType": "YulFunctionCall", + "src": "8432:25:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8404:6:43", + "nodeType": "YulIdentifier", + "src": "8404:6:43" + }, + "nativeSrc": "8404:54:43", + "nodeType": "YulFunctionCall", + "src": "8404:54:43" + }, + "nativeSrc": "8404:54:43", + "nodeType": "YulExpressionStatement", + "src": "8404:54:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8513:9:43", + "nodeType": "YulIdentifier", + "src": "8513:9:43" + }, + { + "kind": "number", + "nativeSrc": "8524:3:43", + "nodeType": "YulLiteral", + "src": "8524:3:43", + "type": "", + "value": "640" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8509:3:43", + "nodeType": "YulIdentifier", + "src": "8509:3:43" + }, + "nativeSrc": "8509:19:43", + "nodeType": "YulFunctionCall", + "src": "8509:19:43" + }, + { + "name": "deltax1", + "nativeSrc": "8530:7:43", + "nodeType": "YulIdentifier", + "src": "8530:7:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8502:6:43", + "nodeType": "YulIdentifier", + "src": "8502:6:43" + }, + "nativeSrc": "8502:36:43", + "nodeType": "YulFunctionCall", + "src": "8502:36:43" + }, + "nativeSrc": "8502:36:43", + "nodeType": "YulExpressionStatement", + "src": "8502:36:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8566:9:43", + "nodeType": "YulIdentifier", + "src": "8566:9:43" + }, + { + "kind": "number", + "nativeSrc": "8577:3:43", + "nodeType": "YulLiteral", + "src": "8577:3:43", + "type": "", + "value": "672" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8562:3:43", + "nodeType": "YulIdentifier", + "src": "8562:3:43" + }, + "nativeSrc": "8562:19:43", + "nodeType": "YulFunctionCall", + "src": "8562:19:43" + }, + { + "name": "deltax2", + "nativeSrc": "8583:7:43", + "nodeType": "YulIdentifier", + "src": "8583:7:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8555:6:43", + "nodeType": "YulIdentifier", + "src": "8555:6:43" + }, + "nativeSrc": "8555:36:43", + "nodeType": "YulFunctionCall", + "src": "8555:36:43" + }, + "nativeSrc": "8555:36:43", + "nodeType": "YulExpressionStatement", + "src": "8555:36:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8619:9:43", + "nodeType": "YulIdentifier", + "src": "8619:9:43" + }, + { + "kind": "number", + "nativeSrc": "8630:3:43", + "nodeType": "YulLiteral", + "src": "8630:3:43", + "type": "", + "value": "704" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8615:3:43", + "nodeType": "YulIdentifier", + "src": "8615:3:43" + }, + "nativeSrc": "8615:19:43", + "nodeType": "YulFunctionCall", + "src": "8615:19:43" + }, + { + "name": "deltay1", + "nativeSrc": "8636:7:43", + "nodeType": "YulIdentifier", + "src": "8636:7:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8608:6:43", + "nodeType": "YulIdentifier", + "src": "8608:6:43" + }, + "nativeSrc": "8608:36:43", + "nodeType": "YulFunctionCall", + "src": "8608:36:43" + }, + "nativeSrc": "8608:36:43", + "nodeType": "YulExpressionStatement", + "src": "8608:36:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8672:9:43", + "nodeType": "YulIdentifier", + "src": "8672:9:43" + }, + { + "kind": "number", + "nativeSrc": "8683:3:43", + "nodeType": "YulLiteral", + "src": "8683:3:43", + "type": "", + "value": "736" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8668:3:43", + "nodeType": "YulIdentifier", + "src": "8668:3:43" + }, + "nativeSrc": "8668:19:43", + "nodeType": "YulFunctionCall", + "src": "8668:19:43" + }, + { + "name": "deltay2", + "nativeSrc": "8689:7:43", + "nodeType": "YulIdentifier", + "src": "8689:7:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8661:6:43", + "nodeType": "YulIdentifier", + "src": "8661:6:43" + }, + "nativeSrc": "8661:36:43", + "nodeType": "YulFunctionCall", + "src": "8661:36:43" + }, + "nativeSrc": "8661:36:43", + "nodeType": "YulExpressionStatement", + "src": "8661:36:43" + }, + { + "nativeSrc": "8716:79:43", + "nodeType": "YulVariableDeclaration", + "src": "8716:79:43", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "8746:3:43", + "nodeType": "YulIdentifier", + "src": "8746:3:43" + }, + "nativeSrc": "8746:5:43", + "nodeType": "YulFunctionCall", + "src": "8746:5:43" + }, + { + "kind": "number", + "nativeSrc": "8753:4:43", + "nodeType": "YulLiteral", + "src": "8753:4:43", + "type": "", + "value": "2000" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8742:3:43", + "nodeType": "YulIdentifier", + "src": "8742:3:43" + }, + "nativeSrc": "8742:16:43", + "nodeType": "YulFunctionCall", + "src": "8742:16:43" + }, + { + "kind": "number", + "nativeSrc": "8760:1:43", + "nodeType": "YulLiteral", + "src": "8760:1:43", + "type": "", + "value": "8" + }, + { + "name": "_pPairing", + "nativeSrc": "8763:9:43", + "nodeType": "YulIdentifier", + "src": "8763:9:43" + }, + { + "kind": "number", + "nativeSrc": "8774:3:43", + "nodeType": "YulLiteral", + "src": "8774:3:43", + "type": "", + "value": "768" + }, + { + "name": "_pPairing", + "nativeSrc": "8779:9:43", + "nodeType": "YulIdentifier", + "src": "8779:9:43" + }, + { + "kind": "number", + "nativeSrc": "8790:4:43", + "nodeType": "YulLiteral", + "src": "8790:4:43", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "8731:10:43", + "nodeType": "YulIdentifier", + "src": "8731:10:43" + }, + "nativeSrc": "8731:64:43", + "nodeType": "YulFunctionCall", + "src": "8731:64:43" + }, + "variables": [ + { + "name": "success", + "nativeSrc": "8720:7:43", + "nodeType": "YulTypedName", + "src": "8720:7:43", + "type": "" + } + ] + }, + { + "nativeSrc": "8813:38:43", + "nodeType": "YulAssignment", + "src": "8813:38:43", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "8825:7:43", + "nodeType": "YulIdentifier", + "src": "8825:7:43" + }, + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8840:9:43", + "nodeType": "YulIdentifier", + "src": "8840:9:43" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8834:5:43", + "nodeType": "YulIdentifier", + "src": "8834:5:43" + }, + "nativeSrc": "8834:16:43", + "nodeType": "YulFunctionCall", + "src": "8834:16:43" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8821:3:43", + "nodeType": "YulIdentifier", + "src": "8821:3:43" + }, + "nativeSrc": "8821:30:43", + "nodeType": "YulFunctionCall", + "src": "8821:30:43" + }, + "variableNames": [ + { + "name": "isOk", + "nativeSrc": "8813:4:43", + "nodeType": "YulIdentifier", + "src": "8813:4:43" + } + ] + } + ] + }, + "name": "checkPairing", + "nativeSrc": "5985:2880:43", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pA", + "nativeSrc": "6007:2:43", + "nodeType": "YulTypedName", + "src": "6007:2:43", + "type": "" + }, + { + "name": "pB", + "nativeSrc": "6011:2:43", + "nodeType": "YulTypedName", + "src": "6011:2:43", + "type": "" + }, + { + "name": "pC", + "nativeSrc": "6015:2:43", + "nodeType": "YulTypedName", + "src": "6015:2:43", + "type": "" + }, + { + "name": "pubSignals", + "nativeSrc": "6019:10:43", + "nodeType": "YulTypedName", + "src": "6019:10:43", + "type": "" + }, + { + "name": "pMem", + "nativeSrc": "6031:4:43", + "nodeType": "YulTypedName", + "src": "6031:4:43", + "type": "" + } + ], + "returnVariables": [ + { + "name": "isOk", + "nativeSrc": "6040:4:43", + "nodeType": "YulTypedName", + "src": "6040:4:43", + "type": "" + } + ], + "src": "5985:2880:43" + }, + { + "nativeSrc": "8879:23:43", + "nodeType": "YulVariableDeclaration", + "src": "8879:23:43", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8897:4:43", + "nodeType": "YulLiteral", + "src": "8897:4:43", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8891:5:43", + "nodeType": "YulIdentifier", + "src": "8891:5:43" + }, + "nativeSrc": "8891:11:43", + "nodeType": "YulFunctionCall", + "src": "8891:11:43" + }, + "variables": [ + { + "name": "pMem", + "nativeSrc": "8883:4:43", + "nodeType": "YulTypedName", + "src": "8883:4:43", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8922:4:43", + "nodeType": "YulLiteral", + "src": "8922:4:43", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "8932:4:43", + "nodeType": "YulIdentifier", + "src": "8932:4:43" + }, + { + "name": "pLastMem", + "nativeSrc": "8938:8:43", + "nodeType": "YulIdentifier", + "src": "8938:8:43" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8928:3:43", + "nodeType": "YulIdentifier", + "src": "8928:3:43" + }, + "nativeSrc": "8928:19:43", + "nodeType": "YulFunctionCall", + "src": "8928:19:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8915:6:43", + "nodeType": "YulIdentifier", + "src": "8915:6:43" + }, + "nativeSrc": "8915:33:43", + "nodeType": "YulFunctionCall", + "src": "8915:33:43" + }, + "nativeSrc": "8915:33:43", + "nodeType": "YulExpressionStatement", + "src": "8915:33:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9054:11:43", + "nodeType": "YulIdentifier", + "src": "9054:11:43" + }, + { + "kind": "number", + "nativeSrc": "9067:1:43", + "nodeType": "YulLiteral", + "src": "9067:1:43", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9050:3:43", + "nodeType": "YulIdentifier", + "src": "9050:3:43" + }, + "nativeSrc": "9050:19:43", + "nodeType": "YulFunctionCall", + "src": "9050:19:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9037:12:43", + "nodeType": "YulIdentifier", + "src": "9037:12:43" + }, + "nativeSrc": "9037:33:43", + "nodeType": "YulFunctionCall", + "src": "9037:33:43" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9026:10:43", + "nodeType": "YulIdentifier", + "src": "9026:10:43" + }, + "nativeSrc": "9026:45:43", + "nodeType": "YulFunctionCall", + "src": "9026:45:43" + }, + "nativeSrc": "9026:45:43", + "nodeType": "YulExpressionStatement", + "src": "9026:45:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9125:11:43", + "nodeType": "YulIdentifier", + "src": "9125:11:43" + }, + { + "kind": "number", + "nativeSrc": "9138:2:43", + "nodeType": "YulLiteral", + "src": "9138:2:43", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9121:3:43", + "nodeType": "YulIdentifier", + "src": "9121:3:43" + }, + "nativeSrc": "9121:20:43", + "nodeType": "YulFunctionCall", + "src": "9121:20:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9108:12:43", + "nodeType": "YulIdentifier", + "src": "9108:12:43" + }, + "nativeSrc": "9108:34:43", + "nodeType": "YulFunctionCall", + "src": "9108:34:43" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9097:10:43", + "nodeType": "YulIdentifier", + "src": "9097:10:43" + }, + "nativeSrc": "9097:46:43", + "nodeType": "YulFunctionCall", + "src": "9097:46:43" + }, + "nativeSrc": "9097:46:43", + "nodeType": "YulExpressionStatement", + "src": "9097:46:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9197:11:43", + "nodeType": "YulIdentifier", + "src": "9197:11:43" + }, + { + "kind": "number", + "nativeSrc": "9210:2:43", + "nodeType": "YulLiteral", + "src": "9210:2:43", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9193:3:43", + "nodeType": "YulIdentifier", + "src": "9193:3:43" + }, + "nativeSrc": "9193:20:43", + "nodeType": "YulFunctionCall", + "src": "9193:20:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9180:12:43", + "nodeType": "YulIdentifier", + "src": "9180:12:43" + }, + "nativeSrc": "9180:34:43", + "nodeType": "YulFunctionCall", + "src": "9180:34:43" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9169:10:43", + "nodeType": "YulIdentifier", + "src": "9169:10:43" + }, + "nativeSrc": "9169:46:43", + "nodeType": "YulFunctionCall", + "src": "9169:46:43" + }, + "nativeSrc": "9169:46:43", + "nodeType": "YulExpressionStatement", + "src": "9169:46:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9269:11:43", + "nodeType": "YulIdentifier", + "src": "9269:11:43" + }, + { + "kind": "number", + "nativeSrc": "9282:2:43", + "nodeType": "YulLiteral", + "src": "9282:2:43", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9265:3:43", + "nodeType": "YulIdentifier", + "src": "9265:3:43" + }, + "nativeSrc": "9265:20:43", + "nodeType": "YulFunctionCall", + "src": "9265:20:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9252:12:43", + "nodeType": "YulIdentifier", + "src": "9252:12:43" + }, + "nativeSrc": "9252:34:43", + "nodeType": "YulFunctionCall", + "src": "9252:34:43" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9241:10:43", + "nodeType": "YulIdentifier", + "src": "9241:10:43" + }, + "nativeSrc": "9241:46:43", + "nodeType": "YulFunctionCall", + "src": "9241:46:43" + }, + "nativeSrc": "9241:46:43", + "nodeType": "YulExpressionStatement", + "src": "9241:46:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9341:11:43", + "nodeType": "YulIdentifier", + "src": "9341:11:43" + }, + { + "kind": "number", + "nativeSrc": "9354:3:43", + "nodeType": "YulLiteral", + "src": "9354:3:43", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9337:3:43", + "nodeType": "YulIdentifier", + "src": "9337:3:43" + }, + "nativeSrc": "9337:21:43", + "nodeType": "YulFunctionCall", + "src": "9337:21:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9324:12:43", + "nodeType": "YulIdentifier", + "src": "9324:12:43" + }, + "nativeSrc": "9324:35:43", + "nodeType": "YulFunctionCall", + "src": "9324:35:43" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9313:10:43", + "nodeType": "YulIdentifier", + "src": "9313:10:43" + }, + "nativeSrc": "9313:47:43", + "nodeType": "YulFunctionCall", + "src": "9313:47:43" + }, + "nativeSrc": "9313:47:43", + "nodeType": "YulExpressionStatement", + "src": "9313:47:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9414:11:43", + "nodeType": "YulIdentifier", + "src": "9414:11:43" + }, + { + "kind": "number", + "nativeSrc": "9427:3:43", + "nodeType": "YulLiteral", + "src": "9427:3:43", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9410:3:43", + "nodeType": "YulIdentifier", + "src": "9410:3:43" + }, + "nativeSrc": "9410:21:43", + "nodeType": "YulFunctionCall", + "src": "9410:21:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9397:12:43", + "nodeType": "YulIdentifier", + "src": "9397:12:43" + }, + "nativeSrc": "9397:35:43", + "nodeType": "YulFunctionCall", + "src": "9397:35:43" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9386:10:43", + "nodeType": "YulIdentifier", + "src": "9386:10:43" + }, + "nativeSrc": "9386:47:43", + "nodeType": "YulFunctionCall", + "src": "9386:47:43" + }, + "nativeSrc": "9386:47:43", + "nodeType": "YulExpressionStatement", + "src": "9386:47:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9487:11:43", + "nodeType": "YulIdentifier", + "src": "9487:11:43" + }, + { + "kind": "number", + "nativeSrc": "9500:3:43", + "nodeType": "YulLiteral", + "src": "9500:3:43", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9483:3:43", + "nodeType": "YulIdentifier", + "src": "9483:3:43" + }, + "nativeSrc": "9483:21:43", + "nodeType": "YulFunctionCall", + "src": "9483:21:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9470:12:43", + "nodeType": "YulIdentifier", + "src": "9470:12:43" + }, + "nativeSrc": "9470:35:43", + "nodeType": "YulFunctionCall", + "src": "9470:35:43" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9459:10:43", + "nodeType": "YulIdentifier", + "src": "9459:10:43" + }, + "nativeSrc": "9459:47:43", + "nodeType": "YulFunctionCall", + "src": "9459:47:43" + }, + "nativeSrc": "9459:47:43", + "nodeType": "YulExpressionStatement", + "src": "9459:47:43" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9560:11:43", + "nodeType": "YulIdentifier", + "src": "9560:11:43" + }, + { + "kind": "number", + "nativeSrc": "9573:3:43", + "nodeType": "YulLiteral", + "src": "9573:3:43", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9556:3:43", + "nodeType": "YulIdentifier", + "src": "9556:3:43" + }, + "nativeSrc": "9556:21:43", + "nodeType": "YulFunctionCall", + "src": "9556:21:43" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9543:12:43", + "nodeType": "YulIdentifier", + "src": "9543:12:43" + }, + "nativeSrc": "9543:35:43", + "nodeType": "YulFunctionCall", + "src": "9543:35:43" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9532:10:43", + "nodeType": "YulIdentifier", + "src": "9532:10:43" + }, + "nativeSrc": "9532:47:43", + "nodeType": "YulFunctionCall", + "src": "9532:47:43" + }, + "nativeSrc": "9532:47:43", + "nodeType": "YulExpressionStatement", + "src": "9532:47:43" + }, + { + "nativeSrc": "9646:61:43", + "nodeType": "YulVariableDeclaration", + "src": "9646:61:43", + "value": { + "arguments": [ + { + "name": "_pA", + "nativeSrc": "9674:3:43", + "nodeType": "YulIdentifier", + "src": "9674:3:43" + }, + { + "name": "_pB", + "nativeSrc": "9679:3:43", + "nodeType": "YulIdentifier", + "src": "9679:3:43" + }, + { + "name": "_pC", + "nativeSrc": "9684:3:43", + "nodeType": "YulIdentifier", + "src": "9684:3:43" + }, + { + "name": "_pubSignals", + "nativeSrc": "9689:11:43", + "nodeType": "YulIdentifier", + "src": "9689:11:43" + }, + { + "name": "pMem", + "nativeSrc": "9702:4:43", + "nodeType": "YulIdentifier", + "src": "9702:4:43" + } + ], + "functionName": { + "name": "checkPairing", + "nativeSrc": "9661:12:43", + "nodeType": "YulIdentifier", + "src": "9661:12:43" + }, + "nativeSrc": "9661:46:43", + "nodeType": "YulFunctionCall", + "src": "9661:46:43" + }, + "variables": [ + { + "name": "isValid", + "nativeSrc": "9650:7:43", + "nodeType": "YulTypedName", + "src": "9650:7:43", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9728:1:43", + "nodeType": "YulLiteral", + "src": "9728:1:43", + "type": "", + "value": "0" + }, + { + "name": "isValid", + "nativeSrc": "9731:7:43", + "nodeType": "YulIdentifier", + "src": "9731:7:43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9721:6:43", + "nodeType": "YulIdentifier", + "src": "9721:6:43" + }, + "nativeSrc": "9721:18:43", + "nodeType": "YulFunctionCall", + "src": "9721:18:43" + }, + "nativeSrc": "9721:18:43", + "nodeType": "YulExpressionStatement", + "src": "9721:18:43" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9760:1:43", + "nodeType": "YulLiteral", + "src": "9760:1:43", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9763:4:43", + "nodeType": "YulLiteral", + "src": "9763:4:43", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "9753:6:43", + "nodeType": "YulIdentifier", + "src": "9753:6:43" + }, + "nativeSrc": "9753:15:43", + "nodeType": "YulFunctionCall", + "src": "9753:15:43" + }, + "nativeSrc": "9753:15:43", + "nodeType": "YulExpressionStatement", + "src": "9753:15:43" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18010, + "isOffset": false, + "isSlot": false, + "src": "6173:4:43", + "valueSize": 1 + }, + { + "declaration": 18013, + "isOffset": false, + "isSlot": false, + "src": "6217:4:43", + "valueSize": 1 + }, + { + "declaration": 18016, + "isOffset": false, + "isSlot": false, + "src": "6329:4:43", + "valueSize": 1 + }, + { + "declaration": 18019, + "isOffset": false, + "isSlot": false, + "src": "6335:4:43", + "valueSize": 1 + }, + { + "declaration": 18022, + "isOffset": false, + "isSlot": false, + "src": "6425:4:43", + "valueSize": 1 + }, + { + "declaration": 18025, + "isOffset": false, + "isSlot": false, + "src": "6431:4:43", + "valueSize": 1 + }, + { + "declaration": 18028, + "isOffset": false, + "isSlot": false, + "src": "6522:4:43", + "valueSize": 1 + }, + { + "declaration": 18031, + "isOffset": false, + "isSlot": false, + "src": "6528:4:43", + "valueSize": 1 + }, + { + "declaration": 18034, + "isOffset": false, + "isSlot": false, + "src": "6619:4:43", + "valueSize": 1 + }, + { + "declaration": 18037, + "isOffset": false, + "isSlot": false, + "src": "6625:4:43", + "valueSize": 1 + }, + { + "declaration": 18040, + "isOffset": false, + "isSlot": false, + "src": "6716:4:43", + "valueSize": 1 + }, + { + "declaration": 18043, + "isOffset": false, + "isSlot": false, + "src": "6722:4:43", + "valueSize": 1 + }, + { + "declaration": 18046, + "isOffset": false, + "isSlot": false, + "src": "6814:4:43", + "valueSize": 1 + }, + { + "declaration": 18049, + "isOffset": false, + "isSlot": false, + "src": "6820:4:43", + "valueSize": 1 + }, + { + "declaration": 18052, + "isOffset": false, + "isSlot": false, + "src": "6912:4:43", + "valueSize": 1 + }, + { + "declaration": 18055, + "isOffset": false, + "isSlot": false, + "src": "6918:4:43", + "valueSize": 1 + }, + { + "declaration": 18058, + "isOffset": false, + "isSlot": false, + "src": "7010:4:43", + "valueSize": 1 + }, + { + "declaration": 18061, + "isOffset": false, + "isSlot": false, + "src": "7016:4:43", + "valueSize": 1 + }, + { + "declaration": 18074, + "isOffset": false, + "isSlot": false, + "src": "9674:3:43", + "valueSize": 1 + }, + { + "declaration": 18080, + "isOffset": false, + "isSlot": false, + "src": "9679:3:43", + "valueSize": 1 + }, + { + "declaration": 18084, + "isOffset": false, + "isSlot": false, + "src": "9684:3:43", + "valueSize": 1 + }, + { + "declaration": 18088, + "isOffset": false, + "isSlot": false, + "src": "9054:11:43", + "valueSize": 1 + }, + { + "declaration": 18088, + "isOffset": false, + "isSlot": false, + "src": "9125:11:43", + "valueSize": 1 + }, + { + "declaration": 18088, + "isOffset": false, + "isSlot": false, + "src": "9197:11:43", + "valueSize": 1 + }, + { + "declaration": 18088, + "isOffset": false, + "isSlot": false, + "src": "9269:11:43", + "valueSize": 1 + }, + { + "declaration": 18088, + "isOffset": false, + "isSlot": false, + "src": "9341:11:43", + "valueSize": 1 + }, + { + "declaration": 18088, + "isOffset": false, + "isSlot": false, + "src": "9414:11:43", + "valueSize": 1 + }, + { + "declaration": 18088, + "isOffset": false, + "isSlot": false, + "src": "9487:11:43", + "valueSize": 1 + }, + { + "declaration": 18088, + "isOffset": false, + "isSlot": false, + "src": "9560:11:43", + "valueSize": 1 + }, + { + "declaration": 18088, + "isOffset": false, + "isSlot": false, + "src": "9689:11:43", + "valueSize": 1 + }, + { + "declaration": 17968, + "isOffset": false, + "isSlot": false, + "src": "7602:6:43", + "valueSize": 1 + }, + { + "declaration": 17971, + "isOffset": false, + "isSlot": false, + "src": "7654:6:43", + "valueSize": 1 + }, + { + "declaration": 17974, + "isOffset": false, + "isSlot": false, + "src": "7732:6:43", + "valueSize": 1 + }, + { + "declaration": 17977, + "isOffset": false, + "isSlot": false, + "src": "7784:6:43", + "valueSize": 1 + }, + { + "declaration": 17980, + "isOffset": false, + "isSlot": false, + "src": "7836:6:43", + "valueSize": 1 + }, + { + "declaration": 17983, + "isOffset": false, + "isSlot": false, + "src": "7888:6:43", + "valueSize": 1 + }, + { + "declaration": 17998, + "isOffset": false, + "isSlot": false, + "src": "8530:7:43", + "valueSize": 1 + }, + { + "declaration": 18001, + "isOffset": false, + "isSlot": false, + "src": "8583:7:43", + "valueSize": 1 + }, + { + "declaration": 18004, + "isOffset": false, + "isSlot": false, + "src": "8636:7:43", + "valueSize": 1 + }, + { + "declaration": 18007, + "isOffset": false, + "isSlot": false, + "src": "8689:7:43", + "valueSize": 1 + }, + { + "declaration": 17986, + "isOffset": false, + "isSlot": false, + "src": "8136:7:43", + "valueSize": 1 + }, + { + "declaration": 17989, + "isOffset": false, + "isSlot": false, + "src": "8189:7:43", + "valueSize": 1 + }, + { + "declaration": 17992, + "isOffset": false, + "isSlot": false, + "src": "8242:7:43", + "valueSize": 1 + }, + { + "declaration": 17995, + "isOffset": false, + "isSlot": false, + "src": "8295:7:43", + "valueSize": 1 + }, + { + "declaration": 18070, + "isOffset": false, + "isSlot": false, + "src": "8938:8:43", + "valueSize": 1 + }, + { + "declaration": 18067, + "isOffset": false, + "isSlot": false, + "src": "6090:8:43", + "valueSize": 1 + }, + { + "declaration": 18064, + "isOffset": false, + "isSlot": false, + "src": "6138:3:43", + "valueSize": 1 + }, + { + "declaration": 18064, + "isOffset": false, + "isSlot": false, + "src": "7981:3:43", + "valueSize": 1 + }, + { + "declaration": 18064, + "isOffset": false, + "isSlot": false, + "src": "8052:3:43", + "valueSize": 1 + }, + { + "declaration": 17965, + "isOffset": false, + "isSlot": false, + "src": "7201:1:43", + "valueSize": 1 + }, + { + "declaration": 17965, + "isOffset": false, + "isSlot": false, + "src": "7232:1:43", + "valueSize": 1 + }, + { + "declaration": 17962, + "isOffset": false, + "isSlot": false, + "src": "5023:1:43", + "valueSize": 1 + } + ], + "id": 18093, + "nodeType": "InlineAssembly", + "src": "4943:4836:43" + } + ] + }, + "functionSelector": "c9219a7a", + "id": 18095, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyProof", + "nameLocation": "4795:11:43", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18074, + "mutability": "mutable", + "name": "_pA", + "nameLocation": "4824:3:43", + "nodeType": "VariableDeclaration", + "scope": 18095, + "src": "4807:20:43", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 18071, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4807:4:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18073, + "length": { + "hexValue": "32", + "id": 18072, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4812:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4807:7:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18080, + "mutability": "mutable", + "name": "_pB", + "nameLocation": "4849:3:43", + "nodeType": "VariableDeclaration", + "scope": 18095, + "src": "4829:23:43", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptr", + "typeString": "uint256[2][2]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 18075, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4829:4:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18077, + "length": { + "hexValue": "32", + "id": 18076, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4834:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4829:7:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "id": 18079, + "length": { + "hexValue": "32", + "id": 18078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4837:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4829:10:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18084, + "mutability": "mutable", + "name": "_pC", + "nameLocation": "4871:3:43", + "nodeType": "VariableDeclaration", + "scope": 18095, + "src": "4854:20:43", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 18081, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4854:4:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18083, + "length": { + "hexValue": "32", + "id": 18082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4859:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4854:7:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18088, + "mutability": "mutable", + "name": "_pubSignals", + "nameLocation": "4893:11:43", + "nodeType": "VariableDeclaration", + "scope": 18095, + "src": "4876:28:43", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8]" + }, + "typeName": { + "baseType": { + "id": 18085, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4876:4:43", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18087, + "length": { + "hexValue": "38", + "id": 18086, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4881:1:43", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "nodeType": "ArrayTypeName", + "src": "4876:7:43", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", + "typeString": "uint256[8]" + } + }, + "visibility": "internal" + } + ], + "src": "4806:99:43" + }, + "returnParameters": { + "id": 18092, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18091, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18095, + "src": "4927:4:43", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18090, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4927:4:43", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4926:6:43" + }, + "scope": 18096, + "src": "4786:5000:43", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 18097, + "src": "831:8958:43", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "798:8992:43" + }, + "id": 43 + }, + "contracts/verifiers/idcard/Verifier_idcard_sha512.sol": { + "ast": { + "absolutePath": "contracts/verifiers/idcard/Verifier_idcard_sha512.sol", + "exportedSymbols": { + "Verifier_idcard_sha512": [ + 18235 + ] + }, + "id": 18236, + "license": "GPL-3.0", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 18098, + "literals": [ + "solidity", + ">=", + "0.7", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "798:31:44" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "Verifier_idcard_sha512", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 18235, + "linearizedBaseContracts": [ + 18235 + ], + "name": "Verifier_idcard_sha512", + "nameLocation": "840:22:44", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 18101, + "mutability": "constant", + "name": "r", + "nameLocation": "911:1:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "894:101:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18099, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "894:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838353438333634343030343136303334333433363938323034313836353735383038343935363137", + "id": 18100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "918:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_21888242871839275222246405745257275088548364400416034343698204186575808495617_by_1", + "typeString": "int_const 2188...(69 digits omitted)...5617" + }, + "value": "21888242871839275222246405745257275088548364400416034343698204186575808495617" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18104, + "mutability": "constant", + "name": "q", + "nameLocation": "1041:1:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "1024:100:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1024:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383838323432383731383339323735323232323436343035373435323537323735303838363936333131313537323937383233363632363839303337383934363435323236323038353833", + "id": 18103, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1047:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_21888242871839275222246405745257275088696311157297823662689037894645226208583_by_1", + "typeString": "int_const 2188...(69 digits omitted)...8583" + }, + "value": "21888242871839275222246405745257275088696311157297823662689037894645226208583" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18107, + "mutability": "constant", + "name": "alphax", + "nameLocation": "1177:6:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "1160:104:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18105, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1160:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3230343931313932383035333930343835323939313533303039373733353934353334393430313839323631383636323238343437393138303638363538343731393730343831373633303432", + "id": 18106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1187:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_20491192805390485299153009773594534940189261866228447918068658471970481763042_by_1", + "typeString": "int_const 2049...(69 digits omitted)...3042" + }, + "value": "20491192805390485299153009773594534940189261866228447918068658471970481763042" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18110, + "mutability": "constant", + "name": "alphay", + "nameLocation": "1287:6:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "1270:103:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1270:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "39333833343835333633303533323930323030393138333437313536313537383336353636353632393637393934303339373132323733343439393032363231323636313738353435393538", + "id": 18109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1297:76:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_9383485363053290200918347156157836566562967994039712273449902621266178545958_by_1", + "typeString": "int_const 9383...(68 digits omitted)...5958" + }, + "value": "9383485363053290200918347156157836566562967994039712273449902621266178545958" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18113, + "mutability": "constant", + "name": "betax1", + "nameLocation": "1396:6:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "1379:103:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18111, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1379:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34323532383232383738373538333030383539313233383937393831343530353931333533353333303733343133313937373731373638363531343432363635373532323539333937313332", + "id": 18112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1406:76:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_4252822878758300859123897981450591353533073413197771768651442665752259397132_by_1", + "typeString": "int_const 4252...(68 digits omitted)...7132" + }, + "value": "4252822878758300859123897981450591353533073413197771768651442665752259397132" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18116, + "mutability": "constant", + "name": "betax2", + "nameLocation": "1505:6:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "1488:103:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1488:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "36333735363134333531363838373235323036343033393438323632383638393632373933363235373434303433373934333035373135323232303131353238343539363536373338373331", + "id": 18115, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1515:76:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_6375614351688725206403948262868962793625744043794305715222011528459656738731_by_1", + "typeString": "int_const 6375...(68 digits omitted)...8731" + }, + "value": "6375614351688725206403948262868962793625744043794305715222011528459656738731" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18119, + "mutability": "constant", + "name": "betay1", + "nameLocation": "1614:6:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "1597:104:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18117, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1597:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3231383437303335313035353238373435343033323838323332363931313437353834373238313931313632373332323939383635333338333737313539363932333530303539313336363739", + "id": 18118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1624:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_21847035105528745403288232691147584728191162732299865338377159692350059136679_by_1", + "typeString": "int_const 2184...(69 digits omitted)...6679" + }, + "value": "21847035105528745403288232691147584728191162732299865338377159692350059136679" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18122, + "mutability": "constant", + "name": "betay2", + "nameLocation": "1724:6:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "1707:104:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18120, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1707:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130353035323432363236333730323632323737353532393031303832303934333536363937343039383335363830323230353930393731383733313731313430333731333331323036383536", + "id": 18121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1734:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_10505242626370262277552901082094356697409835680220590971873171140371331206856_by_1", + "typeString": "int_const 1050...(69 digits omitted)...6856" + }, + "value": "10505242626370262277552901082094356697409835680220590971873171140371331206856" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18125, + "mutability": "constant", + "name": "gammax1", + "nameLocation": "1834:7:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "1817:104:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18123, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1817:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3131353539373332303332393836333837313037393931303034303231333932323835373833393235383132383631383231313932353330393137343033313531343532333931383035363334", + "id": 18124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1844:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_11559732032986387107991004021392285783925812861821192530917403151452391805634_by_1", + "typeString": "int_const 1155...(69 digits omitted)...5634" + }, + "value": "11559732032986387107991004021392285783925812861821192530917403151452391805634" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18128, + "mutability": "constant", + "name": "gammax2", + "nameLocation": "1944:7:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "1927:104:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18126, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1927:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130383537303436393939303233303537313335393434353730373632323332383239343831333730373536333539353738353138303836393930353139393933323835363535383532373831", + "id": 18127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1954:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_10857046999023057135944570762232829481370756359578518086990519993285655852781_by_1", + "typeString": "int_const 1085...(69 digits omitted)...2781" + }, + "value": "10857046999023057135944570762232829481370756359578518086990519993285655852781" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18131, + "mutability": "constant", + "name": "gammay1", + "nameLocation": "2054:7:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "2037:103:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2037:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34303832333637383735383633343333363831333332323033343033313435343335353638333136383531333237353933343031323038313035373431303736323134313230303933353331", + "id": 18130, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2064:76:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_4082367875863433681332203403145435568316851327593401208105741076214120093531_by_1", + "typeString": "int_const 4082...(68 digits omitted)...3531" + }, + "value": "4082367875863433681332203403145435568316851327593401208105741076214120093531" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18134, + "mutability": "constant", + "name": "gammay2", + "nameLocation": "2163:7:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "2146:103:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18132, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2146:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "38343935363533393233313233343331343137363034393733323437343839323732343338343138313930353837323633363030313438373730323830363439333036393538313031393330", + "id": 18133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2173:76:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_8495653923123431417604973247489272438418190587263600148770280649306958101930_by_1", + "typeString": "int_const 8495...(68 digits omitted)...1930" + }, + "value": "8495653923123431417604973247489272438418190587263600148770280649306958101930" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18137, + "mutability": "constant", + "name": "deltax1", + "nameLocation": "2272:7:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "2255:103:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2255:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "34393335303333333237353837343631373832333839333939363237383534393230393931323336363136393038383130343639313138373134373531373332333432323735303631343436", + "id": 18136, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2282:76:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_4935033327587461782389399627854920991236616908810469118714751732342275061446_by_1", + "typeString": "int_const 4935...(68 digits omitted)...1446" + }, + "value": "4935033327587461782389399627854920991236616908810469118714751732342275061446" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18140, + "mutability": "constant", + "name": "deltax2", + "nameLocation": "2381:7:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "2364:104:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18138, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2364:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3135303430393538383137383038323934353339393335353434333639343139373736313833313137323339333439333830393031313633313131343039353034393538303137363633383434", + "id": 18139, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2391:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_15040958817808294539935544369419776183117239349380901163111409504958017663844_by_1", + "typeString": "int_const 1504...(69 digits omitted)...3844" + }, + "value": "15040958817808294539935544369419776183117239349380901163111409504958017663844" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18143, + "mutability": "constant", + "name": "deltay1", + "nameLocation": "2491:7:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "2474:103:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18141, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2474:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "32303037323234333136353731333434313631343635323338343732383031383430383738343839353038323832373839323838383838383538353539383438363035363436323430383438", + "id": 18142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2501:76:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_2007224316571344161465238472801840878489508282789288888858559848605646240848_by_1", + "typeString": "int_const 2007...(68 digits omitted)...0848" + }, + "value": "2007224316571344161465238472801840878489508282789288888858559848605646240848" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18146, + "mutability": "constant", + "name": "deltay2", + "nameLocation": "2600:7:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "2583:104:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2583:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3138353539373439373533393538313833353833353932343738353332313439323134323234373033303136393735323938333333343630383631393135353434363533363631333538313434", + "id": 18145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2610:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_18559749753958183583592478532149214224703016975298333460861915544653661358144_by_1", + "typeString": "int_const 1855...(69 digits omitted)...8144" + }, + "value": "18559749753958183583592478532149214224703016975298333460861915544653661358144" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18149, + "mutability": "constant", + "name": "IC0x", + "nameLocation": "2716:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "2699:100:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18147, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2699:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "36373735303534343032323238363433373136323535383032333334373334393836393438363832363832343330353138323739343836323533313936343831393839333039353636373232", + "id": 18148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2723:76:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_6775054402228643716255802334734986948682682430518279486253196481989309566722_by_1", + "typeString": "int_const 6775...(68 digits omitted)...6722" + }, + "value": "6775054402228643716255802334734986948682682430518279486253196481989309566722" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18152, + "mutability": "constant", + "name": "IC0y", + "nameLocation": "2822:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "2805:100:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18150, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2805:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31323536323139303437313332363432313138303235363039383438383136333930333436313037303035333839383934363235333833313035383036353136393638333439343235313634", + "id": 18151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2829:76:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_1256219047132642118025609848816390346107005389894625383105806516968349425164_by_1", + "typeString": "int_const 1256...(68 digits omitted)...5164" + }, + "value": "1256219047132642118025609848816390346107005389894625383105806516968349425164" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18155, + "mutability": "constant", + "name": "IC1x", + "nameLocation": "2933:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "2916:101:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18153, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2916:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3130313130353533313237373138363031353032343934313536303632303237303231373932323739343135363935303037373036333033303634343435383935333035373436373936393732", + "id": 18154, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2940:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_10110553127718601502494156062027021792279415695007706303064445895305746796972_by_1", + "typeString": "int_const 1011...(69 digits omitted)...6972" + }, + "value": "10110553127718601502494156062027021792279415695007706303064445895305746796972" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18158, + "mutability": "constant", + "name": "IC1y", + "nameLocation": "3040:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "3023:101:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18156, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3023:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3139383938393738333939313631303635383739343634383436383239383338303634363339343332343733333937343430363537333933353135363934323339303735353439343539343134", + "id": 18157, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3047:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_19898978399161065879464846829838064639432473397440657393515694239075549459414_by_1", + "typeString": "int_const 1989...(69 digits omitted)...9414" + }, + "value": "19898978399161065879464846829838064639432473397440657393515694239075549459414" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18161, + "mutability": "constant", + "name": "IC2x", + "nameLocation": "3152:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "3135:101:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18159, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3135:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3134353630313837343334343939303334383731333531343637363237313731313033313732363235313230383434363531383534313134383237353536303033373838373230393730343137", + "id": 18160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3159:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_14560187434499034871351467627171103172625120844651854114827556003788720970417_by_1", + "typeString": "int_const 1456...(69 digits omitted)...0417" + }, + "value": "14560187434499034871351467627171103172625120844651854114827556003788720970417" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18164, + "mutability": "constant", + "name": "IC2y", + "nameLocation": "3259:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "3242:101:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3242:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3134393336313038353731373132393732323435333031373439363731303937303339373839363036383332333035393431303830363634323235373736323638363535373531363536393533", + "id": 18163, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3266:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_14936108571712972245301749671097039789606832305941080664225776268655751656953_by_1", + "typeString": "int_const 1493...(69 digits omitted)...6953" + }, + "value": "14936108571712972245301749671097039789606832305941080664225776268655751656953" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18167, + "mutability": "constant", + "name": "IC3x", + "nameLocation": "3371:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "3354:101:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18165, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3354:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3134303539393139383931383238383039303137373232303231343332343138323331393331343032353935303938323038363837353432353938313233333338313530373435363430333833", + "id": 18166, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3378:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_14059919891828809017722021432418231931402595098208687542598123338150745640383_by_1", + "typeString": "int_const 1405...(69 digits omitted)...0383" + }, + "value": "14059919891828809017722021432418231931402595098208687542598123338150745640383" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18170, + "mutability": "constant", + "name": "IC3y", + "nameLocation": "3478:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "3461:100:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18168, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3461:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "35323837313839313837333032343439383832333830353837333035343832303938313332303435333035353730363836313239333834363534303137363432343238383536353337323537", + "id": 18169, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3485:76:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_5287189187302449882380587305482098132045305570686129384654017642428856537257_by_1", + "typeString": "int_const 5287...(68 digits omitted)...7257" + }, + "value": "5287189187302449882380587305482098132045305570686129384654017642428856537257" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18173, + "mutability": "constant", + "name": "IC4x", + "nameLocation": "3589:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "3572:100:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3572:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "36373036393439373633383533393935303539353035323432343337363438343332393239383338313635333637313632343637373436333733343137333834383137363439393339393730", + "id": 18172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3596:76:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_6706949763853995059505242437648432929838165367162467746373417384817649939970_by_1", + "typeString": "int_const 6706...(68 digits omitted)...9970" + }, + "value": "6706949763853995059505242437648432929838165367162467746373417384817649939970" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18176, + "mutability": "constant", + "name": "IC4y", + "nameLocation": "3695:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "3678:100:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18174, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3678:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "32303135353130313835363438313434323730373439373634333736363536333432323536313236323830333031393737393331393037333534333638323737313938353631383136373837", + "id": 18175, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3702:76:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_2015510185648144270749764376656342256126280301977931907354368277198561816787_by_1", + "typeString": "int_const 2015...(68 digits omitted)...6787" + }, + "value": "2015510185648144270749764376656342256126280301977931907354368277198561816787" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18179, + "mutability": "constant", + "name": "IC5x", + "nameLocation": "3806:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "3789:101:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18177, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3789:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3138353436373635303138303039333835383639323533333932373338303830363738333233343334343933383634343438353835343032363835373438333239383536313536343937353537", + "id": 18178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3813:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_18546765018009385869253392738080678323434493864448585402685748329856156497557_by_1", + "typeString": "int_const 1854...(69 digits omitted)...7557" + }, + "value": "18546765018009385869253392738080678323434493864448585402685748329856156497557" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18182, + "mutability": "constant", + "name": "IC5y", + "nameLocation": "3913:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "3896:100:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3896:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "39373130383438313839333138353731313936353138323731333733353130343934323638383031333536383732343435383130333535383533313638303538343932343539393838313939", + "id": 18181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3920:76:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_9710848189318571196518271373510494268801356872445810355853168058492459988199_by_1", + "typeString": "int_const 9710...(68 digits omitted)...8199" + }, + "value": "9710848189318571196518271373510494268801356872445810355853168058492459988199" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18185, + "mutability": "constant", + "name": "IC6x", + "nameLocation": "4024:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "4007:99:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18183, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4007:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "353434393032373436313130353737333234333239333634323938363530363933363637333636303137323539333839373836383638373338303732363634373839343234383032393234", + "id": 18184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4031:75:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_544902746110577324329364298650693667366017259389786868738072664789424802924_by_1", + "typeString": "int_const 5449...(67 digits omitted)...2924" + }, + "value": "544902746110577324329364298650693667366017259389786868738072664789424802924" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18188, + "mutability": "constant", + "name": "IC6y", + "nameLocation": "4129:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "4112:101:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18186, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4112:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3139383632393633393031333037343939323331383330303636343533333634323334373238393532343939323535363339383632363630313030353532313836303035373931393431303635", + "id": 18187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4136:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_19862963901307499231830066453364234728952499255639862660100552186005791941065_by_1", + "typeString": "int_const 1986...(69 digits omitted)...1065" + }, + "value": "19862963901307499231830066453364234728952499255639862660100552186005791941065" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18191, + "mutability": "constant", + "name": "IC7x", + "nameLocation": "4241:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "4224:100:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18189, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4224:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "39303631303736353230373634333531363230333739353135363930353835363930303739303334313334303832343034393235363939363230353835323034383636333532303738343735", + "id": 18190, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4248:76:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_9061076520764351620379515690585690079034134082404925699620585204866352078475_by_1", + "typeString": "int_const 9061...(68 digits omitted)...8475" + }, + "value": "9061076520764351620379515690585690079034134082404925699620585204866352078475" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18194, + "mutability": "constant", + "name": "IC7y", + "nameLocation": "4347:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "4330:101:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18192, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4330:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3139343834363432353432363035393537343536393835303531343437373130353031353637353238323739393032363530323939383637343438313330323438323336323931373332383031", + "id": 18193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4354:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_19484642542605957456985051447710501567528279902650299867448130248236291732801_by_1", + "typeString": "int_const 1948...(69 digits omitted)...2801" + }, + "value": "19484642542605957456985051447710501567528279902650299867448130248236291732801" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18197, + "mutability": "constant", + "name": "IC8x", + "nameLocation": "4459:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "4442:100:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18195, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4442:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "39393134313139363937343232373735333734353130303931323136393838393030303633363931323233363436373832373938303337353830343238343531393534383039363338323439", + "id": 18196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4466:76:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_9914119697422775374510091216988900063691223646782798037580428451954809638249_by_1", + "typeString": "int_const 9914...(68 digits omitted)...8249" + }, + "value": "9914119697422775374510091216988900063691223646782798037580428451954809638249" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18200, + "mutability": "constant", + "name": "IC8y", + "nameLocation": "4565:4:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "4548:101:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18198, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4548:7:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3132393031383935333237393438333330323633393735383635333433303430323137313935303733343234333831303532383932313631343137303337303933303139393831333932323034", + "id": 18199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4572:77:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_12901895327948330263975865343040217195073424381052892161417037093019981392204_by_1", + "typeString": "int_const 1290...(69 digits omitted)...2204" + }, + "value": "12901895327948330263975865343040217195073424381052892161417037093019981392204" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18203, + "mutability": "constant", + "name": "pVk", + "nameLocation": "4697:3:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "4681:23:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 18201, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4681:6:44", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "30", + "id": 18202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4703:1:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18206, + "mutability": "constant", + "name": "pPairing", + "nameLocation": "4726:8:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "4710:30:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 18204, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4710:6:44", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "313238", + "id": 18205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4737:3:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_128_by_1", + "typeString": "int_const 128" + }, + "value": "128" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 18209, + "mutability": "constant", + "name": "pLastMem", + "nameLocation": "4763:8:44", + "nodeType": "VariableDeclaration", + "scope": 18235, + "src": "4747:30:44", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 18207, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4747:6:44", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "383936", + "id": 18208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4774:3:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_896_by_1", + "typeString": "int_const 896" + }, + "value": "896" + }, + "visibility": "internal" + }, + { + "body": { + "id": 18233, + "nodeType": "Block", + "src": "4931:4853:44", + "statements": [ + { + "AST": { + "nativeSrc": "4950:4827:44", + "nodeType": "YulBlock", + "src": "4950:4827:44", + "statements": [ + { + "body": { + "nativeSrc": "4987:140:44", + "nodeType": "YulBlock", + "src": "4987:140:44", + "statements": [ + { + "body": { + "nativeSrc": "5025:88:44", + "nodeType": "YulBlock", + "src": "5025:88:44", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5054:1:44", + "nodeType": "YulLiteral", + "src": "5054:1:44", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5057:1:44", + "nodeType": "YulLiteral", + "src": "5057:1:44", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5047:6:44", + "nodeType": "YulIdentifier", + "src": "5047:6:44" + }, + "nativeSrc": "5047:12:44", + "nodeType": "YulFunctionCall", + "src": "5047:12:44" + }, + "nativeSrc": "5047:12:44", + "nodeType": "YulExpressionStatement", + "src": "5047:12:44" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5087:1:44", + "nodeType": "YulLiteral", + "src": "5087:1:44", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5090:4:44", + "nodeType": "YulLiteral", + "src": "5090:4:44", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "5080:6:44", + "nodeType": "YulIdentifier", + "src": "5080:6:44" + }, + "nativeSrc": "5080:15:44", + "nodeType": "YulFunctionCall", + "src": "5080:15:44" + }, + "nativeSrc": "5080:15:44", + "nodeType": "YulExpressionStatement", + "src": "5080:15:44" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "v", + "nativeSrc": "5018:1:44", + "nodeType": "YulIdentifier", + "src": "5018:1:44" + }, + { + "name": "r", + "nativeSrc": "5021:1:44", + "nodeType": "YulIdentifier", + "src": "5021:1:44" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5015:2:44", + "nodeType": "YulIdentifier", + "src": "5015:2:44" + }, + "nativeSrc": "5015:8:44", + "nodeType": "YulFunctionCall", + "src": "5015:8:44" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5008:6:44", + "nodeType": "YulIdentifier", + "src": "5008:6:44" + }, + "nativeSrc": "5008:16:44", + "nodeType": "YulFunctionCall", + "src": "5008:16:44" + }, + "nativeSrc": "5005:108:44", + "nodeType": "YulIf", + "src": "5005:108:44" + } + ] + }, + "name": "checkField", + "nativeSrc": "4964:163:44", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "v", + "nativeSrc": "4984:1:44", + "nodeType": "YulTypedName", + "src": "4984:1:44", + "type": "" + } + ], + "src": "4964:163:44" + }, + { + "body": { + "nativeSrc": "5264:705:44", + "nodeType": "YulBlock", + "src": "5264:705:44", + "statements": [ + { + "nativeSrc": "5282:11:44", + "nodeType": "YulVariableDeclaration", + "src": "5282:11:44", + "variables": [ + { + "name": "success", + "nativeSrc": "5286:7:44", + "nodeType": "YulTypedName", + "src": "5286:7:44", + "type": "" + } + ] + }, + { + "nativeSrc": "5310:22:44", + "nodeType": "YulVariableDeclaration", + "src": "5310:22:44", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5327:4:44", + "nodeType": "YulLiteral", + "src": "5327:4:44", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5321:5:44", + "nodeType": "YulIdentifier", + "src": "5321:5:44" + }, + "nativeSrc": "5321:11:44", + "nodeType": "YulFunctionCall", + "src": "5321:11:44" + }, + "variables": [ + { + "name": "mIn", + "nativeSrc": "5314:3:44", + "nodeType": "YulTypedName", + "src": "5314:3:44", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5356:3:44", + "nodeType": "YulIdentifier", + "src": "5356:3:44" + }, + { + "name": "x", + "nativeSrc": "5361:1:44", + "nodeType": "YulIdentifier", + "src": "5361:1:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5349:6:44", + "nodeType": "YulIdentifier", + "src": "5349:6:44" + }, + "nativeSrc": "5349:14:44", + "nodeType": "YulFunctionCall", + "src": "5349:14:44" + }, + "nativeSrc": "5349:14:44", + "nodeType": "YulExpressionStatement", + "src": "5349:14:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5391:3:44", + "nodeType": "YulIdentifier", + "src": "5391:3:44" + }, + { + "kind": "number", + "nativeSrc": "5396:2:44", + "nodeType": "YulLiteral", + "src": "5396:2:44", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5387:3:44", + "nodeType": "YulIdentifier", + "src": "5387:3:44" + }, + "nativeSrc": "5387:12:44", + "nodeType": "YulFunctionCall", + "src": "5387:12:44" + }, + { + "name": "y", + "nativeSrc": "5401:1:44", + "nodeType": "YulIdentifier", + "src": "5401:1:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5380:6:44", + "nodeType": "YulIdentifier", + "src": "5380:6:44" + }, + "nativeSrc": "5380:23:44", + "nodeType": "YulFunctionCall", + "src": "5380:23:44" + }, + "nativeSrc": "5380:23:44", + "nodeType": "YulExpressionStatement", + "src": "5380:23:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5431:3:44", + "nodeType": "YulIdentifier", + "src": "5431:3:44" + }, + { + "kind": "number", + "nativeSrc": "5436:2:44", + "nodeType": "YulLiteral", + "src": "5436:2:44", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5427:3:44", + "nodeType": "YulIdentifier", + "src": "5427:3:44" + }, + "nativeSrc": "5427:12:44", + "nodeType": "YulFunctionCall", + "src": "5427:12:44" + }, + { + "name": "s", + "nativeSrc": "5441:1:44", + "nodeType": "YulIdentifier", + "src": "5441:1:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5420:6:44", + "nodeType": "YulIdentifier", + "src": "5420:6:44" + }, + "nativeSrc": "5420:23:44", + "nodeType": "YulFunctionCall", + "src": "5420:23:44" + }, + "nativeSrc": "5420:23:44", + "nodeType": "YulExpressionStatement", + "src": "5420:23:44" + }, + { + "nativeSrc": "5461:60:44", + "nodeType": "YulAssignment", + "src": "5461:60:44", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "5487:3:44", + "nodeType": "YulIdentifier", + "src": "5487:3:44" + }, + "nativeSrc": "5487:5:44", + "nodeType": "YulFunctionCall", + "src": "5487:5:44" + }, + { + "kind": "number", + "nativeSrc": "5494:4:44", + "nodeType": "YulLiteral", + "src": "5494:4:44", + "type": "", + "value": "2000" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5483:3:44", + "nodeType": "YulIdentifier", + "src": "5483:3:44" + }, + "nativeSrc": "5483:16:44", + "nodeType": "YulFunctionCall", + "src": "5483:16:44" + }, + { + "kind": "number", + "nativeSrc": "5501:1:44", + "nodeType": "YulLiteral", + "src": "5501:1:44", + "type": "", + "value": "7" + }, + { + "name": "mIn", + "nativeSrc": "5504:3:44", + "nodeType": "YulIdentifier", + "src": "5504:3:44" + }, + { + "kind": "number", + "nativeSrc": "5509:2:44", + "nodeType": "YulLiteral", + "src": "5509:2:44", + "type": "", + "value": "96" + }, + { + "name": "mIn", + "nativeSrc": "5513:3:44", + "nodeType": "YulIdentifier", + "src": "5513:3:44" + }, + { + "kind": "number", + "nativeSrc": "5518:2:44", + "nodeType": "YulLiteral", + "src": "5518:2:44", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "5472:10:44", + "nodeType": "YulIdentifier", + "src": "5472:10:44" + }, + "nativeSrc": "5472:49:44", + "nodeType": "YulFunctionCall", + "src": "5472:49:44" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "5461:7:44", + "nodeType": "YulIdentifier", + "src": "5461:7:44" + } + ] + }, + { + "body": { + "nativeSrc": "5558:88:44", + "nodeType": "YulBlock", + "src": "5558:88:44", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5587:1:44", + "nodeType": "YulLiteral", + "src": "5587:1:44", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5590:1:44", + "nodeType": "YulLiteral", + "src": "5590:1:44", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5580:6:44", + "nodeType": "YulIdentifier", + "src": "5580:6:44" + }, + "nativeSrc": "5580:12:44", + "nodeType": "YulFunctionCall", + "src": "5580:12:44" + }, + "nativeSrc": "5580:12:44", + "nodeType": "YulExpressionStatement", + "src": "5580:12:44" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5620:1:44", + "nodeType": "YulLiteral", + "src": "5620:1:44", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5623:4:44", + "nodeType": "YulLiteral", + "src": "5623:4:44", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "5613:6:44", + "nodeType": "YulIdentifier", + "src": "5613:6:44" + }, + "nativeSrc": "5613:15:44", + "nodeType": "YulFunctionCall", + "src": "5613:15:44" + }, + "nativeSrc": "5613:15:44", + "nodeType": "YulExpressionStatement", + "src": "5613:15:44" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "success", + "nativeSrc": "5549:7:44", + "nodeType": "YulIdentifier", + "src": "5549:7:44" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5542:6:44", + "nodeType": "YulIdentifier", + "src": "5542:6:44" + }, + "nativeSrc": "5542:15:44", + "nodeType": "YulFunctionCall", + "src": "5542:15:44" + }, + "nativeSrc": "5539:107:44", + "nodeType": "YulIf", + "src": "5539:107:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5675:3:44", + "nodeType": "YulIdentifier", + "src": "5675:3:44" + }, + { + "kind": "number", + "nativeSrc": "5680:2:44", + "nodeType": "YulLiteral", + "src": "5680:2:44", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5671:3:44", + "nodeType": "YulIdentifier", + "src": "5671:3:44" + }, + "nativeSrc": "5671:12:44", + "nodeType": "YulFunctionCall", + "src": "5671:12:44" + }, + { + "arguments": [ + { + "name": "pR", + "nativeSrc": "5691:2:44", + "nodeType": "YulIdentifier", + "src": "5691:2:44" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5685:5:44", + "nodeType": "YulIdentifier", + "src": "5685:5:44" + }, + "nativeSrc": "5685:9:44", + "nodeType": "YulFunctionCall", + "src": "5685:9:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5664:6:44", + "nodeType": "YulIdentifier", + "src": "5664:6:44" + }, + "nativeSrc": "5664:31:44", + "nodeType": "YulFunctionCall", + "src": "5664:31:44" + }, + "nativeSrc": "5664:31:44", + "nodeType": "YulExpressionStatement", + "src": "5664:31:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "mIn", + "nativeSrc": "5723:3:44", + "nodeType": "YulIdentifier", + "src": "5723:3:44" + }, + { + "kind": "number", + "nativeSrc": "5728:2:44", + "nodeType": "YulLiteral", + "src": "5728:2:44", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5719:3:44", + "nodeType": "YulIdentifier", + "src": "5719:3:44" + }, + "nativeSrc": "5719:12:44", + "nodeType": "YulFunctionCall", + "src": "5719:12:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pR", + "nativeSrc": "5743:2:44", + "nodeType": "YulIdentifier", + "src": "5743:2:44" + }, + { + "kind": "number", + "nativeSrc": "5747:2:44", + "nodeType": "YulLiteral", + "src": "5747:2:44", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5739:3:44", + "nodeType": "YulIdentifier", + "src": "5739:3:44" + }, + "nativeSrc": "5739:11:44", + "nodeType": "YulFunctionCall", + "src": "5739:11:44" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5733:5:44", + "nodeType": "YulIdentifier", + "src": "5733:5:44" + }, + "nativeSrc": "5733:18:44", + "nodeType": "YulFunctionCall", + "src": "5733:18:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5712:6:44", + "nodeType": "YulIdentifier", + "src": "5712:6:44" + }, + "nativeSrc": "5712:40:44", + "nodeType": "YulFunctionCall", + "src": "5712:40:44" + }, + "nativeSrc": "5712:40:44", + "nodeType": "YulExpressionStatement", + "src": "5712:40:44" + }, + { + "nativeSrc": "5770:60:44", + "nodeType": "YulAssignment", + "src": "5770:60:44", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "5796:3:44", + "nodeType": "YulIdentifier", + "src": "5796:3:44" + }, + "nativeSrc": "5796:5:44", + "nodeType": "YulFunctionCall", + "src": "5796:5:44" + }, + { + "kind": "number", + "nativeSrc": "5803:4:44", + "nodeType": "YulLiteral", + "src": "5803:4:44", + "type": "", + "value": "2000" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5792:3:44", + "nodeType": "YulIdentifier", + "src": "5792:3:44" + }, + "nativeSrc": "5792:16:44", + "nodeType": "YulFunctionCall", + "src": "5792:16:44" + }, + { + "kind": "number", + "nativeSrc": "5810:1:44", + "nodeType": "YulLiteral", + "src": "5810:1:44", + "type": "", + "value": "6" + }, + { + "name": "mIn", + "nativeSrc": "5813:3:44", + "nodeType": "YulIdentifier", + "src": "5813:3:44" + }, + { + "kind": "number", + "nativeSrc": "5818:3:44", + "nodeType": "YulLiteral", + "src": "5818:3:44", + "type": "", + "value": "128" + }, + { + "name": "pR", + "nativeSrc": "5823:2:44", + "nodeType": "YulIdentifier", + "src": "5823:2:44" + }, + { + "kind": "number", + "nativeSrc": "5827:2:44", + "nodeType": "YulLiteral", + "src": "5827:2:44", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "5781:10:44", + "nodeType": "YulIdentifier", + "src": "5781:10:44" + }, + "nativeSrc": "5781:49:44", + "nodeType": "YulFunctionCall", + "src": "5781:49:44" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "5770:7:44", + "nodeType": "YulIdentifier", + "src": "5770:7:44" + } + ] + }, + { + "body": { + "nativeSrc": "5867:88:44", + "nodeType": "YulBlock", + "src": "5867:88:44", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5896:1:44", + "nodeType": "YulLiteral", + "src": "5896:1:44", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5899:1:44", + "nodeType": "YulLiteral", + "src": "5899:1:44", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5889:6:44", + "nodeType": "YulIdentifier", + "src": "5889:6:44" + }, + "nativeSrc": "5889:12:44", + "nodeType": "YulFunctionCall", + "src": "5889:12:44" + }, + "nativeSrc": "5889:12:44", + "nodeType": "YulExpressionStatement", + "src": "5889:12:44" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5929:1:44", + "nodeType": "YulLiteral", + "src": "5929:1:44", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5932:4:44", + "nodeType": "YulLiteral", + "src": "5932:4:44", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "5922:6:44", + "nodeType": "YulIdentifier", + "src": "5922:6:44" + }, + "nativeSrc": "5922:15:44", + "nodeType": "YulFunctionCall", + "src": "5922:15:44" + }, + "nativeSrc": "5922:15:44", + "nodeType": "YulExpressionStatement", + "src": "5922:15:44" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "success", + "nativeSrc": "5858:7:44", + "nodeType": "YulIdentifier", + "src": "5858:7:44" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5851:6:44", + "nodeType": "YulIdentifier", + "src": "5851:6:44" + }, + "nativeSrc": "5851:15:44", + "nodeType": "YulFunctionCall", + "src": "5851:15:44" + }, + "nativeSrc": "5848:107:44", + "nodeType": "YulIf", + "src": "5848:107:44" + } + ] + }, + "name": "g1_mulAccC", + "nativeSrc": "5231:738:44", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pR", + "nativeSrc": "5251:2:44", + "nodeType": "YulTypedName", + "src": "5251:2:44", + "type": "" + }, + { + "name": "x", + "nativeSrc": "5255:1:44", + "nodeType": "YulTypedName", + "src": "5255:1:44", + "type": "" + }, + { + "name": "y", + "nativeSrc": "5258:1:44", + "nodeType": "YulTypedName", + "src": "5258:1:44", + "type": "" + }, + { + "name": "s", + "nativeSrc": "5261:1:44", + "nodeType": "YulTypedName", + "src": "5261:1:44", + "type": "" + } + ], + "src": "5231:738:44" + }, + { + "body": { + "nativeSrc": "6043:2820:44", + "nodeType": "YulBlock", + "src": "6043:2820:44", + "statements": [ + { + "nativeSrc": "6061:36:44", + "nodeType": "YulVariableDeclaration", + "src": "6061:36:44", + "value": { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "6082:4:44", + "nodeType": "YulIdentifier", + "src": "6082:4:44" + }, + { + "name": "pPairing", + "nativeSrc": "6088:8:44", + "nodeType": "YulIdentifier", + "src": "6088:8:44" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6078:3:44", + "nodeType": "YulIdentifier", + "src": "6078:3:44" + }, + "nativeSrc": "6078:19:44", + "nodeType": "YulFunctionCall", + "src": "6078:19:44" + }, + "variables": [ + { + "name": "_pPairing", + "nativeSrc": "6065:9:44", + "nodeType": "YulTypedName", + "src": "6065:9:44", + "type": "" + } + ] + }, + { + "nativeSrc": "6114:26:44", + "nodeType": "YulVariableDeclaration", + "src": "6114:26:44", + "value": { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "6130:4:44", + "nodeType": "YulIdentifier", + "src": "6130:4:44" + }, + { + "name": "pVk", + "nativeSrc": "6136:3:44", + "nodeType": "YulIdentifier", + "src": "6136:3:44" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6126:3:44", + "nodeType": "YulIdentifier", + "src": "6126:3:44" + }, + "nativeSrc": "6126:14:44", + "nodeType": "YulFunctionCall", + "src": "6126:14:44" + }, + "variables": [ + { + "name": "_pVk", + "nativeSrc": "6118:4:44", + "nodeType": "YulTypedName", + "src": "6118:4:44", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6165:4:44", + "nodeType": "YulIdentifier", + "src": "6165:4:44" + }, + { + "name": "IC0x", + "nativeSrc": "6171:4:44", + "nodeType": "YulIdentifier", + "src": "6171:4:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6158:6:44", + "nodeType": "YulIdentifier", + "src": "6158:6:44" + }, + "nativeSrc": "6158:18:44", + "nodeType": "YulFunctionCall", + "src": "6158:18:44" + }, + "nativeSrc": "6158:18:44", + "nodeType": "YulExpressionStatement", + "src": "6158:18:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6204:4:44", + "nodeType": "YulIdentifier", + "src": "6204:4:44" + }, + { + "kind": "number", + "nativeSrc": "6210:2:44", + "nodeType": "YulLiteral", + "src": "6210:2:44", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6200:3:44", + "nodeType": "YulIdentifier", + "src": "6200:3:44" + }, + "nativeSrc": "6200:13:44", + "nodeType": "YulFunctionCall", + "src": "6200:13:44" + }, + { + "name": "IC0y", + "nativeSrc": "6215:4:44", + "nodeType": "YulIdentifier", + "src": "6215:4:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6193:6:44", + "nodeType": "YulIdentifier", + "src": "6193:6:44" + }, + "nativeSrc": "6193:27:44", + "nodeType": "YulFunctionCall", + "src": "6193:27:44" + }, + "nativeSrc": "6193:27:44", + "nodeType": "YulExpressionStatement", + "src": "6193:27:44" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6321:4:44", + "nodeType": "YulIdentifier", + "src": "6321:4:44" + }, + { + "name": "IC1x", + "nativeSrc": "6327:4:44", + "nodeType": "YulIdentifier", + "src": "6327:4:44" + }, + { + "name": "IC1y", + "nativeSrc": "6333:4:44", + "nodeType": "YulIdentifier", + "src": "6333:4:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6356:10:44", + "nodeType": "YulIdentifier", + "src": "6356:10:44" + }, + { + "kind": "number", + "nativeSrc": "6368:1:44", + "nodeType": "YulLiteral", + "src": "6368:1:44", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6352:3:44", + "nodeType": "YulIdentifier", + "src": "6352:3:44" + }, + "nativeSrc": "6352:18:44", + "nodeType": "YulFunctionCall", + "src": "6352:18:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6339:12:44", + "nodeType": "YulIdentifier", + "src": "6339:12:44" + }, + "nativeSrc": "6339:32:44", + "nodeType": "YulFunctionCall", + "src": "6339:32:44" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6310:10:44", + "nodeType": "YulIdentifier", + "src": "6310:10:44" + }, + "nativeSrc": "6310:62:44", + "nodeType": "YulFunctionCall", + "src": "6310:62:44" + }, + "nativeSrc": "6310:62:44", + "nodeType": "YulExpressionStatement", + "src": "6310:62:44" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6417:4:44", + "nodeType": "YulIdentifier", + "src": "6417:4:44" + }, + { + "name": "IC2x", + "nativeSrc": "6423:4:44", + "nodeType": "YulIdentifier", + "src": "6423:4:44" + }, + { + "name": "IC2y", + "nativeSrc": "6429:4:44", + "nodeType": "YulIdentifier", + "src": "6429:4:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6452:10:44", + "nodeType": "YulIdentifier", + "src": "6452:10:44" + }, + { + "kind": "number", + "nativeSrc": "6464:2:44", + "nodeType": "YulLiteral", + "src": "6464:2:44", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6448:3:44", + "nodeType": "YulIdentifier", + "src": "6448:3:44" + }, + "nativeSrc": "6448:19:44", + "nodeType": "YulFunctionCall", + "src": "6448:19:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6435:12:44", + "nodeType": "YulIdentifier", + "src": "6435:12:44" + }, + "nativeSrc": "6435:33:44", + "nodeType": "YulFunctionCall", + "src": "6435:33:44" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6406:10:44", + "nodeType": "YulIdentifier", + "src": "6406:10:44" + }, + "nativeSrc": "6406:63:44", + "nodeType": "YulFunctionCall", + "src": "6406:63:44" + }, + "nativeSrc": "6406:63:44", + "nodeType": "YulExpressionStatement", + "src": "6406:63:44" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6514:4:44", + "nodeType": "YulIdentifier", + "src": "6514:4:44" + }, + { + "name": "IC3x", + "nativeSrc": "6520:4:44", + "nodeType": "YulIdentifier", + "src": "6520:4:44" + }, + { + "name": "IC3y", + "nativeSrc": "6526:4:44", + "nodeType": "YulIdentifier", + "src": "6526:4:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6549:10:44", + "nodeType": "YulIdentifier", + "src": "6549:10:44" + }, + { + "kind": "number", + "nativeSrc": "6561:2:44", + "nodeType": "YulLiteral", + "src": "6561:2:44", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6545:3:44", + "nodeType": "YulIdentifier", + "src": "6545:3:44" + }, + "nativeSrc": "6545:19:44", + "nodeType": "YulFunctionCall", + "src": "6545:19:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6532:12:44", + "nodeType": "YulIdentifier", + "src": "6532:12:44" + }, + "nativeSrc": "6532:33:44", + "nodeType": "YulFunctionCall", + "src": "6532:33:44" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6503:10:44", + "nodeType": "YulIdentifier", + "src": "6503:10:44" + }, + "nativeSrc": "6503:63:44", + "nodeType": "YulFunctionCall", + "src": "6503:63:44" + }, + "nativeSrc": "6503:63:44", + "nodeType": "YulExpressionStatement", + "src": "6503:63:44" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6611:4:44", + "nodeType": "YulIdentifier", + "src": "6611:4:44" + }, + { + "name": "IC4x", + "nativeSrc": "6617:4:44", + "nodeType": "YulIdentifier", + "src": "6617:4:44" + }, + { + "name": "IC4y", + "nativeSrc": "6623:4:44", + "nodeType": "YulIdentifier", + "src": "6623:4:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6646:10:44", + "nodeType": "YulIdentifier", + "src": "6646:10:44" + }, + { + "kind": "number", + "nativeSrc": "6658:2:44", + "nodeType": "YulLiteral", + "src": "6658:2:44", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6642:3:44", + "nodeType": "YulIdentifier", + "src": "6642:3:44" + }, + "nativeSrc": "6642:19:44", + "nodeType": "YulFunctionCall", + "src": "6642:19:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6629:12:44", + "nodeType": "YulIdentifier", + "src": "6629:12:44" + }, + "nativeSrc": "6629:33:44", + "nodeType": "YulFunctionCall", + "src": "6629:33:44" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6600:10:44", + "nodeType": "YulIdentifier", + "src": "6600:10:44" + }, + "nativeSrc": "6600:63:44", + "nodeType": "YulFunctionCall", + "src": "6600:63:44" + }, + "nativeSrc": "6600:63:44", + "nodeType": "YulExpressionStatement", + "src": "6600:63:44" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6708:4:44", + "nodeType": "YulIdentifier", + "src": "6708:4:44" + }, + { + "name": "IC5x", + "nativeSrc": "6714:4:44", + "nodeType": "YulIdentifier", + "src": "6714:4:44" + }, + { + "name": "IC5y", + "nativeSrc": "6720:4:44", + "nodeType": "YulIdentifier", + "src": "6720:4:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6743:10:44", + "nodeType": "YulIdentifier", + "src": "6743:10:44" + }, + { + "kind": "number", + "nativeSrc": "6755:3:44", + "nodeType": "YulLiteral", + "src": "6755:3:44", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6739:3:44", + "nodeType": "YulIdentifier", + "src": "6739:3:44" + }, + "nativeSrc": "6739:20:44", + "nodeType": "YulFunctionCall", + "src": "6739:20:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6726:12:44", + "nodeType": "YulIdentifier", + "src": "6726:12:44" + }, + "nativeSrc": "6726:34:44", + "nodeType": "YulFunctionCall", + "src": "6726:34:44" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6697:10:44", + "nodeType": "YulIdentifier", + "src": "6697:10:44" + }, + "nativeSrc": "6697:64:44", + "nodeType": "YulFunctionCall", + "src": "6697:64:44" + }, + "nativeSrc": "6697:64:44", + "nodeType": "YulExpressionStatement", + "src": "6697:64:44" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6806:4:44", + "nodeType": "YulIdentifier", + "src": "6806:4:44" + }, + { + "name": "IC6x", + "nativeSrc": "6812:4:44", + "nodeType": "YulIdentifier", + "src": "6812:4:44" + }, + { + "name": "IC6y", + "nativeSrc": "6818:4:44", + "nodeType": "YulIdentifier", + "src": "6818:4:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6841:10:44", + "nodeType": "YulIdentifier", + "src": "6841:10:44" + }, + { + "kind": "number", + "nativeSrc": "6853:3:44", + "nodeType": "YulLiteral", + "src": "6853:3:44", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6837:3:44", + "nodeType": "YulIdentifier", + "src": "6837:3:44" + }, + "nativeSrc": "6837:20:44", + "nodeType": "YulFunctionCall", + "src": "6837:20:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6824:12:44", + "nodeType": "YulIdentifier", + "src": "6824:12:44" + }, + "nativeSrc": "6824:34:44", + "nodeType": "YulFunctionCall", + "src": "6824:34:44" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6795:10:44", + "nodeType": "YulIdentifier", + "src": "6795:10:44" + }, + "nativeSrc": "6795:64:44", + "nodeType": "YulFunctionCall", + "src": "6795:64:44" + }, + "nativeSrc": "6795:64:44", + "nodeType": "YulExpressionStatement", + "src": "6795:64:44" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "6904:4:44", + "nodeType": "YulIdentifier", + "src": "6904:4:44" + }, + { + "name": "IC7x", + "nativeSrc": "6910:4:44", + "nodeType": "YulIdentifier", + "src": "6910:4:44" + }, + { + "name": "IC7y", + "nativeSrc": "6916:4:44", + "nodeType": "YulIdentifier", + "src": "6916:4:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "6939:10:44", + "nodeType": "YulIdentifier", + "src": "6939:10:44" + }, + { + "kind": "number", + "nativeSrc": "6951:3:44", + "nodeType": "YulLiteral", + "src": "6951:3:44", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6935:3:44", + "nodeType": "YulIdentifier", + "src": "6935:3:44" + }, + "nativeSrc": "6935:20:44", + "nodeType": "YulFunctionCall", + "src": "6935:20:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6922:12:44", + "nodeType": "YulIdentifier", + "src": "6922:12:44" + }, + "nativeSrc": "6922:34:44", + "nodeType": "YulFunctionCall", + "src": "6922:34:44" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6893:10:44", + "nodeType": "YulIdentifier", + "src": "6893:10:44" + }, + "nativeSrc": "6893:64:44", + "nodeType": "YulFunctionCall", + "src": "6893:64:44" + }, + "nativeSrc": "6893:64:44", + "nodeType": "YulExpressionStatement", + "src": "6893:64:44" + }, + { + "expression": { + "arguments": [ + { + "name": "_pVk", + "nativeSrc": "7002:4:44", + "nodeType": "YulIdentifier", + "src": "7002:4:44" + }, + { + "name": "IC8x", + "nativeSrc": "7008:4:44", + "nodeType": "YulIdentifier", + "src": "7008:4:44" + }, + { + "name": "IC8y", + "nativeSrc": "7014:4:44", + "nodeType": "YulIdentifier", + "src": "7014:4:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pubSignals", + "nativeSrc": "7037:10:44", + "nodeType": "YulIdentifier", + "src": "7037:10:44" + }, + { + "kind": "number", + "nativeSrc": "7049:3:44", + "nodeType": "YulLiteral", + "src": "7049:3:44", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7033:3:44", + "nodeType": "YulIdentifier", + "src": "7033:3:44" + }, + "nativeSrc": "7033:20:44", + "nodeType": "YulFunctionCall", + "src": "7033:20:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7020:12:44", + "nodeType": "YulIdentifier", + "src": "7020:12:44" + }, + "nativeSrc": "7020:34:44", + "nodeType": "YulFunctionCall", + "src": "7020:34:44" + } + ], + "functionName": { + "name": "g1_mulAccC", + "nativeSrc": "6991:10:44", + "nodeType": "YulIdentifier", + "src": "6991:10:44" + }, + "nativeSrc": "6991:64:44", + "nodeType": "YulFunctionCall", + "src": "6991:64:44" + }, + "nativeSrc": "6991:64:44", + "nodeType": "YulExpressionStatement", + "src": "6991:64:44" + }, + { + "expression": { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7119:9:44", + "nodeType": "YulIdentifier", + "src": "7119:9:44" + }, + { + "arguments": [ + { + "name": "pA", + "nativeSrc": "7143:2:44", + "nodeType": "YulIdentifier", + "src": "7143:2:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7130:12:44", + "nodeType": "YulIdentifier", + "src": "7130:12:44" + }, + "nativeSrc": "7130:16:44", + "nodeType": "YulFunctionCall", + "src": "7130:16:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7112:6:44", + "nodeType": "YulIdentifier", + "src": "7112:6:44" + }, + "nativeSrc": "7112:35:44", + "nodeType": "YulFunctionCall", + "src": "7112:35:44" + }, + "nativeSrc": "7112:35:44", + "nodeType": "YulExpressionStatement", + "src": "7112:35:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7175:9:44", + "nodeType": "YulIdentifier", + "src": "7175:9:44" + }, + { + "kind": "number", + "nativeSrc": "7186:2:44", + "nodeType": "YulLiteral", + "src": "7186:2:44", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7171:3:44", + "nodeType": "YulIdentifier", + "src": "7171:3:44" + }, + "nativeSrc": "7171:18:44", + "nodeType": "YulFunctionCall", + "src": "7171:18:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "q", + "nativeSrc": "7199:1:44", + "nodeType": "YulIdentifier", + "src": "7199:1:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pA", + "nativeSrc": "7219:2:44", + "nodeType": "YulIdentifier", + "src": "7219:2:44" + }, + { + "kind": "number", + "nativeSrc": "7223:2:44", + "nodeType": "YulLiteral", + "src": "7223:2:44", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7215:3:44", + "nodeType": "YulIdentifier", + "src": "7215:3:44" + }, + "nativeSrc": "7215:11:44", + "nodeType": "YulFunctionCall", + "src": "7215:11:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7202:12:44", + "nodeType": "YulIdentifier", + "src": "7202:12:44" + }, + "nativeSrc": "7202:25:44", + "nodeType": "YulFunctionCall", + "src": "7202:25:44" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7195:3:44", + "nodeType": "YulIdentifier", + "src": "7195:3:44" + }, + "nativeSrc": "7195:33:44", + "nodeType": "YulFunctionCall", + "src": "7195:33:44" + }, + { + "name": "q", + "nativeSrc": "7230:1:44", + "nodeType": "YulIdentifier", + "src": "7230:1:44" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "7191:3:44", + "nodeType": "YulIdentifier", + "src": "7191:3:44" + }, + "nativeSrc": "7191:41:44", + "nodeType": "YulFunctionCall", + "src": "7191:41:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7164:6:44", + "nodeType": "YulIdentifier", + "src": "7164:6:44" + }, + "nativeSrc": "7164:69:44", + "nodeType": "YulFunctionCall", + "src": "7164:69:44" + }, + "nativeSrc": "7164:69:44", + "nodeType": "YulExpressionStatement", + "src": "7164:69:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7283:9:44", + "nodeType": "YulIdentifier", + "src": "7283:9:44" + }, + { + "kind": "number", + "nativeSrc": "7294:2:44", + "nodeType": "YulLiteral", + "src": "7294:2:44", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7279:3:44", + "nodeType": "YulIdentifier", + "src": "7279:3:44" + }, + "nativeSrc": "7279:18:44", + "nodeType": "YulFunctionCall", + "src": "7279:18:44" + }, + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7312:2:44", + "nodeType": "YulIdentifier", + "src": "7312:2:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7299:12:44", + "nodeType": "YulIdentifier", + "src": "7299:12:44" + }, + "nativeSrc": "7299:16:44", + "nodeType": "YulFunctionCall", + "src": "7299:16:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7272:6:44", + "nodeType": "YulIdentifier", + "src": "7272:6:44" + }, + "nativeSrc": "7272:44:44", + "nodeType": "YulFunctionCall", + "src": "7272:44:44" + }, + "nativeSrc": "7272:44:44", + "nodeType": "YulExpressionStatement", + "src": "7272:44:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7344:9:44", + "nodeType": "YulIdentifier", + "src": "7344:9:44" + }, + { + "kind": "number", + "nativeSrc": "7355:2:44", + "nodeType": "YulLiteral", + "src": "7355:2:44", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7340:3:44", + "nodeType": "YulIdentifier", + "src": "7340:3:44" + }, + "nativeSrc": "7340:18:44", + "nodeType": "YulFunctionCall", + "src": "7340:18:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7377:2:44", + "nodeType": "YulIdentifier", + "src": "7377:2:44" + }, + { + "kind": "number", + "nativeSrc": "7381:2:44", + "nodeType": "YulLiteral", + "src": "7381:2:44", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7373:3:44", + "nodeType": "YulIdentifier", + "src": "7373:3:44" + }, + "nativeSrc": "7373:11:44", + "nodeType": "YulFunctionCall", + "src": "7373:11:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7360:12:44", + "nodeType": "YulIdentifier", + "src": "7360:12:44" + }, + "nativeSrc": "7360:25:44", + "nodeType": "YulFunctionCall", + "src": "7360:25:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7333:6:44", + "nodeType": "YulIdentifier", + "src": "7333:6:44" + }, + "nativeSrc": "7333:53:44", + "nodeType": "YulFunctionCall", + "src": "7333:53:44" + }, + "nativeSrc": "7333:53:44", + "nodeType": "YulExpressionStatement", + "src": "7333:53:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7414:9:44", + "nodeType": "YulIdentifier", + "src": "7414:9:44" + }, + { + "kind": "number", + "nativeSrc": "7425:3:44", + "nodeType": "YulLiteral", + "src": "7425:3:44", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7410:3:44", + "nodeType": "YulIdentifier", + "src": "7410:3:44" + }, + "nativeSrc": "7410:19:44", + "nodeType": "YulFunctionCall", + "src": "7410:19:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7448:2:44", + "nodeType": "YulIdentifier", + "src": "7448:2:44" + }, + { + "kind": "number", + "nativeSrc": "7452:2:44", + "nodeType": "YulLiteral", + "src": "7452:2:44", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7444:3:44", + "nodeType": "YulIdentifier", + "src": "7444:3:44" + }, + "nativeSrc": "7444:11:44", + "nodeType": "YulFunctionCall", + "src": "7444:11:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7431:12:44", + "nodeType": "YulIdentifier", + "src": "7431:12:44" + }, + "nativeSrc": "7431:25:44", + "nodeType": "YulFunctionCall", + "src": "7431:25:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7403:6:44", + "nodeType": "YulIdentifier", + "src": "7403:6:44" + }, + "nativeSrc": "7403:54:44", + "nodeType": "YulFunctionCall", + "src": "7403:54:44" + }, + "nativeSrc": "7403:54:44", + "nodeType": "YulExpressionStatement", + "src": "7403:54:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7485:9:44", + "nodeType": "YulIdentifier", + "src": "7485:9:44" + }, + { + "kind": "number", + "nativeSrc": "7496:3:44", + "nodeType": "YulLiteral", + "src": "7496:3:44", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7481:3:44", + "nodeType": "YulIdentifier", + "src": "7481:3:44" + }, + "nativeSrc": "7481:19:44", + "nodeType": "YulFunctionCall", + "src": "7481:19:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pB", + "nativeSrc": "7519:2:44", + "nodeType": "YulIdentifier", + "src": "7519:2:44" + }, + { + "kind": "number", + "nativeSrc": "7523:2:44", + "nodeType": "YulLiteral", + "src": "7523:2:44", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7515:3:44", + "nodeType": "YulIdentifier", + "src": "7515:3:44" + }, + "nativeSrc": "7515:11:44", + "nodeType": "YulFunctionCall", + "src": "7515:11:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7502:12:44", + "nodeType": "YulIdentifier", + "src": "7502:12:44" + }, + "nativeSrc": "7502:25:44", + "nodeType": "YulFunctionCall", + "src": "7502:25:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7474:6:44", + "nodeType": "YulIdentifier", + "src": "7474:6:44" + }, + "nativeSrc": "7474:54:44", + "nodeType": "YulFunctionCall", + "src": "7474:54:44" + }, + "nativeSrc": "7474:54:44", + "nodeType": "YulExpressionStatement", + "src": "7474:54:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7583:9:44", + "nodeType": "YulIdentifier", + "src": "7583:9:44" + }, + { + "kind": "number", + "nativeSrc": "7594:3:44", + "nodeType": "YulLiteral", + "src": "7594:3:44", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7579:3:44", + "nodeType": "YulIdentifier", + "src": "7579:3:44" + }, + "nativeSrc": "7579:19:44", + "nodeType": "YulFunctionCall", + "src": "7579:19:44" + }, + { + "name": "alphax", + "nativeSrc": "7600:6:44", + "nodeType": "YulIdentifier", + "src": "7600:6:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7572:6:44", + "nodeType": "YulIdentifier", + "src": "7572:6:44" + }, + "nativeSrc": "7572:35:44", + "nodeType": "YulFunctionCall", + "src": "7572:35:44" + }, + "nativeSrc": "7572:35:44", + "nodeType": "YulExpressionStatement", + "src": "7572:35:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7635:9:44", + "nodeType": "YulIdentifier", + "src": "7635:9:44" + }, + { + "kind": "number", + "nativeSrc": "7646:3:44", + "nodeType": "YulLiteral", + "src": "7646:3:44", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7631:3:44", + "nodeType": "YulIdentifier", + "src": "7631:3:44" + }, + "nativeSrc": "7631:19:44", + "nodeType": "YulFunctionCall", + "src": "7631:19:44" + }, + { + "name": "alphay", + "nativeSrc": "7652:6:44", + "nodeType": "YulIdentifier", + "src": "7652:6:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7624:6:44", + "nodeType": "YulIdentifier", + "src": "7624:6:44" + }, + "nativeSrc": "7624:35:44", + "nodeType": "YulFunctionCall", + "src": "7624:35:44" + }, + "nativeSrc": "7624:35:44", + "nodeType": "YulExpressionStatement", + "src": "7624:35:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7713:9:44", + "nodeType": "YulIdentifier", + "src": "7713:9:44" + }, + { + "kind": "number", + "nativeSrc": "7724:3:44", + "nodeType": "YulLiteral", + "src": "7724:3:44", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7709:3:44", + "nodeType": "YulIdentifier", + "src": "7709:3:44" + }, + "nativeSrc": "7709:19:44", + "nodeType": "YulFunctionCall", + "src": "7709:19:44" + }, + { + "name": "betax1", + "nativeSrc": "7730:6:44", + "nodeType": "YulIdentifier", + "src": "7730:6:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7702:6:44", + "nodeType": "YulIdentifier", + "src": "7702:6:44" + }, + "nativeSrc": "7702:35:44", + "nodeType": "YulFunctionCall", + "src": "7702:35:44" + }, + "nativeSrc": "7702:35:44", + "nodeType": "YulExpressionStatement", + "src": "7702:35:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7765:9:44", + "nodeType": "YulIdentifier", + "src": "7765:9:44" + }, + { + "kind": "number", + "nativeSrc": "7776:3:44", + "nodeType": "YulLiteral", + "src": "7776:3:44", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7761:3:44", + "nodeType": "YulIdentifier", + "src": "7761:3:44" + }, + "nativeSrc": "7761:19:44", + "nodeType": "YulFunctionCall", + "src": "7761:19:44" + }, + { + "name": "betax2", + "nativeSrc": "7782:6:44", + "nodeType": "YulIdentifier", + "src": "7782:6:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7754:6:44", + "nodeType": "YulIdentifier", + "src": "7754:6:44" + }, + "nativeSrc": "7754:35:44", + "nodeType": "YulFunctionCall", + "src": "7754:35:44" + }, + "nativeSrc": "7754:35:44", + "nodeType": "YulExpressionStatement", + "src": "7754:35:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7817:9:44", + "nodeType": "YulIdentifier", + "src": "7817:9:44" + }, + { + "kind": "number", + "nativeSrc": "7828:3:44", + "nodeType": "YulLiteral", + "src": "7828:3:44", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7813:3:44", + "nodeType": "YulIdentifier", + "src": "7813:3:44" + }, + "nativeSrc": "7813:19:44", + "nodeType": "YulFunctionCall", + "src": "7813:19:44" + }, + { + "name": "betay1", + "nativeSrc": "7834:6:44", + "nodeType": "YulIdentifier", + "src": "7834:6:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7806:6:44", + "nodeType": "YulIdentifier", + "src": "7806:6:44" + }, + "nativeSrc": "7806:35:44", + "nodeType": "YulFunctionCall", + "src": "7806:35:44" + }, + "nativeSrc": "7806:35:44", + "nodeType": "YulExpressionStatement", + "src": "7806:35:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7869:9:44", + "nodeType": "YulIdentifier", + "src": "7869:9:44" + }, + { + "kind": "number", + "nativeSrc": "7880:3:44", + "nodeType": "YulLiteral", + "src": "7880:3:44", + "type": "", + "value": "352" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7865:3:44", + "nodeType": "YulIdentifier", + "src": "7865:3:44" + }, + "nativeSrc": "7865:19:44", + "nodeType": "YulFunctionCall", + "src": "7865:19:44" + }, + { + "name": "betay2", + "nativeSrc": "7886:6:44", + "nodeType": "YulIdentifier", + "src": "7886:6:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7858:6:44", + "nodeType": "YulIdentifier", + "src": "7858:6:44" + }, + "nativeSrc": "7858:35:44", + "nodeType": "YulFunctionCall", + "src": "7858:35:44" + }, + "nativeSrc": "7858:35:44", + "nodeType": "YulExpressionStatement", + "src": "7858:35:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "7946:9:44", + "nodeType": "YulIdentifier", + "src": "7946:9:44" + }, + { + "kind": "number", + "nativeSrc": "7957:3:44", + "nodeType": "YulLiteral", + "src": "7957:3:44", + "type": "", + "value": "384" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7942:3:44", + "nodeType": "YulIdentifier", + "src": "7942:3:44" + }, + "nativeSrc": "7942:19:44", + "nodeType": "YulFunctionCall", + "src": "7942:19:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "7973:4:44", + "nodeType": "YulIdentifier", + "src": "7973:4:44" + }, + { + "name": "pVk", + "nativeSrc": "7979:3:44", + "nodeType": "YulIdentifier", + "src": "7979:3:44" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7969:3:44", + "nodeType": "YulIdentifier", + "src": "7969:3:44" + }, + "nativeSrc": "7969:14:44", + "nodeType": "YulFunctionCall", + "src": "7969:14:44" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7963:5:44", + "nodeType": "YulIdentifier", + "src": "7963:5:44" + }, + "nativeSrc": "7963:21:44", + "nodeType": "YulFunctionCall", + "src": "7963:21:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7935:6:44", + "nodeType": "YulIdentifier", + "src": "7935:6:44" + }, + "nativeSrc": "7935:50:44", + "nodeType": "YulFunctionCall", + "src": "7935:50:44" + }, + "nativeSrc": "7935:50:44", + "nodeType": "YulExpressionStatement", + "src": "7935:50:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8013:9:44", + "nodeType": "YulIdentifier", + "src": "8013:9:44" + }, + { + "kind": "number", + "nativeSrc": "8024:3:44", + "nodeType": "YulLiteral", + "src": "8024:3:44", + "type": "", + "value": "416" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8009:3:44", + "nodeType": "YulIdentifier", + "src": "8009:3:44" + }, + "nativeSrc": "8009:19:44", + "nodeType": "YulFunctionCall", + "src": "8009:19:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "8040:4:44", + "nodeType": "YulIdentifier", + "src": "8040:4:44" + }, + { + "arguments": [ + { + "name": "pVk", + "nativeSrc": "8050:3:44", + "nodeType": "YulIdentifier", + "src": "8050:3:44" + }, + { + "kind": "number", + "nativeSrc": "8055:2:44", + "nodeType": "YulLiteral", + "src": "8055:2:44", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8046:3:44", + "nodeType": "YulIdentifier", + "src": "8046:3:44" + }, + "nativeSrc": "8046:12:44", + "nodeType": "YulFunctionCall", + "src": "8046:12:44" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8036:3:44", + "nodeType": "YulIdentifier", + "src": "8036:3:44" + }, + "nativeSrc": "8036:23:44", + "nodeType": "YulFunctionCall", + "src": "8036:23:44" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8030:5:44", + "nodeType": "YulIdentifier", + "src": "8030:5:44" + }, + "nativeSrc": "8030:30:44", + "nodeType": "YulFunctionCall", + "src": "8030:30:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8002:6:44", + "nodeType": "YulIdentifier", + "src": "8002:6:44" + }, + "nativeSrc": "8002:59:44", + "nodeType": "YulFunctionCall", + "src": "8002:59:44" + }, + "nativeSrc": "8002:59:44", + "nodeType": "YulExpressionStatement", + "src": "8002:59:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8117:9:44", + "nodeType": "YulIdentifier", + "src": "8117:9:44" + }, + { + "kind": "number", + "nativeSrc": "8128:3:44", + "nodeType": "YulLiteral", + "src": "8128:3:44", + "type": "", + "value": "448" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8113:3:44", + "nodeType": "YulIdentifier", + "src": "8113:3:44" + }, + "nativeSrc": "8113:19:44", + "nodeType": "YulFunctionCall", + "src": "8113:19:44" + }, + { + "name": "gammax1", + "nativeSrc": "8134:7:44", + "nodeType": "YulIdentifier", + "src": "8134:7:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8106:6:44", + "nodeType": "YulIdentifier", + "src": "8106:6:44" + }, + "nativeSrc": "8106:36:44", + "nodeType": "YulFunctionCall", + "src": "8106:36:44" + }, + "nativeSrc": "8106:36:44", + "nodeType": "YulExpressionStatement", + "src": "8106:36:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8170:9:44", + "nodeType": "YulIdentifier", + "src": "8170:9:44" + }, + { + "kind": "number", + "nativeSrc": "8181:3:44", + "nodeType": "YulLiteral", + "src": "8181:3:44", + "type": "", + "value": "480" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8166:3:44", + "nodeType": "YulIdentifier", + "src": "8166:3:44" + }, + "nativeSrc": "8166:19:44", + "nodeType": "YulFunctionCall", + "src": "8166:19:44" + }, + { + "name": "gammax2", + "nativeSrc": "8187:7:44", + "nodeType": "YulIdentifier", + "src": "8187:7:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8159:6:44", + "nodeType": "YulIdentifier", + "src": "8159:6:44" + }, + "nativeSrc": "8159:36:44", + "nodeType": "YulFunctionCall", + "src": "8159:36:44" + }, + "nativeSrc": "8159:36:44", + "nodeType": "YulExpressionStatement", + "src": "8159:36:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8223:9:44", + "nodeType": "YulIdentifier", + "src": "8223:9:44" + }, + { + "kind": "number", + "nativeSrc": "8234:3:44", + "nodeType": "YulLiteral", + "src": "8234:3:44", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8219:3:44", + "nodeType": "YulIdentifier", + "src": "8219:3:44" + }, + "nativeSrc": "8219:19:44", + "nodeType": "YulFunctionCall", + "src": "8219:19:44" + }, + { + "name": "gammay1", + "nativeSrc": "8240:7:44", + "nodeType": "YulIdentifier", + "src": "8240:7:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8212:6:44", + "nodeType": "YulIdentifier", + "src": "8212:6:44" + }, + "nativeSrc": "8212:36:44", + "nodeType": "YulFunctionCall", + "src": "8212:36:44" + }, + "nativeSrc": "8212:36:44", + "nodeType": "YulExpressionStatement", + "src": "8212:36:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8276:9:44", + "nodeType": "YulIdentifier", + "src": "8276:9:44" + }, + { + "kind": "number", + "nativeSrc": "8287:3:44", + "nodeType": "YulLiteral", + "src": "8287:3:44", + "type": "", + "value": "544" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8272:3:44", + "nodeType": "YulIdentifier", + "src": "8272:3:44" + }, + "nativeSrc": "8272:19:44", + "nodeType": "YulFunctionCall", + "src": "8272:19:44" + }, + { + "name": "gammay2", + "nativeSrc": "8293:7:44", + "nodeType": "YulIdentifier", + "src": "8293:7:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8265:6:44", + "nodeType": "YulIdentifier", + "src": "8265:6:44" + }, + "nativeSrc": "8265:36:44", + "nodeType": "YulFunctionCall", + "src": "8265:36:44" + }, + "nativeSrc": "8265:36:44", + "nodeType": "YulExpressionStatement", + "src": "8265:36:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8351:9:44", + "nodeType": "YulIdentifier", + "src": "8351:9:44" + }, + { + "kind": "number", + "nativeSrc": "8362:3:44", + "nodeType": "YulLiteral", + "src": "8362:3:44", + "type": "", + "value": "576" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8347:3:44", + "nodeType": "YulIdentifier", + "src": "8347:3:44" + }, + "nativeSrc": "8347:19:44", + "nodeType": "YulFunctionCall", + "src": "8347:19:44" + }, + { + "arguments": [ + { + "name": "pC", + "nativeSrc": "8381:2:44", + "nodeType": "YulIdentifier", + "src": "8381:2:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8368:12:44", + "nodeType": "YulIdentifier", + "src": "8368:12:44" + }, + "nativeSrc": "8368:16:44", + "nodeType": "YulFunctionCall", + "src": "8368:16:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8340:6:44", + "nodeType": "YulIdentifier", + "src": "8340:6:44" + }, + "nativeSrc": "8340:45:44", + "nodeType": "YulFunctionCall", + "src": "8340:45:44" + }, + "nativeSrc": "8340:45:44", + "nodeType": "YulExpressionStatement", + "src": "8340:45:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8413:9:44", + "nodeType": "YulIdentifier", + "src": "8413:9:44" + }, + { + "kind": "number", + "nativeSrc": "8424:3:44", + "nodeType": "YulLiteral", + "src": "8424:3:44", + "type": "", + "value": "608" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8409:3:44", + "nodeType": "YulIdentifier", + "src": "8409:3:44" + }, + "nativeSrc": "8409:19:44", + "nodeType": "YulFunctionCall", + "src": "8409:19:44" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "pC", + "nativeSrc": "8447:2:44", + "nodeType": "YulIdentifier", + "src": "8447:2:44" + }, + { + "kind": "number", + "nativeSrc": "8451:2:44", + "nodeType": "YulLiteral", + "src": "8451:2:44", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8443:3:44", + "nodeType": "YulIdentifier", + "src": "8443:3:44" + }, + "nativeSrc": "8443:11:44", + "nodeType": "YulFunctionCall", + "src": "8443:11:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8430:12:44", + "nodeType": "YulIdentifier", + "src": "8430:12:44" + }, + "nativeSrc": "8430:25:44", + "nodeType": "YulFunctionCall", + "src": "8430:25:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8402:6:44", + "nodeType": "YulIdentifier", + "src": "8402:6:44" + }, + "nativeSrc": "8402:54:44", + "nodeType": "YulFunctionCall", + "src": "8402:54:44" + }, + "nativeSrc": "8402:54:44", + "nodeType": "YulExpressionStatement", + "src": "8402:54:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8511:9:44", + "nodeType": "YulIdentifier", + "src": "8511:9:44" + }, + { + "kind": "number", + "nativeSrc": "8522:3:44", + "nodeType": "YulLiteral", + "src": "8522:3:44", + "type": "", + "value": "640" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8507:3:44", + "nodeType": "YulIdentifier", + "src": "8507:3:44" + }, + "nativeSrc": "8507:19:44", + "nodeType": "YulFunctionCall", + "src": "8507:19:44" + }, + { + "name": "deltax1", + "nativeSrc": "8528:7:44", + "nodeType": "YulIdentifier", + "src": "8528:7:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8500:6:44", + "nodeType": "YulIdentifier", + "src": "8500:6:44" + }, + "nativeSrc": "8500:36:44", + "nodeType": "YulFunctionCall", + "src": "8500:36:44" + }, + "nativeSrc": "8500:36:44", + "nodeType": "YulExpressionStatement", + "src": "8500:36:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8564:9:44", + "nodeType": "YulIdentifier", + "src": "8564:9:44" + }, + { + "kind": "number", + "nativeSrc": "8575:3:44", + "nodeType": "YulLiteral", + "src": "8575:3:44", + "type": "", + "value": "672" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8560:3:44", + "nodeType": "YulIdentifier", + "src": "8560:3:44" + }, + "nativeSrc": "8560:19:44", + "nodeType": "YulFunctionCall", + "src": "8560:19:44" + }, + { + "name": "deltax2", + "nativeSrc": "8581:7:44", + "nodeType": "YulIdentifier", + "src": "8581:7:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8553:6:44", + "nodeType": "YulIdentifier", + "src": "8553:6:44" + }, + "nativeSrc": "8553:36:44", + "nodeType": "YulFunctionCall", + "src": "8553:36:44" + }, + "nativeSrc": "8553:36:44", + "nodeType": "YulExpressionStatement", + "src": "8553:36:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8617:9:44", + "nodeType": "YulIdentifier", + "src": "8617:9:44" + }, + { + "kind": "number", + "nativeSrc": "8628:3:44", + "nodeType": "YulLiteral", + "src": "8628:3:44", + "type": "", + "value": "704" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8613:3:44", + "nodeType": "YulIdentifier", + "src": "8613:3:44" + }, + "nativeSrc": "8613:19:44", + "nodeType": "YulFunctionCall", + "src": "8613:19:44" + }, + { + "name": "deltay1", + "nativeSrc": "8634:7:44", + "nodeType": "YulIdentifier", + "src": "8634:7:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8606:6:44", + "nodeType": "YulIdentifier", + "src": "8606:6:44" + }, + "nativeSrc": "8606:36:44", + "nodeType": "YulFunctionCall", + "src": "8606:36:44" + }, + "nativeSrc": "8606:36:44", + "nodeType": "YulExpressionStatement", + "src": "8606:36:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8670:9:44", + "nodeType": "YulIdentifier", + "src": "8670:9:44" + }, + { + "kind": "number", + "nativeSrc": "8681:3:44", + "nodeType": "YulLiteral", + "src": "8681:3:44", + "type": "", + "value": "736" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8666:3:44", + "nodeType": "YulIdentifier", + "src": "8666:3:44" + }, + "nativeSrc": "8666:19:44", + "nodeType": "YulFunctionCall", + "src": "8666:19:44" + }, + { + "name": "deltay2", + "nativeSrc": "8687:7:44", + "nodeType": "YulIdentifier", + "src": "8687:7:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8659:6:44", + "nodeType": "YulIdentifier", + "src": "8659:6:44" + }, + "nativeSrc": "8659:36:44", + "nodeType": "YulFunctionCall", + "src": "8659:36:44" + }, + "nativeSrc": "8659:36:44", + "nodeType": "YulExpressionStatement", + "src": "8659:36:44" + }, + { + "nativeSrc": "8714:79:44", + "nodeType": "YulVariableDeclaration", + "src": "8714:79:44", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "gas", + "nativeSrc": "8744:3:44", + "nodeType": "YulIdentifier", + "src": "8744:3:44" + }, + "nativeSrc": "8744:5:44", + "nodeType": "YulFunctionCall", + "src": "8744:5:44" + }, + { + "kind": "number", + "nativeSrc": "8751:4:44", + "nodeType": "YulLiteral", + "src": "8751:4:44", + "type": "", + "value": "2000" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8740:3:44", + "nodeType": "YulIdentifier", + "src": "8740:3:44" + }, + "nativeSrc": "8740:16:44", + "nodeType": "YulFunctionCall", + "src": "8740:16:44" + }, + { + "kind": "number", + "nativeSrc": "8758:1:44", + "nodeType": "YulLiteral", + "src": "8758:1:44", + "type": "", + "value": "8" + }, + { + "name": "_pPairing", + "nativeSrc": "8761:9:44", + "nodeType": "YulIdentifier", + "src": "8761:9:44" + }, + { + "kind": "number", + "nativeSrc": "8772:3:44", + "nodeType": "YulLiteral", + "src": "8772:3:44", + "type": "", + "value": "768" + }, + { + "name": "_pPairing", + "nativeSrc": "8777:9:44", + "nodeType": "YulIdentifier", + "src": "8777:9:44" + }, + { + "kind": "number", + "nativeSrc": "8788:4:44", + "nodeType": "YulLiteral", + "src": "8788:4:44", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "staticcall", + "nativeSrc": "8729:10:44", + "nodeType": "YulIdentifier", + "src": "8729:10:44" + }, + "nativeSrc": "8729:64:44", + "nodeType": "YulFunctionCall", + "src": "8729:64:44" + }, + "variables": [ + { + "name": "success", + "nativeSrc": "8718:7:44", + "nodeType": "YulTypedName", + "src": "8718:7:44", + "type": "" + } + ] + }, + { + "nativeSrc": "8811:38:44", + "nodeType": "YulAssignment", + "src": "8811:38:44", + "value": { + "arguments": [ + { + "name": "success", + "nativeSrc": "8823:7:44", + "nodeType": "YulIdentifier", + "src": "8823:7:44" + }, + { + "arguments": [ + { + "name": "_pPairing", + "nativeSrc": "8838:9:44", + "nodeType": "YulIdentifier", + "src": "8838:9:44" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8832:5:44", + "nodeType": "YulIdentifier", + "src": "8832:5:44" + }, + "nativeSrc": "8832:16:44", + "nodeType": "YulFunctionCall", + "src": "8832:16:44" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8819:3:44", + "nodeType": "YulIdentifier", + "src": "8819:3:44" + }, + "nativeSrc": "8819:30:44", + "nodeType": "YulFunctionCall", + "src": "8819:30:44" + }, + "variableNames": [ + { + "name": "isOk", + "nativeSrc": "8811:4:44", + "nodeType": "YulIdentifier", + "src": "8811:4:44" + } + ] + } + ] + }, + "name": "checkPairing", + "nativeSrc": "5983:2880:44", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pA", + "nativeSrc": "6005:2:44", + "nodeType": "YulTypedName", + "src": "6005:2:44", + "type": "" + }, + { + "name": "pB", + "nativeSrc": "6009:2:44", + "nodeType": "YulTypedName", + "src": "6009:2:44", + "type": "" + }, + { + "name": "pC", + "nativeSrc": "6013:2:44", + "nodeType": "YulTypedName", + "src": "6013:2:44", + "type": "" + }, + { + "name": "pubSignals", + "nativeSrc": "6017:10:44", + "nodeType": "YulTypedName", + "src": "6017:10:44", + "type": "" + }, + { + "name": "pMem", + "nativeSrc": "6029:4:44", + "nodeType": "YulTypedName", + "src": "6029:4:44", + "type": "" + } + ], + "returnVariables": [ + { + "name": "isOk", + "nativeSrc": "6038:4:44", + "nodeType": "YulTypedName", + "src": "6038:4:44", + "type": "" + } + ], + "src": "5983:2880:44" + }, + { + "nativeSrc": "8877:23:44", + "nodeType": "YulVariableDeclaration", + "src": "8877:23:44", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8895:4:44", + "nodeType": "YulLiteral", + "src": "8895:4:44", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8889:5:44", + "nodeType": "YulIdentifier", + "src": "8889:5:44" + }, + "nativeSrc": "8889:11:44", + "nodeType": "YulFunctionCall", + "src": "8889:11:44" + }, + "variables": [ + { + "name": "pMem", + "nativeSrc": "8881:4:44", + "nodeType": "YulTypedName", + "src": "8881:4:44", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8920:4:44", + "nodeType": "YulLiteral", + "src": "8920:4:44", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "name": "pMem", + "nativeSrc": "8930:4:44", + "nodeType": "YulIdentifier", + "src": "8930:4:44" + }, + { + "name": "pLastMem", + "nativeSrc": "8936:8:44", + "nodeType": "YulIdentifier", + "src": "8936:8:44" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8926:3:44", + "nodeType": "YulIdentifier", + "src": "8926:3:44" + }, + "nativeSrc": "8926:19:44", + "nodeType": "YulFunctionCall", + "src": "8926:19:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8913:6:44", + "nodeType": "YulIdentifier", + "src": "8913:6:44" + }, + "nativeSrc": "8913:33:44", + "nodeType": "YulFunctionCall", + "src": "8913:33:44" + }, + "nativeSrc": "8913:33:44", + "nodeType": "YulExpressionStatement", + "src": "8913:33:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9052:11:44", + "nodeType": "YulIdentifier", + "src": "9052:11:44" + }, + { + "kind": "number", + "nativeSrc": "9065:1:44", + "nodeType": "YulLiteral", + "src": "9065:1:44", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9048:3:44", + "nodeType": "YulIdentifier", + "src": "9048:3:44" + }, + "nativeSrc": "9048:19:44", + "nodeType": "YulFunctionCall", + "src": "9048:19:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9035:12:44", + "nodeType": "YulIdentifier", + "src": "9035:12:44" + }, + "nativeSrc": "9035:33:44", + "nodeType": "YulFunctionCall", + "src": "9035:33:44" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9024:10:44", + "nodeType": "YulIdentifier", + "src": "9024:10:44" + }, + "nativeSrc": "9024:45:44", + "nodeType": "YulFunctionCall", + "src": "9024:45:44" + }, + "nativeSrc": "9024:45:44", + "nodeType": "YulExpressionStatement", + "src": "9024:45:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9123:11:44", + "nodeType": "YulIdentifier", + "src": "9123:11:44" + }, + { + "kind": "number", + "nativeSrc": "9136:2:44", + "nodeType": "YulLiteral", + "src": "9136:2:44", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9119:3:44", + "nodeType": "YulIdentifier", + "src": "9119:3:44" + }, + "nativeSrc": "9119:20:44", + "nodeType": "YulFunctionCall", + "src": "9119:20:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9106:12:44", + "nodeType": "YulIdentifier", + "src": "9106:12:44" + }, + "nativeSrc": "9106:34:44", + "nodeType": "YulFunctionCall", + "src": "9106:34:44" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9095:10:44", + "nodeType": "YulIdentifier", + "src": "9095:10:44" + }, + "nativeSrc": "9095:46:44", + "nodeType": "YulFunctionCall", + "src": "9095:46:44" + }, + "nativeSrc": "9095:46:44", + "nodeType": "YulExpressionStatement", + "src": "9095:46:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9195:11:44", + "nodeType": "YulIdentifier", + "src": "9195:11:44" + }, + { + "kind": "number", + "nativeSrc": "9208:2:44", + "nodeType": "YulLiteral", + "src": "9208:2:44", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9191:3:44", + "nodeType": "YulIdentifier", + "src": "9191:3:44" + }, + "nativeSrc": "9191:20:44", + "nodeType": "YulFunctionCall", + "src": "9191:20:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9178:12:44", + "nodeType": "YulIdentifier", + "src": "9178:12:44" + }, + "nativeSrc": "9178:34:44", + "nodeType": "YulFunctionCall", + "src": "9178:34:44" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9167:10:44", + "nodeType": "YulIdentifier", + "src": "9167:10:44" + }, + "nativeSrc": "9167:46:44", + "nodeType": "YulFunctionCall", + "src": "9167:46:44" + }, + "nativeSrc": "9167:46:44", + "nodeType": "YulExpressionStatement", + "src": "9167:46:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9267:11:44", + "nodeType": "YulIdentifier", + "src": "9267:11:44" + }, + { + "kind": "number", + "nativeSrc": "9280:2:44", + "nodeType": "YulLiteral", + "src": "9280:2:44", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9263:3:44", + "nodeType": "YulIdentifier", + "src": "9263:3:44" + }, + "nativeSrc": "9263:20:44", + "nodeType": "YulFunctionCall", + "src": "9263:20:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9250:12:44", + "nodeType": "YulIdentifier", + "src": "9250:12:44" + }, + "nativeSrc": "9250:34:44", + "nodeType": "YulFunctionCall", + "src": "9250:34:44" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9239:10:44", + "nodeType": "YulIdentifier", + "src": "9239:10:44" + }, + "nativeSrc": "9239:46:44", + "nodeType": "YulFunctionCall", + "src": "9239:46:44" + }, + "nativeSrc": "9239:46:44", + "nodeType": "YulExpressionStatement", + "src": "9239:46:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9339:11:44", + "nodeType": "YulIdentifier", + "src": "9339:11:44" + }, + { + "kind": "number", + "nativeSrc": "9352:3:44", + "nodeType": "YulLiteral", + "src": "9352:3:44", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9335:3:44", + "nodeType": "YulIdentifier", + "src": "9335:3:44" + }, + "nativeSrc": "9335:21:44", + "nodeType": "YulFunctionCall", + "src": "9335:21:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9322:12:44", + "nodeType": "YulIdentifier", + "src": "9322:12:44" + }, + "nativeSrc": "9322:35:44", + "nodeType": "YulFunctionCall", + "src": "9322:35:44" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9311:10:44", + "nodeType": "YulIdentifier", + "src": "9311:10:44" + }, + "nativeSrc": "9311:47:44", + "nodeType": "YulFunctionCall", + "src": "9311:47:44" + }, + "nativeSrc": "9311:47:44", + "nodeType": "YulExpressionStatement", + "src": "9311:47:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9412:11:44", + "nodeType": "YulIdentifier", + "src": "9412:11:44" + }, + { + "kind": "number", + "nativeSrc": "9425:3:44", + "nodeType": "YulLiteral", + "src": "9425:3:44", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9408:3:44", + "nodeType": "YulIdentifier", + "src": "9408:3:44" + }, + "nativeSrc": "9408:21:44", + "nodeType": "YulFunctionCall", + "src": "9408:21:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9395:12:44", + "nodeType": "YulIdentifier", + "src": "9395:12:44" + }, + "nativeSrc": "9395:35:44", + "nodeType": "YulFunctionCall", + "src": "9395:35:44" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9384:10:44", + "nodeType": "YulIdentifier", + "src": "9384:10:44" + }, + "nativeSrc": "9384:47:44", + "nodeType": "YulFunctionCall", + "src": "9384:47:44" + }, + "nativeSrc": "9384:47:44", + "nodeType": "YulExpressionStatement", + "src": "9384:47:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9485:11:44", + "nodeType": "YulIdentifier", + "src": "9485:11:44" + }, + { + "kind": "number", + "nativeSrc": "9498:3:44", + "nodeType": "YulLiteral", + "src": "9498:3:44", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9481:3:44", + "nodeType": "YulIdentifier", + "src": "9481:3:44" + }, + "nativeSrc": "9481:21:44", + "nodeType": "YulFunctionCall", + "src": "9481:21:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9468:12:44", + "nodeType": "YulIdentifier", + "src": "9468:12:44" + }, + "nativeSrc": "9468:35:44", + "nodeType": "YulFunctionCall", + "src": "9468:35:44" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9457:10:44", + "nodeType": "YulIdentifier", + "src": "9457:10:44" + }, + "nativeSrc": "9457:47:44", + "nodeType": "YulFunctionCall", + "src": "9457:47:44" + }, + "nativeSrc": "9457:47:44", + "nodeType": "YulExpressionStatement", + "src": "9457:47:44" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_pubSignals", + "nativeSrc": "9558:11:44", + "nodeType": "YulIdentifier", + "src": "9558:11:44" + }, + { + "kind": "number", + "nativeSrc": "9571:3:44", + "nodeType": "YulLiteral", + "src": "9571:3:44", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9554:3:44", + "nodeType": "YulIdentifier", + "src": "9554:3:44" + }, + "nativeSrc": "9554:21:44", + "nodeType": "YulFunctionCall", + "src": "9554:21:44" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9541:12:44", + "nodeType": "YulIdentifier", + "src": "9541:12:44" + }, + "nativeSrc": "9541:35:44", + "nodeType": "YulFunctionCall", + "src": "9541:35:44" + } + ], + "functionName": { + "name": "checkField", + "nativeSrc": "9530:10:44", + "nodeType": "YulIdentifier", + "src": "9530:10:44" + }, + "nativeSrc": "9530:47:44", + "nodeType": "YulFunctionCall", + "src": "9530:47:44" + }, + "nativeSrc": "9530:47:44", + "nodeType": "YulExpressionStatement", + "src": "9530:47:44" + }, + { + "nativeSrc": "9644:61:44", + "nodeType": "YulVariableDeclaration", + "src": "9644:61:44", + "value": { + "arguments": [ + { + "name": "_pA", + "nativeSrc": "9672:3:44", + "nodeType": "YulIdentifier", + "src": "9672:3:44" + }, + { + "name": "_pB", + "nativeSrc": "9677:3:44", + "nodeType": "YulIdentifier", + "src": "9677:3:44" + }, + { + "name": "_pC", + "nativeSrc": "9682:3:44", + "nodeType": "YulIdentifier", + "src": "9682:3:44" + }, + { + "name": "_pubSignals", + "nativeSrc": "9687:11:44", + "nodeType": "YulIdentifier", + "src": "9687:11:44" + }, + { + "name": "pMem", + "nativeSrc": "9700:4:44", + "nodeType": "YulIdentifier", + "src": "9700:4:44" + } + ], + "functionName": { + "name": "checkPairing", + "nativeSrc": "9659:12:44", + "nodeType": "YulIdentifier", + "src": "9659:12:44" + }, + "nativeSrc": "9659:46:44", + "nodeType": "YulFunctionCall", + "src": "9659:46:44" + }, + "variables": [ + { + "name": "isValid", + "nativeSrc": "9648:7:44", + "nodeType": "YulTypedName", + "src": "9648:7:44", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9726:1:44", + "nodeType": "YulLiteral", + "src": "9726:1:44", + "type": "", + "value": "0" + }, + { + "name": "isValid", + "nativeSrc": "9729:7:44", + "nodeType": "YulIdentifier", + "src": "9729:7:44" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9719:6:44", + "nodeType": "YulIdentifier", + "src": "9719:6:44" + }, + "nativeSrc": "9719:18:44", + "nodeType": "YulFunctionCall", + "src": "9719:18:44" + }, + "nativeSrc": "9719:18:44", + "nodeType": "YulExpressionStatement", + "src": "9719:18:44" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9758:1:44", + "nodeType": "YulLiteral", + "src": "9758:1:44", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9761:4:44", + "nodeType": "YulLiteral", + "src": "9761:4:44", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "return", + "nativeSrc": "9751:6:44", + "nodeType": "YulIdentifier", + "src": "9751:6:44" + }, + "nativeSrc": "9751:15:44", + "nodeType": "YulFunctionCall", + "src": "9751:15:44" + }, + "nativeSrc": "9751:15:44", + "nodeType": "YulExpressionStatement", + "src": "9751:15:44" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18149, + "isOffset": false, + "isSlot": false, + "src": "6171:4:44", + "valueSize": 1 + }, + { + "declaration": 18152, + "isOffset": false, + "isSlot": false, + "src": "6215:4:44", + "valueSize": 1 + }, + { + "declaration": 18155, + "isOffset": false, + "isSlot": false, + "src": "6327:4:44", + "valueSize": 1 + }, + { + "declaration": 18158, + "isOffset": false, + "isSlot": false, + "src": "6333:4:44", + "valueSize": 1 + }, + { + "declaration": 18161, + "isOffset": false, + "isSlot": false, + "src": "6423:4:44", + "valueSize": 1 + }, + { + "declaration": 18164, + "isOffset": false, + "isSlot": false, + "src": "6429:4:44", + "valueSize": 1 + }, + { + "declaration": 18167, + "isOffset": false, + "isSlot": false, + "src": "6520:4:44", + "valueSize": 1 + }, + { + "declaration": 18170, + "isOffset": false, + "isSlot": false, + "src": "6526:4:44", + "valueSize": 1 + }, + { + "declaration": 18173, + "isOffset": false, + "isSlot": false, + "src": "6617:4:44", + "valueSize": 1 + }, + { + "declaration": 18176, + "isOffset": false, + "isSlot": false, + "src": "6623:4:44", + "valueSize": 1 + }, + { + "declaration": 18179, + "isOffset": false, + "isSlot": false, + "src": "6714:4:44", + "valueSize": 1 + }, + { + "declaration": 18182, + "isOffset": false, + "isSlot": false, + "src": "6720:4:44", + "valueSize": 1 + }, + { + "declaration": 18185, + "isOffset": false, + "isSlot": false, + "src": "6812:4:44", + "valueSize": 1 + }, + { + "declaration": 18188, + "isOffset": false, + "isSlot": false, + "src": "6818:4:44", + "valueSize": 1 + }, + { + "declaration": 18191, + "isOffset": false, + "isSlot": false, + "src": "6910:4:44", + "valueSize": 1 + }, + { + "declaration": 18194, + "isOffset": false, + "isSlot": false, + "src": "6916:4:44", + "valueSize": 1 + }, + { + "declaration": 18197, + "isOffset": false, + "isSlot": false, + "src": "7008:4:44", + "valueSize": 1 + }, + { + "declaration": 18200, + "isOffset": false, + "isSlot": false, + "src": "7014:4:44", + "valueSize": 1 + }, + { + "declaration": 18213, + "isOffset": false, + "isSlot": false, + "src": "9672:3:44", + "valueSize": 1 + }, + { + "declaration": 18219, + "isOffset": false, + "isSlot": false, + "src": "9677:3:44", + "valueSize": 1 + }, + { + "declaration": 18223, + "isOffset": false, + "isSlot": false, + "src": "9682:3:44", + "valueSize": 1 + }, + { + "declaration": 18227, + "isOffset": false, + "isSlot": false, + "src": "9052:11:44", + "valueSize": 1 + }, + { + "declaration": 18227, + "isOffset": false, + "isSlot": false, + "src": "9123:11:44", + "valueSize": 1 + }, + { + "declaration": 18227, + "isOffset": false, + "isSlot": false, + "src": "9195:11:44", + "valueSize": 1 + }, + { + "declaration": 18227, + "isOffset": false, + "isSlot": false, + "src": "9267:11:44", + "valueSize": 1 + }, + { + "declaration": 18227, + "isOffset": false, + "isSlot": false, + "src": "9339:11:44", + "valueSize": 1 + }, + { + "declaration": 18227, + "isOffset": false, + "isSlot": false, + "src": "9412:11:44", + "valueSize": 1 + }, + { + "declaration": 18227, + "isOffset": false, + "isSlot": false, + "src": "9485:11:44", + "valueSize": 1 + }, + { + "declaration": 18227, + "isOffset": false, + "isSlot": false, + "src": "9558:11:44", + "valueSize": 1 + }, + { + "declaration": 18227, + "isOffset": false, + "isSlot": false, + "src": "9687:11:44", + "valueSize": 1 + }, + { + "declaration": 18107, + "isOffset": false, + "isSlot": false, + "src": "7600:6:44", + "valueSize": 1 + }, + { + "declaration": 18110, + "isOffset": false, + "isSlot": false, + "src": "7652:6:44", + "valueSize": 1 + }, + { + "declaration": 18113, + "isOffset": false, + "isSlot": false, + "src": "7730:6:44", + "valueSize": 1 + }, + { + "declaration": 18116, + "isOffset": false, + "isSlot": false, + "src": "7782:6:44", + "valueSize": 1 + }, + { + "declaration": 18119, + "isOffset": false, + "isSlot": false, + "src": "7834:6:44", + "valueSize": 1 + }, + { + "declaration": 18122, + "isOffset": false, + "isSlot": false, + "src": "7886:6:44", + "valueSize": 1 + }, + { + "declaration": 18137, + "isOffset": false, + "isSlot": false, + "src": "8528:7:44", + "valueSize": 1 + }, + { + "declaration": 18140, + "isOffset": false, + "isSlot": false, + "src": "8581:7:44", + "valueSize": 1 + }, + { + "declaration": 18143, + "isOffset": false, + "isSlot": false, + "src": "8634:7:44", + "valueSize": 1 + }, + { + "declaration": 18146, + "isOffset": false, + "isSlot": false, + "src": "8687:7:44", + "valueSize": 1 + }, + { + "declaration": 18125, + "isOffset": false, + "isSlot": false, + "src": "8134:7:44", + "valueSize": 1 + }, + { + "declaration": 18128, + "isOffset": false, + "isSlot": false, + "src": "8187:7:44", + "valueSize": 1 + }, + { + "declaration": 18131, + "isOffset": false, + "isSlot": false, + "src": "8240:7:44", + "valueSize": 1 + }, + { + "declaration": 18134, + "isOffset": false, + "isSlot": false, + "src": "8293:7:44", + "valueSize": 1 + }, + { + "declaration": 18209, + "isOffset": false, + "isSlot": false, + "src": "8936:8:44", + "valueSize": 1 + }, + { + "declaration": 18206, + "isOffset": false, + "isSlot": false, + "src": "6088:8:44", + "valueSize": 1 + }, + { + "declaration": 18203, + "isOffset": false, + "isSlot": false, + "src": "6136:3:44", + "valueSize": 1 + }, + { + "declaration": 18203, + "isOffset": false, + "isSlot": false, + "src": "7979:3:44", + "valueSize": 1 + }, + { + "declaration": 18203, + "isOffset": false, + "isSlot": false, + "src": "8050:3:44", + "valueSize": 1 + }, + { + "declaration": 18104, + "isOffset": false, + "isSlot": false, + "src": "7199:1:44", + "valueSize": 1 + }, + { + "declaration": 18104, + "isOffset": false, + "isSlot": false, + "src": "7230:1:44", + "valueSize": 1 + }, + { + "declaration": 18101, + "isOffset": false, + "isSlot": false, + "src": "5021:1:44", + "valueSize": 1 + } + ], + "id": 18232, + "nodeType": "InlineAssembly", + "src": "4941:4836:44" + } + ] + }, + "functionSelector": "c9219a7a", + "id": 18234, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "verifyProof", + "nameLocation": "4793:11:44", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18213, + "mutability": "mutable", + "name": "_pA", + "nameLocation": "4822:3:44", + "nodeType": "VariableDeclaration", + "scope": 18234, + "src": "4805:20:44", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 18210, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4805:4:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18212, + "length": { + "hexValue": "32", + "id": 18211, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4810:1:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4805:7:44", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18219, + "mutability": "mutable", + "name": "_pB", + "nameLocation": "4847:3:44", + "nodeType": "VariableDeclaration", + "scope": 18234, + "src": "4827:23:44", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptr", + "typeString": "uint256[2][2]" + }, + "typeName": { + "baseType": { + "baseType": { + "id": 18214, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4827:4:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18216, + "length": { + "hexValue": "32", + "id": 18215, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4832:1:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4827:7:44", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "id": 18218, + "length": { + "hexValue": "32", + "id": 18217, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4835:1:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4827:10:44", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_array$_t_uint256_$2_storage_$2_storage_ptr", + "typeString": "uint256[2][2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18223, + "mutability": "mutable", + "name": "_pC", + "nameLocation": "4869:3:44", + "nodeType": "VariableDeclaration", + "scope": 18234, + "src": "4852:20:44", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_calldata_ptr", + "typeString": "uint256[2]" + }, + "typeName": { + "baseType": { + "id": 18220, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4852:4:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18222, + "length": { + "hexValue": "32", + "id": 18221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4857:1:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "ArrayTypeName", + "src": "4852:7:44", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$2_storage_ptr", + "typeString": "uint256[2]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18227, + "mutability": "mutable", + "name": "_pubSignals", + "nameLocation": "4891:11:44", + "nodeType": "VariableDeclaration", + "scope": 18234, + "src": "4874:28:44", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_calldata_ptr", + "typeString": "uint256[8]" + }, + "typeName": { + "baseType": { + "id": 18224, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4874:4:44", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 18226, + "length": { + "hexValue": "38", + "id": 18225, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4879:1:44", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "nodeType": "ArrayTypeName", + "src": "4874:7:44", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$8_storage_ptr", + "typeString": "uint256[8]" + } + }, + "visibility": "internal" + } + ], + "src": "4804:99:44" + }, + "returnParameters": { + "id": 18231, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18230, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18234, + "src": "4925:4:44", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18229, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4925:4:44", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "4924:6:44" + }, + "scope": 18235, + "src": "4784:5000:44", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + } + ], + "scope": 18236, + "src": "831:8956:44", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "798:8990:44" + }, + "id": 44 + }, + "solidity-bytes-utils/contracts/BytesLib.sol": { + "ast": { + "absolutePath": "solidity-bytes-utils/contracts/BytesLib.sol", + "exportedSymbols": { + "BytesLib": [ + 18568 + ] + }, + "id": 18569, + "license": "Unlicense", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 18237, + "literals": [ + "solidity", + ">=", + "0.8", + ".0", + "<", + "0.9", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "336:31:45" + }, + { + "abstract": false, + "baseContracts": [], + "canonicalName": "BytesLib", + "contractDependencies": [], + "contractKind": "library", + "fullyImplemented": true, + "id": 18568, + "linearizedBaseContracts": [ + 18568 + ], + "name": "BytesLib", + "nameLocation": "378:8:45", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 18252, + "nodeType": "Block", + "src": "545:2803:45", + "statements": [ + { + "assignments": [ + 18247 + ], + "declarations": [ + { + "constant": false, + "id": 18247, + "mutability": "mutable", + "name": "tempBytes", + "nameLocation": "568:9:45", + "nodeType": "VariableDeclaration", + "scope": 18252, + "src": "555:22:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18246, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "555:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 18248, + "nodeType": "VariableDeclarationStatement", + "src": "555:22:45" + }, + { + "AST": { + "nativeSrc": "597:2718:45", + "nodeType": "YulBlock", + "src": "597:2718:45", + "statements": [ + { + "nativeSrc": "741:24:45", + "nodeType": "YulAssignment", + "src": "741:24:45", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "760:4:45", + "nodeType": "YulLiteral", + "src": "760:4:45", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "754:5:45", + "nodeType": "YulIdentifier", + "src": "754:5:45" + }, + "nativeSrc": "754:11:45", + "nodeType": "YulFunctionCall", + "src": "754:11:45" + }, + "variableNames": [ + { + "name": "tempBytes", + "nativeSrc": "741:9:45", + "nodeType": "YulIdentifier", + "src": "741:9:45" + } + ] + }, + { + "nativeSrc": "897:30:45", + "nodeType": "YulVariableDeclaration", + "src": "897:30:45", + "value": { + "arguments": [ + { + "name": "_preBytes", + "nativeSrc": "917:9:45", + "nodeType": "YulIdentifier", + "src": "917:9:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "911:5:45", + "nodeType": "YulIdentifier", + "src": "911:5:45" + }, + "nativeSrc": "911:16:45", + "nodeType": "YulFunctionCall", + "src": "911:16:45" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "901:6:45", + "nodeType": "YulTypedName", + "src": "901:6:45", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "tempBytes", + "nativeSrc": "947:9:45", + "nodeType": "YulIdentifier", + "src": "947:9:45" + }, + { + "name": "length", + "nativeSrc": "958:6:45", + "nodeType": "YulIdentifier", + "src": "958:6:45" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "940:6:45", + "nodeType": "YulIdentifier", + "src": "940:6:45" + }, + "nativeSrc": "940:25:45", + "nodeType": "YulFunctionCall", + "src": "940:25:45" + }, + "nativeSrc": "940:25:45", + "nodeType": "YulExpressionStatement", + "src": "940:25:45" + }, + { + "nativeSrc": "1175:30:45", + "nodeType": "YulVariableDeclaration", + "src": "1175:30:45", + "value": { + "arguments": [ + { + "name": "tempBytes", + "nativeSrc": "1189:9:45", + "nodeType": "YulIdentifier", + "src": "1189:9:45" + }, + { + "kind": "number", + "nativeSrc": "1200:4:45", + "nodeType": "YulLiteral", + "src": "1200:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1185:3:45", + "nodeType": "YulIdentifier", + "src": "1185:3:45" + }, + "nativeSrc": "1185:20:45", + "nodeType": "YulFunctionCall", + "src": "1185:20:45" + }, + "variables": [ + { + "name": "mc", + "nativeSrc": "1179:2:45", + "nodeType": "YulTypedName", + "src": "1179:2:45", + "type": "" + } + ] + }, + { + "nativeSrc": "1330:26:45", + "nodeType": "YulVariableDeclaration", + "src": "1330:26:45", + "value": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "1345:2:45", + "nodeType": "YulIdentifier", + "src": "1345:2:45" + }, + { + "name": "length", + "nativeSrc": "1349:6:45", + "nodeType": "YulIdentifier", + "src": "1349:6:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1341:3:45", + "nodeType": "YulIdentifier", + "src": "1341:3:45" + }, + "nativeSrc": "1341:15:45", + "nodeType": "YulFunctionCall", + "src": "1341:15:45" + }, + "variables": [ + { + "name": "end", + "nativeSrc": "1334:3:45", + "nodeType": "YulTypedName", + "src": "1334:3:45", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1733:162:45", + "nodeType": "YulBlock", + "src": "1733:162:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "1867:2:45", + "nodeType": "YulIdentifier", + "src": "1867:2:45" + }, + { + "arguments": [ + { + "name": "cc", + "nativeSrc": "1877:2:45", + "nodeType": "YulIdentifier", + "src": "1877:2:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1871:5:45", + "nodeType": "YulIdentifier", + "src": "1871:5:45" + }, + "nativeSrc": "1871:9:45", + "nodeType": "YulFunctionCall", + "src": "1871:9:45" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1860:6:45", + "nodeType": "YulIdentifier", + "src": "1860:6:45" + }, + "nativeSrc": "1860:21:45", + "nodeType": "YulFunctionCall", + "src": "1860:21:45" + }, + "nativeSrc": "1860:21:45", + "nodeType": "YulExpressionStatement", + "src": "1860:21:45" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "1566:2:45", + "nodeType": "YulIdentifier", + "src": "1566:2:45" + }, + { + "name": "end", + "nativeSrc": "1570:3:45", + "nodeType": "YulIdentifier", + "src": "1570:3:45" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1563:2:45", + "nodeType": "YulIdentifier", + "src": "1563:2:45" + }, + "nativeSrc": "1563:11:45", + "nodeType": "YulFunctionCall", + "src": "1563:11:45" + }, + "nativeSrc": "1370:525:45", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1575:157:45", + "nodeType": "YulBlock", + "src": "1575:157:45", + "statements": [ + { + "nativeSrc": "1663:19:45", + "nodeType": "YulAssignment", + "src": "1663:19:45", + "value": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "1673:2:45", + "nodeType": "YulIdentifier", + "src": "1673:2:45" + }, + { + "kind": "number", + "nativeSrc": "1677:4:45", + "nodeType": "YulLiteral", + "src": "1677:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1669:3:45", + "nodeType": "YulIdentifier", + "src": "1669:3:45" + }, + "nativeSrc": "1669:13:45", + "nodeType": "YulFunctionCall", + "src": "1669:13:45" + }, + "variableNames": [ + { + "name": "mc", + "nativeSrc": "1663:2:45", + "nodeType": "YulIdentifier", + "src": "1663:2:45" + } + ] + }, + { + "nativeSrc": "1699:19:45", + "nodeType": "YulAssignment", + "src": "1699:19:45", + "value": { + "arguments": [ + { + "name": "cc", + "nativeSrc": "1709:2:45", + "nodeType": "YulIdentifier", + "src": "1709:2:45" + }, + { + "kind": "number", + "nativeSrc": "1713:4:45", + "nodeType": "YulLiteral", + "src": "1713:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1705:3:45", + "nodeType": "YulIdentifier", + "src": "1705:3:45" + }, + "nativeSrc": "1705:13:45", + "nodeType": "YulFunctionCall", + "src": "1705:13:45" + }, + "variableNames": [ + { + "name": "cc", + "nativeSrc": "1699:2:45", + "nodeType": "YulIdentifier", + "src": "1699:2:45" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1374:188:45", + "nodeType": "YulBlock", + "src": "1374:188:45", + "statements": [ + { + "nativeSrc": "1518:30:45", + "nodeType": "YulVariableDeclaration", + "src": "1518:30:45", + "value": { + "arguments": [ + { + "name": "_preBytes", + "nativeSrc": "1532:9:45", + "nodeType": "YulIdentifier", + "src": "1532:9:45" + }, + { + "kind": "number", + "nativeSrc": "1543:4:45", + "nodeType": "YulLiteral", + "src": "1543:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1528:3:45", + "nodeType": "YulIdentifier", + "src": "1528:3:45" + }, + "nativeSrc": "1528:20:45", + "nodeType": "YulFunctionCall", + "src": "1528:20:45" + }, + "variables": [ + { + "name": "cc", + "nativeSrc": "1522:2:45", + "nodeType": "YulTypedName", + "src": "1522:2:45", + "type": "" + } + ] + } + ] + }, + "src": "1370:525:45" + }, + { + "nativeSrc": "2096:27:45", + "nodeType": "YulAssignment", + "src": "2096:27:45", + "value": { + "arguments": [ + { + "name": "_postBytes", + "nativeSrc": "2112:10:45", + "nodeType": "YulIdentifier", + "src": "2112:10:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2106:5:45", + "nodeType": "YulIdentifier", + "src": "2106:5:45" + }, + "nativeSrc": "2106:17:45", + "nodeType": "YulFunctionCall", + "src": "2106:17:45" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "2096:6:45", + "nodeType": "YulIdentifier", + "src": "2096:6:45" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "tempBytes", + "nativeSrc": "2143:9:45", + "nodeType": "YulIdentifier", + "src": "2143:9:45" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "2158:6:45", + "nodeType": "YulIdentifier", + "src": "2158:6:45" + }, + { + "arguments": [ + { + "name": "tempBytes", + "nativeSrc": "2172:9:45", + "nodeType": "YulIdentifier", + "src": "2172:9:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2166:5:45", + "nodeType": "YulIdentifier", + "src": "2166:5:45" + }, + "nativeSrc": "2166:16:45", + "nodeType": "YulFunctionCall", + "src": "2166:16:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2154:3:45", + "nodeType": "YulIdentifier", + "src": "2154:3:45" + }, + "nativeSrc": "2154:29:45", + "nodeType": "YulFunctionCall", + "src": "2154:29:45" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2136:6:45", + "nodeType": "YulIdentifier", + "src": "2136:6:45" + }, + "nativeSrc": "2136:48:45", + "nodeType": "YulFunctionCall", + "src": "2136:48:45" + }, + "nativeSrc": "2136:48:45", + "nodeType": "YulExpressionStatement", + "src": "2136:48:45" + }, + { + "nativeSrc": "2322:9:45", + "nodeType": "YulAssignment", + "src": "2322:9:45", + "value": { + "name": "end", + "nativeSrc": "2328:3:45", + "nodeType": "YulIdentifier", + "src": "2328:3:45" + }, + "variableNames": [ + { + "name": "mc", + "nativeSrc": "2322:2:45", + "nodeType": "YulIdentifier", + "src": "2322:2:45" + } + ] + }, + { + "nativeSrc": "2458:22:45", + "nodeType": "YulAssignment", + "src": "2458:22:45", + "value": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "2469:2:45", + "nodeType": "YulIdentifier", + "src": "2469:2:45" + }, + { + "name": "length", + "nativeSrc": "2473:6:45", + "nodeType": "YulIdentifier", + "src": "2473:6:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2465:3:45", + "nodeType": "YulIdentifier", + "src": "2465:3:45" + }, + "nativeSrc": "2465:15:45", + "nodeType": "YulFunctionCall", + "src": "2465:15:45" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "2458:3:45", + "nodeType": "YulIdentifier", + "src": "2458:3:45" + } + ] + }, + { + "body": { + "nativeSrc": "2662:53:45", + "nodeType": "YulBlock", + "src": "2662:53:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "2687:2:45", + "nodeType": "YulIdentifier", + "src": "2687:2:45" + }, + { + "arguments": [ + { + "name": "cc", + "nativeSrc": "2697:2:45", + "nodeType": "YulIdentifier", + "src": "2697:2:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2691:5:45", + "nodeType": "YulIdentifier", + "src": "2691:5:45" + }, + "nativeSrc": "2691:9:45", + "nodeType": "YulFunctionCall", + "src": "2691:9:45" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2680:6:45", + "nodeType": "YulIdentifier", + "src": "2680:6:45" + }, + "nativeSrc": "2680:21:45", + "nodeType": "YulFunctionCall", + "src": "2680:21:45" + }, + "nativeSrc": "2680:21:45", + "nodeType": "YulExpressionStatement", + "src": "2680:21:45" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "2565:2:45", + "nodeType": "YulIdentifier", + "src": "2565:2:45" + }, + { + "name": "end", + "nativeSrc": "2569:3:45", + "nodeType": "YulIdentifier", + "src": "2569:3:45" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "2562:2:45", + "nodeType": "YulIdentifier", + "src": "2562:2:45" + }, + "nativeSrc": "2562:11:45", + "nodeType": "YulFunctionCall", + "src": "2562:11:45" + }, + "nativeSrc": "2494:221:45", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "2574:87:45", + "nodeType": "YulBlock", + "src": "2574:87:45", + "statements": [ + { + "nativeSrc": "2592:19:45", + "nodeType": "YulAssignment", + "src": "2592:19:45", + "value": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "2602:2:45", + "nodeType": "YulIdentifier", + "src": "2602:2:45" + }, + { + "kind": "number", + "nativeSrc": "2606:4:45", + "nodeType": "YulLiteral", + "src": "2606:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2598:3:45", + "nodeType": "YulIdentifier", + "src": "2598:3:45" + }, + "nativeSrc": "2598:13:45", + "nodeType": "YulFunctionCall", + "src": "2598:13:45" + }, + "variableNames": [ + { + "name": "mc", + "nativeSrc": "2592:2:45", + "nodeType": "YulIdentifier", + "src": "2592:2:45" + } + ] + }, + { + "nativeSrc": "2628:19:45", + "nodeType": "YulAssignment", + "src": "2628:19:45", + "value": { + "arguments": [ + { + "name": "cc", + "nativeSrc": "2638:2:45", + "nodeType": "YulIdentifier", + "src": "2638:2:45" + }, + { + "kind": "number", + "nativeSrc": "2642:4:45", + "nodeType": "YulLiteral", + "src": "2642:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2634:3:45", + "nodeType": "YulIdentifier", + "src": "2634:3:45" + }, + "nativeSrc": "2634:13:45", + "nodeType": "YulFunctionCall", + "src": "2634:13:45" + }, + "variableNames": [ + { + "name": "cc", + "nativeSrc": "2628:2:45", + "nodeType": "YulIdentifier", + "src": "2628:2:45" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "2498:63:45", + "nodeType": "YulBlock", + "src": "2498:63:45", + "statements": [ + { + "nativeSrc": "2516:31:45", + "nodeType": "YulVariableDeclaration", + "src": "2516:31:45", + "value": { + "arguments": [ + { + "name": "_postBytes", + "nativeSrc": "2530:10:45", + "nodeType": "YulIdentifier", + "src": "2530:10:45" + }, + { + "kind": "number", + "nativeSrc": "2542:4:45", + "nodeType": "YulLiteral", + "src": "2542:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2526:3:45", + "nodeType": "YulIdentifier", + "src": "2526:3:45" + }, + "nativeSrc": "2526:21:45", + "nodeType": "YulFunctionCall", + "src": "2526:21:45" + }, + "variables": [ + { + "name": "cc", + "nativeSrc": "2520:2:45", + "nodeType": "YulTypedName", + "src": "2520:2:45", + "type": "" + } + ] + } + ] + }, + "src": "2494:221:45" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3147:4:45", + "nodeType": "YulLiteral", + "src": "3147:4:45", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "end", + "nativeSrc": "3180:3:45", + "nodeType": "YulIdentifier", + "src": "3180:3:45" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "3196:6:45", + "nodeType": "YulIdentifier", + "src": "3196:6:45" + }, + { + "arguments": [ + { + "name": "_preBytes", + "nativeSrc": "3210:9:45", + "nodeType": "YulIdentifier", + "src": "3210:9:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3204:5:45", + "nodeType": "YulIdentifier", + "src": "3204:5:45" + }, + "nativeSrc": "3204:16:45", + "nodeType": "YulFunctionCall", + "src": "3204:16:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3192:3:45", + "nodeType": "YulIdentifier", + "src": "3192:3:45" + }, + "nativeSrc": "3192:29:45", + "nodeType": "YulFunctionCall", + "src": "3192:29:45" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3185:6:45", + "nodeType": "YulIdentifier", + "src": "3185:6:45" + }, + "nativeSrc": "3185:37:45", + "nodeType": "YulFunctionCall", + "src": "3185:37:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3176:3:45", + "nodeType": "YulIdentifier", + "src": "3176:3:45" + }, + "nativeSrc": "3176:47:45", + "nodeType": "YulFunctionCall", + "src": "3176:47:45" + }, + { + "kind": "number", + "nativeSrc": "3225:2:45", + "nodeType": "YulLiteral", + "src": "3225:2:45", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3172:3:45", + "nodeType": "YulIdentifier", + "src": "3172:3:45" + }, + "nativeSrc": "3172:56:45", + "nodeType": "YulFunctionCall", + "src": "3172:56:45" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3248:2:45", + "nodeType": "YulLiteral", + "src": "3248:2:45", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "3244:3:45", + "nodeType": "YulIdentifier", + "src": "3244:3:45" + }, + "nativeSrc": "3244:7:45", + "nodeType": "YulFunctionCall", + "src": "3244:7:45" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3153:3:45", + "nodeType": "YulIdentifier", + "src": "3153:3:45" + }, + "nativeSrc": "3153:151:45", + "nodeType": "YulFunctionCall", + "src": "3153:151:45" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3140:6:45", + "nodeType": "YulIdentifier", + "src": "3140:6:45" + }, + "nativeSrc": "3140:165:45", + "nodeType": "YulFunctionCall", + "src": "3140:165:45" + }, + "nativeSrc": "3140:165:45", + "nodeType": "YulExpressionStatement", + "src": "3140:165:45" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18241, + "isOffset": false, + "isSlot": false, + "src": "2112:10:45", + "valueSize": 1 + }, + { + "declaration": 18241, + "isOffset": false, + "isSlot": false, + "src": "2530:10:45", + "valueSize": 1 + }, + { + "declaration": 18239, + "isOffset": false, + "isSlot": false, + "src": "1532:9:45", + "valueSize": 1 + }, + { + "declaration": 18239, + "isOffset": false, + "isSlot": false, + "src": "3210:9:45", + "valueSize": 1 + }, + { + "declaration": 18239, + "isOffset": false, + "isSlot": false, + "src": "917:9:45", + "valueSize": 1 + }, + { + "declaration": 18247, + "isOffset": false, + "isSlot": false, + "src": "1189:9:45", + "valueSize": 1 + }, + { + "declaration": 18247, + "isOffset": false, + "isSlot": false, + "src": "2143:9:45", + "valueSize": 1 + }, + { + "declaration": 18247, + "isOffset": false, + "isSlot": false, + "src": "2172:9:45", + "valueSize": 1 + }, + { + "declaration": 18247, + "isOffset": false, + "isSlot": false, + "src": "741:9:45", + "valueSize": 1 + }, + { + "declaration": 18247, + "isOffset": false, + "isSlot": false, + "src": "947:9:45", + "valueSize": 1 + } + ], + "id": 18249, + "nodeType": "InlineAssembly", + "src": "588:2727:45" + }, + { + "expression": { + "id": 18250, + "name": "tempBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18247, + "src": "3332:9:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 18245, + "id": 18251, + "nodeType": "Return", + "src": "3325:16:45" + } + ] + }, + "id": 18253, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "concat", + "nameLocation": "402:6:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18242, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18239, + "mutability": "mutable", + "name": "_preBytes", + "nameLocation": "431:9:45", + "nodeType": "VariableDeclaration", + "scope": 18253, + "src": "418:22:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18238, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "418:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18241, + "mutability": "mutable", + "name": "_postBytes", + "nameLocation": "463:10:45", + "nodeType": "VariableDeclaration", + "scope": 18253, + "src": "450:23:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18240, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "450:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "408:71:45" + }, + "returnParameters": { + "id": 18245, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18244, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18253, + "src": "527:12:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18243, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "527:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "526:14:45" + }, + "scope": 18568, + "src": "393:2955:45", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 18261, + "nodeType": "Block", + "src": "3436:6015:45", + "statements": [ + { + "AST": { + "nativeSrc": "3455:5990:45", + "nodeType": "YulBlock", + "src": "3455:5990:45", + "statements": [ + { + "nativeSrc": "3678:34:45", + "nodeType": "YulVariableDeclaration", + "src": "3678:34:45", + "value": { + "arguments": [ + { + "name": "_preBytes.slot", + "nativeSrc": "3697:14:45", + "nodeType": "YulIdentifier", + "src": "3697:14:45" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "3691:5:45", + "nodeType": "YulIdentifier", + "src": "3691:5:45" + }, + "nativeSrc": "3691:21:45", + "nodeType": "YulFunctionCall", + "src": "3691:21:45" + }, + "variables": [ + { + "name": "fslot", + "nativeSrc": "3682:5:45", + "nodeType": "YulTypedName", + "src": "3682:5:45", + "type": "" + } + ] + }, + { + "nativeSrc": "4205:76:45", + "nodeType": "YulVariableDeclaration", + "src": "4205:76:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "fslot", + "nativeSrc": "4228:5:45", + "nodeType": "YulIdentifier", + "src": "4228:5:45" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4243:5:45", + "nodeType": "YulLiteral", + "src": "4243:5:45", + "type": "", + "value": "0x100" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "fslot", + "nativeSrc": "4261:5:45", + "nodeType": "YulIdentifier", + "src": "4261:5:45" + }, + { + "kind": "number", + "nativeSrc": "4268:1:45", + "nodeType": "YulLiteral", + "src": "4268:1:45", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4257:3:45", + "nodeType": "YulIdentifier", + "src": "4257:3:45" + }, + "nativeSrc": "4257:13:45", + "nodeType": "YulFunctionCall", + "src": "4257:13:45" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4250:6:45", + "nodeType": "YulIdentifier", + "src": "4250:6:45" + }, + "nativeSrc": "4250:21:45", + "nodeType": "YulFunctionCall", + "src": "4250:21:45" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "4239:3:45", + "nodeType": "YulIdentifier", + "src": "4239:3:45" + }, + "nativeSrc": "4239:33:45", + "nodeType": "YulFunctionCall", + "src": "4239:33:45" + }, + { + "kind": "number", + "nativeSrc": "4274:1:45", + "nodeType": "YulLiteral", + "src": "4274:1:45", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4235:3:45", + "nodeType": "YulIdentifier", + "src": "4235:3:45" + }, + "nativeSrc": "4235:41:45", + "nodeType": "YulFunctionCall", + "src": "4235:41:45" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4224:3:45", + "nodeType": "YulIdentifier", + "src": "4224:3:45" + }, + "nativeSrc": "4224:53:45", + "nodeType": "YulFunctionCall", + "src": "4224:53:45" + }, + { + "kind": "number", + "nativeSrc": "4279:1:45", + "nodeType": "YulLiteral", + "src": "4279:1:45", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "4220:3:45", + "nodeType": "YulIdentifier", + "src": "4220:3:45" + }, + "nativeSrc": "4220:61:45", + "nodeType": "YulFunctionCall", + "src": "4220:61:45" + }, + "variables": [ + { + "name": "slength", + "nativeSrc": "4209:7:45", + "nodeType": "YulTypedName", + "src": "4209:7:45", + "type": "" + } + ] + }, + { + "nativeSrc": "4294:32:45", + "nodeType": "YulVariableDeclaration", + "src": "4294:32:45", + "value": { + "arguments": [ + { + "name": "_postBytes", + "nativeSrc": "4315:10:45", + "nodeType": "YulIdentifier", + "src": "4315:10:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "4309:5:45", + "nodeType": "YulIdentifier", + "src": "4309:5:45" + }, + "nativeSrc": "4309:17:45", + "nodeType": "YulFunctionCall", + "src": "4309:17:45" + }, + "variables": [ + { + "name": "mlength", + "nativeSrc": "4298:7:45", + "nodeType": "YulTypedName", + "src": "4298:7:45", + "type": "" + } + ] + }, + { + "nativeSrc": "4339:38:45", + "nodeType": "YulVariableDeclaration", + "src": "4339:38:45", + "value": { + "arguments": [ + { + "name": "slength", + "nativeSrc": "4360:7:45", + "nodeType": "YulIdentifier", + "src": "4360:7:45" + }, + { + "name": "mlength", + "nativeSrc": "4369:7:45", + "nodeType": "YulIdentifier", + "src": "4369:7:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4356:3:45", + "nodeType": "YulIdentifier", + "src": "4356:3:45" + }, + "nativeSrc": "4356:21:45", + "nodeType": "YulFunctionCall", + "src": "4356:21:45" + }, + "variables": [ + { + "name": "newlength", + "nativeSrc": "4343:9:45", + "nodeType": "YulTypedName", + "src": "4343:9:45", + "type": "" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "4710:1485:45", + "nodeType": "YulBlock", + "src": "4710:1485:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "_preBytes.slot", + "nativeSrc": "4991:14:45", + "nodeType": "YulIdentifier", + "src": "4991:14:45" + }, + { + "arguments": [ + { + "name": "fslot", + "nativeSrc": "5303:5:45", + "nodeType": "YulIdentifier", + "src": "5303:5:45" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_postBytes", + "nativeSrc": "5521:10:45", + "nodeType": "YulIdentifier", + "src": "5521:10:45" + }, + { + "kind": "number", + "nativeSrc": "5533:4:45", + "nodeType": "YulLiteral", + "src": "5533:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5517:3:45", + "nodeType": "YulIdentifier", + "src": "5517:3:45" + }, + "nativeSrc": "5517:21:45", + "nodeType": "YulFunctionCall", + "src": "5517:21:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5511:5:45", + "nodeType": "YulIdentifier", + "src": "5511:5:45" + }, + "nativeSrc": "5511:28:45", + "nodeType": "YulFunctionCall", + "src": "5511:28:45" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5648:5:45", + "nodeType": "YulLiteral", + "src": "5648:5:45", + "type": "", + "value": "0x100" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5659:2:45", + "nodeType": "YulLiteral", + "src": "5659:2:45", + "type": "", + "value": "32" + }, + { + "name": "mlength", + "nativeSrc": "5663:7:45", + "nodeType": "YulIdentifier", + "src": "5663:7:45" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5655:3:45", + "nodeType": "YulIdentifier", + "src": "5655:3:45" + }, + "nativeSrc": "5655:16:45", + "nodeType": "YulFunctionCall", + "src": "5655:16:45" + } + ], + "functionName": { + "name": "exp", + "nativeSrc": "5644:3:45", + "nodeType": "YulIdentifier", + "src": "5644:3:45" + }, + "nativeSrc": "5644:28:45", + "nodeType": "YulFunctionCall", + "src": "5644:28:45" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "5404:3:45", + "nodeType": "YulIdentifier", + "src": "5404:3:45" + }, + "nativeSrc": "5404:302:45", + "nodeType": "YulFunctionCall", + "src": "5404:302:45" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5895:5:45", + "nodeType": "YulLiteral", + "src": "5895:5:45", + "type": "", + "value": "0x100" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5906:2:45", + "nodeType": "YulLiteral", + "src": "5906:2:45", + "type": "", + "value": "32" + }, + { + "name": "newlength", + "nativeSrc": "5910:9:45", + "nodeType": "YulIdentifier", + "src": "5910:9:45" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5902:3:45", + "nodeType": "YulIdentifier", + "src": "5902:3:45" + }, + "nativeSrc": "5902:18:45", + "nodeType": "YulFunctionCall", + "src": "5902:18:45" + } + ], + "functionName": { + "name": "exp", + "nativeSrc": "5891:3:45", + "nodeType": "YulIdentifier", + "src": "5891:3:45" + }, + "nativeSrc": "5891:30:45", + "nodeType": "YulFunctionCall", + "src": "5891:30:45" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "5367:3:45", + "nodeType": "YulIdentifier", + "src": "5367:3:45" + }, + "nativeSrc": "5367:584:45", + "nodeType": "YulFunctionCall", + "src": "5367:584:45" + }, + { + "arguments": [ + { + "name": "mlength", + "nativeSrc": "6104:7:45", + "nodeType": "YulIdentifier", + "src": "6104:7:45" + }, + { + "kind": "number", + "nativeSrc": "6113:1:45", + "nodeType": "YulLiteral", + "src": "6113:1:45", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6100:3:45", + "nodeType": "YulIdentifier", + "src": "6100:3:45" + }, + "nativeSrc": "6100:15:45", + "nodeType": "YulFunctionCall", + "src": "6100:15:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5334:3:45", + "nodeType": "YulIdentifier", + "src": "5334:3:45" + }, + "nativeSrc": "5334:807:45", + "nodeType": "YulFunctionCall", + "src": "5334:807:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5134:3:45", + "nodeType": "YulIdentifier", + "src": "5134:3:45" + }, + "nativeSrc": "5134:1029:45", + "nodeType": "YulFunctionCall", + "src": "5134:1029:45" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "4963:6:45", + "nodeType": "YulIdentifier", + "src": "4963:6:45" + }, + "nativeSrc": "4963:1218:45", + "nodeType": "YulFunctionCall", + "src": "4963:1218:45" + }, + "nativeSrc": "4963:1218:45", + "nodeType": "YulExpressionStatement", + "src": "4963:1218:45" + } + ] + }, + "nativeSrc": "4703:1492:45", + "nodeType": "YulCase", + "src": "4703:1492:45", + "value": { + "kind": "number", + "nativeSrc": "4708:1:45", + "nodeType": "YulLiteral", + "src": "4708:1:45", + "type": "", + "value": "2" + } + }, + { + "body": { + "nativeSrc": "6215:1935:45", + "nodeType": "YulBlock", + "src": "6215:1935:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6424:3:45", + "nodeType": "YulLiteral", + "src": "6424:3:45", + "type": "", + "value": "0x0" + }, + { + "name": "_preBytes.slot", + "nativeSrc": "6429:14:45", + "nodeType": "YulIdentifier", + "src": "6429:14:45" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6417:6:45", + "nodeType": "YulIdentifier", + "src": "6417:6:45" + }, + "nativeSrc": "6417:27:45", + "nodeType": "YulFunctionCall", + "src": "6417:27:45" + }, + "nativeSrc": "6417:27:45", + "nodeType": "YulExpressionStatement", + "src": "6417:27:45" + }, + { + "nativeSrc": "6461:53:45", + "nodeType": "YulVariableDeclaration", + "src": "6461:53:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6485:3:45", + "nodeType": "YulLiteral", + "src": "6485:3:45", + "type": "", + "value": "0x0" + }, + { + "kind": "number", + "nativeSrc": "6490:4:45", + "nodeType": "YulLiteral", + "src": "6490:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "6475:9:45", + "nodeType": "YulIdentifier", + "src": "6475:9:45" + }, + "nativeSrc": "6475:20:45", + "nodeType": "YulFunctionCall", + "src": "6475:20:45" + }, + { + "arguments": [ + { + "name": "slength", + "nativeSrc": "6501:7:45", + "nodeType": "YulIdentifier", + "src": "6501:7:45" + }, + { + "kind": "number", + "nativeSrc": "6510:2:45", + "nodeType": "YulLiteral", + "src": "6510:2:45", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "6497:3:45", + "nodeType": "YulIdentifier", + "src": "6497:3:45" + }, + "nativeSrc": "6497:16:45", + "nodeType": "YulFunctionCall", + "src": "6497:16:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6471:3:45", + "nodeType": "YulIdentifier", + "src": "6471:3:45" + }, + "nativeSrc": "6471:43:45", + "nodeType": "YulFunctionCall", + "src": "6471:43:45" + }, + "variables": [ + { + "name": "sc", + "nativeSrc": "6465:2:45", + "nodeType": "YulTypedName", + "src": "6465:2:45", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "_preBytes.slot", + "nativeSrc": "6574:14:45", + "nodeType": "YulIdentifier", + "src": "6574:14:45" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newlength", + "nativeSrc": "6598:9:45", + "nodeType": "YulIdentifier", + "src": "6598:9:45" + }, + { + "kind": "number", + "nativeSrc": "6609:1:45", + "nodeType": "YulLiteral", + "src": "6609:1:45", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "6594:3:45", + "nodeType": "YulIdentifier", + "src": "6594:3:45" + }, + "nativeSrc": "6594:17:45", + "nodeType": "YulFunctionCall", + "src": "6594:17:45" + }, + { + "kind": "number", + "nativeSrc": "6613:1:45", + "nodeType": "YulLiteral", + "src": "6613:1:45", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6590:3:45", + "nodeType": "YulIdentifier", + "src": "6590:3:45" + }, + "nativeSrc": "6590:25:45", + "nodeType": "YulFunctionCall", + "src": "6590:25:45" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "6567:6:45", + "nodeType": "YulIdentifier", + "src": "6567:6:45" + }, + "nativeSrc": "6567:49:45", + "nodeType": "YulFunctionCall", + "src": "6567:49:45" + }, + "nativeSrc": "6567:49:45", + "nodeType": "YulExpressionStatement", + "src": "6567:49:45" + }, + { + "nativeSrc": "7204:30:45", + "nodeType": "YulVariableDeclaration", + "src": "7204:30:45", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7222:2:45", + "nodeType": "YulLiteral", + "src": "7222:2:45", + "type": "", + "value": "32" + }, + { + "name": "slength", + "nativeSrc": "7226:7:45", + "nodeType": "YulIdentifier", + "src": "7226:7:45" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7218:3:45", + "nodeType": "YulIdentifier", + "src": "7218:3:45" + }, + "nativeSrc": "7218:16:45", + "nodeType": "YulFunctionCall", + "src": "7218:16:45" + }, + "variables": [ + { + "name": "submod", + "nativeSrc": "7208:6:45", + "nodeType": "YulTypedName", + "src": "7208:6:45", + "type": "" + } + ] + }, + { + "nativeSrc": "7251:33:45", + "nodeType": "YulVariableDeclaration", + "src": "7251:33:45", + "value": { + "arguments": [ + { + "name": "_postBytes", + "nativeSrc": "7265:10:45", + "nodeType": "YulIdentifier", + "src": "7265:10:45" + }, + { + "name": "submod", + "nativeSrc": "7277:6:45", + "nodeType": "YulIdentifier", + "src": "7277:6:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7261:3:45", + "nodeType": "YulIdentifier", + "src": "7261:3:45" + }, + "nativeSrc": "7261:23:45", + "nodeType": "YulFunctionCall", + "src": "7261:23:45" + }, + "variables": [ + { + "name": "mc", + "nativeSrc": "7255:2:45", + "nodeType": "YulTypedName", + "src": "7255:2:45", + "type": "" + } + ] + }, + { + "nativeSrc": "7301:35:45", + "nodeType": "YulVariableDeclaration", + "src": "7301:35:45", + "value": { + "arguments": [ + { + "name": "_postBytes", + "nativeSrc": "7316:10:45", + "nodeType": "YulIdentifier", + "src": "7316:10:45" + }, + { + "name": "mlength", + "nativeSrc": "7328:7:45", + "nodeType": "YulIdentifier", + "src": "7328:7:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7312:3:45", + "nodeType": "YulIdentifier", + "src": "7312:3:45" + }, + "nativeSrc": "7312:24:45", + "nodeType": "YulFunctionCall", + "src": "7312:24:45" + }, + "variables": [ + { + "name": "end", + "nativeSrc": "7305:3:45", + "nodeType": "YulTypedName", + "src": "7305:3:45", + "type": "" + } + ] + }, + { + "nativeSrc": "7353:38:45", + "nodeType": "YulVariableDeclaration", + "src": "7353:38:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7373:5:45", + "nodeType": "YulLiteral", + "src": "7373:5:45", + "type": "", + "value": "0x100" + }, + { + "name": "submod", + "nativeSrc": "7380:6:45", + "nodeType": "YulIdentifier", + "src": "7380:6:45" + } + ], + "functionName": { + "name": "exp", + "nativeSrc": "7369:3:45", + "nodeType": "YulIdentifier", + "src": "7369:3:45" + }, + "nativeSrc": "7369:18:45", + "nodeType": "YulFunctionCall", + "src": "7369:18:45" + }, + { + "kind": "number", + "nativeSrc": "7389:1:45", + "nodeType": "YulLiteral", + "src": "7389:1:45", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7365:3:45", + "nodeType": "YulIdentifier", + "src": "7365:3:45" + }, + "nativeSrc": "7365:26:45", + "nodeType": "YulFunctionCall", + "src": "7365:26:45" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "7357:4:45", + "nodeType": "YulTypedName", + "src": "7357:4:45", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "sc", + "nativeSrc": "7437:2:45", + "nodeType": "YulIdentifier", + "src": "7437:2:45" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "fslot", + "nativeSrc": "7523:5:45", + "nodeType": "YulIdentifier", + "src": "7523:5:45" + }, + { + "kind": "number", + "nativeSrc": "7558:66:45", + "nodeType": "YulLiteral", + "src": "7558:66:45", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7490:3:45", + "nodeType": "YulIdentifier", + "src": "7490:3:45" + }, + "nativeSrc": "7490:160:45", + "nodeType": "YulFunctionCall", + "src": "7490:160:45" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "mc", + "nativeSrc": "7686:2:45", + "nodeType": "YulIdentifier", + "src": "7686:2:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7680:5:45", + "nodeType": "YulIdentifier", + "src": "7680:5:45" + }, + "nativeSrc": "7680:9:45", + "nodeType": "YulFunctionCall", + "src": "7680:9:45" + }, + { + "name": "mask", + "nativeSrc": "7691:4:45", + "nodeType": "YulIdentifier", + "src": "7691:4:45" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7676:3:45", + "nodeType": "YulIdentifier", + "src": "7676:3:45" + }, + "nativeSrc": "7676:20:45", + "nodeType": "YulFunctionCall", + "src": "7676:20:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7461:3:45", + "nodeType": "YulIdentifier", + "src": "7461:3:45" + }, + "nativeSrc": "7461:257:45", + "nodeType": "YulFunctionCall", + "src": "7461:257:45" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7409:6:45", + "nodeType": "YulIdentifier", + "src": "7409:6:45" + }, + "nativeSrc": "7409:327:45", + "nodeType": "YulFunctionCall", + "src": "7409:327:45" + }, + "nativeSrc": "7409:327:45", + "nodeType": "YulExpressionStatement", + "src": "7409:327:45" + }, + { + "body": { + "nativeSrc": "7964:61:45", + "nodeType": "YulBlock", + "src": "7964:61:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "sc", + "nativeSrc": "7993:2:45", + "nodeType": "YulIdentifier", + "src": "7993:2:45" + }, + { + "arguments": [ + { + "name": "mc", + "nativeSrc": "8003:2:45", + "nodeType": "YulIdentifier", + "src": "8003:2:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7997:5:45", + "nodeType": "YulIdentifier", + "src": "7997:5:45" + }, + "nativeSrc": "7997:9:45", + "nodeType": "YulFunctionCall", + "src": "7997:9:45" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "7986:6:45", + "nodeType": "YulIdentifier", + "src": "7986:6:45" + }, + "nativeSrc": "7986:21:45", + "nodeType": "YulFunctionCall", + "src": "7986:21:45" + }, + "nativeSrc": "7986:21:45", + "nodeType": "YulExpressionStatement", + "src": "7986:21:45" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "7858:2:45", + "nodeType": "YulIdentifier", + "src": "7858:2:45" + }, + { + "name": "end", + "nativeSrc": "7862:3:45", + "nodeType": "YulIdentifier", + "src": "7862:3:45" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7855:2:45", + "nodeType": "YulIdentifier", + "src": "7855:2:45" + }, + "nativeSrc": "7855:11:45", + "nodeType": "YulFunctionCall", + "src": "7855:11:45" + }, + "nativeSrc": "7754:271:45", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7867:96:45", + "nodeType": "YulBlock", + "src": "7867:96:45", + "statements": [ + { + "nativeSrc": "7889:16:45", + "nodeType": "YulAssignment", + "src": "7889:16:45", + "value": { + "arguments": [ + { + "name": "sc", + "nativeSrc": "7899:2:45", + "nodeType": "YulIdentifier", + "src": "7899:2:45" + }, + { + "kind": "number", + "nativeSrc": "7903:1:45", + "nodeType": "YulLiteral", + "src": "7903:1:45", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7895:3:45", + "nodeType": "YulIdentifier", + "src": "7895:3:45" + }, + "nativeSrc": "7895:10:45", + "nodeType": "YulFunctionCall", + "src": "7895:10:45" + }, + "variableNames": [ + { + "name": "sc", + "nativeSrc": "7889:2:45", + "nodeType": "YulIdentifier", + "src": "7889:2:45" + } + ] + }, + { + "nativeSrc": "7926:19:45", + "nodeType": "YulAssignment", + "src": "7926:19:45", + "value": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "7936:2:45", + "nodeType": "YulIdentifier", + "src": "7936:2:45" + }, + { + "kind": "number", + "nativeSrc": "7940:4:45", + "nodeType": "YulLiteral", + "src": "7940:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7932:3:45", + "nodeType": "YulIdentifier", + "src": "7932:3:45" + }, + "nativeSrc": "7932:13:45", + "nodeType": "YulFunctionCall", + "src": "7932:13:45" + }, + "variableNames": [ + { + "name": "mc", + "nativeSrc": "7926:2:45", + "nodeType": "YulIdentifier", + "src": "7926:2:45" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7758:96:45", + "nodeType": "YulBlock", + "src": "7758:96:45", + "statements": [ + { + "nativeSrc": "7780:19:45", + "nodeType": "YulAssignment", + "src": "7780:19:45", + "value": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "7790:2:45", + "nodeType": "YulIdentifier", + "src": "7790:2:45" + }, + { + "kind": "number", + "nativeSrc": "7794:4:45", + "nodeType": "YulLiteral", + "src": "7794:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7786:3:45", + "nodeType": "YulIdentifier", + "src": "7786:3:45" + }, + "nativeSrc": "7786:13:45", + "nodeType": "YulFunctionCall", + "src": "7786:13:45" + }, + "variableNames": [ + { + "name": "mc", + "nativeSrc": "7780:2:45", + "nodeType": "YulIdentifier", + "src": "7780:2:45" + } + ] + }, + { + "nativeSrc": "7820:16:45", + "nodeType": "YulAssignment", + "src": "7820:16:45", + "value": { + "arguments": [ + { + "name": "sc", + "nativeSrc": "7830:2:45", + "nodeType": "YulIdentifier", + "src": "7830:2:45" + }, + { + "kind": "number", + "nativeSrc": "7834:1:45", + "nodeType": "YulLiteral", + "src": "7834:1:45", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7826:3:45", + "nodeType": "YulIdentifier", + "src": "7826:3:45" + }, + "nativeSrc": "7826:10:45", + "nodeType": "YulFunctionCall", + "src": "7826:10:45" + }, + "variableNames": [ + { + "name": "sc", + "nativeSrc": "7820:2:45", + "nodeType": "YulIdentifier", + "src": "7820:2:45" + } + ] + } + ] + }, + "src": "7754:271:45" + }, + { + "nativeSrc": "8043:32:45", + "nodeType": "YulAssignment", + "src": "8043:32:45", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8055:5:45", + "nodeType": "YulLiteral", + "src": "8055:5:45", + "type": "", + "value": "0x100" + }, + { + "arguments": [ + { + "name": "mc", + "nativeSrc": "8066:2:45", + "nodeType": "YulIdentifier", + "src": "8066:2:45" + }, + { + "name": "end", + "nativeSrc": "8070:3:45", + "nodeType": "YulIdentifier", + "src": "8070:3:45" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8062:3:45", + "nodeType": "YulIdentifier", + "src": "8062:3:45" + }, + "nativeSrc": "8062:12:45", + "nodeType": "YulFunctionCall", + "src": "8062:12:45" + } + ], + "functionName": { + "name": "exp", + "nativeSrc": "8051:3:45", + "nodeType": "YulIdentifier", + "src": "8051:3:45" + }, + "nativeSrc": "8051:24:45", + "nodeType": "YulFunctionCall", + "src": "8051:24:45" + }, + "variableNames": [ + { + "name": "mask", + "nativeSrc": "8043:4:45", + "nodeType": "YulIdentifier", + "src": "8043:4:45" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "sc", + "nativeSrc": "8100:2:45", + "nodeType": "YulIdentifier", + "src": "8100:2:45" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "mc", + "nativeSrc": "8118:2:45", + "nodeType": "YulIdentifier", + "src": "8118:2:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8112:5:45", + "nodeType": "YulIdentifier", + "src": "8112:5:45" + }, + "nativeSrc": "8112:9:45", + "nodeType": "YulFunctionCall", + "src": "8112:9:45" + }, + { + "name": "mask", + "nativeSrc": "8123:4:45", + "nodeType": "YulIdentifier", + "src": "8123:4:45" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "8108:3:45", + "nodeType": "YulIdentifier", + "src": "8108:3:45" + }, + "nativeSrc": "8108:20:45", + "nodeType": "YulFunctionCall", + "src": "8108:20:45" + }, + { + "name": "mask", + "nativeSrc": "8130:4:45", + "nodeType": "YulIdentifier", + "src": "8130:4:45" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "8104:3:45", + "nodeType": "YulIdentifier", + "src": "8104:3:45" + }, + "nativeSrc": "8104:31:45", + "nodeType": "YulFunctionCall", + "src": "8104:31:45" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "8093:6:45", + "nodeType": "YulIdentifier", + "src": "8093:6:45" + }, + "nativeSrc": "8093:43:45", + "nodeType": "YulFunctionCall", + "src": "8093:43:45" + }, + "nativeSrc": "8093:43:45", + "nodeType": "YulExpressionStatement", + "src": "8093:43:45" + } + ] + }, + "nativeSrc": "6208:1942:45", + "nodeType": "YulCase", + "src": "6208:1942:45", + "value": { + "kind": "number", + "nativeSrc": "6213:1:45", + "nodeType": "YulLiteral", + "src": "6213:1:45", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "8171:1264:45", + "nodeType": "YulBlock", + "src": "8171:1264:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8268:3:45", + "nodeType": "YulLiteral", + "src": "8268:3:45", + "type": "", + "value": "0x0" + }, + { + "name": "_preBytes.slot", + "nativeSrc": "8273:14:45", + "nodeType": "YulIdentifier", + "src": "8273:14:45" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8261:6:45", + "nodeType": "YulIdentifier", + "src": "8261:6:45" + }, + "nativeSrc": "8261:27:45", + "nodeType": "YulFunctionCall", + "src": "8261:27:45" + }, + "nativeSrc": "8261:27:45", + "nodeType": "YulExpressionStatement", + "src": "8261:27:45" + }, + { + "nativeSrc": "8381:53:45", + "nodeType": "YulVariableDeclaration", + "src": "8381:53:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8405:3:45", + "nodeType": "YulLiteral", + "src": "8405:3:45", + "type": "", + "value": "0x0" + }, + { + "kind": "number", + "nativeSrc": "8410:4:45", + "nodeType": "YulLiteral", + "src": "8410:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "8395:9:45", + "nodeType": "YulIdentifier", + "src": "8395:9:45" + }, + "nativeSrc": "8395:20:45", + "nodeType": "YulFunctionCall", + "src": "8395:20:45" + }, + { + "arguments": [ + { + "name": "slength", + "nativeSrc": "8421:7:45", + "nodeType": "YulIdentifier", + "src": "8421:7:45" + }, + { + "kind": "number", + "nativeSrc": "8430:2:45", + "nodeType": "YulLiteral", + "src": "8430:2:45", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "8417:3:45", + "nodeType": "YulIdentifier", + "src": "8417:3:45" + }, + "nativeSrc": "8417:16:45", + "nodeType": "YulFunctionCall", + "src": "8417:16:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8391:3:45", + "nodeType": "YulIdentifier", + "src": "8391:3:45" + }, + "nativeSrc": "8391:43:45", + "nodeType": "YulFunctionCall", + "src": "8391:43:45" + }, + "variables": [ + { + "name": "sc", + "nativeSrc": "8385:2:45", + "nodeType": "YulTypedName", + "src": "8385:2:45", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "_preBytes.slot", + "nativeSrc": "8494:14:45", + "nodeType": "YulIdentifier", + "src": "8494:14:45" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newlength", + "nativeSrc": "8518:9:45", + "nodeType": "YulIdentifier", + "src": "8518:9:45" + }, + { + "kind": "number", + "nativeSrc": "8529:1:45", + "nodeType": "YulLiteral", + "src": "8529:1:45", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "8514:3:45", + "nodeType": "YulIdentifier", + "src": "8514:3:45" + }, + "nativeSrc": "8514:17:45", + "nodeType": "YulFunctionCall", + "src": "8514:17:45" + }, + { + "kind": "number", + "nativeSrc": "8533:1:45", + "nodeType": "YulLiteral", + "src": "8533:1:45", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8510:3:45", + "nodeType": "YulIdentifier", + "src": "8510:3:45" + }, + "nativeSrc": "8510:25:45", + "nodeType": "YulFunctionCall", + "src": "8510:25:45" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "8487:6:45", + "nodeType": "YulIdentifier", + "src": "8487:6:45" + }, + "nativeSrc": "8487:49:45", + "nodeType": "YulFunctionCall", + "src": "8487:49:45" + }, + "nativeSrc": "8487:49:45", + "nodeType": "YulExpressionStatement", + "src": "8487:49:45" + }, + { + "nativeSrc": "8663:34:45", + "nodeType": "YulVariableDeclaration", + "src": "8663:34:45", + "value": { + "arguments": [ + { + "name": "slength", + "nativeSrc": "8685:7:45", + "nodeType": "YulIdentifier", + "src": "8685:7:45" + }, + { + "kind": "number", + "nativeSrc": "8694:2:45", + "nodeType": "YulLiteral", + "src": "8694:2:45", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "8681:3:45", + "nodeType": "YulIdentifier", + "src": "8681:3:45" + }, + "nativeSrc": "8681:16:45", + "nodeType": "YulFunctionCall", + "src": "8681:16:45" + }, + "variables": [ + { + "name": "slengthmod", + "nativeSrc": "8667:10:45", + "nodeType": "YulTypedName", + "src": "8667:10:45", + "type": "" + } + ] + }, + { + "nativeSrc": "8714:34:45", + "nodeType": "YulVariableDeclaration", + "src": "8714:34:45", + "value": { + "arguments": [ + { + "name": "mlength", + "nativeSrc": "8736:7:45", + "nodeType": "YulIdentifier", + "src": "8736:7:45" + }, + { + "kind": "number", + "nativeSrc": "8745:2:45", + "nodeType": "YulLiteral", + "src": "8745:2:45", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mod", + "nativeSrc": "8732:3:45", + "nodeType": "YulIdentifier", + "src": "8732:3:45" + }, + "nativeSrc": "8732:16:45", + "nodeType": "YulFunctionCall", + "src": "8732:16:45" + }, + "variables": [ + { + "name": "mlengthmod", + "nativeSrc": "8718:10:45", + "nodeType": "YulTypedName", + "src": "8718:10:45", + "type": "" + } + ] + }, + { + "nativeSrc": "8765:33:45", + "nodeType": "YulVariableDeclaration", + "src": "8765:33:45", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8783:2:45", + "nodeType": "YulLiteral", + "src": "8783:2:45", + "type": "", + "value": "32" + }, + { + "name": "slengthmod", + "nativeSrc": "8787:10:45", + "nodeType": "YulIdentifier", + "src": "8787:10:45" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8779:3:45", + "nodeType": "YulIdentifier", + "src": "8779:3:45" + }, + "nativeSrc": "8779:19:45", + "nodeType": "YulFunctionCall", + "src": "8779:19:45" + }, + "variables": [ + { + "name": "submod", + "nativeSrc": "8769:6:45", + "nodeType": "YulTypedName", + "src": "8769:6:45", + "type": "" + } + ] + }, + { + "nativeSrc": "8815:33:45", + "nodeType": "YulVariableDeclaration", + "src": "8815:33:45", + "value": { + "arguments": [ + { + "name": "_postBytes", + "nativeSrc": "8829:10:45", + "nodeType": "YulIdentifier", + "src": "8829:10:45" + }, + { + "name": "submod", + "nativeSrc": "8841:6:45", + "nodeType": "YulIdentifier", + "src": "8841:6:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8825:3:45", + "nodeType": "YulIdentifier", + "src": "8825:3:45" + }, + "nativeSrc": "8825:23:45", + "nodeType": "YulFunctionCall", + "src": "8825:23:45" + }, + "variables": [ + { + "name": "mc", + "nativeSrc": "8819:2:45", + "nodeType": "YulTypedName", + "src": "8819:2:45", + "type": "" + } + ] + }, + { + "nativeSrc": "8865:35:45", + "nodeType": "YulVariableDeclaration", + "src": "8865:35:45", + "value": { + "arguments": [ + { + "name": "_postBytes", + "nativeSrc": "8880:10:45", + "nodeType": "YulIdentifier", + "src": "8880:10:45" + }, + { + "name": "mlength", + "nativeSrc": "8892:7:45", + "nodeType": "YulIdentifier", + "src": "8892:7:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8876:3:45", + "nodeType": "YulIdentifier", + "src": "8876:3:45" + }, + "nativeSrc": "8876:24:45", + "nodeType": "YulFunctionCall", + "src": "8876:24:45" + }, + "variables": [ + { + "name": "end", + "nativeSrc": "8869:3:45", + "nodeType": "YulTypedName", + "src": "8869:3:45", + "type": "" + } + ] + }, + { + "nativeSrc": "8917:38:45", + "nodeType": "YulVariableDeclaration", + "src": "8917:38:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8937:5:45", + "nodeType": "YulLiteral", + "src": "8937:5:45", + "type": "", + "value": "0x100" + }, + { + "name": "submod", + "nativeSrc": "8944:6:45", + "nodeType": "YulIdentifier", + "src": "8944:6:45" + } + ], + "functionName": { + "name": "exp", + "nativeSrc": "8933:3:45", + "nodeType": "YulIdentifier", + "src": "8933:3:45" + }, + "nativeSrc": "8933:18:45", + "nodeType": "YulFunctionCall", + "src": "8933:18:45" + }, + { + "kind": "number", + "nativeSrc": "8953:1:45", + "nodeType": "YulLiteral", + "src": "8953:1:45", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8929:3:45", + "nodeType": "YulIdentifier", + "src": "8929:3:45" + }, + "nativeSrc": "8929:26:45", + "nodeType": "YulFunctionCall", + "src": "8929:26:45" + }, + "variables": [ + { + "name": "mask", + "nativeSrc": "8921:4:45", + "nodeType": "YulTypedName", + "src": "8921:4:45", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "sc", + "nativeSrc": "8980:2:45", + "nodeType": "YulIdentifier", + "src": "8980:2:45" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "sc", + "nativeSrc": "8994:2:45", + "nodeType": "YulIdentifier", + "src": "8994:2:45" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "8988:5:45", + "nodeType": "YulIdentifier", + "src": "8988:5:45" + }, + "nativeSrc": "8988:9:45", + "nodeType": "YulFunctionCall", + "src": "8988:9:45" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "mc", + "nativeSrc": "9009:2:45", + "nodeType": "YulIdentifier", + "src": "9009:2:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9003:5:45", + "nodeType": "YulIdentifier", + "src": "9003:5:45" + }, + "nativeSrc": "9003:9:45", + "nodeType": "YulFunctionCall", + "src": "9003:9:45" + }, + { + "name": "mask", + "nativeSrc": "9014:4:45", + "nodeType": "YulIdentifier", + "src": "9014:4:45" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8999:3:45", + "nodeType": "YulIdentifier", + "src": "8999:3:45" + }, + "nativeSrc": "8999:20:45", + "nodeType": "YulFunctionCall", + "src": "8999:20:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8984:3:45", + "nodeType": "YulIdentifier", + "src": "8984:3:45" + }, + "nativeSrc": "8984:36:45", + "nodeType": "YulFunctionCall", + "src": "8984:36:45" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "8973:6:45", + "nodeType": "YulIdentifier", + "src": "8973:6:45" + }, + "nativeSrc": "8973:48:45", + "nodeType": "YulFunctionCall", + "src": "8973:48:45" + }, + "nativeSrc": "8973:48:45", + "nodeType": "YulExpressionStatement", + "src": "8973:48:45" + }, + { + "body": { + "nativeSrc": "9249:61:45", + "nodeType": "YulBlock", + "src": "9249:61:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "sc", + "nativeSrc": "9278:2:45", + "nodeType": "YulIdentifier", + "src": "9278:2:45" + }, + { + "arguments": [ + { + "name": "mc", + "nativeSrc": "9288:2:45", + "nodeType": "YulIdentifier", + "src": "9288:2:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9282:5:45", + "nodeType": "YulIdentifier", + "src": "9282:5:45" + }, + "nativeSrc": "9282:9:45", + "nodeType": "YulFunctionCall", + "src": "9282:9:45" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "9271:6:45", + "nodeType": "YulIdentifier", + "src": "9271:6:45" + }, + "nativeSrc": "9271:21:45", + "nodeType": "YulFunctionCall", + "src": "9271:21:45" + }, + "nativeSrc": "9271:21:45", + "nodeType": "YulExpressionStatement", + "src": "9271:21:45" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "9143:2:45", + "nodeType": "YulIdentifier", + "src": "9143:2:45" + }, + { + "name": "end", + "nativeSrc": "9147:3:45", + "nodeType": "YulIdentifier", + "src": "9147:3:45" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "9140:2:45", + "nodeType": "YulIdentifier", + "src": "9140:2:45" + }, + "nativeSrc": "9140:11:45", + "nodeType": "YulFunctionCall", + "src": "9140:11:45" + }, + "nativeSrc": "9039:271:45", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "9152:96:45", + "nodeType": "YulBlock", + "src": "9152:96:45", + "statements": [ + { + "nativeSrc": "9174:16:45", + "nodeType": "YulAssignment", + "src": "9174:16:45", + "value": { + "arguments": [ + { + "name": "sc", + "nativeSrc": "9184:2:45", + "nodeType": "YulIdentifier", + "src": "9184:2:45" + }, + { + "kind": "number", + "nativeSrc": "9188:1:45", + "nodeType": "YulLiteral", + "src": "9188:1:45", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9180:3:45", + "nodeType": "YulIdentifier", + "src": "9180:3:45" + }, + "nativeSrc": "9180:10:45", + "nodeType": "YulFunctionCall", + "src": "9180:10:45" + }, + "variableNames": [ + { + "name": "sc", + "nativeSrc": "9174:2:45", + "nodeType": "YulIdentifier", + "src": "9174:2:45" + } + ] + }, + { + "nativeSrc": "9211:19:45", + "nodeType": "YulAssignment", + "src": "9211:19:45", + "value": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "9221:2:45", + "nodeType": "YulIdentifier", + "src": "9221:2:45" + }, + { + "kind": "number", + "nativeSrc": "9225:4:45", + "nodeType": "YulLiteral", + "src": "9225:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9217:3:45", + "nodeType": "YulIdentifier", + "src": "9217:3:45" + }, + "nativeSrc": "9217:13:45", + "nodeType": "YulFunctionCall", + "src": "9217:13:45" + }, + "variableNames": [ + { + "name": "mc", + "nativeSrc": "9211:2:45", + "nodeType": "YulIdentifier", + "src": "9211:2:45" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "9043:96:45", + "nodeType": "YulBlock", + "src": "9043:96:45", + "statements": [ + { + "nativeSrc": "9065:16:45", + "nodeType": "YulAssignment", + "src": "9065:16:45", + "value": { + "arguments": [ + { + "name": "sc", + "nativeSrc": "9075:2:45", + "nodeType": "YulIdentifier", + "src": "9075:2:45" + }, + { + "kind": "number", + "nativeSrc": "9079:1:45", + "nodeType": "YulLiteral", + "src": "9079:1:45", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9071:3:45", + "nodeType": "YulIdentifier", + "src": "9071:3:45" + }, + "nativeSrc": "9071:10:45", + "nodeType": "YulFunctionCall", + "src": "9071:10:45" + }, + "variableNames": [ + { + "name": "sc", + "nativeSrc": "9065:2:45", + "nodeType": "YulIdentifier", + "src": "9065:2:45" + } + ] + }, + { + "nativeSrc": "9102:19:45", + "nodeType": "YulAssignment", + "src": "9102:19:45", + "value": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "9112:2:45", + "nodeType": "YulIdentifier", + "src": "9112:2:45" + }, + { + "kind": "number", + "nativeSrc": "9116:4:45", + "nodeType": "YulLiteral", + "src": "9116:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9108:3:45", + "nodeType": "YulIdentifier", + "src": "9108:3:45" + }, + "nativeSrc": "9108:13:45", + "nodeType": "YulFunctionCall", + "src": "9108:13:45" + }, + "variableNames": [ + { + "name": "mc", + "nativeSrc": "9102:2:45", + "nodeType": "YulIdentifier", + "src": "9102:2:45" + } + ] + } + ] + }, + "src": "9039:271:45" + }, + { + "nativeSrc": "9328:32:45", + "nodeType": "YulAssignment", + "src": "9328:32:45", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9340:5:45", + "nodeType": "YulLiteral", + "src": "9340:5:45", + "type": "", + "value": "0x100" + }, + { + "arguments": [ + { + "name": "mc", + "nativeSrc": "9351:2:45", + "nodeType": "YulIdentifier", + "src": "9351:2:45" + }, + { + "name": "end", + "nativeSrc": "9355:3:45", + "nodeType": "YulIdentifier", + "src": "9355:3:45" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9347:3:45", + "nodeType": "YulIdentifier", + "src": "9347:3:45" + }, + "nativeSrc": "9347:12:45", + "nodeType": "YulFunctionCall", + "src": "9347:12:45" + } + ], + "functionName": { + "name": "exp", + "nativeSrc": "9336:3:45", + "nodeType": "YulIdentifier", + "src": "9336:3:45" + }, + "nativeSrc": "9336:24:45", + "nodeType": "YulFunctionCall", + "src": "9336:24:45" + }, + "variableNames": [ + { + "name": "mask", + "nativeSrc": "9328:4:45", + "nodeType": "YulIdentifier", + "src": "9328:4:45" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "sc", + "nativeSrc": "9385:2:45", + "nodeType": "YulIdentifier", + "src": "9385:2:45" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "mc", + "nativeSrc": "9403:2:45", + "nodeType": "YulIdentifier", + "src": "9403:2:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9397:5:45", + "nodeType": "YulIdentifier", + "src": "9397:5:45" + }, + "nativeSrc": "9397:9:45", + "nodeType": "YulFunctionCall", + "src": "9397:9:45" + }, + { + "name": "mask", + "nativeSrc": "9408:4:45", + "nodeType": "YulIdentifier", + "src": "9408:4:45" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "9393:3:45", + "nodeType": "YulIdentifier", + "src": "9393:3:45" + }, + "nativeSrc": "9393:20:45", + "nodeType": "YulFunctionCall", + "src": "9393:20:45" + }, + { + "name": "mask", + "nativeSrc": "9415:4:45", + "nodeType": "YulIdentifier", + "src": "9415:4:45" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "9389:3:45", + "nodeType": "YulIdentifier", + "src": "9389:3:45" + }, + "nativeSrc": "9389:31:45", + "nodeType": "YulFunctionCall", + "src": "9389:31:45" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "9378:6:45", + "nodeType": "YulIdentifier", + "src": "9378:6:45" + }, + "nativeSrc": "9378:43:45", + "nodeType": "YulFunctionCall", + "src": "9378:43:45" + }, + "nativeSrc": "9378:43:45", + "nodeType": "YulExpressionStatement", + "src": "9378:43:45" + } + ] + }, + "nativeSrc": "8163:1272:45", + "nodeType": "YulCase", + "src": "8163:1272:45", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "slength", + "nativeSrc": "4658:7:45", + "nodeType": "YulIdentifier", + "src": "4658:7:45" + }, + { + "kind": "number", + "nativeSrc": "4667:2:45", + "nodeType": "YulLiteral", + "src": "4667:2:45", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4655:2:45", + "nodeType": "YulIdentifier", + "src": "4655:2:45" + }, + "nativeSrc": "4655:15:45", + "nodeType": "YulFunctionCall", + "src": "4655:15:45" + }, + { + "arguments": [ + { + "name": "newlength", + "nativeSrc": "4675:9:45", + "nodeType": "YulIdentifier", + "src": "4675:9:45" + }, + { + "kind": "number", + "nativeSrc": "4686:2:45", + "nodeType": "YulLiteral", + "src": "4686:2:45", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "4672:2:45", + "nodeType": "YulIdentifier", + "src": "4672:2:45" + }, + "nativeSrc": "4672:17:45", + "nodeType": "YulFunctionCall", + "src": "4672:17:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4651:3:45", + "nodeType": "YulIdentifier", + "src": "4651:3:45" + }, + "nativeSrc": "4651:39:45", + "nodeType": "YulFunctionCall", + "src": "4651:39:45" + }, + "nativeSrc": "4644:4791:45", + "nodeType": "YulSwitch", + "src": "4644:4791:45" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18257, + "isOffset": false, + "isSlot": false, + "src": "4315:10:45", + "valueSize": 1 + }, + { + "declaration": 18257, + "isOffset": false, + "isSlot": false, + "src": "5521:10:45", + "valueSize": 1 + }, + { + "declaration": 18257, + "isOffset": false, + "isSlot": false, + "src": "7265:10:45", + "valueSize": 1 + }, + { + "declaration": 18257, + "isOffset": false, + "isSlot": false, + "src": "7316:10:45", + "valueSize": 1 + }, + { + "declaration": 18257, + "isOffset": false, + "isSlot": false, + "src": "8829:10:45", + "valueSize": 1 + }, + { + "declaration": 18257, + "isOffset": false, + "isSlot": false, + "src": "8880:10:45", + "valueSize": 1 + }, + { + "declaration": 18255, + "isOffset": false, + "isSlot": true, + "src": "3697:14:45", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 18255, + "isOffset": false, + "isSlot": true, + "src": "4991:14:45", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 18255, + "isOffset": false, + "isSlot": true, + "src": "6429:14:45", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 18255, + "isOffset": false, + "isSlot": true, + "src": "6574:14:45", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 18255, + "isOffset": false, + "isSlot": true, + "src": "8273:14:45", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 18255, + "isOffset": false, + "isSlot": true, + "src": "8494:14:45", + "suffix": "slot", + "valueSize": 1 + } + ], + "id": 18260, + "nodeType": "InlineAssembly", + "src": "3446:5999:45" + } + ] + }, + "id": 18262, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "concatStorage", + "nameLocation": "3363:13:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18255, + "mutability": "mutable", + "name": "_preBytes", + "nameLocation": "3391:9:45", + "nodeType": "VariableDeclaration", + "scope": 18262, + "src": "3377:23:45", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18254, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3377:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18257, + "mutability": "mutable", + "name": "_postBytes", + "nameLocation": "3415:10:45", + "nodeType": "VariableDeclaration", + "scope": 18262, + "src": "3402:23:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3402:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "3376:50:45" + }, + "returnParameters": { + "id": 18259, + "nodeType": "ParameterList", + "parameters": [], + "src": "3436:0:45" + }, + "scope": 18568, + "src": "3354:6097:45", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 18298, + "nodeType": "Block", + "src": "9621:2640:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 18274, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18268, + "src": "9639:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "3331", + "id": 18275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9649:2:45", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "9639:12:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 18277, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18268, + "src": "9655:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9639:23:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "736c6963655f6f766572666c6f77", + "id": 18279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9664:16:45", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e", + "typeString": "literal_string \"slice_overflow\"" + }, + "value": "slice_overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e", + "typeString": "literal_string \"slice_overflow\"" + } + ], + "id": 18273, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9631:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9631:50:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18281, + "nodeType": "ExpressionStatement", + "src": "9631:50:45" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 18283, + "name": "_bytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18264, + "src": "9699:6:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 18284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "9706:6:45", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "9699:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 18285, + "name": "_start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18266, + "src": "9716:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 18286, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18268, + "src": "9725:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9716:16:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9699:33:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "736c6963655f6f75744f66426f756e6473", + "id": 18289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9734:19:45", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0", + "typeString": "literal_string \"slice_outOfBounds\"" + }, + "value": "slice_outOfBounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0", + "typeString": "literal_string \"slice_outOfBounds\"" + } + ], + "id": 18282, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "9691:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "9691:63:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18291, + "nodeType": "ExpressionStatement", + "src": "9691:63:45" + }, + { + "assignments": [ + 18293 + ], + "declarations": [ + { + "constant": false, + "id": 18293, + "mutability": "mutable", + "name": "tempBytes", + "nameLocation": "9778:9:45", + "nodeType": "VariableDeclaration", + "scope": 18298, + "src": "9765:22:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18292, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9765:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 18294, + "nodeType": "VariableDeclarationStatement", + "src": "9765:22:45" + }, + { + "AST": { + "nativeSrc": "9807:2421:45", + "nodeType": "YulBlock", + "src": "9807:2421:45", + "statements": [ + { + "cases": [ + { + "body": { + "nativeSrc": "9863:1960:45", + "nodeType": "YulBlock", + "src": "9863:1960:45", + "statements": [ + { + "nativeSrc": "10019:24:45", + "nodeType": "YulAssignment", + "src": "10019:24:45", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10038:4:45", + "nodeType": "YulLiteral", + "src": "10038:4:45", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "10032:5:45", + "nodeType": "YulIdentifier", + "src": "10032:5:45" + }, + "nativeSrc": "10032:11:45", + "nodeType": "YulFunctionCall", + "src": "10032:11:45" + }, + "variableNames": [ + { + "name": "tempBytes", + "nativeSrc": "10019:9:45", + "nodeType": "YulIdentifier", + "src": "10019:9:45" + } + ] + }, + { + "nativeSrc": "10667:33:45", + "nodeType": "YulVariableDeclaration", + "src": "10667:33:45", + "value": { + "arguments": [ + { + "name": "_length", + "nativeSrc": "10688:7:45", + "nodeType": "YulIdentifier", + "src": "10688:7:45" + }, + { + "kind": "number", + "nativeSrc": "10697:2:45", + "nodeType": "YulLiteral", + "src": "10697:2:45", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "10684:3:45", + "nodeType": "YulIdentifier", + "src": "10684:3:45" + }, + "nativeSrc": "10684:16:45", + "nodeType": "YulFunctionCall", + "src": "10684:16:45" + }, + "variables": [ + { + "name": "lengthmod", + "nativeSrc": "10671:9:45", + "nodeType": "YulTypedName", + "src": "10671:9:45", + "type": "" + } + ] + }, + { + "nativeSrc": "11021:70:45", + "nodeType": "YulVariableDeclaration", + "src": "11021:70:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "tempBytes", + "nativeSrc": "11039:9:45", + "nodeType": "YulIdentifier", + "src": "11039:9:45" + }, + { + "name": "lengthmod", + "nativeSrc": "11050:9:45", + "nodeType": "YulIdentifier", + "src": "11050:9:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11035:3:45", + "nodeType": "YulIdentifier", + "src": "11035:3:45" + }, + "nativeSrc": "11035:25:45", + "nodeType": "YulFunctionCall", + "src": "11035:25:45" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11066:4:45", + "nodeType": "YulLiteral", + "src": "11066:4:45", + "type": "", + "value": "0x20" + }, + { + "arguments": [ + { + "name": "lengthmod", + "nativeSrc": "11079:9:45", + "nodeType": "YulIdentifier", + "src": "11079:9:45" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "11072:6:45", + "nodeType": "YulIdentifier", + "src": "11072:6:45" + }, + "nativeSrc": "11072:17:45", + "nodeType": "YulFunctionCall", + "src": "11072:17:45" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "11062:3:45", + "nodeType": "YulIdentifier", + "src": "11062:3:45" + }, + "nativeSrc": "11062:28:45", + "nodeType": "YulFunctionCall", + "src": "11062:28:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11031:3:45", + "nodeType": "YulIdentifier", + "src": "11031:3:45" + }, + "nativeSrc": "11031:60:45", + "nodeType": "YulFunctionCall", + "src": "11031:60:45" + }, + "variables": [ + { + "name": "mc", + "nativeSrc": "11025:2:45", + "nodeType": "YulTypedName", + "src": "11025:2:45", + "type": "" + } + ] + }, + { + "nativeSrc": "11108:27:45", + "nodeType": "YulVariableDeclaration", + "src": "11108:27:45", + "value": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "11123:2:45", + "nodeType": "YulIdentifier", + "src": "11123:2:45" + }, + { + "name": "_length", + "nativeSrc": "11127:7:45", + "nodeType": "YulIdentifier", + "src": "11127:7:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11119:3:45", + "nodeType": "YulIdentifier", + "src": "11119:3:45" + }, + "nativeSrc": "11119:16:45", + "nodeType": "YulFunctionCall", + "src": "11119:16:45" + }, + "variables": [ + { + "name": "end", + "nativeSrc": "11112:3:45", + "nodeType": "YulTypedName", + "src": "11112:3:45", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "11517:61:45", + "nodeType": "YulBlock", + "src": "11517:61:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "11546:2:45", + "nodeType": "YulIdentifier", + "src": "11546:2:45" + }, + { + "arguments": [ + { + "name": "cc", + "nativeSrc": "11556:2:45", + "nodeType": "YulIdentifier", + "src": "11556:2:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "11550:5:45", + "nodeType": "YulIdentifier", + "src": "11550:5:45" + }, + "nativeSrc": "11550:9:45", + "nodeType": "YulFunctionCall", + "src": "11550:9:45" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11539:6:45", + "nodeType": "YulIdentifier", + "src": "11539:6:45" + }, + "nativeSrc": "11539:21:45", + "nodeType": "YulFunctionCall", + "src": "11539:21:45" + }, + "nativeSrc": "11539:21:45", + "nodeType": "YulExpressionStatement", + "src": "11539:21:45" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "11408:2:45", + "nodeType": "YulIdentifier", + "src": "11408:2:45" + }, + { + "name": "end", + "nativeSrc": "11412:3:45", + "nodeType": "YulIdentifier", + "src": "11412:3:45" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "11405:2:45", + "nodeType": "YulIdentifier", + "src": "11405:2:45" + }, + "nativeSrc": "11405:11:45", + "nodeType": "YulFunctionCall", + "src": "11405:11:45" + }, + "nativeSrc": "11153:425:45", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "11417:99:45", + "nodeType": "YulBlock", + "src": "11417:99:45", + "statements": [ + { + "nativeSrc": "11439:19:45", + "nodeType": "YulAssignment", + "src": "11439:19:45", + "value": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "11449:2:45", + "nodeType": "YulIdentifier", + "src": "11449:2:45" + }, + { + "kind": "number", + "nativeSrc": "11453:4:45", + "nodeType": "YulLiteral", + "src": "11453:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11445:3:45", + "nodeType": "YulIdentifier", + "src": "11445:3:45" + }, + "nativeSrc": "11445:13:45", + "nodeType": "YulFunctionCall", + "src": "11445:13:45" + }, + "variableNames": [ + { + "name": "mc", + "nativeSrc": "11439:2:45", + "nodeType": "YulIdentifier", + "src": "11439:2:45" + } + ] + }, + { + "nativeSrc": "11479:19:45", + "nodeType": "YulAssignment", + "src": "11479:19:45", + "value": { + "arguments": [ + { + "name": "cc", + "nativeSrc": "11489:2:45", + "nodeType": "YulIdentifier", + "src": "11489:2:45" + }, + { + "kind": "number", + "nativeSrc": "11493:4:45", + "nodeType": "YulLiteral", + "src": "11493:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11485:3:45", + "nodeType": "YulIdentifier", + "src": "11485:3:45" + }, + "nativeSrc": "11485:13:45", + "nodeType": "YulFunctionCall", + "src": "11485:13:45" + }, + "variableNames": [ + { + "name": "cc", + "nativeSrc": "11479:2:45", + "nodeType": "YulIdentifier", + "src": "11479:2:45" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "11157:247:45", + "nodeType": "YulBlock", + "src": "11157:247:45", + "statements": [ + { + "nativeSrc": "11306:80:45", + "nodeType": "YulVariableDeclaration", + "src": "11306:80:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_bytes", + "nativeSrc": "11328:6:45", + "nodeType": "YulIdentifier", + "src": "11328:6:45" + }, + { + "name": "lengthmod", + "nativeSrc": "11336:9:45", + "nodeType": "YulIdentifier", + "src": "11336:9:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11324:3:45", + "nodeType": "YulIdentifier", + "src": "11324:3:45" + }, + "nativeSrc": "11324:22:45", + "nodeType": "YulFunctionCall", + "src": "11324:22:45" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11352:4:45", + "nodeType": "YulLiteral", + "src": "11352:4:45", + "type": "", + "value": "0x20" + }, + { + "arguments": [ + { + "name": "lengthmod", + "nativeSrc": "11365:9:45", + "nodeType": "YulIdentifier", + "src": "11365:9:45" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "11358:6:45", + "nodeType": "YulIdentifier", + "src": "11358:6:45" + }, + "nativeSrc": "11358:17:45", + "nodeType": "YulFunctionCall", + "src": "11358:17:45" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "11348:3:45", + "nodeType": "YulIdentifier", + "src": "11348:3:45" + }, + "nativeSrc": "11348:28:45", + "nodeType": "YulFunctionCall", + "src": "11348:28:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11320:3:45", + "nodeType": "YulIdentifier", + "src": "11320:3:45" + }, + "nativeSrc": "11320:57:45", + "nodeType": "YulFunctionCall", + "src": "11320:57:45" + }, + { + "name": "_start", + "nativeSrc": "11379:6:45", + "nodeType": "YulIdentifier", + "src": "11379:6:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11316:3:45", + "nodeType": "YulIdentifier", + "src": "11316:3:45" + }, + "nativeSrc": "11316:70:45", + "nodeType": "YulFunctionCall", + "src": "11316:70:45" + }, + "variables": [ + { + "name": "cc", + "nativeSrc": "11310:2:45", + "nodeType": "YulTypedName", + "src": "11310:2:45", + "type": "" + } + ] + } + ] + }, + "src": "11153:425:45" + }, + { + "expression": { + "arguments": [ + { + "name": "tempBytes", + "nativeSrc": "11603:9:45", + "nodeType": "YulIdentifier", + "src": "11603:9:45" + }, + { + "name": "_length", + "nativeSrc": "11614:7:45", + "nodeType": "YulIdentifier", + "src": "11614:7:45" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11596:6:45", + "nodeType": "YulIdentifier", + "src": "11596:6:45" + }, + "nativeSrc": "11596:26:45", + "nodeType": "YulFunctionCall", + "src": "11596:26:45" + }, + "nativeSrc": "11596:26:45", + "nodeType": "YulExpressionStatement", + "src": "11596:26:45" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11777:4:45", + "nodeType": "YulLiteral", + "src": "11777:4:45", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "mc", + "nativeSrc": "11791:2:45", + "nodeType": "YulIdentifier", + "src": "11791:2:45" + }, + { + "kind": "number", + "nativeSrc": "11795:2:45", + "nodeType": "YulLiteral", + "src": "11795:2:45", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11787:3:45", + "nodeType": "YulIdentifier", + "src": "11787:3:45" + }, + "nativeSrc": "11787:11:45", + "nodeType": "YulFunctionCall", + "src": "11787:11:45" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11804:2:45", + "nodeType": "YulLiteral", + "src": "11804:2:45", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "11800:3:45", + "nodeType": "YulIdentifier", + "src": "11800:3:45" + }, + "nativeSrc": "11800:7:45", + "nodeType": "YulFunctionCall", + "src": "11800:7:45" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "11783:3:45", + "nodeType": "YulIdentifier", + "src": "11783:3:45" + }, + "nativeSrc": "11783:25:45", + "nodeType": "YulFunctionCall", + "src": "11783:25:45" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11770:6:45", + "nodeType": "YulIdentifier", + "src": "11770:6:45" + }, + "nativeSrc": "11770:39:45", + "nodeType": "YulFunctionCall", + "src": "11770:39:45" + }, + "nativeSrc": "11770:39:45", + "nodeType": "YulExpressionStatement", + "src": "11770:39:45" + } + ] + }, + "nativeSrc": "9856:1967:45", + "nodeType": "YulCase", + "src": "9856:1967:45", + "value": { + "kind": "number", + "nativeSrc": "9861:1:45", + "nodeType": "YulLiteral", + "src": "9861:1:45", + "type": "", + "value": "0" + } + }, + { + "body": { + "nativeSrc": "11927:291:45", + "nodeType": "YulBlock", + "src": "11927:291:45", + "statements": [ + { + "nativeSrc": "11945:24:45", + "nodeType": "YulAssignment", + "src": "11945:24:45", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11964:4:45", + "nodeType": "YulLiteral", + "src": "11964:4:45", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "11958:5:45", + "nodeType": "YulIdentifier", + "src": "11958:5:45" + }, + "nativeSrc": "11958:11:45", + "nodeType": "YulFunctionCall", + "src": "11958:11:45" + }, + "variableNames": [ + { + "name": "tempBytes", + "nativeSrc": "11945:9:45", + "nodeType": "YulIdentifier", + "src": "11945:9:45" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "tempBytes", + "nativeSrc": "12139:9:45", + "nodeType": "YulIdentifier", + "src": "12139:9:45" + }, + { + "kind": "number", + "nativeSrc": "12150:1:45", + "nodeType": "YulLiteral", + "src": "12150:1:45", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12132:6:45", + "nodeType": "YulIdentifier", + "src": "12132:6:45" + }, + "nativeSrc": "12132:20:45", + "nodeType": "YulFunctionCall", + "src": "12132:20:45" + }, + "nativeSrc": "12132:20:45", + "nodeType": "YulExpressionStatement", + "src": "12132:20:45" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12177:4:45", + "nodeType": "YulLiteral", + "src": "12177:4:45", + "type": "", + "value": "0x40" + }, + { + "arguments": [ + { + "name": "tempBytes", + "nativeSrc": "12187:9:45", + "nodeType": "YulIdentifier", + "src": "12187:9:45" + }, + { + "kind": "number", + "nativeSrc": "12198:4:45", + "nodeType": "YulLiteral", + "src": "12198:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12183:3:45", + "nodeType": "YulIdentifier", + "src": "12183:3:45" + }, + "nativeSrc": "12183:20:45", + "nodeType": "YulFunctionCall", + "src": "12183:20:45" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12170:6:45", + "nodeType": "YulIdentifier", + "src": "12170:6:45" + }, + "nativeSrc": "12170:34:45", + "nodeType": "YulFunctionCall", + "src": "12170:34:45" + }, + "nativeSrc": "12170:34:45", + "nodeType": "YulExpressionStatement", + "src": "12170:34:45" + } + ] + }, + "nativeSrc": "11919:299:45", + "nodeType": "YulCase", + "src": "11919:299:45", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "_length", + "nativeSrc": "9835:7:45", + "nodeType": "YulIdentifier", + "src": "9835:7:45" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "9828:6:45", + "nodeType": "YulIdentifier", + "src": "9828:6:45" + }, + "nativeSrc": "9828:15:45", + "nodeType": "YulFunctionCall", + "src": "9828:15:45" + }, + "nativeSrc": "9821:2397:45", + "nodeType": "YulSwitch", + "src": "9821:2397:45" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18264, + "isOffset": false, + "isSlot": false, + "src": "11328:6:45", + "valueSize": 1 + }, + { + "declaration": 18268, + "isOffset": false, + "isSlot": false, + "src": "10688:7:45", + "valueSize": 1 + }, + { + "declaration": 18268, + "isOffset": false, + "isSlot": false, + "src": "11127:7:45", + "valueSize": 1 + }, + { + "declaration": 18268, + "isOffset": false, + "isSlot": false, + "src": "11614:7:45", + "valueSize": 1 + }, + { + "declaration": 18268, + "isOffset": false, + "isSlot": false, + "src": "9835:7:45", + "valueSize": 1 + }, + { + "declaration": 18266, + "isOffset": false, + "isSlot": false, + "src": "11379:6:45", + "valueSize": 1 + }, + { + "declaration": 18293, + "isOffset": false, + "isSlot": false, + "src": "10019:9:45", + "valueSize": 1 + }, + { + "declaration": 18293, + "isOffset": false, + "isSlot": false, + "src": "11039:9:45", + "valueSize": 1 + }, + { + "declaration": 18293, + "isOffset": false, + "isSlot": false, + "src": "11603:9:45", + "valueSize": 1 + }, + { + "declaration": 18293, + "isOffset": false, + "isSlot": false, + "src": "11945:9:45", + "valueSize": 1 + }, + { + "declaration": 18293, + "isOffset": false, + "isSlot": false, + "src": "12139:9:45", + "valueSize": 1 + }, + { + "declaration": 18293, + "isOffset": false, + "isSlot": false, + "src": "12187:9:45", + "valueSize": 1 + } + ], + "id": 18295, + "nodeType": "InlineAssembly", + "src": "9798:2430:45" + }, + { + "expression": { + "id": 18296, + "name": "tempBytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18293, + "src": "12245:9:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 18272, + "id": 18297, + "nodeType": "Return", + "src": "12238:16:45" + } + ] + }, + "id": 18299, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "slice", + "nameLocation": "9466:5:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18269, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18264, + "mutability": "mutable", + "name": "_bytes", + "nameLocation": "9494:6:45", + "nodeType": "VariableDeclaration", + "scope": 18299, + "src": "9481:19:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18263, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9481:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18266, + "mutability": "mutable", + "name": "_start", + "nameLocation": "9518:6:45", + "nodeType": "VariableDeclaration", + "scope": 18299, + "src": "9510:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18265, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9510:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18268, + "mutability": "mutable", + "name": "_length", + "nameLocation": "9542:7:45", + "nodeType": "VariableDeclaration", + "scope": 18299, + "src": "9534:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18267, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9534:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9471:84:45" + }, + "returnParameters": { + "id": 18272, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18271, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18299, + "src": "9603:12:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18270, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9603:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "9602:14:45" + }, + "scope": 18568, + "src": "9457:2804:45", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 18324, + "nodeType": "Block", + "src": "12355:266:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 18309, + "name": "_bytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18301, + "src": "12373:6:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 18310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12380:6:45", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "12373:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 18311, + "name": "_start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18303, + "src": "12390:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "3230", + "id": 18312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12399:2:45", + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "12390:11:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12373:28:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "746f416464726573735f6f75744f66426f756e6473", + "id": 18315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12403:23:45", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d", + "typeString": "literal_string \"toAddress_outOfBounds\"" + }, + "value": "toAddress_outOfBounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9f688071e1df0f70b63e3651005878331be1fe9591d6cfb3187cb52a13439e5d", + "typeString": "literal_string \"toAddress_outOfBounds\"" + } + ], + "id": 18308, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12365:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12365:62:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18317, + "nodeType": "ExpressionStatement", + "src": "12365:62:45" + }, + { + "assignments": [ + 18319 + ], + "declarations": [ + { + "constant": false, + "id": 18319, + "mutability": "mutable", + "name": "tempAddress", + "nameLocation": "12445:11:45", + "nodeType": "VariableDeclaration", + "scope": 18324, + "src": "12437:19:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12437:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 18320, + "nodeType": "VariableDeclarationStatement", + "src": "12437:19:45" + }, + { + "AST": { + "nativeSrc": "12476:110:45", + "nodeType": "YulBlock", + "src": "12476:110:45", + "statements": [ + { + "nativeSrc": "12490:86:45", + "nodeType": "YulAssignment", + "src": "12490:86:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_bytes", + "nativeSrc": "12523:6:45", + "nodeType": "YulIdentifier", + "src": "12523:6:45" + }, + { + "kind": "number", + "nativeSrc": "12531:4:45", + "nodeType": "YulLiteral", + "src": "12531:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12519:3:45", + "nodeType": "YulIdentifier", + "src": "12519:3:45" + }, + "nativeSrc": "12519:17:45", + "nodeType": "YulFunctionCall", + "src": "12519:17:45" + }, + { + "name": "_start", + "nativeSrc": "12538:6:45", + "nodeType": "YulIdentifier", + "src": "12538:6:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12515:3:45", + "nodeType": "YulIdentifier", + "src": "12515:3:45" + }, + "nativeSrc": "12515:30:45", + "nodeType": "YulFunctionCall", + "src": "12515:30:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "12509:5:45", + "nodeType": "YulIdentifier", + "src": "12509:5:45" + }, + "nativeSrc": "12509:37:45", + "nodeType": "YulFunctionCall", + "src": "12509:37:45" + }, + { + "kind": "number", + "nativeSrc": "12548:27:45", + "nodeType": "YulLiteral", + "src": "12548:27:45", + "type": "", + "value": "0x1000000000000000000000000" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "12505:3:45", + "nodeType": "YulIdentifier", + "src": "12505:3:45" + }, + "nativeSrc": "12505:71:45", + "nodeType": "YulFunctionCall", + "src": "12505:71:45" + }, + "variableNames": [ + { + "name": "tempAddress", + "nativeSrc": "12490:11:45", + "nodeType": "YulIdentifier", + "src": "12490:11:45" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18301, + "isOffset": false, + "isSlot": false, + "src": "12523:6:45", + "valueSize": 1 + }, + { + "declaration": 18303, + "isOffset": false, + "isSlot": false, + "src": "12538:6:45", + "valueSize": 1 + }, + { + "declaration": 18319, + "isOffset": false, + "isSlot": false, + "src": "12490:11:45", + "valueSize": 1 + } + ], + "id": 18321, + "nodeType": "InlineAssembly", + "src": "12467:119:45" + }, + { + "expression": { + "id": 18322, + "name": "tempAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18319, + "src": "12603:11:45", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 18307, + "id": 18323, + "nodeType": "Return", + "src": "12596:18:45" + } + ] + }, + "id": 18325, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toAddress", + "nameLocation": "12276:9:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18301, + "mutability": "mutable", + "name": "_bytes", + "nameLocation": "12299:6:45", + "nodeType": "VariableDeclaration", + "scope": 18325, + "src": "12286:19:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18300, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12286:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18303, + "mutability": "mutable", + "name": "_start", + "nameLocation": "12315:6:45", + "nodeType": "VariableDeclaration", + "scope": 18325, + "src": "12307:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18302, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12307:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12285:37:45" + }, + "returnParameters": { + "id": 18307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18306, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18325, + "src": "12346:7:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 18305, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12346:7:45", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "12345:9:45" + }, + "scope": 18568, + "src": "12267:354:45", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 18350, + "nodeType": "Block", + "src": "12711:218:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 18335, + "name": "_bytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18327, + "src": "12729:6:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 18336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "12736:6:45", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "12729:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 18337, + "name": "_start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18329, + "src": "12746:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 18338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12755:1:45", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "12746:10:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12729:27:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "746f55696e74385f6f75744f66426f756e6473", + "id": 18341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12759:21:45", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1", + "typeString": "literal_string \"toUint8_outOfBounds\"" + }, + "value": "toUint8_outOfBounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ce6d7be00009dd45cc670fb6c2ceee25786f142bcb64e7f1ee73012b26bb6ca1", + "typeString": "literal_string \"toUint8_outOfBounds\"" + } + ], + "id": 18334, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "12721:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "12721:60:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18343, + "nodeType": "ExpressionStatement", + "src": "12721:60:45" + }, + { + "assignments": [ + 18345 + ], + "declarations": [ + { + "constant": false, + "id": 18345, + "mutability": "mutable", + "name": "tempUint", + "nameLocation": "12797:8:45", + "nodeType": "VariableDeclaration", + "scope": 18350, + "src": "12791:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 18344, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "12791:5:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 18346, + "nodeType": "VariableDeclarationStatement", + "src": "12791:14:45" + }, + { + "AST": { + "nativeSrc": "12825:72:45", + "nodeType": "YulBlock", + "src": "12825:72:45", + "statements": [ + { + "nativeSrc": "12839:48:45", + "nodeType": "YulAssignment", + "src": "12839:48:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_bytes", + "nativeSrc": "12865:6:45", + "nodeType": "YulIdentifier", + "src": "12865:6:45" + }, + { + "kind": "number", + "nativeSrc": "12873:3:45", + "nodeType": "YulLiteral", + "src": "12873:3:45", + "type": "", + "value": "0x1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12861:3:45", + "nodeType": "YulIdentifier", + "src": "12861:3:45" + }, + "nativeSrc": "12861:16:45", + "nodeType": "YulFunctionCall", + "src": "12861:16:45" + }, + { + "name": "_start", + "nativeSrc": "12879:6:45", + "nodeType": "YulIdentifier", + "src": "12879:6:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12857:3:45", + "nodeType": "YulIdentifier", + "src": "12857:3:45" + }, + "nativeSrc": "12857:29:45", + "nodeType": "YulFunctionCall", + "src": "12857:29:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "12851:5:45", + "nodeType": "YulIdentifier", + "src": "12851:5:45" + }, + "nativeSrc": "12851:36:45", + "nodeType": "YulFunctionCall", + "src": "12851:36:45" + }, + "variableNames": [ + { + "name": "tempUint", + "nativeSrc": "12839:8:45", + "nodeType": "YulIdentifier", + "src": "12839:8:45" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18327, + "isOffset": false, + "isSlot": false, + "src": "12865:6:45", + "valueSize": 1 + }, + { + "declaration": 18329, + "isOffset": false, + "isSlot": false, + "src": "12879:6:45", + "valueSize": 1 + }, + { + "declaration": 18345, + "isOffset": false, + "isSlot": false, + "src": "12839:8:45", + "valueSize": 1 + } + ], + "id": 18347, + "nodeType": "InlineAssembly", + "src": "12816:81:45" + }, + { + "expression": { + "id": 18348, + "name": "tempUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18345, + "src": "12914:8:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 18333, + "id": 18349, + "nodeType": "Return", + "src": "12907:15:45" + } + ] + }, + "id": 18351, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint8", + "nameLocation": "12636:7:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18327, + "mutability": "mutable", + "name": "_bytes", + "nameLocation": "12657:6:45", + "nodeType": "VariableDeclaration", + "scope": 18351, + "src": "12644:19:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18326, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12644:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18329, + "mutability": "mutable", + "name": "_start", + "nameLocation": "12673:6:45", + "nodeType": "VariableDeclaration", + "scope": 18351, + "src": "12665:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18328, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12665:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12643:37:45" + }, + "returnParameters": { + "id": 18333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18332, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18351, + "src": "12704:5:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 18331, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "12704:5:45", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "12703:7:45" + }, + "scope": 18568, + "src": "12627:302:45", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 18376, + "nodeType": "Block", + "src": "13021:219:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 18361, + "name": "_bytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18353, + "src": "13039:6:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 18362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13046:6:45", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13039:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 18363, + "name": "_start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18355, + "src": "13056:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "32", + "id": 18364, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13065:1:45", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "13056:10:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13039:27:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "746f55696e7431365f6f75744f66426f756e6473", + "id": 18367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13068:22:45", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab", + "typeString": "literal_string \"toUint16_outOfBounds\"" + }, + "value": "toUint16_outOfBounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_414233483a71244a4f2700455a9733e71511b5279e381bdd2af6d44b1b09ecab", + "typeString": "literal_string \"toUint16_outOfBounds\"" + } + ], + "id": 18360, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13031:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13031:60:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18369, + "nodeType": "ExpressionStatement", + "src": "13031:60:45" + }, + { + "assignments": [ + 18371 + ], + "declarations": [ + { + "constant": false, + "id": 18371, + "mutability": "mutable", + "name": "tempUint", + "nameLocation": "13108:8:45", + "nodeType": "VariableDeclaration", + "scope": 18376, + "src": "13101:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 18370, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "13101:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "id": 18372, + "nodeType": "VariableDeclarationStatement", + "src": "13101:15:45" + }, + { + "AST": { + "nativeSrc": "13136:72:45", + "nodeType": "YulBlock", + "src": "13136:72:45", + "statements": [ + { + "nativeSrc": "13150:48:45", + "nodeType": "YulAssignment", + "src": "13150:48:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_bytes", + "nativeSrc": "13176:6:45", + "nodeType": "YulIdentifier", + "src": "13176:6:45" + }, + { + "kind": "number", + "nativeSrc": "13184:3:45", + "nodeType": "YulLiteral", + "src": "13184:3:45", + "type": "", + "value": "0x2" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13172:3:45", + "nodeType": "YulIdentifier", + "src": "13172:3:45" + }, + "nativeSrc": "13172:16:45", + "nodeType": "YulFunctionCall", + "src": "13172:16:45" + }, + { + "name": "_start", + "nativeSrc": "13190:6:45", + "nodeType": "YulIdentifier", + "src": "13190:6:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13168:3:45", + "nodeType": "YulIdentifier", + "src": "13168:3:45" + }, + "nativeSrc": "13168:29:45", + "nodeType": "YulFunctionCall", + "src": "13168:29:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "13162:5:45", + "nodeType": "YulIdentifier", + "src": "13162:5:45" + }, + "nativeSrc": "13162:36:45", + "nodeType": "YulFunctionCall", + "src": "13162:36:45" + }, + "variableNames": [ + { + "name": "tempUint", + "nativeSrc": "13150:8:45", + "nodeType": "YulIdentifier", + "src": "13150:8:45" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18353, + "isOffset": false, + "isSlot": false, + "src": "13176:6:45", + "valueSize": 1 + }, + { + "declaration": 18355, + "isOffset": false, + "isSlot": false, + "src": "13190:6:45", + "valueSize": 1 + }, + { + "declaration": 18371, + "isOffset": false, + "isSlot": false, + "src": "13150:8:45", + "valueSize": 1 + } + ], + "id": 18373, + "nodeType": "InlineAssembly", + "src": "13127:81:45" + }, + { + "expression": { + "id": 18374, + "name": "tempUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18371, + "src": "13225:8:45", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 18359, + "id": 18375, + "nodeType": "Return", + "src": "13218:15:45" + } + ] + }, + "id": 18377, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint16", + "nameLocation": "12944:8:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18353, + "mutability": "mutable", + "name": "_bytes", + "nameLocation": "12966:6:45", + "nodeType": "VariableDeclaration", + "scope": 18377, + "src": "12953:19:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18352, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12953:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18355, + "mutability": "mutable", + "name": "_start", + "nameLocation": "12982:6:45", + "nodeType": "VariableDeclaration", + "scope": 18377, + "src": "12974:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18354, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12974:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12952:37:45" + }, + "returnParameters": { + "id": 18359, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18358, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18377, + "src": "13013:6:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 18357, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "13013:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "src": "13012:8:45" + }, + "scope": 18568, + "src": "12935:305:45", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 18402, + "nodeType": "Block", + "src": "13332:219:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 18387, + "name": "_bytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18379, + "src": "13350:6:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 18388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13357:6:45", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13350:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 18389, + "name": "_start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18381, + "src": "13367:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "34", + "id": 18390, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13376:1:45", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "13367:10:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13350:27:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "746f55696e7433325f6f75744f66426f756e6473", + "id": 18393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13379:22:45", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf", + "typeString": "literal_string \"toUint32_outOfBounds\"" + }, + "value": "toUint32_outOfBounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e0a09853867d05bef4b1d534052126bc72acd3515e1725b9b280e16d988e6ccf", + "typeString": "literal_string \"toUint32_outOfBounds\"" + } + ], + "id": 18386, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13342:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13342:60:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18395, + "nodeType": "ExpressionStatement", + "src": "13342:60:45" + }, + { + "assignments": [ + 18397 + ], + "declarations": [ + { + "constant": false, + "id": 18397, + "mutability": "mutable", + "name": "tempUint", + "nameLocation": "13419:8:45", + "nodeType": "VariableDeclaration", + "scope": 18402, + "src": "13412:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 18396, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13412:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 18398, + "nodeType": "VariableDeclarationStatement", + "src": "13412:15:45" + }, + { + "AST": { + "nativeSrc": "13447:72:45", + "nodeType": "YulBlock", + "src": "13447:72:45", + "statements": [ + { + "nativeSrc": "13461:48:45", + "nodeType": "YulAssignment", + "src": "13461:48:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_bytes", + "nativeSrc": "13487:6:45", + "nodeType": "YulIdentifier", + "src": "13487:6:45" + }, + { + "kind": "number", + "nativeSrc": "13495:3:45", + "nodeType": "YulLiteral", + "src": "13495:3:45", + "type": "", + "value": "0x4" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13483:3:45", + "nodeType": "YulIdentifier", + "src": "13483:3:45" + }, + "nativeSrc": "13483:16:45", + "nodeType": "YulFunctionCall", + "src": "13483:16:45" + }, + { + "name": "_start", + "nativeSrc": "13501:6:45", + "nodeType": "YulIdentifier", + "src": "13501:6:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13479:3:45", + "nodeType": "YulIdentifier", + "src": "13479:3:45" + }, + "nativeSrc": "13479:29:45", + "nodeType": "YulFunctionCall", + "src": "13479:29:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "13473:5:45", + "nodeType": "YulIdentifier", + "src": "13473:5:45" + }, + "nativeSrc": "13473:36:45", + "nodeType": "YulFunctionCall", + "src": "13473:36:45" + }, + "variableNames": [ + { + "name": "tempUint", + "nativeSrc": "13461:8:45", + "nodeType": "YulIdentifier", + "src": "13461:8:45" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18379, + "isOffset": false, + "isSlot": false, + "src": "13487:6:45", + "valueSize": 1 + }, + { + "declaration": 18381, + "isOffset": false, + "isSlot": false, + "src": "13501:6:45", + "valueSize": 1 + }, + { + "declaration": 18397, + "isOffset": false, + "isSlot": false, + "src": "13461:8:45", + "valueSize": 1 + } + ], + "id": 18399, + "nodeType": "InlineAssembly", + "src": "13438:81:45" + }, + { + "expression": { + "id": 18400, + "name": "tempUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18397, + "src": "13536:8:45", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "functionReturnParameters": 18385, + "id": 18401, + "nodeType": "Return", + "src": "13529:15:45" + } + ] + }, + "id": 18403, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint32", + "nameLocation": "13255:8:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18379, + "mutability": "mutable", + "name": "_bytes", + "nameLocation": "13277:6:45", + "nodeType": "VariableDeclaration", + "scope": 18403, + "src": "13264:19:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18378, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13264:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18381, + "mutability": "mutable", + "name": "_start", + "nameLocation": "13293:6:45", + "nodeType": "VariableDeclaration", + "scope": 18403, + "src": "13285:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18380, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13285:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13263:37:45" + }, + "returnParameters": { + "id": 18385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18384, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18403, + "src": "13324:6:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 18383, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "13324:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "src": "13323:8:45" + }, + "scope": 18568, + "src": "13246:305:45", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 18428, + "nodeType": "Block", + "src": "13643:219:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 18413, + "name": "_bytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18405, + "src": "13661:6:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 18414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13668:6:45", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13661:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 18415, + "name": "_start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18407, + "src": "13678:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "38", + "id": 18416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13687:1:45", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "13678:10:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13661:27:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "746f55696e7436345f6f75744f66426f756e6473", + "id": 18419, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13690:22:45", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145", + "typeString": "literal_string \"toUint64_outOfBounds\"" + }, + "value": "toUint64_outOfBounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_55885cc1e15ebd0ff3d9803b39476f6ee2279f42aa3070b40f2de433347c0145", + "typeString": "literal_string \"toUint64_outOfBounds\"" + } + ], + "id": 18412, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13653:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13653:60:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18421, + "nodeType": "ExpressionStatement", + "src": "13653:60:45" + }, + { + "assignments": [ + 18423 + ], + "declarations": [ + { + "constant": false, + "id": 18423, + "mutability": "mutable", + "name": "tempUint", + "nameLocation": "13730:8:45", + "nodeType": "VariableDeclaration", + "scope": 18428, + "src": "13723:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 18422, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13723:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "id": 18424, + "nodeType": "VariableDeclarationStatement", + "src": "13723:15:45" + }, + { + "AST": { + "nativeSrc": "13758:72:45", + "nodeType": "YulBlock", + "src": "13758:72:45", + "statements": [ + { + "nativeSrc": "13772:48:45", + "nodeType": "YulAssignment", + "src": "13772:48:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_bytes", + "nativeSrc": "13798:6:45", + "nodeType": "YulIdentifier", + "src": "13798:6:45" + }, + { + "kind": "number", + "nativeSrc": "13806:3:45", + "nodeType": "YulLiteral", + "src": "13806:3:45", + "type": "", + "value": "0x8" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13794:3:45", + "nodeType": "YulIdentifier", + "src": "13794:3:45" + }, + "nativeSrc": "13794:16:45", + "nodeType": "YulFunctionCall", + "src": "13794:16:45" + }, + { + "name": "_start", + "nativeSrc": "13812:6:45", + "nodeType": "YulIdentifier", + "src": "13812:6:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13790:3:45", + "nodeType": "YulIdentifier", + "src": "13790:3:45" + }, + "nativeSrc": "13790:29:45", + "nodeType": "YulFunctionCall", + "src": "13790:29:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "13784:5:45", + "nodeType": "YulIdentifier", + "src": "13784:5:45" + }, + "nativeSrc": "13784:36:45", + "nodeType": "YulFunctionCall", + "src": "13784:36:45" + }, + "variableNames": [ + { + "name": "tempUint", + "nativeSrc": "13772:8:45", + "nodeType": "YulIdentifier", + "src": "13772:8:45" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18405, + "isOffset": false, + "isSlot": false, + "src": "13798:6:45", + "valueSize": 1 + }, + { + "declaration": 18407, + "isOffset": false, + "isSlot": false, + "src": "13812:6:45", + "valueSize": 1 + }, + { + "declaration": 18423, + "isOffset": false, + "isSlot": false, + "src": "13772:8:45", + "valueSize": 1 + } + ], + "id": 18425, + "nodeType": "InlineAssembly", + "src": "13749:81:45" + }, + { + "expression": { + "id": 18426, + "name": "tempUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18423, + "src": "13847:8:45", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "functionReturnParameters": 18411, + "id": 18427, + "nodeType": "Return", + "src": "13840:15:45" + } + ] + }, + "id": 18429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint64", + "nameLocation": "13566:8:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18405, + "mutability": "mutable", + "name": "_bytes", + "nameLocation": "13588:6:45", + "nodeType": "VariableDeclaration", + "scope": 18429, + "src": "13575:19:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18404, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13575:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18407, + "mutability": "mutable", + "name": "_start", + "nameLocation": "13604:6:45", + "nodeType": "VariableDeclaration", + "scope": 18429, + "src": "13596:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18406, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13596:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13574:37:45" + }, + "returnParameters": { + "id": 18411, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18410, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18429, + "src": "13635:6:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + }, + "typeName": { + "id": 18409, + "name": "uint64", + "nodeType": "ElementaryTypeName", + "src": "13635:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint64", + "typeString": "uint64" + } + }, + "visibility": "internal" + } + ], + "src": "13634:8:45" + }, + "scope": 18568, + "src": "13557:305:45", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 18454, + "nodeType": "Block", + "src": "13954:220:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 18439, + "name": "_bytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18431, + "src": "13972:6:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 18440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "13979:6:45", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "13972:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 18441, + "name": "_start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18433, + "src": "13989:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "3132", + "id": 18442, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13998:2:45", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "13989:11:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13972:28:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "746f55696e7439365f6f75744f66426f756e6473", + "id": 18445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14002:22:45", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7", + "typeString": "literal_string \"toUint96_outOfBounds\"" + }, + "value": "toUint96_outOfBounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_245175b34ac1d95c460f2a4fcb106dbfea12949a3cbb7ae3362c49144bb9feb7", + "typeString": "literal_string \"toUint96_outOfBounds\"" + } + ], + "id": 18438, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "13964:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "13964:61:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18447, + "nodeType": "ExpressionStatement", + "src": "13964:61:45" + }, + { + "assignments": [ + 18449 + ], + "declarations": [ + { + "constant": false, + "id": 18449, + "mutability": "mutable", + "name": "tempUint", + "nameLocation": "14042:8:45", + "nodeType": "VariableDeclaration", + "scope": 18454, + "src": "14035:15:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 18448, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "14035:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "id": 18450, + "nodeType": "VariableDeclarationStatement", + "src": "14035:15:45" + }, + { + "AST": { + "nativeSrc": "14070:72:45", + "nodeType": "YulBlock", + "src": "14070:72:45", + "statements": [ + { + "nativeSrc": "14084:48:45", + "nodeType": "YulAssignment", + "src": "14084:48:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_bytes", + "nativeSrc": "14110:6:45", + "nodeType": "YulIdentifier", + "src": "14110:6:45" + }, + { + "kind": "number", + "nativeSrc": "14118:3:45", + "nodeType": "YulLiteral", + "src": "14118:3:45", + "type": "", + "value": "0xc" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14106:3:45", + "nodeType": "YulIdentifier", + "src": "14106:3:45" + }, + "nativeSrc": "14106:16:45", + "nodeType": "YulFunctionCall", + "src": "14106:16:45" + }, + { + "name": "_start", + "nativeSrc": "14124:6:45", + "nodeType": "YulIdentifier", + "src": "14124:6:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14102:3:45", + "nodeType": "YulIdentifier", + "src": "14102:3:45" + }, + "nativeSrc": "14102:29:45", + "nodeType": "YulFunctionCall", + "src": "14102:29:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14096:5:45", + "nodeType": "YulIdentifier", + "src": "14096:5:45" + }, + "nativeSrc": "14096:36:45", + "nodeType": "YulFunctionCall", + "src": "14096:36:45" + }, + "variableNames": [ + { + "name": "tempUint", + "nativeSrc": "14084:8:45", + "nodeType": "YulIdentifier", + "src": "14084:8:45" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18431, + "isOffset": false, + "isSlot": false, + "src": "14110:6:45", + "valueSize": 1 + }, + { + "declaration": 18433, + "isOffset": false, + "isSlot": false, + "src": "14124:6:45", + "valueSize": 1 + }, + { + "declaration": 18449, + "isOffset": false, + "isSlot": false, + "src": "14084:8:45", + "valueSize": 1 + } + ], + "id": 18451, + "nodeType": "InlineAssembly", + "src": "14061:81:45" + }, + { + "expression": { + "id": 18452, + "name": "tempUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18449, + "src": "14159:8:45", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "functionReturnParameters": 18437, + "id": 18453, + "nodeType": "Return", + "src": "14152:15:45" + } + ] + }, + "id": 18455, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint96", + "nameLocation": "13877:8:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18434, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18431, + "mutability": "mutable", + "name": "_bytes", + "nameLocation": "13899:6:45", + "nodeType": "VariableDeclaration", + "scope": 18455, + "src": "13886:19:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18430, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13886:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18433, + "mutability": "mutable", + "name": "_start", + "nameLocation": "13915:6:45", + "nodeType": "VariableDeclaration", + "scope": 18455, + "src": "13907:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13907:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13885:37:45" + }, + "returnParameters": { + "id": 18437, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18436, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18455, + "src": "13946:6:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + }, + "typeName": { + "id": 18435, + "name": "uint96", + "nodeType": "ElementaryTypeName", + "src": "13946:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint96", + "typeString": "uint96" + } + }, + "visibility": "internal" + } + ], + "src": "13945:8:45" + }, + "scope": 18568, + "src": "13868:306:45", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 18480, + "nodeType": "Block", + "src": "14268:223:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 18465, + "name": "_bytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18457, + "src": "14286:6:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 18466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14293:6:45", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "14286:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 18467, + "name": "_start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18459, + "src": "14303:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "3136", + "id": 18468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14312:2:45", + "typeDescriptions": { + "typeIdentifier": "t_rational_16_by_1", + "typeString": "int_const 16" + }, + "value": "16" + }, + "src": "14303:11:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14286:28:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "746f55696e743132385f6f75744f66426f756e6473", + "id": 18471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14316:23:45", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc", + "typeString": "literal_string \"toUint128_outOfBounds\"" + }, + "value": "toUint128_outOfBounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_17474b965d7fdba029328487966488b63c32338e60aea74eafb22325bb8d90dc", + "typeString": "literal_string \"toUint128_outOfBounds\"" + } + ], + "id": 18464, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14278:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14278:62:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18473, + "nodeType": "ExpressionStatement", + "src": "14278:62:45" + }, + { + "assignments": [ + 18475 + ], + "declarations": [ + { + "constant": false, + "id": 18475, + "mutability": "mutable", + "name": "tempUint", + "nameLocation": "14358:8:45", + "nodeType": "VariableDeclaration", + "scope": 18480, + "src": "14350:16:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 18474, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "14350:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "id": 18476, + "nodeType": "VariableDeclarationStatement", + "src": "14350:16:45" + }, + { + "AST": { + "nativeSrc": "14386:73:45", + "nodeType": "YulBlock", + "src": "14386:73:45", + "statements": [ + { + "nativeSrc": "14400:49:45", + "nodeType": "YulAssignment", + "src": "14400:49:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_bytes", + "nativeSrc": "14426:6:45", + "nodeType": "YulIdentifier", + "src": "14426:6:45" + }, + { + "kind": "number", + "nativeSrc": "14434:4:45", + "nodeType": "YulLiteral", + "src": "14434:4:45", + "type": "", + "value": "0x10" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14422:3:45", + "nodeType": "YulIdentifier", + "src": "14422:3:45" + }, + "nativeSrc": "14422:17:45", + "nodeType": "YulFunctionCall", + "src": "14422:17:45" + }, + { + "name": "_start", + "nativeSrc": "14441:6:45", + "nodeType": "YulIdentifier", + "src": "14441:6:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14418:3:45", + "nodeType": "YulIdentifier", + "src": "14418:3:45" + }, + "nativeSrc": "14418:30:45", + "nodeType": "YulFunctionCall", + "src": "14418:30:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14412:5:45", + "nodeType": "YulIdentifier", + "src": "14412:5:45" + }, + "nativeSrc": "14412:37:45", + "nodeType": "YulFunctionCall", + "src": "14412:37:45" + }, + "variableNames": [ + { + "name": "tempUint", + "nativeSrc": "14400:8:45", + "nodeType": "YulIdentifier", + "src": "14400:8:45" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18457, + "isOffset": false, + "isSlot": false, + "src": "14426:6:45", + "valueSize": 1 + }, + { + "declaration": 18459, + "isOffset": false, + "isSlot": false, + "src": "14441:6:45", + "valueSize": 1 + }, + { + "declaration": 18475, + "isOffset": false, + "isSlot": false, + "src": "14400:8:45", + "valueSize": 1 + } + ], + "id": 18477, + "nodeType": "InlineAssembly", + "src": "14377:82:45" + }, + { + "expression": { + "id": 18478, + "name": "tempUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18475, + "src": "14476:8:45", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "functionReturnParameters": 18463, + "id": 18479, + "nodeType": "Return", + "src": "14469:15:45" + } + ] + }, + "id": 18481, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint128", + "nameLocation": "14189:9:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18460, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18457, + "mutability": "mutable", + "name": "_bytes", + "nameLocation": "14212:6:45", + "nodeType": "VariableDeclaration", + "scope": 18481, + "src": "14199:19:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18456, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14199:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18459, + "mutability": "mutable", + "name": "_start", + "nameLocation": "14228:6:45", + "nodeType": "VariableDeclaration", + "scope": 18481, + "src": "14220:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18458, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14220:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14198:37:45" + }, + "returnParameters": { + "id": 18463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18462, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18481, + "src": "14259:7:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + }, + "typeName": { + "id": 18461, + "name": "uint128", + "nodeType": "ElementaryTypeName", + "src": "14259:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint128", + "typeString": "uint128" + } + }, + "visibility": "internal" + } + ], + "src": "14258:9:45" + }, + "scope": 18568, + "src": "14180:311:45", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 18506, + "nodeType": "Block", + "src": "14585:223:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 18491, + "name": "_bytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18483, + "src": "14603:6:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 18492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14610:6:45", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "14603:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 18493, + "name": "_start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18485, + "src": "14620:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "3332", + "id": 18494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14629:2:45", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14620:11:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14603:28:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "746f55696e743235365f6f75744f66426f756e6473", + "id": 18497, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14633:23:45", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b", + "typeString": "literal_string \"toUint256_outOfBounds\"" + }, + "value": "toUint256_outOfBounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_87a32b96294a395a4fb365d8b27a23d532fa10419cffd7dc13367cdc71bf4d7b", + "typeString": "literal_string \"toUint256_outOfBounds\"" + } + ], + "id": 18490, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14595:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14595:62:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18499, + "nodeType": "ExpressionStatement", + "src": "14595:62:45" + }, + { + "assignments": [ + 18501 + ], + "declarations": [ + { + "constant": false, + "id": 18501, + "mutability": "mutable", + "name": "tempUint", + "nameLocation": "14675:8:45", + "nodeType": "VariableDeclaration", + "scope": 18506, + "src": "14667:16:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18500, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14667:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 18502, + "nodeType": "VariableDeclarationStatement", + "src": "14667:16:45" + }, + { + "AST": { + "nativeSrc": "14703:73:45", + "nodeType": "YulBlock", + "src": "14703:73:45", + "statements": [ + { + "nativeSrc": "14717:49:45", + "nodeType": "YulAssignment", + "src": "14717:49:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_bytes", + "nativeSrc": "14743:6:45", + "nodeType": "YulIdentifier", + "src": "14743:6:45" + }, + { + "kind": "number", + "nativeSrc": "14751:4:45", + "nodeType": "YulLiteral", + "src": "14751:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14739:3:45", + "nodeType": "YulIdentifier", + "src": "14739:3:45" + }, + "nativeSrc": "14739:17:45", + "nodeType": "YulFunctionCall", + "src": "14739:17:45" + }, + { + "name": "_start", + "nativeSrc": "14758:6:45", + "nodeType": "YulIdentifier", + "src": "14758:6:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14735:3:45", + "nodeType": "YulIdentifier", + "src": "14735:3:45" + }, + "nativeSrc": "14735:30:45", + "nodeType": "YulFunctionCall", + "src": "14735:30:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14729:5:45", + "nodeType": "YulIdentifier", + "src": "14729:5:45" + }, + "nativeSrc": "14729:37:45", + "nodeType": "YulFunctionCall", + "src": "14729:37:45" + }, + "variableNames": [ + { + "name": "tempUint", + "nativeSrc": "14717:8:45", + "nodeType": "YulIdentifier", + "src": "14717:8:45" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18483, + "isOffset": false, + "isSlot": false, + "src": "14743:6:45", + "valueSize": 1 + }, + { + "declaration": 18485, + "isOffset": false, + "isSlot": false, + "src": "14758:6:45", + "valueSize": 1 + }, + { + "declaration": 18501, + "isOffset": false, + "isSlot": false, + "src": "14717:8:45", + "valueSize": 1 + } + ], + "id": 18503, + "nodeType": "InlineAssembly", + "src": "14694:82:45" + }, + { + "expression": { + "id": 18504, + "name": "tempUint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18501, + "src": "14793:8:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 18489, + "id": 18505, + "nodeType": "Return", + "src": "14786:15:45" + } + ] + }, + "id": 18507, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toUint256", + "nameLocation": "14506:9:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18483, + "mutability": "mutable", + "name": "_bytes", + "nameLocation": "14529:6:45", + "nodeType": "VariableDeclaration", + "scope": 18507, + "src": "14516:19:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18482, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14516:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18485, + "mutability": "mutable", + "name": "_start", + "nameLocation": "14545:6:45", + "nodeType": "VariableDeclaration", + "scope": 18507, + "src": "14537:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14537:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14515:37:45" + }, + "returnParameters": { + "id": 18489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18488, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18507, + "src": "14576:7:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18487, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14576:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14575:9:45" + }, + "scope": 18568, + "src": "14497:311:45", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 18532, + "nodeType": "Block", + "src": "14902:232:45", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 18517, + "name": "_bytes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18509, + "src": "14920:6:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 18518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "14927:6:45", + "memberName": "length", + "nodeType": "MemberAccess", + "src": "14920:13:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 18521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 18519, + "name": "_start", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18511, + "src": "14937:6:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "3332", + "id": 18520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14946:2:45", + "typeDescriptions": { + "typeIdentifier": "t_rational_32_by_1", + "typeString": "int_const 32" + }, + "value": "32" + }, + "src": "14937:11:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14920:28:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "746f427974657333325f6f75744f66426f756e6473", + "id": 18523, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14950:23:45", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2", + "typeString": "literal_string \"toBytes32_outOfBounds\"" + }, + "value": "toBytes32_outOfBounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_95abc635681816f3b423f999d8035c1cc722b70e3d801f56cd1748a4f5810fa2", + "typeString": "literal_string \"toBytes32_outOfBounds\"" + } + ], + "id": 18516, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + -18, + -18, + -18 + ], + "referencedDeclaration": -18, + "src": "14912:7:45", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 18524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "14912:62:45", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 18525, + "nodeType": "ExpressionStatement", + "src": "14912:62:45" + }, + { + "assignments": [ + 18527 + ], + "declarations": [ + { + "constant": false, + "id": 18527, + "mutability": "mutable", + "name": "tempBytes32", + "nameLocation": "14992:11:45", + "nodeType": "VariableDeclaration", + "scope": 18532, + "src": "14984:19:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 18526, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14984:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 18528, + "nodeType": "VariableDeclarationStatement", + "src": "14984:19:45" + }, + { + "AST": { + "nativeSrc": "15023:76:45", + "nodeType": "YulBlock", + "src": "15023:76:45", + "statements": [ + { + "nativeSrc": "15037:52:45", + "nodeType": "YulAssignment", + "src": "15037:52:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_bytes", + "nativeSrc": "15066:6:45", + "nodeType": "YulIdentifier", + "src": "15066:6:45" + }, + { + "kind": "number", + "nativeSrc": "15074:4:45", + "nodeType": "YulLiteral", + "src": "15074:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15062:3:45", + "nodeType": "YulIdentifier", + "src": "15062:3:45" + }, + "nativeSrc": "15062:17:45", + "nodeType": "YulFunctionCall", + "src": "15062:17:45" + }, + { + "name": "_start", + "nativeSrc": "15081:6:45", + "nodeType": "YulIdentifier", + "src": "15081:6:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15058:3:45", + "nodeType": "YulIdentifier", + "src": "15058:3:45" + }, + "nativeSrc": "15058:30:45", + "nodeType": "YulFunctionCall", + "src": "15058:30:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15052:5:45", + "nodeType": "YulIdentifier", + "src": "15052:5:45" + }, + "nativeSrc": "15052:37:45", + "nodeType": "YulFunctionCall", + "src": "15052:37:45" + }, + "variableNames": [ + { + "name": "tempBytes32", + "nativeSrc": "15037:11:45", + "nodeType": "YulIdentifier", + "src": "15037:11:45" + } + ] + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18509, + "isOffset": false, + "isSlot": false, + "src": "15066:6:45", + "valueSize": 1 + }, + { + "declaration": 18511, + "isOffset": false, + "isSlot": false, + "src": "15081:6:45", + "valueSize": 1 + }, + { + "declaration": 18527, + "isOffset": false, + "isSlot": false, + "src": "15037:11:45", + "valueSize": 1 + } + ], + "id": 18529, + "nodeType": "InlineAssembly", + "src": "15014:85:45" + }, + { + "expression": { + "id": 18530, + "name": "tempBytes32", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18527, + "src": "15116:11:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 18515, + "id": 18531, + "nodeType": "Return", + "src": "15109:18:45" + } + ] + }, + "id": 18533, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toBytes32", + "nameLocation": "14823:9:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18509, + "mutability": "mutable", + "name": "_bytes", + "nameLocation": "14846:6:45", + "nodeType": "VariableDeclaration", + "scope": 18533, + "src": "14833:19:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18508, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14833:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18511, + "mutability": "mutable", + "name": "_start", + "nameLocation": "14862:6:45", + "nodeType": "VariableDeclaration", + "scope": 18533, + "src": "14854:14:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14854:7:45", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14832:37:45" + }, + "returnParameters": { + "id": 18515, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18514, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18533, + "src": "14893:7:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 18513, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14893:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "14892:9:45" + }, + "scope": 18568, + "src": "14814:320:45", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 18549, + "nodeType": "Block", + "src": "15233:1323:45", + "statements": [ + { + "assignments": [ + 18543 + ], + "declarations": [ + { + "constant": false, + "id": 18543, + "mutability": "mutable", + "name": "success", + "nameLocation": "15248:7:45", + "nodeType": "VariableDeclaration", + "scope": 18549, + "src": "15243:12:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18542, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15243:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 18545, + "initialValue": { + "hexValue": "74727565", + "id": 18544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15258:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "nodeType": "VariableDeclarationStatement", + "src": "15243:19:45" + }, + { + "AST": { + "nativeSrc": "15282:1243:45", + "nodeType": "YulBlock", + "src": "15282:1243:45", + "statements": [ + { + "nativeSrc": "15296:30:45", + "nodeType": "YulVariableDeclaration", + "src": "15296:30:45", + "value": { + "arguments": [ + { + "name": "_preBytes", + "nativeSrc": "15316:9:45", + "nodeType": "YulIdentifier", + "src": "15316:9:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15310:5:45", + "nodeType": "YulIdentifier", + "src": "15310:5:45" + }, + "nativeSrc": "15310:16:45", + "nodeType": "YulFunctionCall", + "src": "15310:16:45" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "15300:6:45", + "nodeType": "YulTypedName", + "src": "15300:6:45", + "type": "" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "15459:961:45", + "nodeType": "YulBlock", + "src": "15459:961:45", + "statements": [ + { + "nativeSrc": "15688:11:45", + "nodeType": "YulVariableDeclaration", + "src": "15688:11:45", + "value": { + "kind": "number", + "nativeSrc": "15698:1:45", + "nodeType": "YulLiteral", + "src": "15698:1:45", + "type": "", + "value": "1" + }, + "variables": [ + { + "name": "cb", + "nativeSrc": "15692:2:45", + "nodeType": "YulTypedName", + "src": "15692:2:45", + "type": "" + } + ] + }, + { + "nativeSrc": "15717:30:45", + "nodeType": "YulVariableDeclaration", + "src": "15717:30:45", + "value": { + "arguments": [ + { + "name": "_preBytes", + "nativeSrc": "15731:9:45", + "nodeType": "YulIdentifier", + "src": "15731:9:45" + }, + { + "kind": "number", + "nativeSrc": "15742:4:45", + "nodeType": "YulLiteral", + "src": "15742:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15727:3:45", + "nodeType": "YulIdentifier", + "src": "15727:3:45" + }, + "nativeSrc": "15727:20:45", + "nodeType": "YulFunctionCall", + "src": "15727:20:45" + }, + "variables": [ + { + "name": "mc", + "nativeSrc": "15721:2:45", + "nodeType": "YulTypedName", + "src": "15721:2:45", + "type": "" + } + ] + }, + { + "nativeSrc": "15764:26:45", + "nodeType": "YulVariableDeclaration", + "src": "15764:26:45", + "value": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "15779:2:45", + "nodeType": "YulIdentifier", + "src": "15779:2:45" + }, + { + "name": "length", + "nativeSrc": "15783:6:45", + "nodeType": "YulIdentifier", + "src": "15783:6:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15775:3:45", + "nodeType": "YulIdentifier", + "src": "15775:3:45" + }, + "nativeSrc": "15775:15:45", + "nodeType": "YulFunctionCall", + "src": "15775:15:45" + }, + "variables": [ + { + "name": "end", + "nativeSrc": "15768:3:45", + "nodeType": "YulTypedName", + "src": "15768:3:45", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "16122:284:45", + "nodeType": "YulBlock", + "src": "16122:284:45", + "statements": [ + { + "body": { + "nativeSrc": "16258:130:45", + "nodeType": "YulBlock", + "src": "16258:130:45", + "statements": [ + { + "nativeSrc": "16322:12:45", + "nodeType": "YulAssignment", + "src": "16322:12:45", + "value": { + "kind": "number", + "nativeSrc": "16333:1:45", + "nodeType": "YulLiteral", + "src": "16333:1:45", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "16322:7:45", + "nodeType": "YulIdentifier", + "src": "16322:7:45" + } + ] + }, + { + "nativeSrc": "16359:7:45", + "nodeType": "YulAssignment", + "src": "16359:7:45", + "value": { + "kind": "number", + "nativeSrc": "16365:1:45", + "nodeType": "YulLiteral", + "src": "16365:1:45", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "cb", + "nativeSrc": "16359:2:45", + "nodeType": "YulIdentifier", + "src": "16359:2:45" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "mc", + "nativeSrc": "16241:2:45", + "nodeType": "YulIdentifier", + "src": "16241:2:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "16235:5:45", + "nodeType": "YulIdentifier", + "src": "16235:5:45" + }, + "nativeSrc": "16235:9:45", + "nodeType": "YulFunctionCall", + "src": "16235:9:45" + }, + { + "arguments": [ + { + "name": "cc", + "nativeSrc": "16252:2:45", + "nodeType": "YulIdentifier", + "src": "16252:2:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "16246:5:45", + "nodeType": "YulIdentifier", + "src": "16246:5:45" + }, + "nativeSrc": "16246:9:45", + "nodeType": "YulFunctionCall", + "src": "16246:9:45" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "16232:2:45", + "nodeType": "YulIdentifier", + "src": "16232:2:45" + }, + "nativeSrc": "16232:24:45", + "nodeType": "YulFunctionCall", + "src": "16232:24:45" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "16225:6:45", + "nodeType": "YulIdentifier", + "src": "16225:6:45" + }, + "nativeSrc": "16225:32:45", + "nodeType": "YulFunctionCall", + "src": "16225:32:45" + }, + "nativeSrc": "16222:166:45", + "nodeType": "YulIf", + "src": "16222:166:45" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "mc", + "nativeSrc": "16004:2:45", + "nodeType": "YulIdentifier", + "src": "16004:2:45" + }, + { + "name": "end", + "nativeSrc": "16008:3:45", + "nodeType": "YulIdentifier", + "src": "16008:3:45" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "16001:2:45", + "nodeType": "YulIdentifier", + "src": "16001:2:45" + }, + "nativeSrc": "16001:11:45", + "nodeType": "YulFunctionCall", + "src": "16001:11:45" + }, + { + "name": "cb", + "nativeSrc": "16014:2:45", + "nodeType": "YulIdentifier", + "src": "16014:2:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15997:3:45", + "nodeType": "YulIdentifier", + "src": "15997:3:45" + }, + "nativeSrc": "15997:20:45", + "nodeType": "YulFunctionCall", + "src": "15997:20:45" + }, + { + "kind": "number", + "nativeSrc": "16019:1:45", + "nodeType": "YulLiteral", + "src": "16019:1:45", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "15994:2:45", + "nodeType": "YulIdentifier", + "src": "15994:2:45" + }, + "nativeSrc": "15994:27:45", + "nodeType": "YulFunctionCall", + "src": "15994:27:45" + }, + "nativeSrc": "15808:598:45", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "16022:99:45", + "nodeType": "YulBlock", + "src": "16022:99:45", + "statements": [ + { + "nativeSrc": "16044:19:45", + "nodeType": "YulAssignment", + "src": "16044:19:45", + "value": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "16054:2:45", + "nodeType": "YulIdentifier", + "src": "16054:2:45" + }, + { + "kind": "number", + "nativeSrc": "16058:4:45", + "nodeType": "YulLiteral", + "src": "16058:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16050:3:45", + "nodeType": "YulIdentifier", + "src": "16050:3:45" + }, + "nativeSrc": "16050:13:45", + "nodeType": "YulFunctionCall", + "src": "16050:13:45" + }, + "variableNames": [ + { + "name": "mc", + "nativeSrc": "16044:2:45", + "nodeType": "YulIdentifier", + "src": "16044:2:45" + } + ] + }, + { + "nativeSrc": "16084:19:45", + "nodeType": "YulAssignment", + "src": "16084:19:45", + "value": { + "arguments": [ + { + "name": "cc", + "nativeSrc": "16094:2:45", + "nodeType": "YulIdentifier", + "src": "16094:2:45" + }, + { + "kind": "number", + "nativeSrc": "16098:4:45", + "nodeType": "YulLiteral", + "src": "16098:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16090:3:45", + "nodeType": "YulIdentifier", + "src": "16090:3:45" + }, + "nativeSrc": "16090:13:45", + "nodeType": "YulFunctionCall", + "src": "16090:13:45" + }, + "variableNames": [ + { + "name": "cc", + "nativeSrc": "16084:2:45", + "nodeType": "YulIdentifier", + "src": "16084:2:45" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "15812:181:45", + "nodeType": "YulBlock", + "src": "15812:181:45", + "statements": [ + { + "nativeSrc": "15834:31:45", + "nodeType": "YulVariableDeclaration", + "src": "15834:31:45", + "value": { + "arguments": [ + { + "name": "_postBytes", + "nativeSrc": "15848:10:45", + "nodeType": "YulIdentifier", + "src": "15848:10:45" + }, + { + "kind": "number", + "nativeSrc": "15860:4:45", + "nodeType": "YulLiteral", + "src": "15860:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15844:3:45", + "nodeType": "YulIdentifier", + "src": "15844:3:45" + }, + "nativeSrc": "15844:21:45", + "nodeType": "YulFunctionCall", + "src": "15844:21:45" + }, + "variables": [ + { + "name": "cc", + "nativeSrc": "15838:2:45", + "nodeType": "YulTypedName", + "src": "15838:2:45", + "type": "" + } + ] + } + ] + }, + "src": "15808:598:45" + } + ] + }, + "nativeSrc": "15452:968:45", + "nodeType": "YulCase", + "src": "15452:968:45", + "value": { + "kind": "number", + "nativeSrc": "15457:1:45", + "nodeType": "YulLiteral", + "src": "15457:1:45", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "16441:74:45", + "nodeType": "YulBlock", + "src": "16441:74:45", + "statements": [ + { + "nativeSrc": "16489:12:45", + "nodeType": "YulAssignment", + "src": "16489:12:45", + "value": { + "kind": "number", + "nativeSrc": "16500:1:45", + "nodeType": "YulLiteral", + "src": "16500:1:45", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "16489:7:45", + "nodeType": "YulIdentifier", + "src": "16489:7:45" + } + ] + } + ] + }, + "nativeSrc": "16433:82:45", + "nodeType": "YulCase", + "src": "16433:82:45", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "length", + "nativeSrc": "15413:6:45", + "nodeType": "YulIdentifier", + "src": "15413:6:45" + }, + { + "arguments": [ + { + "name": "_postBytes", + "nativeSrc": "15427:10:45", + "nodeType": "YulIdentifier", + "src": "15427:10:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15421:5:45", + "nodeType": "YulIdentifier", + "src": "15421:5:45" + }, + "nativeSrc": "15421:17:45", + "nodeType": "YulFunctionCall", + "src": "15421:17:45" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "15410:2:45", + "nodeType": "YulIdentifier", + "src": "15410:2:45" + }, + "nativeSrc": "15410:29:45", + "nodeType": "YulFunctionCall", + "src": "15410:29:45" + }, + "nativeSrc": "15403:1112:45", + "nodeType": "YulSwitch", + "src": "15403:1112:45" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18537, + "isOffset": false, + "isSlot": false, + "src": "15427:10:45", + "valueSize": 1 + }, + { + "declaration": 18537, + "isOffset": false, + "isSlot": false, + "src": "15848:10:45", + "valueSize": 1 + }, + { + "declaration": 18535, + "isOffset": false, + "isSlot": false, + "src": "15316:9:45", + "valueSize": 1 + }, + { + "declaration": 18535, + "isOffset": false, + "isSlot": false, + "src": "15731:9:45", + "valueSize": 1 + }, + { + "declaration": 18543, + "isOffset": false, + "isSlot": false, + "src": "16322:7:45", + "valueSize": 1 + }, + { + "declaration": 18543, + "isOffset": false, + "isSlot": false, + "src": "16489:7:45", + "valueSize": 1 + } + ], + "id": 18546, + "nodeType": "InlineAssembly", + "src": "15273:1252:45" + }, + { + "expression": { + "id": 18547, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18543, + "src": "16542:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 18541, + "id": 18548, + "nodeType": "Return", + "src": "16535:14:45" + } + ] + }, + "id": 18550, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "equal", + "nameLocation": "15149:5:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18538, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18535, + "mutability": "mutable", + "name": "_preBytes", + "nameLocation": "15168:9:45", + "nodeType": "VariableDeclaration", + "scope": 18550, + "src": "15155:22:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18534, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15155:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18537, + "mutability": "mutable", + "name": "_postBytes", + "nameLocation": "15192:10:45", + "nodeType": "VariableDeclaration", + "scope": 18550, + "src": "15179:23:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18536, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15179:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "15154:49:45" + }, + "returnParameters": { + "id": 18541, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18540, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18550, + "src": "15227:4:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18539, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15227:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "15226:6:45" + }, + "scope": 18568, + "src": "15140:1416:45", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 18566, + "nodeType": "Block", + "src": "16713:2559:45", + "statements": [ + { + "assignments": [ + 18560 + ], + "declarations": [ + { + "constant": false, + "id": 18560, + "mutability": "mutable", + "name": "success", + "nameLocation": "16728:7:45", + "nodeType": "VariableDeclaration", + "scope": 18566, + "src": "16723:12:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18559, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16723:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 18562, + "initialValue": { + "hexValue": "74727565", + "id": 18561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16738:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "nodeType": "VariableDeclarationStatement", + "src": "16723:19:45" + }, + { + "AST": { + "nativeSrc": "16762:2479:45", + "nodeType": "YulBlock", + "src": "16762:2479:45", + "statements": [ + { + "nativeSrc": "16821:34:45", + "nodeType": "YulVariableDeclaration", + "src": "16821:34:45", + "value": { + "arguments": [ + { + "name": "_preBytes.slot", + "nativeSrc": "16840:14:45", + "nodeType": "YulIdentifier", + "src": "16840:14:45" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "16834:5:45", + "nodeType": "YulIdentifier", + "src": "16834:5:45" + }, + "nativeSrc": "16834:21:45", + "nodeType": "YulFunctionCall", + "src": "16834:21:45" + }, + "variables": [ + { + "name": "fslot", + "nativeSrc": "16825:5:45", + "nodeType": "YulTypedName", + "src": "16825:5:45", + "type": "" + } + ] + }, + { + "nativeSrc": "16946:76:45", + "nodeType": "YulVariableDeclaration", + "src": "16946:76:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "fslot", + "nativeSrc": "16969:5:45", + "nodeType": "YulIdentifier", + "src": "16969:5:45" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16984:5:45", + "nodeType": "YulLiteral", + "src": "16984:5:45", + "type": "", + "value": "0x100" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "fslot", + "nativeSrc": "17002:5:45", + "nodeType": "YulIdentifier", + "src": "17002:5:45" + }, + { + "kind": "number", + "nativeSrc": "17009:1:45", + "nodeType": "YulLiteral", + "src": "17009:1:45", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16998:3:45", + "nodeType": "YulIdentifier", + "src": "16998:3:45" + }, + "nativeSrc": "16998:13:45", + "nodeType": "YulFunctionCall", + "src": "16998:13:45" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "16991:6:45", + "nodeType": "YulIdentifier", + "src": "16991:6:45" + }, + "nativeSrc": "16991:21:45", + "nodeType": "YulFunctionCall", + "src": "16991:21:45" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "16980:3:45", + "nodeType": "YulIdentifier", + "src": "16980:3:45" + }, + "nativeSrc": "16980:33:45", + "nodeType": "YulFunctionCall", + "src": "16980:33:45" + }, + { + "kind": "number", + "nativeSrc": "17015:1:45", + "nodeType": "YulLiteral", + "src": "17015:1:45", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16976:3:45", + "nodeType": "YulIdentifier", + "src": "16976:3:45" + }, + "nativeSrc": "16976:41:45", + "nodeType": "YulFunctionCall", + "src": "16976:41:45" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16965:3:45", + "nodeType": "YulIdentifier", + "src": "16965:3:45" + }, + "nativeSrc": "16965:53:45", + "nodeType": "YulFunctionCall", + "src": "16965:53:45" + }, + { + "kind": "number", + "nativeSrc": "17020:1:45", + "nodeType": "YulLiteral", + "src": "17020:1:45", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "16961:3:45", + "nodeType": "YulIdentifier", + "src": "16961:3:45" + }, + "nativeSrc": "16961:61:45", + "nodeType": "YulFunctionCall", + "src": "16961:61:45" + }, + "variables": [ + { + "name": "slength", + "nativeSrc": "16950:7:45", + "nodeType": "YulTypedName", + "src": "16950:7:45", + "type": "" + } + ] + }, + { + "nativeSrc": "17035:32:45", + "nodeType": "YulVariableDeclaration", + "src": "17035:32:45", + "value": { + "arguments": [ + { + "name": "_postBytes", + "nativeSrc": "17056:10:45", + "nodeType": "YulIdentifier", + "src": "17056:10:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17050:5:45", + "nodeType": "YulIdentifier", + "src": "17050:5:45" + }, + "nativeSrc": "17050:17:45", + "nodeType": "YulFunctionCall", + "src": "17050:17:45" + }, + "variables": [ + { + "name": "mlength", + "nativeSrc": "17039:7:45", + "nodeType": "YulTypedName", + "src": "17039:7:45", + "type": "" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "17191:1945:45", + "nodeType": "YulBlock", + "src": "17191:1945:45", + "statements": [ + { + "body": { + "nativeSrc": "17502:1620:45", + "nodeType": "YulBlock", + "src": "17502:1620:45", + "statements": [ + { + "cases": [ + { + "body": { + "nativeSrc": "17574:340:45", + "nodeType": "YulBlock", + "src": "17574:340:45", + "statements": [ + { + "nativeSrc": "17667:38:45", + "nodeType": "YulAssignment", + "src": "17667:38:45", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "fslot", + "nativeSrc": "17684:5:45", + "nodeType": "YulIdentifier", + "src": "17684:5:45" + }, + { + "kind": "number", + "nativeSrc": "17691:5:45", + "nodeType": "YulLiteral", + "src": "17691:5:45", + "type": "", + "value": "0x100" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "17680:3:45", + "nodeType": "YulIdentifier", + "src": "17680:3:45" + }, + "nativeSrc": "17680:17:45", + "nodeType": "YulFunctionCall", + "src": "17680:17:45" + }, + { + "kind": "number", + "nativeSrc": "17699:5:45", + "nodeType": "YulLiteral", + "src": "17699:5:45", + "type": "", + "value": "0x100" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "17676:3:45", + "nodeType": "YulIdentifier", + "src": "17676:3:45" + }, + "nativeSrc": "17676:29:45", + "nodeType": "YulFunctionCall", + "src": "17676:29:45" + }, + "variableNames": [ + { + "name": "fslot", + "nativeSrc": "17667:5:45", + "nodeType": "YulIdentifier", + "src": "17667:5:45" + } + ] + }, + { + "body": { + "nativeSrc": "17782:110:45", + "nodeType": "YulBlock", + "src": "17782:110:45", + "statements": [ + { + "nativeSrc": "17854:12:45", + "nodeType": "YulAssignment", + "src": "17854:12:45", + "value": { + "kind": "number", + "nativeSrc": "17865:1:45", + "nodeType": "YulLiteral", + "src": "17865:1:45", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "17854:7:45", + "nodeType": "YulIdentifier", + "src": "17854:7:45" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "fslot", + "nativeSrc": "17744:5:45", + "nodeType": "YulIdentifier", + "src": "17744:5:45" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_postBytes", + "nativeSrc": "17761:10:45", + "nodeType": "YulIdentifier", + "src": "17761:10:45" + }, + { + "kind": "number", + "nativeSrc": "17773:4:45", + "nodeType": "YulLiteral", + "src": "17773:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17757:3:45", + "nodeType": "YulIdentifier", + "src": "17757:3:45" + }, + "nativeSrc": "17757:21:45", + "nodeType": "YulFunctionCall", + "src": "17757:21:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17751:5:45", + "nodeType": "YulIdentifier", + "src": "17751:5:45" + }, + "nativeSrc": "17751:28:45", + "nodeType": "YulFunctionCall", + "src": "17751:28:45" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "17741:2:45", + "nodeType": "YulIdentifier", + "src": "17741:2:45" + }, + "nativeSrc": "17741:39:45", + "nodeType": "YulFunctionCall", + "src": "17741:39:45" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "17734:6:45", + "nodeType": "YulIdentifier", + "src": "17734:6:45" + }, + "nativeSrc": "17734:47:45", + "nodeType": "YulFunctionCall", + "src": "17734:47:45" + }, + "nativeSrc": "17731:161:45", + "nodeType": "YulIf", + "src": "17731:161:45" + } + ] + }, + "nativeSrc": "17567:347:45", + "nodeType": "YulCase", + "src": "17567:347:45", + "value": { + "kind": "number", + "nativeSrc": "17572:1:45", + "nodeType": "YulLiteral", + "src": "17572:1:45", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "17943:1161:45", + "nodeType": "YulBlock", + "src": "17943:1161:45", + "statements": [ + { + "nativeSrc": "18212:11:45", + "nodeType": "YulVariableDeclaration", + "src": "18212:11:45", + "value": { + "kind": "number", + "nativeSrc": "18222:1:45", + "nodeType": "YulLiteral", + "src": "18222:1:45", + "type": "", + "value": "1" + }, + "variables": [ + { + "name": "cb", + "nativeSrc": "18216:2:45", + "nodeType": "YulTypedName", + "src": "18216:2:45", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18336:3:45", + "nodeType": "YulLiteral", + "src": "18336:3:45", + "type": "", + "value": "0x0" + }, + { + "name": "_preBytes.slot", + "nativeSrc": "18341:14:45", + "nodeType": "YulIdentifier", + "src": "18341:14:45" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18329:6:45", + "nodeType": "YulIdentifier", + "src": "18329:6:45" + }, + "nativeSrc": "18329:27:45", + "nodeType": "YulFunctionCall", + "src": "18329:27:45" + }, + "nativeSrc": "18329:27:45", + "nodeType": "YulExpressionStatement", + "src": "18329:27:45" + }, + { + "nativeSrc": "18381:30:45", + "nodeType": "YulVariableDeclaration", + "src": "18381:30:45", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18401:3:45", + "nodeType": "YulLiteral", + "src": "18401:3:45", + "type": "", + "value": "0x0" + }, + { + "kind": "number", + "nativeSrc": "18406:4:45", + "nodeType": "YulLiteral", + "src": "18406:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "18391:9:45", + "nodeType": "YulIdentifier", + "src": "18391:9:45" + }, + "nativeSrc": "18391:20:45", + "nodeType": "YulFunctionCall", + "src": "18391:20:45" + }, + "variables": [ + { + "name": "sc", + "nativeSrc": "18385:2:45", + "nodeType": "YulTypedName", + "src": "18385:2:45", + "type": "" + } + ] + }, + { + "nativeSrc": "18437:31:45", + "nodeType": "YulVariableDeclaration", + "src": "18437:31:45", + "value": { + "arguments": [ + { + "name": "_postBytes", + "nativeSrc": "18451:10:45", + "nodeType": "YulIdentifier", + "src": "18451:10:45" + }, + { + "kind": "number", + "nativeSrc": "18463:4:45", + "nodeType": "YulLiteral", + "src": "18463:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18447:3:45", + "nodeType": "YulIdentifier", + "src": "18447:3:45" + }, + "nativeSrc": "18447:21:45", + "nodeType": "YulFunctionCall", + "src": "18447:21:45" + }, + "variables": [ + { + "name": "mc", + "nativeSrc": "18441:2:45", + "nodeType": "YulTypedName", + "src": "18441:2:45", + "type": "" + } + ] + }, + { + "nativeSrc": "18493:27:45", + "nodeType": "YulVariableDeclaration", + "src": "18493:27:45", + "value": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "18508:2:45", + "nodeType": "YulIdentifier", + "src": "18508:2:45" + }, + { + "name": "mlength", + "nativeSrc": "18512:7:45", + "nodeType": "YulIdentifier", + "src": "18512:7:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18504:3:45", + "nodeType": "YulIdentifier", + "src": "18504:3:45" + }, + "nativeSrc": "18504:16:45", + "nodeType": "YulFunctionCall", + "src": "18504:16:45" + }, + "variables": [ + { + "name": "end", + "nativeSrc": "18497:3:45", + "nodeType": "YulTypedName", + "src": "18497:3:45", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18828:254:45", + "nodeType": "YulBlock", + "src": "18828:254:45", + "statements": [ + { + "body": { + "nativeSrc": "18894:162:45", + "nodeType": "YulBlock", + "src": "18894:162:45", + "statements": [ + { + "nativeSrc": "18974:12:45", + "nodeType": "YulAssignment", + "src": "18974:12:45", + "value": { + "kind": "number", + "nativeSrc": "18985:1:45", + "nodeType": "YulLiteral", + "src": "18985:1:45", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "18974:7:45", + "nodeType": "YulIdentifier", + "src": "18974:7:45" + } + ] + }, + { + "nativeSrc": "19019:7:45", + "nodeType": "YulAssignment", + "src": "19019:7:45", + "value": { + "kind": "number", + "nativeSrc": "19025:1:45", + "nodeType": "YulLiteral", + "src": "19025:1:45", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "cb", + "nativeSrc": "19019:2:45", + "nodeType": "YulIdentifier", + "src": "19019:2:45" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "sc", + "nativeSrc": "18877:2:45", + "nodeType": "YulIdentifier", + "src": "18877:2:45" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "18871:5:45", + "nodeType": "YulIdentifier", + "src": "18871:5:45" + }, + "nativeSrc": "18871:9:45", + "nodeType": "YulFunctionCall", + "src": "18871:9:45" + }, + { + "arguments": [ + { + "name": "mc", + "nativeSrc": "18888:2:45", + "nodeType": "YulIdentifier", + "src": "18888:2:45" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18882:5:45", + "nodeType": "YulIdentifier", + "src": "18882:5:45" + }, + "nativeSrc": "18882:9:45", + "nodeType": "YulFunctionCall", + "src": "18882:9:45" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "18868:2:45", + "nodeType": "YulIdentifier", + "src": "18868:2:45" + }, + "nativeSrc": "18868:24:45", + "nodeType": "YulFunctionCall", + "src": "18868:24:45" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "18861:6:45", + "nodeType": "YulIdentifier", + "src": "18861:6:45" + }, + "nativeSrc": "18861:32:45", + "nodeType": "YulFunctionCall", + "src": "18861:32:45" + }, + "nativeSrc": "18858:198:45", + "nodeType": "YulIf", + "src": "18858:198:45" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "mc", + "nativeSrc": "18689:2:45", + "nodeType": "YulIdentifier", + "src": "18689:2:45" + }, + { + "name": "end", + "nativeSrc": "18693:3:45", + "nodeType": "YulIdentifier", + "src": "18693:3:45" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "18686:2:45", + "nodeType": "YulIdentifier", + "src": "18686:2:45" + }, + "nativeSrc": "18686:11:45", + "nodeType": "YulFunctionCall", + "src": "18686:11:45" + }, + { + "name": "cb", + "nativeSrc": "18699:2:45", + "nodeType": "YulIdentifier", + "src": "18699:2:45" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18682:3:45", + "nodeType": "YulIdentifier", + "src": "18682:3:45" + }, + "nativeSrc": "18682:20:45", + "nodeType": "YulFunctionCall", + "src": "18682:20:45" + }, + { + "kind": "number", + "nativeSrc": "18704:1:45", + "nodeType": "YulLiteral", + "src": "18704:1:45", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "18679:2:45", + "nodeType": "YulIdentifier", + "src": "18679:2:45" + }, + "nativeSrc": "18679:27:45", + "nodeType": "YulFunctionCall", + "src": "18679:27:45" + }, + "nativeSrc": "18672:410:45", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "18707:120:45", + "nodeType": "YulBlock", + "src": "18707:120:45", + "statements": [ + { + "nativeSrc": "18737:16:45", + "nodeType": "YulAssignment", + "src": "18737:16:45", + "value": { + "arguments": [ + { + "name": "sc", + "nativeSrc": "18747:2:45", + "nodeType": "YulIdentifier", + "src": "18747:2:45" + }, + { + "kind": "number", + "nativeSrc": "18751:1:45", + "nodeType": "YulLiteral", + "src": "18751:1:45", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18743:3:45", + "nodeType": "YulIdentifier", + "src": "18743:3:45" + }, + "nativeSrc": "18743:10:45", + "nodeType": "YulFunctionCall", + "src": "18743:10:45" + }, + "variableNames": [ + { + "name": "sc", + "nativeSrc": "18737:2:45", + "nodeType": "YulIdentifier", + "src": "18737:2:45" + } + ] + }, + { + "nativeSrc": "18782:19:45", + "nodeType": "YulAssignment", + "src": "18782:19:45", + "value": { + "arguments": [ + { + "name": "mc", + "nativeSrc": "18792:2:45", + "nodeType": "YulIdentifier", + "src": "18792:2:45" + }, + { + "kind": "number", + "nativeSrc": "18796:4:45", + "nodeType": "YulLiteral", + "src": "18796:4:45", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18788:3:45", + "nodeType": "YulIdentifier", + "src": "18788:3:45" + }, + "nativeSrc": "18788:13:45", + "nodeType": "YulFunctionCall", + "src": "18788:13:45" + }, + "variableNames": [ + { + "name": "mc", + "nativeSrc": "18782:2:45", + "nodeType": "YulIdentifier", + "src": "18782:2:45" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "18676:2:45", + "nodeType": "YulBlock", + "src": "18676:2:45", + "statements": [] + }, + "src": "18672:410:45" + } + ] + }, + "nativeSrc": "17935:1169:45", + "nodeType": "YulCase", + "src": "17935:1169:45", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "slength", + "nativeSrc": "17534:7:45", + "nodeType": "YulIdentifier", + "src": "17534:7:45" + }, + { + "kind": "number", + "nativeSrc": "17543:2:45", + "nodeType": "YulLiteral", + "src": "17543:2:45", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "17531:2:45", + "nodeType": "YulIdentifier", + "src": "17531:2:45" + }, + "nativeSrc": "17531:15:45", + "nodeType": "YulFunctionCall", + "src": "17531:15:45" + }, + "nativeSrc": "17524:1580:45", + "nodeType": "YulSwitch", + "src": "17524:1580:45" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "slength", + "nativeSrc": "17492:7:45", + "nodeType": "YulIdentifier", + "src": "17492:7:45" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "17485:6:45", + "nodeType": "YulIdentifier", + "src": "17485:6:45" + }, + "nativeSrc": "17485:15:45", + "nodeType": "YulFunctionCall", + "src": "17485:15:45" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "17478:6:45", + "nodeType": "YulIdentifier", + "src": "17478:6:45" + }, + "nativeSrc": "17478:23:45", + "nodeType": "YulFunctionCall", + "src": "17478:23:45" + }, + "nativeSrc": "17475:1647:45", + "nodeType": "YulIf", + "src": "17475:1647:45" + } + ] + }, + "nativeSrc": "17184:1952:45", + "nodeType": "YulCase", + "src": "17184:1952:45", + "value": { + "kind": "number", + "nativeSrc": "17189:1:45", + "nodeType": "YulLiteral", + "src": "17189:1:45", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "19157:74:45", + "nodeType": "YulBlock", + "src": "19157:74:45", + "statements": [ + { + "nativeSrc": "19205:12:45", + "nodeType": "YulAssignment", + "src": "19205:12:45", + "value": { + "kind": "number", + "nativeSrc": "19216:1:45", + "nodeType": "YulLiteral", + "src": "19216:1:45", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "success", + "nativeSrc": "19205:7:45", + "nodeType": "YulIdentifier", + "src": "19205:7:45" + } + ] + } + ] + }, + "nativeSrc": "19149:82:45", + "nodeType": "YulCase", + "src": "19149:82:45", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "slength", + "nativeSrc": "17154:7:45", + "nodeType": "YulIdentifier", + "src": "17154:7:45" + }, + { + "name": "mlength", + "nativeSrc": "17163:7:45", + "nodeType": "YulIdentifier", + "src": "17163:7:45" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "17151:2:45", + "nodeType": "YulIdentifier", + "src": "17151:2:45" + }, + "nativeSrc": "17151:20:45", + "nodeType": "YulFunctionCall", + "src": "17151:20:45" + }, + "nativeSrc": "17144:2087:45", + "nodeType": "YulSwitch", + "src": "17144:2087:45" + } + ] + }, + "evmVersion": "paris", + "externalReferences": [ + { + "declaration": 18554, + "isOffset": false, + "isSlot": false, + "src": "17056:10:45", + "valueSize": 1 + }, + { + "declaration": 18554, + "isOffset": false, + "isSlot": false, + "src": "17761:10:45", + "valueSize": 1 + }, + { + "declaration": 18554, + "isOffset": false, + "isSlot": false, + "src": "18451:10:45", + "valueSize": 1 + }, + { + "declaration": 18552, + "isOffset": false, + "isSlot": true, + "src": "16840:14:45", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 18552, + "isOffset": false, + "isSlot": true, + "src": "18341:14:45", + "suffix": "slot", + "valueSize": 1 + }, + { + "declaration": 18560, + "isOffset": false, + "isSlot": false, + "src": "17854:7:45", + "valueSize": 1 + }, + { + "declaration": 18560, + "isOffset": false, + "isSlot": false, + "src": "18974:7:45", + "valueSize": 1 + }, + { + "declaration": 18560, + "isOffset": false, + "isSlot": false, + "src": "19205:7:45", + "valueSize": 1 + } + ], + "id": 18563, + "nodeType": "InlineAssembly", + "src": "16753:2488:45" + }, + { + "expression": { + "id": 18564, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 18560, + "src": "19258:7:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 18558, + "id": 18565, + "nodeType": "Return", + "src": "19251:14:45" + } + ] + }, + "id": 18567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "equalStorage", + "nameLocation": "16571:12:45", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 18555, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18552, + "mutability": "mutable", + "name": "_preBytes", + "nameLocation": "16607:9:45", + "nodeType": "VariableDeclaration", + "scope": 18567, + "src": "16593:23:45", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18551, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "16593:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 18554, + "mutability": "mutable", + "name": "_postBytes", + "nameLocation": "16639:10:45", + "nodeType": "VariableDeclaration", + "scope": 18567, + "src": "16626:23:45", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 18553, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "16626:5:45", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "16583:72:45" + }, + "returnParameters": { + "id": 18558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 18557, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 18567, + "src": "16703:4:45", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 18556, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "16703:4:45", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "16702:6:45" + }, + "scope": 18568, + "src": "16562:2710:45", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 18569, + "src": "370:18904:45", + "usedErrors": [], + "usedEvents": [] + } + ], + "src": "336:18939:45" + }, + "id": 45 + } + }, + "contracts": { + "@iden3/contracts/interfaces/ICircuitValidator.sol": { + "ICircuitValidator": { + "abi": [ + { + "inputs": [], + "name": "getSupportedCircuitIds", + "outputs": [ + { + "internalType": "string[]", + "name": "ids", + "type": "string[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "name", + "type": "string" + } + ], + "name": "inputIndexOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "inputs", + "type": "uint256[]" + }, + { + "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": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "verify", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "key", + "type": "string" + }, + { + "internalType": "uint256", + "name": "inputIndex", + "type": "uint256" + } + ], + "internalType": "struct ICircuitValidator.KeyToInputIndex[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "zkProof", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "contract IState", + "name": "state", + "type": "address" + } + ], + "name": "verifyV2", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "internalType": "struct ICircuitValidator.Signal[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getSupportedCircuitIds()": "fb5af2a2", + "inputIndexOf(string)": "b16a394f", + "verify(uint256[],uint256[2],uint256[2][2],uint256[2],bytes,address)": "f177a69e", + "verifyV2(bytes,bytes,address,address)": "d6614a6b", + "version()": "54fd4d50" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getSupportedCircuitIds\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"ids\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"inputIndexOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"inputs\",\"type\":\"uint256[]\"},{\"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\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"verify\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"inputIndex\",\"type\":\"uint256\"}],\"internalType\":\"struct ICircuitValidator.KeyToInputIndex[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"zkProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"contract IState\",\"name\":\"state\",\"type\":\"address\"}],\"name\":\"verifyV2\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct ICircuitValidator.Signal[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ICircuitValidator. Interface for circuit verification.\",\"kind\":\"dev\",\"methods\":{\"getSupportedCircuitIds()\":{\"details\":\"Get supported circuit ids.\",\"returns\":{\"ids\":\"Array of circuit ids supported.\"}},\"inputIndexOf(string)\":{\"details\":\"Get the index of the public input of the circuit by name.\",\"params\":{\"name\":\"Name of the public input.\"},\"returns\":{\"_0\":\"Index of the public input.\"}},\"verify(uint256[],uint256[2],uint256[2][2],uint256[2],bytes,address)\":{\"details\":\"Verify with the supported circuit informed in the request query data the groth16 proof \\u03c0=([\\u03c0a]1,[\\u03c0b]2,[\\u03c0c]1) and that the proof was generated by the sender.\",\"params\":{\"a\":\"\\u03c0a element of the groth16 proof.\",\"b\":\"\\u03c0b element of the groth16 proof.\",\"c\":\"\\u03c0c element of the groth16 proof.\",\"data\":\"Request query data of the credential to verify.\",\"inputs\":\"Public inputs of the circuit.\",\"sender\":\"Sender of the proof.\"},\"returns\":{\"_0\":\"Array of key to public input index as result.\"}},\"verifyV2(bytes,bytes,address,address)\":{\"details\":\"Verify with the supported circuit informed in the request query data the groth16 proof packed as bytes and that the proof was generated by the sender.\",\"params\":{\"data\":\"Request query data of the credential to verify.\",\"sender\":\"Sender of the proof.\",\"state\":\"State contract to get identities and gist states to check.\",\"zkProof\":\"Proof packed as bytes to verify.\"},\"returns\":{\"_0\":\"Array of public signals as result.\"}},\"version()\":{\"details\":\"Get version of the contract\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/interfaces/ICircuitValidator.sol\":\"ICircuitValidator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/interfaces/ICircuitValidator.sol\":{\"keccak256\":\"0xb69c84a4f46354a301c1971f8c518de42370003ab48d8a75d80b46de736371b8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://692c396954d2c5912ddd137b0ee1ab20f6962204213ae122cb34705a25e89cf2\",\"dweb:/ipfs/QmdpEkCHeu6dbsfDmxzSUKwtfndXoGZrPgy1M3Ly81p3Hi\"]},\"@iden3/contracts/interfaces/IState.sol\":{\"keccak256\":\"0x9ad1637f51eefacb8b80afab1a2568389da02142dfd0bddf2a769f8fe118f1d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://41253a4bb51672482bfb1207ccae04f5a173e47872f52240f5b94f0e24ccd64a\",\"dweb:/ipfs/QmfC7LpzWsUtPrDJvtT3swQ52nCZGVMC4SRtFVx3qZ5RFU\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@iden3/contracts/interfaces/IIdentifiable.sol": { + "IIdentifiable": { + "abi": [ + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getId()": "5d1ca631" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"IIdentifiable. Interface for identifiable entities.\",\"kind\":\"dev\",\"methods\":{\"getId()\":{\"details\":\"getId. Get id of the identity\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/interfaces/IIdentifiable.sol\":\"IIdentifiable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/interfaces/IIdentifiable.sol\":{\"keccak256\":\"0x622cb97ad95adc38d5b3138fa9ee14b38f11f541c6976687309d61b1d2f2e607\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6e21fa8dccc84d47f0db37fb5747f4d1514187cf4d94ec5fbc54e9ad3f520f74\",\"dweb:/ipfs/QmXM34XGaASwW3QdrbSJXHmwfVurnDdyuYbbiW8wsKaxH3\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol": { + "IOnchainCredentialStatusResolver": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + } + ], + "name": "getRevocationStatus", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootOfRoots", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.IdentityStateRoots", + "name": "issuer", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.Proof", + "name": "mtp", + "type": "tuple" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.CredentialStatus", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + } + ], + "name": "getRevocationStatusByIdAndState", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootOfRoots", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.IdentityStateRoots", + "name": "issuer", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.Proof", + "name": "mtp", + "type": "tuple" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.CredentialStatus", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getRevocationStatus(uint256,uint64)": "110c96a7", + "getRevocationStatusByIdAndState(uint256,uint256,uint64)": "aad72921" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationStatus\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootOfRoots\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.IdentityStateRoots\",\"name\":\"issuer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.Proof\",\"name\":\"mtp\",\"type\":\"tuple\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.CredentialStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationStatusByIdAndState\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootOfRoots\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.IdentityStateRoots\",\"name\":\"issuer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.Proof\",\"name\":\"mtp\",\"type\":\"tuple\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.CredentialStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getRevocationStatus(uint256,uint64)\":{\"details\":\"returns revocation status of a claim using given revocation nonce\",\"params\":{\"id\":\"Issuer's identifier\",\"nonce\":\"Revocation nonce\"},\"returns\":{\"_0\":\"CredentialStatus\"}},\"getRevocationStatusByIdAndState(uint256,uint256,uint64)\":{\"details\":\"returns revocation status of a claim using given revocation nonce, id and state\",\"params\":{\"id\":\"Issuer's identifier\",\"nonce\":\"Revocation nonce\",\"state\":\"of the Issuer\"},\"returns\":{\"_0\":\"CredentialStatus\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol\":\"IOnchainCredentialStatusResolver\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol\":{\"keccak256\":\"0x88aa3921c23502bfa297133354aaff8b2428fb49082f3e1644458956a73b06f5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0dd69acd52723b03751f383ec2f0f6772197c8b100a525cb40448ac4f25bdc42\",\"dweb:/ipfs/QmVcugmmLC3hoHzvCe5nEx7GT1jTKcriKbtB4PZ3LEwnrE\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@iden3/contracts/interfaces/IState.sol": { + "IState": { + "abi": [ + { + "inputs": [], + "name": "getDefaultIdType", + "outputs": [ + { + "internalType": "bytes2", + "name": "", + "type": "bytes2" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + } + ], + "name": "getGISTRootInfo", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "replacedByRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAtTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "replacedAtTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAtBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "replacedAtBlock", + "type": "uint256" + } + ], + "internalType": "struct IState.GistRootInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes2", + "name": "idType", + "type": "bytes2" + }, + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + } + ], + "name": "getGistRootReplacedAt", + "outputs": [ + { + "internalType": "uint256", + "name": "replacedAtTimestamp", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "getIdTypeIfSupported", + "outputs": [ + { + "internalType": "bytes2", + "name": "", + "type": "bytes2" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "getStateInfoById", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "replacedByState", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAtTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "replacedAtTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAtBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "replacedAtBlock", + "type": "uint256" + } + ], + "internalType": "struct IState.StateInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + } + ], + "name": "getStateInfoByIdAndState", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "replacedByState", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAtTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "replacedAtTimestamp", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "createdAtBlock", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "replacedAtBlock", + "type": "uint256" + } + ], + "internalType": "struct IState.StateInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + } + ], + "name": "getStateReplacedAt", + "outputs": [ + { + "internalType": "uint256", + "name": "replacedAtTimestamp", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + } + ], + "name": "idExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes2", + "name": "idType", + "type": "bytes2" + } + ], + "name": "isIdTypeSupported", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "proofs", + "type": "bytes" + } + ], + "name": "processCrossChainProofs", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + } + ], + "name": "stateExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "oldState", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "newState", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isOldStateGenesis", + "type": "bool" + }, + { + "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]" + } + ], + "name": "transitState", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "oldState", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "newState", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "isOldStateGenesis", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "methodId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "methodParams", + "type": "bytes" + } + ], + "name": "transitStateGeneric", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getDefaultIdType()": "133fe385", + "getGISTRootInfo(uint256)": "7c1a66de", + "getGistRootReplacedAt(bytes2,uint256)": "0a7a5469", + "getIdTypeIfSupported(uint256)": "dd16059e", + "getStateInfoById(uint256)": "b4bdea55", + "getStateInfoByIdAndState(uint256,uint256)": "53c87312", + "getStateReplacedAt(uint256,uint256)": "09478aa4", + "idExists(uint256)": "0b8a295a", + "isIdTypeSupported(bytes2)": "932e87a1", + "processCrossChainProofs(bytes)": "e28d24b0", + "stateExists(uint256,uint256)": "233a4d23", + "transitState(uint256,uint256,uint256,bool,uint256[2],uint256[2][2],uint256[2])": "28f88a65", + "transitStateGeneric(uint256,uint256,uint256,bool,uint256,bytes)": "7d0dcba5" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getDefaultIdType\",\"outputs\":[{\"internalType\":\"bytes2\",\"name\":\"\",\"type\":\"bytes2\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getGISTRootInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedByRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAtTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedAtTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAtBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedAtBlock\",\"type\":\"uint256\"}],\"internalType\":\"struct IState.GistRootInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"idType\",\"type\":\"bytes2\"},{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getGistRootReplacedAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"replacedAtTimestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getIdTypeIfSupported\",\"outputs\":[{\"internalType\":\"bytes2\",\"name\":\"\",\"type\":\"bytes2\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"getStateInfoById\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedByState\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAtTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedAtTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAtBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedAtBlock\",\"type\":\"uint256\"}],\"internalType\":\"struct IState.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"}],\"name\":\"getStateInfoByIdAndState\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedByState\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAtTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedAtTimestamp\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"createdAtBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"replacedAtBlock\",\"type\":\"uint256\"}],\"internalType\":\"struct IState.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"}],\"name\":\"getStateReplacedAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"replacedAtTimestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"idExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes2\",\"name\":\"idType\",\"type\":\"bytes2\"}],\"name\":\"isIdTypeSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"proofs\",\"type\":\"bytes\"}],\"name\":\"processCrossChainProofs\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"}],\"name\":\"stateExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldState\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newState\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isOldStateGenesis\",\"type\":\"bool\"},{\"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]\"}],\"name\":\"transitState\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"oldState\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"newState\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isOldStateGenesis\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"methodId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"methodParams\",\"type\":\"bytes\"}],\"name\":\"transitStateGeneric\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getDefaultIdType()\":{\"details\":\"Get defaultIdType\",\"returns\":{\"_0\":\"defaultIdType\"}},\"getGISTRootInfo(uint256)\":{\"details\":\"Retrieve the specific GIST root information.\",\"params\":{\"root\":\"GIST root.\"},\"returns\":{\"_0\":\"The GIST root info.\"}},\"getGistRootReplacedAt(bytes2,uint256)\":{\"details\":\"Get timestamp when the global state was replaced.\",\"params\":{\"idType\":\"Id type of the chain\",\"root\":\"Root of the global state\"},\"returns\":{\"replacedAtTimestamp\":\"Timestamp when the global state was replaced by new global state\"}},\"getIdTypeIfSupported(uint256)\":{\"details\":\"Get id if the id type supported for the id, otherwise revert.\",\"params\":{\"id\":\"An identity.\"},\"returns\":{\"_0\":\"The id type.\"}},\"getStateInfoById(uint256)\":{\"details\":\"Retrieve last state information of specific id.\",\"params\":{\"id\":\"An identity.\"},\"returns\":{\"_0\":\"The state info.\"}},\"getStateInfoByIdAndState(uint256,uint256)\":{\"details\":\"Retrieve state information by id and state.\",\"params\":{\"id\":\"An identity.\",\"state\":\"A state.\"},\"returns\":{\"_0\":\"The state info.\"}},\"getStateReplacedAt(uint256,uint256)\":{\"details\":\"Get timestamp when the identity state was replaced.\",\"params\":{\"id\":\"Identity\",\"state\":\"State of the identity\"},\"returns\":{\"replacedAtTimestamp\":\"Timestamp when the identity state was replaced by new identity state\"}},\"idExists(uint256)\":{\"details\":\"Check if identity exists.\",\"params\":{\"id\":\"Identity\"},\"returns\":{\"_0\":\"True if the identity exists\"}},\"isIdTypeSupported(bytes2)\":{\"details\":\"Check if the id type supported.\",\"params\":{\"idType\":\"id type.\"},\"returns\":{\"_0\":\"True if the id type supported.\"}},\"processCrossChainProofs(bytes)\":{\"details\":\"Process the cross chain proofs with the identities and global states.\",\"params\":{\"proofs\":\"Proofs with the identities and global states\"}},\"stateExists(uint256,uint256)\":{\"details\":\"Check if state exists.\",\"params\":{\"id\":\"Identity\",\"state\":\"State\"},\"returns\":{\"_0\":\"True if the state exists\"}},\"transitState(uint256,uint256,uint256,bool,uint256[2],uint256[2][2],uint256[2])\":{\"details\":\"Performs state transition\",\"params\":{\"a\":\"Proof.A\",\"b\":\"Proof.B\",\"c\":\"Proof.C\",\"id\":\"Identifier of the identity\",\"isOldStateGenesis\":\"Flag if previous identity state is genesis\",\"newState\":\"New state of the identity\",\"oldState\":\"Previous state of the identity\"}},\"transitStateGeneric(uint256,uint256,uint256,bool,uint256,bytes)\":{\"details\":\"Performs state transition\",\"params\":{\"id\":\"Identity\",\"isOldStateGenesis\":\"Is the previous state genesis?\",\"methodId\":\"State transition method id\",\"methodParams\":\"State transition method-specific params\",\"newState\":\"New identity state\",\"oldState\":\"Previous identity state\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/interfaces/IState.sol\":\"IState\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/interfaces/IState.sol\":{\"keccak256\":\"0x9ad1637f51eefacb8b80afab1a2568389da02142dfd0bddf2a769f8fe118f1d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://41253a4bb51672482bfb1207ccae04f5a173e47872f52240f5b94f0e24ccd64a\",\"dweb:/ipfs/QmfC7LpzWsUtPrDJvtT3swQ52nCZGVMC4SRtFVx3qZ5RFU\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@iden3/contracts/interfaces/IZKPVerifier.sol": { + "IZKPVerifier": { + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint64", + "name": "requestId", + "type": "uint64" + } + ], + "name": "getProofStatus", + "outputs": [ + { + "components": [ + { + "internalType": "bool", + "name": "isVerified", + "type": "bool" + }, + { + "internalType": "string", + "name": "validatorVersion", + "type": "string" + }, + { + "internalType": "uint256", + "name": "blockNumber", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "blockTimestamp", + "type": "uint256" + } + ], + "internalType": "struct IZKPVerifier.ProofStatus", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + }, + { + "internalType": "uint64", + "name": "requestId", + "type": "uint64" + }, + { + "internalType": "string", + "name": "key", + "type": "string" + } + ], + "name": "getProofStorageField", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "requestId", + "type": "uint64" + } + ], + "name": "getZKPRequest", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "internalType": "contract ICircuitValidator", + "name": "validator", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "internalType": "struct IZKPVerifier.ZKPRequest", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "startIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "getZKPRequests", + "outputs": [ + { + "components": [ + { + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "internalType": "contract ICircuitValidator", + "name": "validator", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "internalType": "struct IZKPVerifier.ZKPRequest[]", + "name": "", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getZKPRequestsCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint64", + "name": "requestId", + "type": "uint64" + } + ], + "name": "isProofVerified", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "requestId", + "type": "uint64" + } + ], + "name": "requestIdExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "requestId", + "type": "uint64" + }, + { + "components": [ + { + "internalType": "string", + "name": "metadata", + "type": "string" + }, + { + "internalType": "contract ICircuitValidator", + "name": "validator", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "internalType": "struct IZKPVerifier.ZKPRequest", + "name": "request", + "type": "tuple" + } + ], + "name": "setZKPRequest", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "requestId", + "type": "uint64" + }, + { + "internalType": "uint256[]", + "name": "inputs", + "type": "uint256[]" + }, + { + "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]" + } + ], + "name": "submitZKPResponse", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "uint64", + "name": "requestId", + "type": "uint64" + }, + { + "internalType": "bytes", + "name": "zkProof", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "internalType": "struct IZKPVerifier.ZKPResponse[]", + "name": "responses", + "type": "tuple[]" + }, + { + "internalType": "bytes", + "name": "crossChainProofs", + "type": "bytes" + } + ], + "name": "submitZKPResponseV2", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getProofStatus(address,uint64)": "8c1da2c9", + "getProofStorageField(address,uint64,string)": "d4858051", + "getZKPRequest(uint64)": "c76d0845", + "getZKPRequests(uint256,uint256)": "5f9e60d7", + "getZKPRequestsCount()": "6508e1b4", + "isProofVerified(address,uint64)": "49555fb1", + "requestIdExists(uint64)": "ab7bcfb7", + "setZKPRequest(uint64,(string,address,bytes))": "9f5223e0", + "submitZKPResponse(uint64,uint256[],uint256[2],uint256[2][2],uint256[2])": "b68967e2", + "submitZKPResponseV2((uint64,bytes,bytes)[],bytes)": "ade09fcd" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getProofStatus\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"isVerified\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"validatorVersion\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"blockTimestamp\",\"type\":\"uint256\"}],\"internalType\":\"struct IZKPVerifier.ProofStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"}],\"name\":\"getProofStorageField\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"getZKPRequest\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"contract ICircuitValidator\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IZKPVerifier.ZKPRequest\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"startIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"getZKPRequests\",\"outputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"contract ICircuitValidator\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IZKPVerifier.ZKPRequest[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getZKPRequestsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"isProofVerified\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"}],\"name\":\"requestIdExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"metadata\",\"type\":\"string\"},{\"internalType\":\"contract ICircuitValidator\",\"name\":\"validator\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IZKPVerifier.ZKPRequest\",\"name\":\"request\",\"type\":\"tuple\"}],\"name\":\"setZKPRequest\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"uint256[]\",\"name\":\"inputs\",\"type\":\"uint256[]\"},{\"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]\"}],\"name\":\"submitZKPResponse\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint64\",\"name\":\"requestId\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"zkProof\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct IZKPVerifier.ZKPResponse[]\",\"name\":\"responses\",\"type\":\"tuple[]\"},{\"internalType\":\"bytes\",\"name\":\"crossChainProofs\",\"type\":\"bytes\"}],\"name\":\"submitZKPResponseV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"IZKPVerifier. Interface for verification of groth16 proofs for validators circuits.\",\"kind\":\"dev\",\"methods\":{\"getProofStatus(address,uint64)\":{\"details\":\"Get the proof status for the sender and ZKP request with requestId.\",\"params\":{\"requestId\":\"Request id of the proof.\",\"sender\":\"Sender of the proof.\"},\"returns\":{\"_0\":\"Proof status.\"}},\"getProofStorageField(address,uint64,string)\":{\"details\":\"Get the proof storage field for the user, requestId and key.\",\"params\":{\"key\":\"Key of the proof storage field.\",\"requestId\":\"Request id of the proof.\",\"user\":\"User address.\"},\"returns\":{\"_0\":\"Proof storage field.\"}},\"getZKPRequest(uint64)\":{\"details\":\"Get the ZKP request for the requestId.\",\"params\":{\"requestId\":\"Request id of the ZKP request.\"},\"returns\":{\"_0\":\"ZKP request.\"}},\"getZKPRequests(uint256,uint256)\":{\"details\":\"Get the ZKP requests.\",\"params\":{\"length\":\"Length of the ZKP requests.\",\"startIndex\":\"Start index of the ZKP requests.\"},\"returns\":{\"_0\":\"Array of the ZKP requests.\"}},\"getZKPRequestsCount()\":{\"details\":\"Get the ZKP request count.\",\"returns\":{\"_0\":\"ZKP request count.\"}},\"isProofVerified(address,uint64)\":{\"details\":\"Get if proof is verified for the sender and ZKP request with requestId.\",\"params\":{\"requestId\":\"Request id of the ZKP Request to verify.\",\"sender\":\"Sender of the proof.\"},\"returns\":{\"_0\":\"True if proof is verified for the sender and request id.\"}},\"requestIdExists(uint64)\":{\"details\":\"Check if the requestId exists.\",\"params\":{\"requestId\":\"Request id of the ZKP request.\"},\"returns\":{\"_0\":\"True if the requestId exists.\"}},\"setZKPRequest(uint64,(string,address,bytes))\":{\"details\":\"Set the ZKP request for the requestId.\",\"params\":{\"request\":\"ZKP request to set.\",\"requestId\":\"Request id of the ZKP request.\"}},\"submitZKPResponse(uint64,uint256[],uint256[2],uint256[2][2],uint256[2])\":{\"details\":\"Submit the groth16 proof \\u03c0=([\\u03c0a]1,[\\u03c0b]2,[\\u03c0c]1) for the ZKP request requestId.\",\"params\":{\"a\":\"\\u03c0a element of the groth16 proof.\",\"b\":\"\\u03c0b element of the groth16 proof.\",\"c\":\"\\u03c0c element of the groth16 proof.\",\"inputs\":\"Public inputs of the circuit.\",\"requestId\":\"Request id of the ZKP request.\"}},\"submitZKPResponseV2((uint64,bytes,bytes)[],bytes)\":{\"details\":\"Submit the groth16 proof \\u03c0=([\\u03c0a]1,[\\u03c0b]2,[\\u03c0c]1) for the ZKP request requestId.\",\"params\":{\"crossChainProofs\":\"The list of cross chain proofs from universal resolver (oracle).\",\"responses\":\"The list of responses including ZKP request ID, ZK proof and metadata.\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/interfaces/IZKPVerifier.sol\":\"IZKPVerifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/interfaces/ICircuitValidator.sol\":{\"keccak256\":\"0xb69c84a4f46354a301c1971f8c518de42370003ab48d8a75d80b46de736371b8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://692c396954d2c5912ddd137b0ee1ab20f6962204213ae122cb34705a25e89cf2\",\"dweb:/ipfs/QmdpEkCHeu6dbsfDmxzSUKwtfndXoGZrPgy1M3Ly81p3Hi\"]},\"@iden3/contracts/interfaces/IState.sol\":{\"keccak256\":\"0x9ad1637f51eefacb8b80afab1a2568389da02142dfd0bddf2a769f8fe118f1d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://41253a4bb51672482bfb1207ccae04f5a173e47872f52240f5b94f0e24ccd64a\",\"dweb:/ipfs/QmfC7LpzWsUtPrDJvtT3swQ52nCZGVMC4SRtFVx3qZ5RFU\"]},\"@iden3/contracts/interfaces/IZKPVerifier.sol\":{\"keccak256\":\"0x7e8f95b76c8588dcba937e1213f7743f4b3e061f0968d74794c80f32395cfecd\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e879818eecd469e7fc7a2b359fe9146d18820c2b85dca9055756fc9fd3afafe5\",\"dweb:/ipfs/QmXzfbLz9aoafm31DdYT8zh6uFGAacxRJ8yeaL1YWBuMgJ\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@iden3/contracts/lib/ArrayUtils.sol": { + "ArrayUtils": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202f1f705dbe3b0b3d1414a9c6a0a51d9995dbb4dde74a9b77caaa19585c24e09664736f6c634300081b0033", + "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 0x2F 0x1F PUSH17 0x5DBE3B0B3D1414A9C6A0A51D9995DBB4DD 0xE7 BLOBBASEFEE SWAP12 PUSH24 0xCAAA19585C24E09664736F6C634300081B00330000000000 ", + "sourceMap": "103:822:5:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;103:822:5;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202f1f705dbe3b0b3d1414a9c6a0a51d9995dbb4dde74a9b77caaa19585c24e09664736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x2F 0x1F PUSH17 0x5DBE3B0B3D1414A9C6A0A51D9995DBB4DD 0xE7 BLOBBASEFEE SWAP12 PUSH24 0xCAAA19585C24E09664736F6C634300081B00330000000000 ", + "sourceMap": "103:822:5:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"A common functions for arrays.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/ArrayUtils.sol\":\"ArrayUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/lib/ArrayUtils.sol\":{\"keccak256\":\"0x7c5e3f9c56e8e80811db1f1336a1e37c657947f44687451e5a1d6bd12e9e6141\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c9497d8d8fe9fc2b2c9d61bbdfa5a4eb881ddf8948bbc099024e5026fadd6846\",\"dweb:/ipfs/Qmczkk8FLcxpM91ZAWpixowBEdq64YVLke3ZqVDt3NkYiT\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@iden3/contracts/lib/GenesisUtils.sol": { + "GenesisUtils": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ea93cf4bd9c6e74e459d32ca9f1e2f966137b9b97eee6f81d4bdd3c972c8013364736f6c634300081b0033", + "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 0xEA SWAP4 0xCF 0x4B 0xD9 0xC6 0xE7 0x4E GASLIMIT SWAP14 ORIGIN 0xCA SWAP16 0x1E 0x2F SWAP7 PUSH2 0x37B9 0xB9 PUSH31 0xEE6F81D4BDD3C972C8013364736F6C634300081B0033000000000000000000 ", + "sourceMap": "123:2048:6:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;123:2048:6;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ea93cf4bd9c6e74e459d32ca9f1e2f966137b9b97eee6f81d4bdd3c972c8013364736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEA SWAP4 0xCF 0x4B 0xD9 0xC6 0xE7 0x4E GASLIMIT SWAP14 ORIGIN 0xCA SWAP16 0x1E 0x2F SWAP7 PUSH2 0x37B9 0xB9 PUSH31 0xEE6F81D4BDD3C972C8013364736F6C634300081B0033000000000000000000 ", + "sourceMap": "123:2048:6:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/GenesisUtils.sol\":\"GenesisUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/lib/GenesisUtils.sol\":{\"keccak256\":\"0xcd0456a57885d39010095d9642a4cbf8d723e975af6e3a7bcce6d2ed9d8adc05\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dd03b9ab5422c9b715399ea889e68a7e85b1caa0a74a1f7238dc1a8377f32a6e\",\"dweb:/ipfs/QmUUvKPdP6KuciKjKi9jKkiT4EezjdfdfJsAGaqfFCdRR2\"]},\"@iden3/contracts/lib/PrimitiveTypeUtils.sol\":{\"keccak256\":\"0x3126dd4b236d36112a66f54ae70e791d153480248ab485373b4259b2498b7235\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f704ec7d5ee0bb109532a32f75d0457213c0852797a257392a95b64ed63b8b3a\",\"dweb:/ipfs/QmSAAH9gecdDxtrf52Pyq73g61GsKwPnBWYH1gzTiWUn3s\"]},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xf75784dfc94ea43668eb195d5690a1dde1b6eda62017e73a3899721583821d29\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://ca16cef8b94f3ac75d376489a668618f6c4595a906b939d674a883f4bf426014\",\"dweb:/ipfs/QmceGU7qhyFLSejaj6i4dEtMzXDCSF3aYDtW1UeKjXQaRn\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@iden3/contracts/lib/IdentityBase.sol": { + "IdentityBase": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "claimIndexHash", + "type": "uint256" + } + ], + "name": "getClaimProof", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "claimIndexHash", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + } + ], + "name": "getClaimProofByRoot", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "claimIndexHash", + "type": "uint256" + } + ], + "name": "getClaimProofWithStateInfo", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootsRoot", + "type": "uint256" + } + ], + "internalType": "struct IdentityLib.StateInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getClaimsTreeRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getIsOldStateGenesis", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestPublishedClaimsRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestPublishedRevocationsRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestPublishedRootsRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestPublishedState", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "revocationNonce", + "type": "uint64" + } + ], + "name": "getRevocationProof", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "revocationNonce", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + } + ], + "name": "getRevocationProofByRoot", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "revocationNonce", + "type": "uint64" + } + ], + "name": "getRevocationProofWithStateInfo", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootsRoot", + "type": "uint256" + } + ], + "internalType": "struct IdentityLib.StateInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + } + ], + "name": "getRevocationStatus", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootOfRoots", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.IdentityStateRoots", + "name": "issuer", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.Proof", + "name": "mtp", + "type": "tuple" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.CredentialStatus", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + } + ], + "name": "getRevocationStatusByIdAndState", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootOfRoots", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.IdentityStateRoots", + "name": "issuer", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.Proof", + "name": "mtp", + "type": "tuple" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.CredentialStatus", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRevocationsTreeRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "rootsTreeRoot", + "type": "uint256" + } + ], + "name": "getRootProof", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "claimsTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + } + ], + "name": "getRootProofByRoot", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "rootsTreeRoot", + "type": "uint256" + } + ], + "name": "getRootProofWithStateInfo", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootsRoot", + "type": "uint256" + } + ], + "internalType": "struct IdentityLib.StateInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + } + ], + "name": "getRootsByState", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "claimsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootsRoot", + "type": "uint256" + } + ], + "internalType": "struct IdentityLib.Roots", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRootsTreeRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSmtDepth", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_stateContractAddr", + "type": "address" + }, + { + "internalType": "bytes2", + "name": "idType", + "type": "bytes2" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "getClaimProof(uint256)": "b57a40cb", + "getClaimProofByRoot(uint256,uint256)": "310d0d5b", + "getClaimProofWithStateInfo(uint256)": "b37feda4", + "getClaimsTreeRoot()": "3df432fc", + "getId()": "5d1ca631", + "getIsOldStateGenesis()": "f84c7c1e", + "getLatestPublishedClaimsRoot()": "523b8136", + "getLatestPublishedRevocationsRoot()": "9674cfa4", + "getLatestPublishedRootsRoot()": "c6365a3b", + "getLatestPublishedState()": "3d59ec60", + "getRevocationProof(uint64)": "26485063", + "getRevocationProofByRoot(uint64,uint256)": "e26ecb0b", + "getRevocationProofWithStateInfo(uint64)": "0033058d", + "getRevocationStatus(uint256,uint64)": "110c96a7", + "getRevocationStatusByIdAndState(uint256,uint256,uint64)": "aad72921", + "getRevocationsTreeRoot()": "01c85c77", + "getRootProof(uint256)": "c1e32733", + "getRootProofByRoot(uint256,uint256)": "2d5c4f25", + "getRootProofWithStateInfo(uint256)": "443d7534", + "getRootsByState(uint256)": "b8db6871", + "getRootsTreeRoot()": "da68a0b1", + "getSmtDepth()": "3f0c6648", + "initialize(address,bytes2)": "406e8b4c", + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimIndexHash\",\"type\":\"uint256\"}],\"name\":\"getClaimProof\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimIndexHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getClaimProofByRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimIndexHash\",\"type\":\"uint256\"}],\"name\":\"getClaimProofWithStateInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimsTreeRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIsOldStateGenesis\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedClaimsRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedRevocationsRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedRootsRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedState\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationProof\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getRevocationProofByRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationProofWithStateInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationStatus\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootOfRoots\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.IdentityStateRoots\",\"name\":\"issuer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.Proof\",\"name\":\"mtp\",\"type\":\"tuple\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.CredentialStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationStatusByIdAndState\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootOfRoots\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.IdentityStateRoots\",\"name\":\"issuer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.Proof\",\"name\":\"mtp\",\"type\":\"tuple\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.CredentialStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRevocationsTreeRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rootsTreeRoot\",\"type\":\"uint256\"}],\"name\":\"getRootProof\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getRootProofByRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rootsTreeRoot\",\"type\":\"uint256\"}],\"name\":\"getRootProofWithStateInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"}],\"name\":\"getRootsByState\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.Roots\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootsTreeRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSmtDepth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateContractAddr\",\"type\":\"address\"},{\"internalType\":\"bytes2\",\"name\":\"idType\",\"type\":\"bytes2\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"getClaimProof(uint256)\":{\"details\":\"Retrieve Claim inclusion or non-inclusion proof for a given claim index.\",\"params\":{\"claimIndexHash\":\"- hash of Claim Index\"},\"returns\":{\"_0\":\"The ClaimsTree inclusion or non-inclusion proof for the claim\"}},\"getClaimProofByRoot(uint256,uint256)\":{\"details\":\"Retrieve Claim inclusion or non-inclusion proof for a given claim index by target root.\",\"params\":{\"claimIndexHash\":\"- hash of Claim Index\",\"root\":\"- root of the tree\"},\"returns\":{\"_0\":\"The ClaimsTree inclusion or non-inclusion proof for the claim\"}},\"getClaimProofWithStateInfo(uint256)\":{\"details\":\"Retrieve Claim inclusion or non-inclusion proof for a given claim index with state info.\",\"params\":{\"claimIndexHash\":\"- hash of Claim Index\"},\"returns\":{\"_0\":\"The ClaimsTree inclusion or non-inclusion proof for the claim and state info.\"}},\"getClaimsTreeRoot()\":{\"details\":\"Retrieve ClaimsTree latest root.\",\"returns\":{\"_0\":\"The latest ClaimsTree root\"}},\"getId()\":{\"details\":\"returns identity Id\",\"returns\":{\"_0\":\"uint256 Id\"}},\"getIsOldStateGenesis()\":{\"details\":\"returns isOldStateGenesis flag\",\"returns\":{\"_0\":\"bool isOldStateGenesis\"}},\"getLatestPublishedClaimsRoot()\":{\"details\":\"returns latest published claims tree root\",\"returns\":{\"_0\":\"claimsRoot\"}},\"getLatestPublishedRevocationsRoot()\":{\"details\":\"returns latest published revocation tree root\",\"returns\":{\"_0\":\"revocationsRoot\"}},\"getLatestPublishedRootsRoot()\":{\"details\":\"returns latest published roots tree root\",\"returns\":{\"_0\":\"rootsRoot\"}},\"getLatestPublishedState()\":{\"details\":\"returns identity latest state\",\"returns\":{\"_0\":\"uint256 identityLatestState\"}},\"getRevocationProof(uint64)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given revocation nonce.\",\"params\":{\"revocationNonce\":\"- revocation nonce\"},\"returns\":{\"_0\":\"The RevocationsTree inclusion or non-inclusion proof for the revocation nonce\"}},\"getRevocationProofByRoot(uint64,uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given revocation nonce by target root.\",\"params\":{\"revocationNonce\":\"- revocation nonce\",\"root\":\"- root of the tree\"},\"returns\":{\"_0\":\"The RevocationsTree inclusion or non-inclusion proof for the revocation nonce\"}},\"getRevocationProofWithStateInfo(uint64)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given revocation nonce with state info.\",\"params\":{\"revocationNonce\":\"- revocation nonce\"},\"returns\":{\"_0\":\"The RevocationsTree inclusion or non-inclusion proof for the revocation nonce and state info.\"}},\"getRevocationStatus(uint256,uint64)\":{\"details\":\"returns revocation status of a claim using given revocation nonce\",\"params\":{\"id\":\"Issuer's identifier\",\"nonce\":\"Revocation nonce\"},\"returns\":{\"_0\":\"CredentialStatus\"}},\"getRevocationStatusByIdAndState(uint256,uint256,uint64)\":{\"details\":\"returns revocation status of a claim using given revocation nonce, id and state\",\"params\":{\"id\":\"Issuer's identifier\",\"nonce\":\"Revocation nonce\",\"state\":\"of the Issuer\"},\"returns\":{\"_0\":\"CredentialStatus\"}},\"getRevocationsTreeRoot()\":{\"details\":\"Retrieve RevocationsTree latest root.\",\"returns\":{\"_0\":\"The latest RevocationsTree root\"}},\"getRootProof(uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot.\",\"params\":{\"rootsTreeRoot\":\"- roots tree root\"},\"returns\":{\"_0\":\"The RootsTree inclusion or non-inclusion proof for the roots tree root\"}},\"getRootProofByRoot(uint256,uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given claimsTreeRoot by target root.\",\"params\":{\"claimsTreeRoot\":\"- claims tree root\",\"root\":\"- root of the tree\"},\"returns\":{\"_0\":\"The RootsTree inclusion or non-inclusion proof for the claim tree root\"}},\"getRootProofWithStateInfo(uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot with state info.\",\"params\":{\"rootsTreeRoot\":\"- roots tree root\"},\"returns\":{\"_0\":\"The RootsTree inclusion or non-inclusion proof for the claim tree root and state info.\"}},\"getRootsByState(uint256)\":{\"details\":\"returns historical claimsTree roots, revocationsTree roots, rootsTree roots by state\",\"params\":{\"state\":\"identity state\"},\"returns\":{\"_0\":\"set of roots\"}},\"getRootsTreeRoot()\":{\"details\":\"Retrieve RootsTree latest root.\",\"returns\":{\"_0\":\"The latest RootsTree root\"}},\"getSmtDepth()\":{\"details\":\"Get configured Identity SMT depth.\",\"returns\":{\"_0\":\"depth of the SMT\"}},\"initialize(address,bytes2)\":{\"details\":\"Initialization of IdentityLib library\",\"params\":{\"_stateContractAddr\":\"- address of the State contract\"}},\"supportsInterface(bytes4)\":{\"details\":\"supportsInterface. Check if the contract supports the interface\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/IdentityBase.sol\":\"IdentityBase\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/interfaces/IIdentifiable.sol\":{\"keccak256\":\"0x622cb97ad95adc38d5b3138fa9ee14b38f11f541c6976687309d61b1d2f2e607\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6e21fa8dccc84d47f0db37fb5747f4d1514187cf4d94ec5fbc54e9ad3f520f74\",\"dweb:/ipfs/QmXM34XGaASwW3QdrbSJXHmwfVurnDdyuYbbiW8wsKaxH3\"]},\"@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol\":{\"keccak256\":\"0x88aa3921c23502bfa297133354aaff8b2428fb49082f3e1644458956a73b06f5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0dd69acd52723b03751f383ec2f0f6772197c8b100a525cb40448ac4f25bdc42\",\"dweb:/ipfs/QmVcugmmLC3hoHzvCe5nEx7GT1jTKcriKbtB4PZ3LEwnrE\"]},\"@iden3/contracts/interfaces/IState.sol\":{\"keccak256\":\"0x9ad1637f51eefacb8b80afab1a2568389da02142dfd0bddf2a769f8fe118f1d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://41253a4bb51672482bfb1207ccae04f5a173e47872f52240f5b94f0e24ccd64a\",\"dweb:/ipfs/QmfC7LpzWsUtPrDJvtT3swQ52nCZGVMC4SRtFVx3qZ5RFU\"]},\"@iden3/contracts/lib/ArrayUtils.sol\":{\"keccak256\":\"0x7c5e3f9c56e8e80811db1f1336a1e37c657947f44687451e5a1d6bd12e9e6141\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c9497d8d8fe9fc2b2c9d61bbdfa5a4eb881ddf8948bbc099024e5026fadd6846\",\"dweb:/ipfs/Qmczkk8FLcxpM91ZAWpixowBEdq64YVLke3ZqVDt3NkYiT\"]},\"@iden3/contracts/lib/GenesisUtils.sol\":{\"keccak256\":\"0xcd0456a57885d39010095d9642a4cbf8d723e975af6e3a7bcce6d2ed9d8adc05\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dd03b9ab5422c9b715399ea889e68a7e85b1caa0a74a1f7238dc1a8377f32a6e\",\"dweb:/ipfs/QmUUvKPdP6KuciKjKi9jKkiT4EezjdfdfJsAGaqfFCdRR2\"]},\"@iden3/contracts/lib/IdentityBase.sol\":{\"keccak256\":\"0xf8d2962e1838b9c850e887cd52736545b8d4228b14a1d64eb9ce5d8f53501b6f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://06dd87da9c644be8abe583c1c066d0926c860b110940b173f1a42f6766c20f52\",\"dweb:/ipfs/QmfK64Jf613m2eU1Dz6M7R6rjjKfCzscvyXdaoerw7kr4v\"]},\"@iden3/contracts/lib/IdentityLib.sol\":{\"keccak256\":\"0x1bbb8fbe53fcc817c216b4fd1fed3936ab6659bf83ceb7cb10fa474bcc8812f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1ee97a30fcba35d3c269b58b628c9114df4b915ff413c6f2b85f2a2454a9b54e\",\"dweb:/ipfs/QmbopmBVWniJcMLdFMHg7wkRwC2uTpRNXWLLAuCKUaAFcD\"]},\"@iden3/contracts/lib/Poseidon.sol\":{\"keccak256\":\"0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539\",\"dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc\"]},\"@iden3/contracts/lib/PrimitiveTypeUtils.sol\":{\"keccak256\":\"0x3126dd4b236d36112a66f54ae70e791d153480248ab485373b4259b2498b7235\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f704ec7d5ee0bb109532a32f75d0457213c0852797a257392a95b64ed63b8b3a\",\"dweb:/ipfs/QmSAAH9gecdDxtrf52Pyq73g61GsKwPnBWYH1gzTiWUn3s\"]},\"@iden3/contracts/lib/SmtLib.sol\":{\"keccak256\":\"0x9c67be9b7d045ded48a63bd827a5bdc3f2255c68f9640bae41eef074640f1779\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f2b2452120f5b2b2c5589fcf58183f7d800d3f8a2c202ebdc3b69815bcfb2aa\",\"dweb:/ipfs/QmbnvLnfJaKL3eqt1CfXofsiLJ7G3nYTawUEqGpCazWbrQ\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xf75784dfc94ea43668eb195d5690a1dde1b6eda62017e73a3899721583821d29\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://ca16cef8b94f3ac75d376489a668618f6c4595a906b939d674a883f4bf426014\",\"dweb:/ipfs/QmceGU7qhyFLSejaj6i4dEtMzXDCSF3aYDtW1UeKjXQaRn\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@iden3/contracts/lib/IdentityLib.sol": { + "IdentityLib": { + "abi": [ + { + "inputs": [], + "name": "IDENTITY_MAX_SMT_DEPTH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": { + "@iden3/contracts/lib/Poseidon.sol": { + "PoseidonUnit3L": [ + { + "length": 20, + "start": 1636 + } + ], + "PoseidonUnit4L": [ + { + "length": 20, + "start": 5012 + }, + { + "length": 20, + "start": 5123 + } + ] + }, + "@iden3/contracts/lib/SmtLib.sol": { + "SmtLib": [ + { + "length": 20, + "start": 943 + }, + { + "length": 20, + "start": 1089 + }, + { + "length": 20, + "start": 1492 + }, + { + "length": 20, + "start": 1665 + }, + { + "length": 20, + "start": 1790 + }, + { + "length": 20, + "start": 1916 + }, + { + "length": 20, + "start": 2133 + }, + { + "length": 20, + "start": 2199 + }, + { + "length": 20, + "start": 2323 + }, + { + "length": 20, + "start": 2447 + }, + { + "length": 20, + "start": 2707 + }, + { + "length": 20, + "start": 2844 + }, + { + "length": 20, + "start": 3557 + }, + { + "length": 20, + "start": 3663 + }, + { + "length": 20, + "start": 3771 + }, + { + "length": 20, + "start": 3896 + }, + { + "length": 20, + "start": 3957 + }, + { + "length": 20, + "start": 4052 + }, + { + "length": 20, + "start": 4133 + }, + { + "length": 20, + "start": 4266 + }, + { + "length": 20, + "start": 4395 + }, + { + "length": 20, + "start": 4597 + }, + { + "length": 20, + "start": 4677 + }, + { + "length": 20, + "start": 4806 + }, + { + "length": 20, + "start": 5282 + }, + { + "length": 20, + "start": 5471 + } + ] + } + }, + "object": "6121c6610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106101355760003560e01c8063765c2c61116100b7578063d55da6a31161007b578063d55da6a3146102d6578063d5818b8e146102e9578063d5a3b14e146102fc578063e1f0eaa91461030f578063f8b802681461032f57600080fd5b8063765c2c611461025c5780637d0aba4f1461026f5780638ad7195d1461028257806397ac5391146102a2578063a3018d79146102b557600080fd5b80631e75e7f3116100fe5780631e75e7f3146101ee5780632c72e822146102015780632eb747d21461020957806359a60691146102295780636e2fe66c1461024957600080fd5b8062cf08901461013a57806306fb1575146101635780630b1a9cd31461018557806316579a36146101ba5780631a3046d7146101cd575b600080fd5b61014d610148366004611b8b565b610342565b60405161015a9190611c4f565b60405180910390f35b81801561016f57600080fd5b5061018361017e366004611c62565b6103e2565b005b610198610193366004611b8b565b61045a565b604080518251815260208084015190820152918101519082015260600161015a565b61014d6101c8366004611cab565b610564565b6101e06101db366004611ce1565b610606565b60405190815260200161015a565b6101e06101fc366004611ce1565b610801565b6101e0602881565b81801561021557600080fd5b50610183610224366004611ce1565b61083e565b81801561023557600080fd5b50610183610244366004611d11565b610c39565b6101e0610257366004611ce1565b610ee4565b6101e061026a366004611ce1565b610f21565b61014d61027d366004611d79565b610f5e565b81801561028e57600080fd5b5061018361029d366004611d79565b610fbd565b61014d6102b0366004611b8b565b61103d565b6102c86102c3366004611b8b565b611093565b60405161015a929190611da5565b61014d6102e4366004611c62565b61118e565b61014d6102f7366004611c62565b6111de565b6102c861030a366004611b8b565b61122e565b81801561031b57600080fd5b5061018361032a366004611de6565b6112af565b6102c861033d366004611d79565b6114be565b61034a611b24565b609a830154604051633ce0bd4b60e11b815260048086019082015260248101849052604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a96906064015b600060405180830381865af41580156103b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103d99190810190611f1f565b90505b92915050565b60405163c1d29f0160e01b8152600484810190820152602481018390526044810182905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9063c1d29f019060640160006040518083038186803b15801561043d57600080fd5b505af4158015610451573d6000803e3d6000fd5b50505050505050565b61047e60405180606001604052806000815260200160008152602001600081525090565b60008281526003840160205260409020541515806104ae5750600082815260038401602052604090206001015415155b806104cb5750600082815260038401602052604090206002015415155b6105275760405162461bcd60e51b815260206004820152602260248201527f526f6f747320666f72207468697320737461746520646f65736e2774206578696044820152611cdd60f21b60648201526084015b60405180910390fd5b5060009081526003919091016020908152604091829020825160608101845281548152600182015492810192909252600201549181019190915290565b61056c611b24565b604051633ce0bd4b60e11b815260368501600482015267ffffffffffffffff841660248201526044810183905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a96906064015b600060405180830381865af41580156105d6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105fe9190810190611f1f565b949350505050565b6040805160608101918290526379f9712560e01b90915260048201606482015260009073__$03320550cd1b629da90608251571b2532e$__906325cc70e8908073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__6379f9712560848301602060405180830381865af4158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190611fe7565b81526040516379f9712560e01b815260368701600482015260209091019073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af41580156106ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107239190611fe7565b81526040516379f9712560e01b815260688701600482015260209091019073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af415801561077d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a19190611fe7565b8152506040518263ffffffff1660e01b81526004016107c09190612000565b602060405180830381865af41580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103dc9190611fe7565b6040516379f9712560e01b815260688201600482015260009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f97125906024016107c0565b60018101546040516379f9712560e01b815260048084019082015260009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af4158015610898573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bc9190611fe7565b6040516379f9712560e01b815260368501600482015290915060009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af4158015610914573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109389190611fe7565b6040516379f9712560e01b815260688601600482015290915060009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af4158015610990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b49190611fe7565b609a860154909150831415806109ce5750609b8501548214155b806109dd5750609c8501548114155b610a295760405162461bcd60e51b815260206004820152601e60248201527f4964656e7469747920747265657320686176656e2774206368616e6765640000604482015260640161051e565b609a8501548314610aa85760405163c1d29f0160e01b8152606886016004820152602481018490526000604482015273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9063c1d29f019060640160006040518083038186803b158015610a8f57600080fd5b505af4158015610aa3573d6000803e3d6000fd5b505050505b6000610ab386610606565b60018701819055609a8701859055609b87018490556040516379f9712560e01b815260688801600482015290915073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af4158015610b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b419190611fe7565b609c870181905560028701805460ff198116909155600188015460408051606081018252609a8b01548152609b8b015460208201529081019390935260ff90911691610b8e918991611548565b600287015487546101009091046001600160a01b031690637d0dcba590888585600160006040519080825280601f01601f191660200182016040528015610bdc576020820181803683370190505b506040518763ffffffff1660e01b8152600401610bfe96959493929190612031565b600060405180830381600087803b158015610c1857600080fd5b505af1158015610c2c573d6000803e3d6000fd5b5050505050505050505050565b6028821115610c9e5760405162461bcd60e51b815260206004820152602b60248201527f534d542064657074682069732067726561746572207468616e206d617820616c60448201526a0d8deeecac840c8cae0e8d60ab1b606482015260840161051e565b600285018054610100600160a81b0319166101006001600160a01b038781168202929092179283905560405163932e87a160e01b81526001600160f01b0319851660048201529204169063932e87a190602401602060405180830381865afa158015610d0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3291906120a4565b610d7e5760405162461bcd60e51b815260206004820152601860248201527f69642074797065206973206e6f7420737570706f727465640000000000000000604482015260640161051e565b60028501805460ff19166001179055604051639e43b81360e01b81526004808701908201526024810183905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__90639e43b8139060440160006040518083038186803b158015610de157600080fd5b505af4158015610df5573d6000803e3d6000fd5b5050604051639e43b81360e01b81526036880160048201526024810185905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9250639e43b813915060440160006040518083038186803b158015610e4d57600080fd5b505af4158015610e61573d6000803e3d6000fd5b5050604051639e43b81360e01b81526068880160048201526024810185905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9250639e43b813915060440160006040518083038186803b158015610eb957600080fd5b505af4158015610ecd573d6000803e3d6000fd5b50505050610edb8184611618565b90945550505050565b6040516379f9712560e01b815260048281019082015260009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f97125906024016107c0565b6040516379f9712560e01b815260368201600482015260009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f97125906024016107c0565b610f66611b24565b609b830154604051633ce0bd4b60e11b815260368501600482015267ffffffffffffffff84166024820152604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a9690606401610394565b60405163c1d29f0160e01b815260368301600482015267ffffffffffffffff821660248201526000604482015273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9063c1d29f019060640160006040518083038186803b15801561102157600080fd5b505af4158015611035573d6000803e3d6000fd5b505050505050565b611045611b24565b609c830154604051633ce0bd4b60e11b815260688501600482015260248101849052604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a9690606401610394565b61109b611b24565b6110c66040518060800160405280600081526020016000815260200160008152602001600081525090565b609c840154604051633ce0bd4b60e11b815260688601600482015260248101859052604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a96906064015b600060405180830381865af415801561112d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111559190810190611f1f565b6040805160808101825260018701548152609a8701546020820152609b87015491810191909152609c9095015460608601529492505050565b611196611b24565b604051633ce0bd4b60e11b8152606885016004820152602481018490526044810183905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a96906064016105b9565b6111e6611b24565b604051633ce0bd4b60e11b8152600485810190820152602481018490526044810183905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a96906064016105b9565b611236611b24565b6112616040518060800160405280600081526020016000815260200160008152602001600081525090565b609a840154604051633ce0bd4b60e11b815260048087019082015260248101859052604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a9690606401611110565b6112b7611b6d565b6112bf611b6d565b60005b60048160ff16101561134857838160ff16600881106112e3576112e36120bf565b6020020135838260ff16600481106112fd576112fd6120bf565b60200201528361130e8260046120eb565b60ff1660088110611321576113216120bf565b6020020135828260ff166004811061133b5761133b6120bf565b60200201526001016112c2565b5060405163248f667760e01b815260009073__$2650005024f117ed9b6c57ec1bf6374b69$__9063248f667790611383908690600401612104565b602060405180830381865af41580156113a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c49190611fe7565b9050600073__$2650005024f117ed9b6c57ec1bf6374b69$__63248f6677846040518263ffffffff1660e01b81526004016113ff9190612104565b602060405180830381865af415801561141c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114409190611fe7565b60405163c1d29f0160e01b8152600488810190820152602481018490526044810182905290915073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9063c1d29f019060640160006040518083038186803b15801561149e57600080fd5b505af41580156114b2573d6000803e3d6000fd5b50505050505050505050565b6114c6611b24565b6114f16040518060800160405280600081526020016000815260200160008152602001600081525090565b609b840154604051633ce0bd4b60e11b815260368601600482015267ffffffffffffffff85166024820152604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a9690606401611110565b600082815260038401602052604090205415801561157757506000828152600384016020526040902060010154155b801561159457506000828152600384016020526040902060020154155b6115eb5760405162461bcd60e51b815260206004820152602260248201527f526f6f747320666f72207468697320737461746520616c7265616479206578696044820152611cdd60f21b606482015260840161051e565b60009182526003909201602090815260409182902083518155908301516001820155910151600290910155565b60006001600160a01b0382166105fe8461163183611636565b61177b565b60008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b6008827fff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff0016901c1790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b6010827fffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff000016901c1790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b6020827fffffffff00000000ffffffff00000000ffffffff00000000ffffffff0000000016901c17905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b60408277ffffffffffffffff0000000000000000ffffffffffffffff1916901c179050608081901b608082901c179050919050565b60008061178f61178a84611636565b6118af565b905060006117ac82601b84516117a5919061212c565b601b6118d9565b6040516001600160f01b0319871660208201529091506000906117e190602201604051602081830303815290604052836118e6565b905060006118056117f1836118f2565b600881811b62ffff001691901c60ff161790565b6040805160f083901b6001600160f01b0319166020820152815160028183030181526022909101909152909150600061183e84836118e6565b90508051601f146118915760405162461bcd60e51b815260206004820181905260248201527f69644279746573207265717569726573203331206c656e677468206172726179604482015260640161051e565b6118a261189d8261198f565b611636565b9998505050505050505050565b60408051602080825281830190925260609160208201818036833750505060208101929092525090565b60606105fe84848461199a565b60606103d98383611aa7565b60008151601d1461194f5760405162461bcd60e51b815260206004820152602160248201527f436865636b73756d207265717569726573203239206c656e67746820617272616044820152607960f81b606482015260840161051e565b60005b82518110156119895782818151811061196d5761196d6120bf565b016020015161197f9060f81c8361213f565b9150600101611952565b50919050565b60006103dc82612159565b6060816119a881601f61217d565b10156119e75760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015260640161051e565b6119f1828461217d565b84511015611a355760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015260640161051e565b606082158015611a545760405191506000825260208201604052611a9e565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611a8d578051835260209283019201611a75565b5050858452601f01601f1916604052505b50949350505050565b6060806040519050835180825260208201818101602087015b81831015611ad8578051835260209283019201611ac0565b50855184518101855292509050808201602086015b81831015611b05578051835260209283019201611aed565b508651929092011591909101601f01601f191660405250905092915050565b6040518061010001604052806000815260200160001515815260200160608152602001600081526020016000815260200160001515815260200160008152602001600081525090565b60405180608001604052806004906020820280368337509192915050565b60008060408385031215611b9e57600080fd5b50508035926020909101359150565b805182526020808201511515818401526040808301516101009185018290528051918501829052600092019082906101208601905b80831015611c055783518252602082019150602084019350600183019250611be2565b50606085015160608701526080850151608087015260a08501519250611c2f60a087018415159052565b60c085015160c087015260e085015160e087015280935050505092915050565b6020815260006103d96020830184611bad565b600080600060608486031215611c7757600080fd5b505081359360208301359350604090920135919050565b803567ffffffffffffffff81168114611ca657600080fd5b919050565b600080600060608486031215611cc057600080fd5b83359250611cd060208501611c8e565b929592945050506040919091013590565b600060208284031215611cf357600080fd5b5035919050565b80356001600160a01b0381168114611ca657600080fd5b600080600080600060a08688031215611d2957600080fd5b85359450611d3960208701611cfa565b9350611d4760408701611cfa565b92506060860135915060808601356001600160f01b031981168114611d6b57600080fd5b809150509295509295909350565b60008060408385031215611d8c57600080fd5b82359150611d9c60208401611c8e565b90509250929050565b60a081526000611db860a0830185611bad565b9050825160208301526020830151604083015260408301516060830152606083015160808301529392505050565b6000806101208385031215611dfa57600080fd5b823591506101208301841015611e0f57600080fd5b50926020919091019150565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff81118282101715611e5557611e55611e1b565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611e8457611e84611e1b565b604052919050565b80518015158114611ca657600080fd5b600082601f830112611ead57600080fd5b815167ffffffffffffffff811115611ec757611ec7611e1b565b8060051b611ed760208201611e5b565b91825260208185018101929081019086841115611ef357600080fd5b6020860192505b83831015611f15578251825260209283019290910190611efa565b9695505050505050565b600060208284031215611f3157600080fd5b815167ffffffffffffffff811115611f4857600080fd5b82016101008185031215611f5b57600080fd5b611f63611e31565b81518152611f7360208301611e8c565b6020820152604082015167ffffffffffffffff811115611f9257600080fd5b611f9e86828501611e9c565b6040830152506060828101519082015260808083015190820152611fc460a08301611e8c565b60a082015260c0828101519082015260e091820151918101919091529392505050565b600060208284031215611ff957600080fd5b5051919050565b60608101818360005b6003811015612028578151835260209283019290910190600101612009565b50505092915050565b868152856020820152846040820152831515606082015282608082015260c060a0820152600082518060c084015260005b8181101561207f57602081860181015160e0868401015201612062565b50600060e0828501015260e0601f19601f830116840101915050979650505050505050565b6000602082840312156120b657600080fd5b6103d982611e8c565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60ff81811683821601908111156103dc576103dc6120d5565b60808101818360005b600481101561202857815183526020928301929091019060010161210d565b818103818111156103dc576103dc6120d5565b61ffff81811683821601908111156103dc576103dc6120d5565b805160208083015191908110156119895760001960209190910360031b1b16919050565b808201808211156103dc576103dc6120d556fea2646970667358221220aa65629b816777c025a82a1ec2ced268f4da03b01343c1453af68c59f0d7b0f064736f6c634300081b0033", + "opcodes": "PUSH2 0x21C6 PUSH2 0x39 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2C 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 0x4 CALLDATASIZE LT PUSH2 0x135 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x765C2C61 GT PUSH2 0xB7 JUMPI DUP1 PUSH4 0xD55DA6A3 GT PUSH2 0x7B JUMPI DUP1 PUSH4 0xD55DA6A3 EQ PUSH2 0x2D6 JUMPI DUP1 PUSH4 0xD5818B8E EQ PUSH2 0x2E9 JUMPI DUP1 PUSH4 0xD5A3B14E EQ PUSH2 0x2FC JUMPI DUP1 PUSH4 0xE1F0EAA9 EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0xF8B80268 EQ PUSH2 0x32F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x765C2C61 EQ PUSH2 0x25C JUMPI DUP1 PUSH4 0x7D0ABA4F EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x8AD7195D EQ PUSH2 0x282 JUMPI DUP1 PUSH4 0x97AC5391 EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xA3018D79 EQ PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1E75E7F3 GT PUSH2 0xFE JUMPI DUP1 PUSH4 0x1E75E7F3 EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x2C72E822 EQ PUSH2 0x201 JUMPI DUP1 PUSH4 0x2EB747D2 EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x59A60691 EQ PUSH2 0x229 JUMPI DUP1 PUSH4 0x6E2FE66C EQ PUSH2 0x249 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0xCF0890 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x6FB1575 EQ PUSH2 0x163 JUMPI DUP1 PUSH4 0xB1A9CD3 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0x16579A36 EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x1A3046D7 EQ PUSH2 0x1CD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14D PUSH2 0x148 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B8B JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15A SWAP2 SWAP1 PUSH2 0x1C4F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x16F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH2 0x17E CALLDATASIZE PUSH1 0x4 PUSH2 0x1C62 JUMP JUMPDEST PUSH2 0x3E2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x198 PUSH2 0x193 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B8B JUMP JUMPDEST PUSH2 0x45A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP2 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x15A JUMP JUMPDEST PUSH2 0x14D PUSH2 0x1C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CAB JUMP JUMPDEST PUSH2 0x564 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x1DB CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0x606 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x15A JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x1FC CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0x801 JUMP JUMPDEST PUSH2 0x1E0 PUSH1 0x28 DUP2 JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x215 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0x83E JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x235 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH2 0x244 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D11 JUMP JUMPDEST PUSH2 0xC39 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x257 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0xEE4 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x26A CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0xF21 JUMP JUMPDEST PUSH2 0x14D PUSH2 0x27D CALLDATASIZE PUSH1 0x4 PUSH2 0x1D79 JUMP JUMPDEST PUSH2 0xF5E JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x28E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH2 0x29D CALLDATASIZE PUSH1 0x4 PUSH2 0x1D79 JUMP JUMPDEST PUSH2 0xFBD JUMP JUMPDEST PUSH2 0x14D PUSH2 0x2B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B8B JUMP JUMPDEST PUSH2 0x103D JUMP JUMPDEST PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B8B JUMP JUMPDEST PUSH2 0x1093 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15A SWAP3 SWAP2 SWAP1 PUSH2 0x1DA5 JUMP JUMPDEST PUSH2 0x14D PUSH2 0x2E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C62 JUMP JUMPDEST PUSH2 0x118E JUMP JUMPDEST PUSH2 0x14D PUSH2 0x2F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C62 JUMP JUMPDEST PUSH2 0x11DE JUMP JUMPDEST PUSH2 0x2C8 PUSH2 0x30A CALLDATASIZE PUSH1 0x4 PUSH2 0x1B8B JUMP JUMPDEST PUSH2 0x122E JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x31B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH2 0x32A CALLDATASIZE PUSH1 0x4 PUSH2 0x1DE6 JUMP JUMPDEST PUSH2 0x12AF JUMP JUMPDEST PUSH2 0x2C8 PUSH2 0x33D CALLDATASIZE PUSH1 0x4 PUSH2 0x1D79 JUMP JUMPDEST PUSH2 0x14BE JUMP JUMPDEST PUSH2 0x34A PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x9A DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP1 DUP7 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x3B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x3D9 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1F1F JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC1D29F01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP5 DUP2 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xC1D29F01 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x451 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x47E PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO DUP1 PUSH2 0x4AE JUMPI POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO JUMPDEST DUP1 PUSH2 0x4CB JUMPI POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD ISZERO ISZERO JUMPDEST PUSH2 0x527 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x526F6F747320666F72207468697320737461746520646F65736E277420657869 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1CDD PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP2 SWAP1 SWAP2 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x60 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x56C PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x36 DUP6 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x5D6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x5FE SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1F1F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH4 0x79F97125 PUSH1 0xE0 SHL SWAP1 SWAP2 MSTORE PUSH1 0x4 DUP3 ADD PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x25CC70E8 SWAP1 DUP1 PUSH20 0x0 PUSH4 0x79F97125 PUSH1 0x84 DUP4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x681 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6A5 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x36 DUP8 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x6FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x723 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP8 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x77D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7A1 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C0 SWAP2 SWAP1 PUSH2 0x2000 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x7DD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3DC SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP3 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH2 0x7C0 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP1 DUP5 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x898 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8BC SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x36 DUP6 ADD PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x914 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x938 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP7 ADD PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x990 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9B4 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x9A DUP7 ADD SLOAD SWAP1 SWAP2 POP DUP4 EQ ISZERO DUP1 PUSH2 0x9CE JUMPI POP PUSH1 0x9B DUP6 ADD SLOAD DUP3 EQ ISZERO JUMPDEST DUP1 PUSH2 0x9DD JUMPI POP PUSH1 0x9C DUP6 ADD SLOAD DUP2 EQ ISZERO JUMPDEST PUSH2 0xA29 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4964656E7469747920747265657320686176656E2774206368616E6765640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x9A DUP6 ADD SLOAD DUP4 EQ PUSH2 0xAA8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC1D29F01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP7 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xC1D29F01 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xAA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x0 PUSH2 0xAB3 DUP7 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 DUP8 ADD DUP2 SWAP1 SSTORE PUSH1 0x9A DUP8 ADD DUP6 SWAP1 SSTORE PUSH1 0x9B DUP8 ADD DUP5 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP9 ADD PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xB1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB41 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x9C DUP8 ADD DUP2 SWAP1 SSTORE PUSH1 0x2 DUP8 ADD DUP1 SLOAD PUSH1 0xFF NOT DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP9 ADD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x9A DUP12 ADD SLOAD DUP2 MSTORE PUSH1 0x9B DUP12 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xFF SWAP1 SWAP2 AND SWAP2 PUSH2 0xB8E SWAP2 DUP10 SWAP2 PUSH2 0x1548 JUMP JUMPDEST PUSH1 0x2 DUP8 ADD SLOAD DUP8 SLOAD PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7D0DCBA5 SWAP1 DUP9 DUP6 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xBDC JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBFE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2031 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC2C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x28 DUP3 GT ISZERO PUSH2 0xC9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x534D542064657074682069732067726561746572207468616E206D617820616C PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0xD8DEEECAC840C8CAE0E8D PUSH1 0xAB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x2 DUP6 ADD DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP3 MUL SWAP3 SWAP1 SWAP3 OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x932E87A1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP3 DIV AND SWAP1 PUSH4 0x932E87A1 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD0E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD32 SWAP2 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xD7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x69642074797065206973206E6F7420737570706F727465640000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x2 DUP6 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x9E43B813 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP1 DUP8 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x9E43B813 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xDF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x9E43B813 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x36 DUP9 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH20 0x0 SWAP3 POP PUSH4 0x9E43B813 SWAP2 POP PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xE61 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x9E43B813 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP9 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH20 0x0 SWAP3 POP PUSH4 0x9E43B813 SWAP2 POP PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xECD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xEDB DUP2 DUP5 PUSH2 0x1618 JUMP JUMPDEST SWAP1 SWAP5 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP3 DUP2 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH2 0x7C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x36 DUP3 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH2 0x7C0 JUMP JUMPDEST PUSH2 0xF66 PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x9B DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x36 DUP6 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x394 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC1D29F01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x36 DUP4 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xC1D29F01 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1021 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1035 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1045 PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x9C DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x68 DUP6 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x394 JUMP JUMPDEST PUSH2 0x109B PUSH2 0x1B24 JUMP JUMPDEST PUSH2 0x10C6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x9C DUP5 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x68 DUP7 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x112D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1155 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1F1F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x1 DUP8 ADD SLOAD DUP2 MSTORE PUSH1 0x9A DUP8 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x9B DUP8 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x9C SWAP1 SWAP6 ADD SLOAD PUSH1 0x60 DUP7 ADD MSTORE SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1196 PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x68 DUP6 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x5B9 JUMP JUMPDEST PUSH2 0x11E6 PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP6 DUP2 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x5B9 JUMP JUMPDEST PUSH2 0x1236 PUSH2 0x1B24 JUMP JUMPDEST PUSH2 0x1261 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x9A DUP5 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP1 DUP8 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x1110 JUMP JUMPDEST PUSH2 0x12B7 PUSH2 0x1B6D JUMP JUMPDEST PUSH2 0x12BF PUSH2 0x1B6D JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x4 DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1348 JUMPI DUP4 DUP2 PUSH1 0xFF AND PUSH1 0x8 DUP2 LT PUSH2 0x12E3 JUMPI PUSH2 0x12E3 PUSH2 0x20BF JUMP JUMPDEST PUSH1 0x20 MUL ADD CALLDATALOAD DUP4 DUP3 PUSH1 0xFF AND PUSH1 0x4 DUP2 LT PUSH2 0x12FD JUMPI PUSH2 0x12FD PUSH2 0x20BF JUMP JUMPDEST PUSH1 0x20 MUL ADD MSTORE DUP4 PUSH2 0x130E DUP3 PUSH1 0x4 PUSH2 0x20EB JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x8 DUP2 LT PUSH2 0x1321 JUMPI PUSH2 0x1321 PUSH2 0x20BF JUMP JUMPDEST PUSH1 0x20 MUL ADD CALLDATALOAD DUP3 DUP3 PUSH1 0xFF AND PUSH1 0x4 DUP2 LT PUSH2 0x133B JUMPI PUSH2 0x133B PUSH2 0x20BF JUMP JUMPDEST PUSH1 0x20 MUL ADD MSTORE PUSH1 0x1 ADD PUSH2 0x12C2 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x248F6677 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x248F6677 SWAP1 PUSH2 0x1383 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x2104 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x13A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13C4 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0x0 PUSH4 0x248F6677 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13FF SWAP2 SWAP1 PUSH2 0x2104 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x141C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1440 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC1D29F01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP9 DUP2 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH20 0x0 SWAP1 PUSH4 0xC1D29F01 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x149E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x14B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x14C6 PUSH2 0x1B24 JUMP JUMPDEST PUSH2 0x14F1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x9B DUP5 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x36 DUP7 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x1110 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO DUP1 ISZERO PUSH2 0x1577 JUMPI POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1594 JUMPI POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD ISZERO JUMPDEST PUSH2 0x15EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x526F6F747320666F72207468697320737461746520616C726561647920657869 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1CDD PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x3 SWAP1 SWAP3 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD DUP2 SSTORE SWAP1 DUP4 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE SWAP2 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5FE DUP5 PUSH2 0x1631 DUP4 PUSH2 0x1636 JUMP JUMPDEST PUSH2 0x177B JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x8 DUP2 PUSH31 0xFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF AND SWAP1 SHL PUSH1 0x8 DUP3 PUSH32 0xFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 AND SWAP1 SHR OR SWAP1 POP PUSH1 0x10 DUP2 PUSH30 0xFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF AND SWAP1 SHL PUSH1 0x10 DUP3 PUSH32 0xFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 AND SWAP1 SHR OR SWAP1 POP PUSH1 0x20 DUP2 PUSH28 0xFFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF AND SWAP1 SHL PUSH1 0x20 DUP3 PUSH32 0xFFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000 AND SWAP1 SHR OR SWAP1 POP PUSH1 0x40 DUP2 PUSH24 0xFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF AND SWAP1 SHL PUSH1 0x40 DUP3 PUSH24 0xFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF NOT AND SWAP1 SHR OR SWAP1 POP PUSH1 0x80 DUP2 SWAP1 SHL PUSH1 0x80 DUP3 SWAP1 SHR OR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x178F PUSH2 0x178A DUP5 PUSH2 0x1636 JUMP JUMPDEST PUSH2 0x18AF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17AC DUP3 PUSH1 0x1B DUP5 MLOAD PUSH2 0x17A5 SWAP2 SWAP1 PUSH2 0x212C JUMP JUMPDEST PUSH1 0x1B PUSH2 0x18D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP8 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x17E1 SWAP1 PUSH1 0x22 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP4 PUSH2 0x18E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1805 PUSH2 0x17F1 DUP4 PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x8 DUP2 DUP2 SHL PUSH3 0xFFFF00 AND SWAP2 SWAP1 SHR PUSH1 0xFF AND OR SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xF0 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH1 0x2 DUP2 DUP4 SUB ADD DUP2 MSTORE PUSH1 0x22 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 PUSH2 0x183E DUP5 DUP4 PUSH2 0x18E6 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x1F EQ PUSH2 0x1891 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x69644279746573207265717569726573203331206C656E677468206172726179 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51E JUMP JUMPDEST PUSH2 0x18A2 PUSH2 0x189D DUP3 PUSH2 0x198F JUMP JUMPDEST PUSH2 0x1636 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP POP POP PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5FE DUP5 DUP5 DUP5 PUSH2 0x199A JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3D9 DUP4 DUP4 PUSH2 0x1AA7 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0x1D EQ PUSH2 0x194F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436865636B73756D207265717569726573203239206C656E6774682061727261 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x1989 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x196D JUMPI PUSH2 0x196D PUSH2 0x20BF JUMP JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH2 0x197F SWAP1 PUSH1 0xF8 SHR DUP4 PUSH2 0x213F JUMP JUMPDEST SWAP2 POP PUSH1 0x1 ADD PUSH2 0x1952 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DC DUP3 PUSH2 0x2159 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x19A8 DUP2 PUSH1 0x1F PUSH2 0x217D JUMP JUMPDEST LT ISZERO PUSH2 0x19E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51E JUMP JUMPDEST PUSH2 0x19F1 DUP3 DUP5 PUSH2 0x217D JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x1A35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x1A54 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1A9E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x1A8D JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1A75 JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP1 POP DUP4 MLOAD DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 DUP2 ADD PUSH1 0x20 DUP8 ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x1AD8 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1AC0 JUMP JUMPDEST POP DUP6 MLOAD DUP5 MLOAD DUP2 ADD DUP6 MSTORE SWAP3 POP SWAP1 POP DUP1 DUP3 ADD PUSH1 0x20 DUP7 ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x1B05 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1AED JUMP JUMPDEST POP DUP7 MLOAD SWAP3 SWAP1 SWAP3 ADD ISZERO SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 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 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD ISZERO ISZERO DUP2 DUP5 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH2 0x100 SWAP2 DUP6 ADD DUP3 SWAP1 MSTORE DUP1 MLOAD SWAP2 DUP6 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP3 ADD SWAP1 DUP3 SWAP1 PUSH2 0x120 DUP7 ADD SWAP1 JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x1C05 JUMPI DUP4 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x1 DUP4 ADD SWAP3 POP PUSH2 0x1BE2 JUMP JUMPDEST POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0x80 DUP8 ADD MSTORE PUSH1 0xA0 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x1C2F PUSH1 0xA0 DUP8 ADD DUP5 ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xC0 DUP8 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH1 0xE0 DUP8 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1BAD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1C77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1CA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1CC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH2 0x1CD0 PUSH1 0x20 DUP6 ADD PUSH2 0x1C8E JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1CA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1D29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x1D39 PUSH1 0x20 DUP8 ADD PUSH2 0x1CFA JUMP JUMPDEST SWAP4 POP PUSH2 0x1D47 PUSH1 0x40 DUP8 ADD PUSH2 0x1CFA JUMP JUMPDEST SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1D6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1D9C PUSH1 0x20 DUP5 ADD PUSH2 0x1C8E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1DB8 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x1BAD JUMP JUMPDEST SWAP1 POP DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x120 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1DFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x120 DUP4 ADD DUP5 LT ISZERO PUSH2 0x1E0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP3 PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP2 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x100 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1E55 JUMPI PUSH2 0x1E55 PUSH2 0x1E1B JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1E84 JUMPI PUSH2 0x1E84 PUSH2 0x1E1B JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1CA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1EAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1EC7 JUMPI PUSH2 0x1EC7 PUSH2 0x1E1B JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH2 0x1ED7 PUSH1 0x20 DUP3 ADD PUSH2 0x1E5B JUMP JUMPDEST SWAP2 DUP3 MSTORE PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD SWAP3 SWAP1 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x1EF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0x1F15 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1EFA JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F31 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH2 0x100 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x1F5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F63 PUSH2 0x1E31 JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH2 0x1F73 PUSH1 0x20 DUP4 ADD PUSH2 0x1E8C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F9E DUP7 DUP3 DUP6 ADD PUSH2 0x1E9C JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x1FC4 PUSH1 0xA0 DUP4 ADD PUSH2 0x1E8C JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 SWAP2 DUP3 ADD MLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD DUP2 DUP4 PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x2028 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2009 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP7 DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE DUP3 PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x207F JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD PUSH1 0xE0 DUP7 DUP5 ADD ADD MSTORE ADD PUSH2 0x2062 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0xE0 DUP3 DUP6 ADD ADD MSTORE PUSH1 0xE0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D9 DUP3 PUSH2 0x1E8C 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 0xFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH2 0x20D5 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD DUP2 DUP4 PUSH1 0x0 JUMPDEST PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x2028 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x210D JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH2 0x20D5 JUMP JUMPDEST PUSH2 0xFFFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH2 0x20D5 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0x1989 JUMPI PUSH1 0x0 NOT PUSH1 0x20 SWAP2 SWAP1 SWAP2 SUB PUSH1 0x3 SHL SHL AND SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH2 0x20D5 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAA PUSH6 0x629B816777C0 0x25 0xA8 0x2A 0x1E 0xC2 0xCE 0xD2 PUSH9 0xF4DA03B01343C1453A 0xF6 DUP13 MSIZE CREATE 0xD7 0xB0 CREATE PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "335:14838:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;335:14838:8;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@IDENTITY_MAX_SMT_DEPTH_1345": { + "entryPoint": null, + "id": 1345, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@addClaimHash_1590": { + "entryPoint": 994, + "id": 1590, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@addClaim_1567": { + "entryPoint": 4783, + "id": 1567, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@addressToUint256_2824": { + "entryPoint": null, + "id": 2824, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@calcIdFromEthAddress_815": { + "entryPoint": 5656, + "id": 815, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@calcIdFromGenesisState_789": { + "entryPoint": 6011, + "id": 789, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@calcIdentityState_1808": { + "entryPoint": 1542, + "id": 1808, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@concat_18253": { + "entryPoint": 6823, + "id": 18253, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@concat_2787": { + "entryPoint": 6374, + "id": 2787, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getClaimProofByRoot_1894": { + "entryPoint": 4574, + "id": 1894, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getClaimProofWithStateInfo_1871": { + "entryPoint": 4654, + "id": 1871, + "parameterSlots": 2, + "returnSlots": 2 + }, + "@getClaimProof_1831": { + "entryPoint": 834, + "id": 1831, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getClaimsTreeRoot_1910": { + "entryPoint": 3812, + "id": 1910, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getRevocationProofByRoot_2005": { + "entryPoint": 1380, + "id": 2005, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getRevocationProofWithStateInfo_1979": { + "entryPoint": 5310, + "id": 1979, + "parameterSlots": 2, + "returnSlots": 2 + }, + "@getRevocationProof_1936": { + "entryPoint": 3934, + "id": 1936, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRevocationsTreeRoot_2021": { + "entryPoint": 3873, + "id": 2021, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getRootProofByRoot_2107": { + "entryPoint": 4494, + "id": 2107, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getRootProofWithStateInfo_2084": { + "entryPoint": 4243, + "id": 2084, + "parameterSlots": 2, + "returnSlots": 2 + }, + "@getRootProof_2044": { + "entryPoint": 4157, + "id": 2044, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRootsByState_2216": { + "entryPoint": 1114, + "id": 2216, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRootsTreeRoot_2123": { + "entryPoint": 2049, + "id": 2123, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@initialize_1486": { + "entryPoint": 3129, + "id": 1486, + "parameterSlots": 5, + "returnSlots": 0 + }, + "@padRightToUint256_2760": { + "entryPoint": 6543, + "id": 2760, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@reverseUint16_2657": { + "entryPoint": null, + "id": 2657, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@reverseUint256_2632": { + "entryPoint": 5686, + "id": 2632, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@revokeClaim_1614": { + "entryPoint": 4029, + "id": 1614, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@slice_18299": { + "entryPoint": 6554, + "id": 18299, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@slice_2807": { + "entryPoint": 6361, + "id": 2807, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@sum_657": { + "entryPoint": 6386, + "id": 657, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@transitState_1778": { + "entryPoint": 2110, + "id": 1778, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@uint256ToBytes_2535": { + "entryPoint": 6319, + "id": 2535, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@writeHistory_2171": { + "entryPoint": 5448, + "id": 2171, + "parameterSlots": 3, + "returnSlots": 0 + }, + "abi_decode_address": { + "entryPoint": 7418, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_array_uint256_dyn_fromMemory": { + "entryPoint": 7836, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_bool_fromMemory": { + "entryPoint": 7820, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 8356, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_Data_$1371_storage_ptr": { + "entryPoint": 7393, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_addresst_addresst_uint256t_bytes2": { + "entryPoint": 7441, + "id": null, + "parameterSlots": 2, + "returnSlots": 5 + }, + "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_array$_t_uint256_$8_calldata_ptr": { + "entryPoint": 7654, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint256": { + "entryPoint": 7051, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint256t_uint256": { + "entryPoint": 7266, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint64": { + "entryPoint": 7545, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint64t_uint256": { + "entryPoint": 7339, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_struct$_Proof_$2979_memory_ptr_fromMemory": { + "entryPoint": 7967, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 8167, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_uint64": { + "entryPoint": 7310, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_bool": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_struct_Proof": { + "entryPoint": 7085, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_bytes2__to_t_bytes2__nonPadded_inplace_fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_uint16__to_t_uint16__nonPadded_inplace_fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$3_memory_ptr__to_t_array$_t_uint256_$3_memory_ptr__fromStack_library_reversed": { + "entryPoint": 8192, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$4_memory_ptr__to_t_array$_t_uint256_$4_memory_ptr__fromStack_library_reversed": { + "entryPoint": 8452, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes2__to_t_bytes2__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_3050ac86504f6f4eb496200c8717848bbc64735985474666b0e5a7bb9a483662__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_3373a85b98f1718c998a10926a0cc482f57a490b87fbf0ea79c758ce195432db__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_6824f57e98af605fc3b03feb3b76bdf32650aedf61a3aa7698b69a981ebba9a7__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_8913fb6098b083fbd4c1742211a970a034991471b53e0cd894357bdfba5ebae5__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_927599b089841c4ed82223494044191b3442ce5fcdceba2208631608986675d1__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_bfe527d2ff3b58e820f9d3002817587119240858f81529ff0e2d6f59b5b5a3a4__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_d7041224dbf1aef588efd8de52dba4ae3abf3cc31c9ba0eb5e93b35ed6048ad5__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$2960_storage_ptr__to_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$2960_storage_ptr_t_uint256__to_t_uint256_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$2960_storage_ptr_t_uint256_t_rational_0_by_1__to_t_uint256_t_uint256_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$2960_storage_ptr_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr__fromStack_library_reversed": { + "entryPoint": 7247, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__fromStack_library_reversed": { + "entryPoint": 7589, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Roots_$1390_memory_ptr__to_t_struct$_Roots_$1390_memory_ptr__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bool_t_rational_1_by_1_t_bytes_memory_ptr__to_t_uint256_t_uint256_t_uint256_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": 8241, + "id": null, + "parameterSlots": 7, + "returnSlots": 1 + }, + "allocate_memory": { + "entryPoint": 7771, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_memory_2312": { + "entryPoint": 7729, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint16": { + "entryPoint": 8511, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 8573, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint8": { + "entryPoint": 8427, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 8492, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32": { + "entryPoint": 8537, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 8405, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 8383, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 7707, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:17487:46", + "nodeType": "YulBlock", + "src": "0:17487:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "124:259:46", + "nodeType": "YulBlock", + "src": "124:259:46", + "statements": [ + { + "body": { + "nativeSrc": "170:16:46", + "nodeType": "YulBlock", + "src": "170:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "179:1:46", + "nodeType": "YulLiteral", + "src": "179:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "182:1:46", + "nodeType": "YulLiteral", + "src": "182:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "172:6:46", + "nodeType": "YulIdentifier", + "src": "172:6:46" + }, + "nativeSrc": "172:12:46", + "nodeType": "YulFunctionCall", + "src": "172:12:46" + }, + "nativeSrc": "172:12:46", + "nodeType": "YulExpressionStatement", + "src": "172:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "145:7:46", + "nodeType": "YulIdentifier", + "src": "145:7:46" + }, + { + "name": "headStart", + "nativeSrc": "154:9:46", + "nodeType": "YulIdentifier", + "src": "154:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "141:3:46", + "nodeType": "YulIdentifier", + "src": "141:3:46" + }, + "nativeSrc": "141:23:46", + "nodeType": "YulFunctionCall", + "src": "141:23:46" + }, + { + "kind": "number", + "nativeSrc": "166:2:46", + "nodeType": "YulLiteral", + "src": "166:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "137:3:46", + "nodeType": "YulIdentifier", + "src": "137:3:46" + }, + "nativeSrc": "137:32:46", + "nodeType": "YulFunctionCall", + "src": "137:32:46" + }, + "nativeSrc": "134:52:46", + "nodeType": "YulIf", + "src": "134:52:46" + }, + { + "nativeSrc": "195:14:46", + "nodeType": "YulVariableDeclaration", + "src": "195:14:46", + "value": { + "kind": "number", + "nativeSrc": "208:1:46", + "nodeType": "YulLiteral", + "src": "208:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "199:5:46", + "nodeType": "YulTypedName", + "src": "199:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "218:32:46", + "nodeType": "YulAssignment", + "src": "218:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "240:9:46", + "nodeType": "YulIdentifier", + "src": "240:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "227:12:46", + "nodeType": "YulIdentifier", + "src": "227:12:46" + }, + "nativeSrc": "227:23:46", + "nodeType": "YulFunctionCall", + "src": "227:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "218:5:46", + "nodeType": "YulIdentifier", + "src": "218:5:46" + } + ] + }, + { + "nativeSrc": "259:15:46", + "nodeType": "YulAssignment", + "src": "259:15:46", + "value": { + "name": "value", + "nativeSrc": "269:5:46", + "nodeType": "YulIdentifier", + "src": "269:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "259:6:46", + "nodeType": "YulIdentifier", + "src": "259:6:46" + } + ] + }, + { + "nativeSrc": "283:16:46", + "nodeType": "YulVariableDeclaration", + "src": "283:16:46", + "value": { + "kind": "number", + "nativeSrc": "298:1:46", + "nodeType": "YulLiteral", + "src": "298:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "287:7:46", + "nodeType": "YulTypedName", + "src": "287:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "308:43:46", + "nodeType": "YulAssignment", + "src": "308:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "336:9:46", + "nodeType": "YulIdentifier", + "src": "336:9:46" + }, + { + "kind": "number", + "nativeSrc": "347:2:46", + "nodeType": "YulLiteral", + "src": "347:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "332:3:46", + "nodeType": "YulIdentifier", + "src": "332:3:46" + }, + "nativeSrc": "332:18:46", + "nodeType": "YulFunctionCall", + "src": "332:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "319:12:46", + "nodeType": "YulIdentifier", + "src": "319:12:46" + }, + "nativeSrc": "319:32:46", + "nodeType": "YulFunctionCall", + "src": "319:32:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "308:7:46", + "nodeType": "YulIdentifier", + "src": "308:7:46" + } + ] + }, + { + "nativeSrc": "360:17:46", + "nodeType": "YulAssignment", + "src": "360:17:46", + "value": { + "name": "value_1", + "nativeSrc": "370:7:46", + "nodeType": "YulIdentifier", + "src": "370:7:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "360:6:46", + "nodeType": "YulIdentifier", + "src": "360:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint256", + "nativeSrc": "14:369:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "82:9:46", + "nodeType": "YulTypedName", + "src": "82:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "93:7:46", + "nodeType": "YulTypedName", + "src": "93:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "105:6:46", + "nodeType": "YulTypedName", + "src": "105:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "113:6:46", + "nodeType": "YulTypedName", + "src": "113:6:46", + "type": "" + } + ], + "src": "14:369:46" + }, + { + "body": { + "nativeSrc": "429:50:46", + "nodeType": "YulBlock", + "src": "429:50:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "446:3:46", + "nodeType": "YulIdentifier", + "src": "446:3:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "465:5:46", + "nodeType": "YulIdentifier", + "src": "465:5:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "458:6:46", + "nodeType": "YulIdentifier", + "src": "458:6:46" + }, + "nativeSrc": "458:13:46", + "nodeType": "YulFunctionCall", + "src": "458:13:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "451:6:46", + "nodeType": "YulIdentifier", + "src": "451:6:46" + }, + "nativeSrc": "451:21:46", + "nodeType": "YulFunctionCall", + "src": "451:21:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "439:6:46", + "nodeType": "YulIdentifier", + "src": "439:6:46" + }, + "nativeSrc": "439:34:46", + "nodeType": "YulFunctionCall", + "src": "439:34:46" + }, + "nativeSrc": "439:34:46", + "nodeType": "YulExpressionStatement", + "src": "439:34:46" + } + ] + }, + "name": "abi_encode_bool", + "nativeSrc": "388:91:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "413:5:46", + "nodeType": "YulTypedName", + "src": "413:5:46", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "420:3:46", + "nodeType": "YulTypedName", + "src": "420:3:46", + "type": "" + } + ], + "src": "388:91:46" + }, + { + "body": { + "nativeSrc": "540:977:46", + "nodeType": "YulBlock", + "src": "540:977:46", + "statements": [ + { + "nativeSrc": "550:28:46", + "nodeType": "YulVariableDeclaration", + "src": "550:28:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "566:3:46", + "nodeType": "YulIdentifier", + "src": "566:3:46" + }, + { + "kind": "number", + "nativeSrc": "571:6:46", + "nodeType": "YulLiteral", + "src": "571:6:46", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "562:3:46", + "nodeType": "YulIdentifier", + "src": "562:3:46" + }, + "nativeSrc": "562:16:46", + "nodeType": "YulFunctionCall", + "src": "562:16:46" + }, + "variables": [ + { + "name": "tail", + "nativeSrc": "554:4:46", + "nodeType": "YulTypedName", + "src": "554:4:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "594:3:46", + "nodeType": "YulIdentifier", + "src": "594:3:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "605:5:46", + "nodeType": "YulIdentifier", + "src": "605:5:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "599:5:46", + "nodeType": "YulIdentifier", + "src": "599:5:46" + }, + "nativeSrc": "599:12:46", + "nodeType": "YulFunctionCall", + "src": "599:12:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "587:6:46", + "nodeType": "YulIdentifier", + "src": "587:6:46" + }, + "nativeSrc": "587:25:46", + "nodeType": "YulFunctionCall", + "src": "587:25:46" + }, + "nativeSrc": "587:25:46", + "nodeType": "YulExpressionStatement", + "src": "587:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "632:3:46", + "nodeType": "YulIdentifier", + "src": "632:3:46" + }, + { + "kind": "number", + "nativeSrc": "637:4:46", + "nodeType": "YulLiteral", + "src": "637:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "628:3:46", + "nodeType": "YulIdentifier", + "src": "628:3:46" + }, + "nativeSrc": "628:14:46", + "nodeType": "YulFunctionCall", + "src": "628:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "668:5:46", + "nodeType": "YulIdentifier", + "src": "668:5:46" + }, + { + "kind": "number", + "nativeSrc": "675:4:46", + "nodeType": "YulLiteral", + "src": "675:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "664:3:46", + "nodeType": "YulIdentifier", + "src": "664:3:46" + }, + "nativeSrc": "664:16:46", + "nodeType": "YulFunctionCall", + "src": "664:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "658:5:46", + "nodeType": "YulIdentifier", + "src": "658:5:46" + }, + "nativeSrc": "658:23:46", + "nodeType": "YulFunctionCall", + "src": "658:23:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "651:6:46", + "nodeType": "YulIdentifier", + "src": "651:6:46" + }, + "nativeSrc": "651:31:46", + "nodeType": "YulFunctionCall", + "src": "651:31:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "644:6:46", + "nodeType": "YulIdentifier", + "src": "644:6:46" + }, + "nativeSrc": "644:39:46", + "nodeType": "YulFunctionCall", + "src": "644:39:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "621:6:46", + "nodeType": "YulIdentifier", + "src": "621:6:46" + }, + "nativeSrc": "621:63:46", + "nodeType": "YulFunctionCall", + "src": "621:63:46" + }, + "nativeSrc": "621:63:46", + "nodeType": "YulExpressionStatement", + "src": "621:63:46" + }, + { + "nativeSrc": "693:43:46", + "nodeType": "YulVariableDeclaration", + "src": "693:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "723:5:46", + "nodeType": "YulIdentifier", + "src": "723:5:46" + }, + { + "kind": "number", + "nativeSrc": "730:4:46", + "nodeType": "YulLiteral", + "src": "730:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "719:3:46", + "nodeType": "YulIdentifier", + "src": "719:3:46" + }, + "nativeSrc": "719:16:46", + "nodeType": "YulFunctionCall", + "src": "719:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "713:5:46", + "nodeType": "YulIdentifier", + "src": "713:5:46" + }, + "nativeSrc": "713:23:46", + "nodeType": "YulFunctionCall", + "src": "713:23:46" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "697:12:46", + "nodeType": "YulTypedName", + "src": "697:12:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "756:3:46", + "nodeType": "YulIdentifier", + "src": "756:3:46" + }, + { + "kind": "number", + "nativeSrc": "761:4:46", + "nodeType": "YulLiteral", + "src": "761:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "752:3:46", + "nodeType": "YulIdentifier", + "src": "752:3:46" + }, + "nativeSrc": "752:14:46", + "nodeType": "YulFunctionCall", + "src": "752:14:46" + }, + { + "kind": "number", + "nativeSrc": "768:6:46", + "nodeType": "YulLiteral", + "src": "768:6:46", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "745:6:46", + "nodeType": "YulIdentifier", + "src": "745:6:46" + }, + "nativeSrc": "745:30:46", + "nodeType": "YulFunctionCall", + "src": "745:30:46" + }, + "nativeSrc": "745:30:46", + "nodeType": "YulExpressionStatement", + "src": "745:30:46" + }, + { + "nativeSrc": "784:17:46", + "nodeType": "YulVariableDeclaration", + "src": "784:17:46", + "value": { + "name": "tail", + "nativeSrc": "797:4:46", + "nodeType": "YulIdentifier", + "src": "797:4:46" + }, + "variables": [ + { + "name": "pos_1", + "nativeSrc": "788:5:46", + "nodeType": "YulTypedName", + "src": "788:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "810:33:46", + "nodeType": "YulVariableDeclaration", + "src": "810:33:46", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "830:12:46", + "nodeType": "YulIdentifier", + "src": "830:12:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "824:5:46", + "nodeType": "YulIdentifier", + "src": "824:5:46" + }, + "nativeSrc": "824:19:46", + "nodeType": "YulFunctionCall", + "src": "824:19:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "814:6:46", + "nodeType": "YulTypedName", + "src": "814:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "859:4:46", + "nodeType": "YulIdentifier", + "src": "859:4:46" + }, + { + "name": "length", + "nativeSrc": "865:6:46", + "nodeType": "YulIdentifier", + "src": "865:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "852:6:46", + "nodeType": "YulIdentifier", + "src": "852:6:46" + }, + "nativeSrc": "852:20:46", + "nodeType": "YulFunctionCall", + "src": "852:20:46" + }, + "nativeSrc": "852:20:46", + "nodeType": "YulExpressionStatement", + "src": "852:20:46" + }, + { + "nativeSrc": "881:22:46", + "nodeType": "YulAssignment", + "src": "881:22:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "894:3:46", + "nodeType": "YulIdentifier", + "src": "894:3:46" + }, + { + "kind": "number", + "nativeSrc": "899:3:46", + "nodeType": "YulLiteral", + "src": "899:3:46", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "890:3:46", + "nodeType": "YulIdentifier", + "src": "890:3:46" + }, + "nativeSrc": "890:13:46", + "nodeType": "YulFunctionCall", + "src": "890:13:46" + }, + "variableNames": [ + { + "name": "pos_1", + "nativeSrc": "881:5:46", + "nodeType": "YulIdentifier", + "src": "881:5:46" + } + ] + }, + { + "nativeSrc": "912:37:46", + "nodeType": "YulVariableDeclaration", + "src": "912:37:46", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "930:12:46", + "nodeType": "YulIdentifier", + "src": "930:12:46" + }, + { + "kind": "number", + "nativeSrc": "944:4:46", + "nodeType": "YulLiteral", + "src": "944:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "926:3:46", + "nodeType": "YulIdentifier", + "src": "926:3:46" + }, + "nativeSrc": "926:23:46", + "nodeType": "YulFunctionCall", + "src": "926:23:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "916:6:46", + "nodeType": "YulTypedName", + "src": "916:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "958:10:46", + "nodeType": "YulVariableDeclaration", + "src": "958:10:46", + "value": { + "kind": "number", + "nativeSrc": "967:1:46", + "nodeType": "YulLiteral", + "src": "967:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "962:1:46", + "nodeType": "YulTypedName", + "src": "962:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1026:130:46", + "nodeType": "YulBlock", + "src": "1026:130:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos_1", + "nativeSrc": "1047:5:46", + "nodeType": "YulIdentifier", + "src": "1047:5:46" + }, + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "1060:6:46", + "nodeType": "YulIdentifier", + "src": "1060:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1054:5:46", + "nodeType": "YulIdentifier", + "src": "1054:5:46" + }, + "nativeSrc": "1054:13:46", + "nodeType": "YulFunctionCall", + "src": "1054:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1040:6:46", + "nodeType": "YulIdentifier", + "src": "1040:6:46" + }, + "nativeSrc": "1040:28:46", + "nodeType": "YulFunctionCall", + "src": "1040:28:46" + }, + "nativeSrc": "1040:28:46", + "nodeType": "YulExpressionStatement", + "src": "1040:28:46" + }, + { + "nativeSrc": "1081:25:46", + "nodeType": "YulAssignment", + "src": "1081:25:46", + "value": { + "arguments": [ + { + "name": "pos_1", + "nativeSrc": "1094:5:46", + "nodeType": "YulIdentifier", + "src": "1094:5:46" + }, + { + "kind": "number", + "nativeSrc": "1101:4:46", + "nodeType": "YulLiteral", + "src": "1101:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1090:3:46", + "nodeType": "YulIdentifier", + "src": "1090:3:46" + }, + "nativeSrc": "1090:16:46", + "nodeType": "YulFunctionCall", + "src": "1090:16:46" + }, + "variableNames": [ + { + "name": "pos_1", + "nativeSrc": "1081:5:46", + "nodeType": "YulIdentifier", + "src": "1081:5:46" + } + ] + }, + { + "nativeSrc": "1119:27:46", + "nodeType": "YulAssignment", + "src": "1119:27:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "1133:6:46", + "nodeType": "YulIdentifier", + "src": "1133:6:46" + }, + { + "kind": "number", + "nativeSrc": "1141:4:46", + "nodeType": "YulLiteral", + "src": "1141:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1129:3:46", + "nodeType": "YulIdentifier", + "src": "1129:3:46" + }, + "nativeSrc": "1129:17:46", + "nodeType": "YulFunctionCall", + "src": "1129:17:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "1119:6:46", + "nodeType": "YulIdentifier", + "src": "1119:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "988:1:46", + "nodeType": "YulIdentifier", + "src": "988:1:46" + }, + { + "name": "length", + "nativeSrc": "991:6:46", + "nodeType": "YulIdentifier", + "src": "991:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "985:2:46", + "nodeType": "YulIdentifier", + "src": "985:2:46" + }, + "nativeSrc": "985:13:46", + "nodeType": "YulFunctionCall", + "src": "985:13:46" + }, + "nativeSrc": "977:179:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "999:18:46", + "nodeType": "YulBlock", + "src": "999:18:46", + "statements": [ + { + "nativeSrc": "1001:14:46", + "nodeType": "YulAssignment", + "src": "1001:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1010:1:46", + "nodeType": "YulIdentifier", + "src": "1010:1:46" + }, + { + "kind": "number", + "nativeSrc": "1013:1:46", + "nodeType": "YulLiteral", + "src": "1013:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1006:3:46", + "nodeType": "YulIdentifier", + "src": "1006:3:46" + }, + "nativeSrc": "1006:9:46", + "nodeType": "YulFunctionCall", + "src": "1006:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1001:1:46", + "nodeType": "YulIdentifier", + "src": "1001:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "981:3:46", + "nodeType": "YulBlock", + "src": "981:3:46", + "statements": [] + }, + "src": "977:179:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1176:3:46", + "nodeType": "YulIdentifier", + "src": "1176:3:46" + }, + { + "kind": "number", + "nativeSrc": "1181:4:46", + "nodeType": "YulLiteral", + "src": "1181:4:46", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1172:3:46", + "nodeType": "YulIdentifier", + "src": "1172:3:46" + }, + "nativeSrc": "1172:14:46", + "nodeType": "YulFunctionCall", + "src": "1172:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1198:5:46", + "nodeType": "YulIdentifier", + "src": "1198:5:46" + }, + { + "kind": "number", + "nativeSrc": "1205:4:46", + "nodeType": "YulLiteral", + "src": "1205:4:46", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1194:3:46", + "nodeType": "YulIdentifier", + "src": "1194:3:46" + }, + "nativeSrc": "1194:16:46", + "nodeType": "YulFunctionCall", + "src": "1194:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1188:5:46", + "nodeType": "YulIdentifier", + "src": "1188:5:46" + }, + "nativeSrc": "1188:23:46", + "nodeType": "YulFunctionCall", + "src": "1188:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1165:6:46", + "nodeType": "YulIdentifier", + "src": "1165:6:46" + }, + "nativeSrc": "1165:47:46", + "nodeType": "YulFunctionCall", + "src": "1165:47:46" + }, + "nativeSrc": "1165:47:46", + "nodeType": "YulExpressionStatement", + "src": "1165:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1232:3:46", + "nodeType": "YulIdentifier", + "src": "1232:3:46" + }, + { + "kind": "number", + "nativeSrc": "1237:4:46", + "nodeType": "YulLiteral", + "src": "1237:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1228:3:46", + "nodeType": "YulIdentifier", + "src": "1228:3:46" + }, + "nativeSrc": "1228:14:46", + "nodeType": "YulFunctionCall", + "src": "1228:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1254:5:46", + "nodeType": "YulIdentifier", + "src": "1254:5:46" + }, + { + "kind": "number", + "nativeSrc": "1261:4:46", + "nodeType": "YulLiteral", + "src": "1261:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1250:3:46", + "nodeType": "YulIdentifier", + "src": "1250:3:46" + }, + "nativeSrc": "1250:16:46", + "nodeType": "YulFunctionCall", + "src": "1250:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1244:5:46", + "nodeType": "YulIdentifier", + "src": "1244:5:46" + }, + "nativeSrc": "1244:23:46", + "nodeType": "YulFunctionCall", + "src": "1244:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1221:6:46", + "nodeType": "YulIdentifier", + "src": "1221:6:46" + }, + "nativeSrc": "1221:47:46", + "nodeType": "YulFunctionCall", + "src": "1221:47:46" + }, + "nativeSrc": "1221:47:46", + "nodeType": "YulExpressionStatement", + "src": "1221:47:46" + }, + { + "nativeSrc": "1277:45:46", + "nodeType": "YulVariableDeclaration", + "src": "1277:45:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1309:5:46", + "nodeType": "YulIdentifier", + "src": "1309:5:46" + }, + { + "kind": "number", + "nativeSrc": "1316:4:46", + "nodeType": "YulLiteral", + "src": "1316:4:46", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1305:3:46", + "nodeType": "YulIdentifier", + "src": "1305:3:46" + }, + "nativeSrc": "1305:16:46", + "nodeType": "YulFunctionCall", + "src": "1305:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1299:5:46", + "nodeType": "YulIdentifier", + "src": "1299:5:46" + }, + "nativeSrc": "1299:23:46", + "nodeType": "YulFunctionCall", + "src": "1299:23:46" + }, + "variables": [ + { + "name": "memberValue0_1", + "nativeSrc": "1281:14:46", + "nodeType": "YulTypedName", + "src": "1281:14:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_1", + "nativeSrc": "1347:14:46", + "nodeType": "YulIdentifier", + "src": "1347:14:46" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1367:3:46", + "nodeType": "YulIdentifier", + "src": "1367:3:46" + }, + { + "kind": "number", + "nativeSrc": "1372:4:46", + "nodeType": "YulLiteral", + "src": "1372:4:46", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1363:3:46", + "nodeType": "YulIdentifier", + "src": "1363:3:46" + }, + "nativeSrc": "1363:14:46", + "nodeType": "YulFunctionCall", + "src": "1363:14:46" + } + ], + "functionName": { + "name": "abi_encode_bool", + "nativeSrc": "1331:15:46", + "nodeType": "YulIdentifier", + "src": "1331:15:46" + }, + "nativeSrc": "1331:47:46", + "nodeType": "YulFunctionCall", + "src": "1331:47:46" + }, + "nativeSrc": "1331:47:46", + "nodeType": "YulExpressionStatement", + "src": "1331:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1398:3:46", + "nodeType": "YulIdentifier", + "src": "1398:3:46" + }, + { + "kind": "number", + "nativeSrc": "1403:4:46", + "nodeType": "YulLiteral", + "src": "1403:4:46", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1394:3:46", + "nodeType": "YulIdentifier", + "src": "1394:3:46" + }, + "nativeSrc": "1394:14:46", + "nodeType": "YulFunctionCall", + "src": "1394:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1420:5:46", + "nodeType": "YulIdentifier", + "src": "1420:5:46" + }, + { + "kind": "number", + "nativeSrc": "1427:4:46", + "nodeType": "YulLiteral", + "src": "1427:4:46", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1416:3:46", + "nodeType": "YulIdentifier", + "src": "1416:3:46" + }, + "nativeSrc": "1416:16:46", + "nodeType": "YulFunctionCall", + "src": "1416:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1410:5:46", + "nodeType": "YulIdentifier", + "src": "1410:5:46" + }, + "nativeSrc": "1410:23:46", + "nodeType": "YulFunctionCall", + "src": "1410:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1387:6:46", + "nodeType": "YulIdentifier", + "src": "1387:6:46" + }, + "nativeSrc": "1387:47:46", + "nodeType": "YulFunctionCall", + "src": "1387:47:46" + }, + "nativeSrc": "1387:47:46", + "nodeType": "YulExpressionStatement", + "src": "1387:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1454:3:46", + "nodeType": "YulIdentifier", + "src": "1454:3:46" + }, + { + "kind": "number", + "nativeSrc": "1459:4:46", + "nodeType": "YulLiteral", + "src": "1459:4:46", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1450:3:46", + "nodeType": "YulIdentifier", + "src": "1450:3:46" + }, + "nativeSrc": "1450:14:46", + "nodeType": "YulFunctionCall", + "src": "1450:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1476:5:46", + "nodeType": "YulIdentifier", + "src": "1476:5:46" + }, + { + "kind": "number", + "nativeSrc": "1483:4:46", + "nodeType": "YulLiteral", + "src": "1483:4:46", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1472:3:46", + "nodeType": "YulIdentifier", + "src": "1472:3:46" + }, + "nativeSrc": "1472:16:46", + "nodeType": "YulFunctionCall", + "src": "1472:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1466:5:46", + "nodeType": "YulIdentifier", + "src": "1466:5:46" + }, + "nativeSrc": "1466:23:46", + "nodeType": "YulFunctionCall", + "src": "1466:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1443:6:46", + "nodeType": "YulIdentifier", + "src": "1443:6:46" + }, + "nativeSrc": "1443:47:46", + "nodeType": "YulFunctionCall", + "src": "1443:47:46" + }, + "nativeSrc": "1443:47:46", + "nodeType": "YulExpressionStatement", + "src": "1443:47:46" + }, + { + "nativeSrc": "1499:12:46", + "nodeType": "YulAssignment", + "src": "1499:12:46", + "value": { + "name": "pos_1", + "nativeSrc": "1506:5:46", + "nodeType": "YulIdentifier", + "src": "1506:5:46" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "1499:3:46", + "nodeType": "YulIdentifier", + "src": "1499:3:46" + } + ] + } + ] + }, + "name": "abi_encode_struct_Proof", + "nativeSrc": "484:1033:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "517:5:46", + "nodeType": "YulTypedName", + "src": "517:5:46", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "524:3:46", + "nodeType": "YulTypedName", + "src": "524:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "532:3:46", + "nodeType": "YulTypedName", + "src": "532:3:46", + "type": "" + } + ], + "src": "484:1033:46" + }, + { + "body": { + "nativeSrc": "1677:105:46", + "nodeType": "YulBlock", + "src": "1677:105:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1694:9:46", + "nodeType": "YulIdentifier", + "src": "1694:9:46" + }, + { + "kind": "number", + "nativeSrc": "1705:2:46", + "nodeType": "YulLiteral", + "src": "1705:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1687:6:46", + "nodeType": "YulIdentifier", + "src": "1687:6:46" + }, + "nativeSrc": "1687:21:46", + "nodeType": "YulFunctionCall", + "src": "1687:21:46" + }, + "nativeSrc": "1687:21:46", + "nodeType": "YulExpressionStatement", + "src": "1687:21:46" + }, + { + "nativeSrc": "1717:59:46", + "nodeType": "YulAssignment", + "src": "1717:59:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1749:6:46", + "nodeType": "YulIdentifier", + "src": "1749:6:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1761:9:46", + "nodeType": "YulIdentifier", + "src": "1761:9:46" + }, + { + "kind": "number", + "nativeSrc": "1772:2:46", + "nodeType": "YulLiteral", + "src": "1772:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1757:3:46", + "nodeType": "YulIdentifier", + "src": "1757:3:46" + }, + "nativeSrc": "1757:18:46", + "nodeType": "YulFunctionCall", + "src": "1757:18:46" + } + ], + "functionName": { + "name": "abi_encode_struct_Proof", + "nativeSrc": "1725:23:46", + "nodeType": "YulIdentifier", + "src": "1725:23:46" + }, + "nativeSrc": "1725:51:46", + "nodeType": "YulFunctionCall", + "src": "1725:51:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1717:4:46", + "nodeType": "YulIdentifier", + "src": "1717:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr__fromStack_library_reversed", + "nativeSrc": "1522:260:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1646:9:46", + "nodeType": "YulTypedName", + "src": "1646:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1657:6:46", + "nodeType": "YulTypedName", + "src": "1657:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1668:4:46", + "nodeType": "YulTypedName", + "src": "1668:4:46", + "type": "" + } + ], + "src": "1522:260:46" + }, + { + "body": { + "nativeSrc": "1914:362:46", + "nodeType": "YulBlock", + "src": "1914:362:46", + "statements": [ + { + "body": { + "nativeSrc": "1960:16:46", + "nodeType": "YulBlock", + "src": "1960:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1969:1:46", + "nodeType": "YulLiteral", + "src": "1969:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1972:1:46", + "nodeType": "YulLiteral", + "src": "1972:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1962:6:46", + "nodeType": "YulIdentifier", + "src": "1962:6:46" + }, + "nativeSrc": "1962:12:46", + "nodeType": "YulFunctionCall", + "src": "1962:12:46" + }, + "nativeSrc": "1962:12:46", + "nodeType": "YulExpressionStatement", + "src": "1962:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1935:7:46", + "nodeType": "YulIdentifier", + "src": "1935:7:46" + }, + { + "name": "headStart", + "nativeSrc": "1944:9:46", + "nodeType": "YulIdentifier", + "src": "1944:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1931:3:46", + "nodeType": "YulIdentifier", + "src": "1931:3:46" + }, + "nativeSrc": "1931:23:46", + "nodeType": "YulFunctionCall", + "src": "1931:23:46" + }, + { + "kind": "number", + "nativeSrc": "1956:2:46", + "nodeType": "YulLiteral", + "src": "1956:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1927:3:46", + "nodeType": "YulIdentifier", + "src": "1927:3:46" + }, + "nativeSrc": "1927:32:46", + "nodeType": "YulFunctionCall", + "src": "1927:32:46" + }, + "nativeSrc": "1924:52:46", + "nodeType": "YulIf", + "src": "1924:52:46" + }, + { + "nativeSrc": "1985:14:46", + "nodeType": "YulVariableDeclaration", + "src": "1985:14:46", + "value": { + "kind": "number", + "nativeSrc": "1998:1:46", + "nodeType": "YulLiteral", + "src": "1998:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "1989:5:46", + "nodeType": "YulTypedName", + "src": "1989:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "2008:32:46", + "nodeType": "YulAssignment", + "src": "2008:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2030:9:46", + "nodeType": "YulIdentifier", + "src": "2030:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2017:12:46", + "nodeType": "YulIdentifier", + "src": "2017:12:46" + }, + "nativeSrc": "2017:23:46", + "nodeType": "YulFunctionCall", + "src": "2017:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "2008:5:46", + "nodeType": "YulIdentifier", + "src": "2008:5:46" + } + ] + }, + { + "nativeSrc": "2049:15:46", + "nodeType": "YulAssignment", + "src": "2049:15:46", + "value": { + "name": "value", + "nativeSrc": "2059:5:46", + "nodeType": "YulIdentifier", + "src": "2059:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2049:6:46", + "nodeType": "YulIdentifier", + "src": "2049:6:46" + } + ] + }, + { + "nativeSrc": "2073:16:46", + "nodeType": "YulVariableDeclaration", + "src": "2073:16:46", + "value": { + "kind": "number", + "nativeSrc": "2088:1:46", + "nodeType": "YulLiteral", + "src": "2088:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "2077:7:46", + "nodeType": "YulTypedName", + "src": "2077:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "2098:43:46", + "nodeType": "YulAssignment", + "src": "2098:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2126:9:46", + "nodeType": "YulIdentifier", + "src": "2126:9:46" + }, + { + "kind": "number", + "nativeSrc": "2137:2:46", + "nodeType": "YulLiteral", + "src": "2137:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2122:3:46", + "nodeType": "YulIdentifier", + "src": "2122:3:46" + }, + "nativeSrc": "2122:18:46", + "nodeType": "YulFunctionCall", + "src": "2122:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2109:12:46", + "nodeType": "YulIdentifier", + "src": "2109:12:46" + }, + "nativeSrc": "2109:32:46", + "nodeType": "YulFunctionCall", + "src": "2109:32:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "2098:7:46", + "nodeType": "YulIdentifier", + "src": "2098:7:46" + } + ] + }, + { + "nativeSrc": "2150:17:46", + "nodeType": "YulAssignment", + "src": "2150:17:46", + "value": { + "name": "value_1", + "nativeSrc": "2160:7:46", + "nodeType": "YulIdentifier", + "src": "2160:7:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "2150:6:46", + "nodeType": "YulIdentifier", + "src": "2150:6:46" + } + ] + }, + { + "nativeSrc": "2176:16:46", + "nodeType": "YulVariableDeclaration", + "src": "2176:16:46", + "value": { + "kind": "number", + "nativeSrc": "2191:1:46", + "nodeType": "YulLiteral", + "src": "2191:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "2180:7:46", + "nodeType": "YulTypedName", + "src": "2180:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "2201:43:46", + "nodeType": "YulAssignment", + "src": "2201:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2229:9:46", + "nodeType": "YulIdentifier", + "src": "2229:9:46" + }, + { + "kind": "number", + "nativeSrc": "2240:2:46", + "nodeType": "YulLiteral", + "src": "2240:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2225:3:46", + "nodeType": "YulIdentifier", + "src": "2225:3:46" + }, + "nativeSrc": "2225:18:46", + "nodeType": "YulFunctionCall", + "src": "2225:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2212:12:46", + "nodeType": "YulIdentifier", + "src": "2212:12:46" + }, + "nativeSrc": "2212:32:46", + "nodeType": "YulFunctionCall", + "src": "2212:32:46" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "2201:7:46", + "nodeType": "YulIdentifier", + "src": "2201:7:46" + } + ] + }, + { + "nativeSrc": "2253:17:46", + "nodeType": "YulAssignment", + "src": "2253:17:46", + "value": { + "name": "value_2", + "nativeSrc": "2263:7:46", + "nodeType": "YulIdentifier", + "src": "2263:7:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "2253:6:46", + "nodeType": "YulIdentifier", + "src": "2253:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint256t_uint256", + "nativeSrc": "1787:489:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1864:9:46", + "nodeType": "YulTypedName", + "src": "1864:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1875:7:46", + "nodeType": "YulTypedName", + "src": "1875:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1887:6:46", + "nodeType": "YulTypedName", + "src": "1887:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1895:6:46", + "nodeType": "YulTypedName", + "src": "1895:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "1903:6:46", + "nodeType": "YulTypedName", + "src": "1903:6:46", + "type": "" + } + ], + "src": "1787:489:46" + }, + { + "body": { + "nativeSrc": "2436:209:46", + "nodeType": "YulBlock", + "src": "2436:209:46", + "statements": [ + { + "nativeSrc": "2446:26:46", + "nodeType": "YulAssignment", + "src": "2446:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2458:9:46", + "nodeType": "YulIdentifier", + "src": "2458:9:46" + }, + { + "kind": "number", + "nativeSrc": "2469:2:46", + "nodeType": "YulLiteral", + "src": "2469:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2454:3:46", + "nodeType": "YulIdentifier", + "src": "2454:3:46" + }, + "nativeSrc": "2454:18:46", + "nodeType": "YulFunctionCall", + "src": "2454:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2446:4:46", + "nodeType": "YulIdentifier", + "src": "2446:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2488:9:46", + "nodeType": "YulIdentifier", + "src": "2488:9:46" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2505:6:46", + "nodeType": "YulIdentifier", + "src": "2505:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2499:5:46", + "nodeType": "YulIdentifier", + "src": "2499:5:46" + }, + "nativeSrc": "2499:13:46", + "nodeType": "YulFunctionCall", + "src": "2499:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2481:6:46", + "nodeType": "YulIdentifier", + "src": "2481:6:46" + }, + "nativeSrc": "2481:32:46", + "nodeType": "YulFunctionCall", + "src": "2481:32:46" + }, + "nativeSrc": "2481:32:46", + "nodeType": "YulExpressionStatement", + "src": "2481:32:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2533:9:46", + "nodeType": "YulIdentifier", + "src": "2533:9:46" + }, + { + "kind": "number", + "nativeSrc": "2544:4:46", + "nodeType": "YulLiteral", + "src": "2544:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2529:3:46", + "nodeType": "YulIdentifier", + "src": "2529:3:46" + }, + "nativeSrc": "2529:20:46", + "nodeType": "YulFunctionCall", + "src": "2529:20:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2561:6:46", + "nodeType": "YulIdentifier", + "src": "2561:6:46" + }, + { + "kind": "number", + "nativeSrc": "2569:4:46", + "nodeType": "YulLiteral", + "src": "2569:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2557:3:46", + "nodeType": "YulIdentifier", + "src": "2557:3:46" + }, + "nativeSrc": "2557:17:46", + "nodeType": "YulFunctionCall", + "src": "2557:17:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2551:5:46", + "nodeType": "YulIdentifier", + "src": "2551:5:46" + }, + "nativeSrc": "2551:24:46", + "nodeType": "YulFunctionCall", + "src": "2551:24:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2522:6:46", + "nodeType": "YulIdentifier", + "src": "2522:6:46" + }, + "nativeSrc": "2522:54:46", + "nodeType": "YulFunctionCall", + "src": "2522:54:46" + }, + "nativeSrc": "2522:54:46", + "nodeType": "YulExpressionStatement", + "src": "2522:54:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2596:9:46", + "nodeType": "YulIdentifier", + "src": "2596:9:46" + }, + { + "kind": "number", + "nativeSrc": "2607:4:46", + "nodeType": "YulLiteral", + "src": "2607:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2592:3:46", + "nodeType": "YulIdentifier", + "src": "2592:3:46" + }, + "nativeSrc": "2592:20:46", + "nodeType": "YulFunctionCall", + "src": "2592:20:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2624:6:46", + "nodeType": "YulIdentifier", + "src": "2624:6:46" + }, + { + "kind": "number", + "nativeSrc": "2632:4:46", + "nodeType": "YulLiteral", + "src": "2632:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2620:3:46", + "nodeType": "YulIdentifier", + "src": "2620:3:46" + }, + "nativeSrc": "2620:17:46", + "nodeType": "YulFunctionCall", + "src": "2620:17:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2614:5:46", + "nodeType": "YulIdentifier", + "src": "2614:5:46" + }, + "nativeSrc": "2614:24:46", + "nodeType": "YulFunctionCall", + "src": "2614:24:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2585:6:46", + "nodeType": "YulIdentifier", + "src": "2585:6:46" + }, + "nativeSrc": "2585:54:46", + "nodeType": "YulFunctionCall", + "src": "2585:54:46" + }, + "nativeSrc": "2585:54:46", + "nodeType": "YulExpressionStatement", + "src": "2585:54:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Roots_$1390_memory_ptr__to_t_struct$_Roots_$1390_memory_ptr__fromStack_library_reversed", + "nativeSrc": "2281:364:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2405:9:46", + "nodeType": "YulTypedName", + "src": "2405:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2416:6:46", + "nodeType": "YulTypedName", + "src": "2416:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2427:4:46", + "nodeType": "YulTypedName", + "src": "2427:4:46", + "type": "" + } + ], + "src": "2281:364:46" + }, + { + "body": { + "nativeSrc": "2698:123:46", + "nodeType": "YulBlock", + "src": "2698:123:46", + "statements": [ + { + "nativeSrc": "2708:29:46", + "nodeType": "YulAssignment", + "src": "2708:29:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "2730:6:46", + "nodeType": "YulIdentifier", + "src": "2730:6:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2717:12:46", + "nodeType": "YulIdentifier", + "src": "2717:12:46" + }, + "nativeSrc": "2717:20:46", + "nodeType": "YulFunctionCall", + "src": "2717:20:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "2708:5:46", + "nodeType": "YulIdentifier", + "src": "2708:5:46" + } + ] + }, + { + "body": { + "nativeSrc": "2799:16:46", + "nodeType": "YulBlock", + "src": "2799:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2808:1:46", + "nodeType": "YulLiteral", + "src": "2808:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2811:1:46", + "nodeType": "YulLiteral", + "src": "2811:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2801:6:46", + "nodeType": "YulIdentifier", + "src": "2801:6:46" + }, + "nativeSrc": "2801:12:46", + "nodeType": "YulFunctionCall", + "src": "2801:12:46" + }, + "nativeSrc": "2801:12:46", + "nodeType": "YulExpressionStatement", + "src": "2801:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2759:5:46", + "nodeType": "YulIdentifier", + "src": "2759:5:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2770:5:46", + "nodeType": "YulIdentifier", + "src": "2770:5:46" + }, + { + "kind": "number", + "nativeSrc": "2777:18:46", + "nodeType": "YulLiteral", + "src": "2777:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2766:3:46", + "nodeType": "YulIdentifier", + "src": "2766:3:46" + }, + "nativeSrc": "2766:30:46", + "nodeType": "YulFunctionCall", + "src": "2766:30:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2756:2:46", + "nodeType": "YulIdentifier", + "src": "2756:2:46" + }, + "nativeSrc": "2756:41:46", + "nodeType": "YulFunctionCall", + "src": "2756:41:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2749:6:46", + "nodeType": "YulIdentifier", + "src": "2749:6:46" + }, + "nativeSrc": "2749:49:46", + "nodeType": "YulFunctionCall", + "src": "2749:49:46" + }, + "nativeSrc": "2746:69:46", + "nodeType": "YulIf", + "src": "2746:69:46" + } + ] + }, + "name": "abi_decode_uint64", + "nativeSrc": "2650:171:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "2677:6:46", + "nodeType": "YulTypedName", + "src": "2677:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "2688:5:46", + "nodeType": "YulTypedName", + "src": "2688:5:46", + "type": "" + } + ], + "src": "2650:171:46" + }, + { + "body": { + "nativeSrc": "2952:315:46", + "nodeType": "YulBlock", + "src": "2952:315:46", + "statements": [ + { + "body": { + "nativeSrc": "2998:16:46", + "nodeType": "YulBlock", + "src": "2998:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3007:1:46", + "nodeType": "YulLiteral", + "src": "3007:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3010:1:46", + "nodeType": "YulLiteral", + "src": "3010:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3000:6:46", + "nodeType": "YulIdentifier", + "src": "3000:6:46" + }, + "nativeSrc": "3000:12:46", + "nodeType": "YulFunctionCall", + "src": "3000:12:46" + }, + "nativeSrc": "3000:12:46", + "nodeType": "YulExpressionStatement", + "src": "3000:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2973:7:46", + "nodeType": "YulIdentifier", + "src": "2973:7:46" + }, + { + "name": "headStart", + "nativeSrc": "2982:9:46", + "nodeType": "YulIdentifier", + "src": "2982:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2969:3:46", + "nodeType": "YulIdentifier", + "src": "2969:3:46" + }, + "nativeSrc": "2969:23:46", + "nodeType": "YulFunctionCall", + "src": "2969:23:46" + }, + { + "kind": "number", + "nativeSrc": "2994:2:46", + "nodeType": "YulLiteral", + "src": "2994:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2965:3:46", + "nodeType": "YulIdentifier", + "src": "2965:3:46" + }, + "nativeSrc": "2965:32:46", + "nodeType": "YulFunctionCall", + "src": "2965:32:46" + }, + "nativeSrc": "2962:52:46", + "nodeType": "YulIf", + "src": "2962:52:46" + }, + { + "nativeSrc": "3023:14:46", + "nodeType": "YulVariableDeclaration", + "src": "3023:14:46", + "value": { + "kind": "number", + "nativeSrc": "3036:1:46", + "nodeType": "YulLiteral", + "src": "3036:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "3027:5:46", + "nodeType": "YulTypedName", + "src": "3027:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "3046:32:46", + "nodeType": "YulAssignment", + "src": "3046:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3068:9:46", + "nodeType": "YulIdentifier", + "src": "3068:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3055:12:46", + "nodeType": "YulIdentifier", + "src": "3055:12:46" + }, + "nativeSrc": "3055:23:46", + "nodeType": "YulFunctionCall", + "src": "3055:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3046:5:46", + "nodeType": "YulIdentifier", + "src": "3046:5:46" + } + ] + }, + { + "nativeSrc": "3087:15:46", + "nodeType": "YulAssignment", + "src": "3087:15:46", + "value": { + "name": "value", + "nativeSrc": "3097:5:46", + "nodeType": "YulIdentifier", + "src": "3097:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3087:6:46", + "nodeType": "YulIdentifier", + "src": "3087:6:46" + } + ] + }, + { + "nativeSrc": "3111:47:46", + "nodeType": "YulAssignment", + "src": "3111:47:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3143:9:46", + "nodeType": "YulIdentifier", + "src": "3143:9:46" + }, + { + "kind": "number", + "nativeSrc": "3154:2:46", + "nodeType": "YulLiteral", + "src": "3154:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3139:3:46", + "nodeType": "YulIdentifier", + "src": "3139:3:46" + }, + "nativeSrc": "3139:18:46", + "nodeType": "YulFunctionCall", + "src": "3139:18:46" + } + ], + "functionName": { + "name": "abi_decode_uint64", + "nativeSrc": "3121:17:46", + "nodeType": "YulIdentifier", + "src": "3121:17:46" + }, + "nativeSrc": "3121:37:46", + "nodeType": "YulFunctionCall", + "src": "3121:37:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "3111:6:46", + "nodeType": "YulIdentifier", + "src": "3111:6:46" + } + ] + }, + { + "nativeSrc": "3167:16:46", + "nodeType": "YulVariableDeclaration", + "src": "3167:16:46", + "value": { + "kind": "number", + "nativeSrc": "3182:1:46", + "nodeType": "YulLiteral", + "src": "3182:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "3171:7:46", + "nodeType": "YulTypedName", + "src": "3171:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "3192:43:46", + "nodeType": "YulAssignment", + "src": "3192:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3220:9:46", + "nodeType": "YulIdentifier", + "src": "3220:9:46" + }, + { + "kind": "number", + "nativeSrc": "3231:2:46", + "nodeType": "YulLiteral", + "src": "3231:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3216:3:46", + "nodeType": "YulIdentifier", + "src": "3216:3:46" + }, + "nativeSrc": "3216:18:46", + "nodeType": "YulFunctionCall", + "src": "3216:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3203:12:46", + "nodeType": "YulIdentifier", + "src": "3203:12:46" + }, + "nativeSrc": "3203:32:46", + "nodeType": "YulFunctionCall", + "src": "3203:32:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "3192:7:46", + "nodeType": "YulIdentifier", + "src": "3192:7:46" + } + ] + }, + { + "nativeSrc": "3244:17:46", + "nodeType": "YulAssignment", + "src": "3244:17:46", + "value": { + "name": "value_1", + "nativeSrc": "3254:7:46", + "nodeType": "YulIdentifier", + "src": "3254:7:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "3244:6:46", + "nodeType": "YulIdentifier", + "src": "3244:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint64t_uint256", + "nativeSrc": "2826:441:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2902:9:46", + "nodeType": "YulTypedName", + "src": "2902:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2913:7:46", + "nodeType": "YulTypedName", + "src": "2913:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2925:6:46", + "nodeType": "YulTypedName", + "src": "2925:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "2933:6:46", + "nodeType": "YulTypedName", + "src": "2933:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "2941:6:46", + "nodeType": "YulTypedName", + "src": "2941:6:46", + "type": "" + } + ], + "src": "2826:441:46" + }, + { + "body": { + "nativeSrc": "3365:156:46", + "nodeType": "YulBlock", + "src": "3365:156:46", + "statements": [ + { + "body": { + "nativeSrc": "3411:16:46", + "nodeType": "YulBlock", + "src": "3411:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3420:1:46", + "nodeType": "YulLiteral", + "src": "3420:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3423:1:46", + "nodeType": "YulLiteral", + "src": "3423:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3413:6:46", + "nodeType": "YulIdentifier", + "src": "3413:6:46" + }, + "nativeSrc": "3413:12:46", + "nodeType": "YulFunctionCall", + "src": "3413:12:46" + }, + "nativeSrc": "3413:12:46", + "nodeType": "YulExpressionStatement", + "src": "3413:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3386:7:46", + "nodeType": "YulIdentifier", + "src": "3386:7:46" + }, + { + "name": "headStart", + "nativeSrc": "3395:9:46", + "nodeType": "YulIdentifier", + "src": "3395:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3382:3:46", + "nodeType": "YulIdentifier", + "src": "3382:3:46" + }, + "nativeSrc": "3382:23:46", + "nodeType": "YulFunctionCall", + "src": "3382:23:46" + }, + { + "kind": "number", + "nativeSrc": "3407:2:46", + "nodeType": "YulLiteral", + "src": "3407:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3378:3:46", + "nodeType": "YulIdentifier", + "src": "3378:3:46" + }, + "nativeSrc": "3378:32:46", + "nodeType": "YulFunctionCall", + "src": "3378:32:46" + }, + "nativeSrc": "3375:52:46", + "nodeType": "YulIf", + "src": "3375:52:46" + }, + { + "nativeSrc": "3436:14:46", + "nodeType": "YulVariableDeclaration", + "src": "3436:14:46", + "value": { + "kind": "number", + "nativeSrc": "3449:1:46", + "nodeType": "YulLiteral", + "src": "3449:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "3440:5:46", + "nodeType": "YulTypedName", + "src": "3440:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "3459:32:46", + "nodeType": "YulAssignment", + "src": "3459:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3481:9:46", + "nodeType": "YulIdentifier", + "src": "3481:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3468:12:46", + "nodeType": "YulIdentifier", + "src": "3468:12:46" + }, + "nativeSrc": "3468:23:46", + "nodeType": "YulFunctionCall", + "src": "3468:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3459:5:46", + "nodeType": "YulIdentifier", + "src": "3459:5:46" + } + ] + }, + { + "nativeSrc": "3500:15:46", + "nodeType": "YulAssignment", + "src": "3500:15:46", + "value": { + "name": "value", + "nativeSrc": "3510:5:46", + "nodeType": "YulIdentifier", + "src": "3510:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3500:6:46", + "nodeType": "YulIdentifier", + "src": "3500:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Data_$1371_storage_ptr", + "nativeSrc": "3272:249:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3331:9:46", + "nodeType": "YulTypedName", + "src": "3331:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3342:7:46", + "nodeType": "YulTypedName", + "src": "3342:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3354:6:46", + "nodeType": "YulTypedName", + "src": "3354:6:46", + "type": "" + } + ], + "src": "3272:249:46" + }, + { + "body": { + "nativeSrc": "3635:76:46", + "nodeType": "YulBlock", + "src": "3635:76:46", + "statements": [ + { + "nativeSrc": "3645:26:46", + "nodeType": "YulAssignment", + "src": "3645:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3657:9:46", + "nodeType": "YulIdentifier", + "src": "3657:9:46" + }, + { + "kind": "number", + "nativeSrc": "3668:2:46", + "nodeType": "YulLiteral", + "src": "3668:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3653:3:46", + "nodeType": "YulIdentifier", + "src": "3653:3:46" + }, + "nativeSrc": "3653:18:46", + "nodeType": "YulFunctionCall", + "src": "3653:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3645:4:46", + "nodeType": "YulIdentifier", + "src": "3645:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3687:9:46", + "nodeType": "YulIdentifier", + "src": "3687:9:46" + }, + { + "name": "value0", + "nativeSrc": "3698:6:46", + "nodeType": "YulIdentifier", + "src": "3698:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3680:6:46", + "nodeType": "YulIdentifier", + "src": "3680:6:46" + }, + "nativeSrc": "3680:25:46", + "nodeType": "YulFunctionCall", + "src": "3680:25:46" + }, + "nativeSrc": "3680:25:46", + "nodeType": "YulExpressionStatement", + "src": "3680:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed", + "nativeSrc": "3526:185:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3604:9:46", + "nodeType": "YulTypedName", + "src": "3604:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3615:6:46", + "nodeType": "YulTypedName", + "src": "3615:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3626:4:46", + "nodeType": "YulTypedName", + "src": "3626:4:46", + "type": "" + } + ], + "src": "3526:185:46" + }, + { + "body": { + "nativeSrc": "3765:124:46", + "nodeType": "YulBlock", + "src": "3765:124:46", + "statements": [ + { + "nativeSrc": "3775:29:46", + "nodeType": "YulAssignment", + "src": "3775:29:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3797:6:46", + "nodeType": "YulIdentifier", + "src": "3797:6:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3784:12:46", + "nodeType": "YulIdentifier", + "src": "3784:12:46" + }, + "nativeSrc": "3784:20:46", + "nodeType": "YulFunctionCall", + "src": "3784:20:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3775:5:46", + "nodeType": "YulIdentifier", + "src": "3775:5:46" + } + ] + }, + { + "body": { + "nativeSrc": "3867:16:46", + "nodeType": "YulBlock", + "src": "3867:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3876:1:46", + "nodeType": "YulLiteral", + "src": "3876:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3879:1:46", + "nodeType": "YulLiteral", + "src": "3879:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3869:6:46", + "nodeType": "YulIdentifier", + "src": "3869:6:46" + }, + "nativeSrc": "3869:12:46", + "nodeType": "YulFunctionCall", + "src": "3869:12:46" + }, + "nativeSrc": "3869:12:46", + "nodeType": "YulExpressionStatement", + "src": "3869:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3826:5:46", + "nodeType": "YulIdentifier", + "src": "3826:5:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "3837:5:46", + "nodeType": "YulIdentifier", + "src": "3837:5:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3852:3:46", + "nodeType": "YulLiteral", + "src": "3852:3:46", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "3857:1:46", + "nodeType": "YulLiteral", + "src": "3857:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "3848:3:46", + "nodeType": "YulIdentifier", + "src": "3848:3:46" + }, + "nativeSrc": "3848:11:46", + "nodeType": "YulFunctionCall", + "src": "3848:11:46" + }, + { + "kind": "number", + "nativeSrc": "3861:1:46", + "nodeType": "YulLiteral", + "src": "3861:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3844:3:46", + "nodeType": "YulIdentifier", + "src": "3844:3:46" + }, + "nativeSrc": "3844:19:46", + "nodeType": "YulFunctionCall", + "src": "3844:19:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "3833:3:46", + "nodeType": "YulIdentifier", + "src": "3833:3:46" + }, + "nativeSrc": "3833:31:46", + "nodeType": "YulFunctionCall", + "src": "3833:31:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "3823:2:46", + "nodeType": "YulIdentifier", + "src": "3823:2:46" + }, + "nativeSrc": "3823:42:46", + "nodeType": "YulFunctionCall", + "src": "3823:42:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "3816:6:46", + "nodeType": "YulIdentifier", + "src": "3816:6:46" + }, + "nativeSrc": "3816:50:46", + "nodeType": "YulFunctionCall", + "src": "3816:50:46" + }, + "nativeSrc": "3813:70:46", + "nodeType": "YulIf", + "src": "3813:70:46" + } + ] + }, + "name": "abi_decode_address", + "nativeSrc": "3716:173:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3744:6:46", + "nodeType": "YulTypedName", + "src": "3744:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3755:5:46", + "nodeType": "YulTypedName", + "src": "3755:5:46", + "type": "" + } + ], + "src": "3716:173:46" + }, + { + "body": { + "nativeSrc": "4054:536:46", + "nodeType": "YulBlock", + "src": "4054:536:46", + "statements": [ + { + "body": { + "nativeSrc": "4101:16:46", + "nodeType": "YulBlock", + "src": "4101:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4110:1:46", + "nodeType": "YulLiteral", + "src": "4110:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4113:1:46", + "nodeType": "YulLiteral", + "src": "4113:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4103:6:46", + "nodeType": "YulIdentifier", + "src": "4103:6:46" + }, + "nativeSrc": "4103:12:46", + "nodeType": "YulFunctionCall", + "src": "4103:12:46" + }, + "nativeSrc": "4103:12:46", + "nodeType": "YulExpressionStatement", + "src": "4103:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4075:7:46", + "nodeType": "YulIdentifier", + "src": "4075:7:46" + }, + { + "name": "headStart", + "nativeSrc": "4084:9:46", + "nodeType": "YulIdentifier", + "src": "4084:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4071:3:46", + "nodeType": "YulIdentifier", + "src": "4071:3:46" + }, + "nativeSrc": "4071:23:46", + "nodeType": "YulFunctionCall", + "src": "4071:23:46" + }, + { + "kind": "number", + "nativeSrc": "4096:3:46", + "nodeType": "YulLiteral", + "src": "4096:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4067:3:46", + "nodeType": "YulIdentifier", + "src": "4067:3:46" + }, + "nativeSrc": "4067:33:46", + "nodeType": "YulFunctionCall", + "src": "4067:33:46" + }, + "nativeSrc": "4064:53:46", + "nodeType": "YulIf", + "src": "4064:53:46" + }, + { + "nativeSrc": "4126:14:46", + "nodeType": "YulVariableDeclaration", + "src": "4126:14:46", + "value": { + "kind": "number", + "nativeSrc": "4139:1:46", + "nodeType": "YulLiteral", + "src": "4139:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "4130:5:46", + "nodeType": "YulTypedName", + "src": "4130:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "4149:32:46", + "nodeType": "YulAssignment", + "src": "4149:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4171:9:46", + "nodeType": "YulIdentifier", + "src": "4171:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4158:12:46", + "nodeType": "YulIdentifier", + "src": "4158:12:46" + }, + "nativeSrc": "4158:23:46", + "nodeType": "YulFunctionCall", + "src": "4158:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4149:5:46", + "nodeType": "YulIdentifier", + "src": "4149:5:46" + } + ] + }, + { + "nativeSrc": "4190:15:46", + "nodeType": "YulAssignment", + "src": "4190:15:46", + "value": { + "name": "value", + "nativeSrc": "4200:5:46", + "nodeType": "YulIdentifier", + "src": "4200:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4190:6:46", + "nodeType": "YulIdentifier", + "src": "4190:6:46" + } + ] + }, + { + "nativeSrc": "4214:48:46", + "nodeType": "YulAssignment", + "src": "4214:48:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4247:9:46", + "nodeType": "YulIdentifier", + "src": "4247:9:46" + }, + { + "kind": "number", + "nativeSrc": "4258:2:46", + "nodeType": "YulLiteral", + "src": "4258:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4243:3:46", + "nodeType": "YulIdentifier", + "src": "4243:3:46" + }, + "nativeSrc": "4243:18:46", + "nodeType": "YulFunctionCall", + "src": "4243:18:46" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "4224:18:46", + "nodeType": "YulIdentifier", + "src": "4224:18:46" + }, + "nativeSrc": "4224:38:46", + "nodeType": "YulFunctionCall", + "src": "4224:38:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4214:6:46", + "nodeType": "YulIdentifier", + "src": "4214:6:46" + } + ] + }, + { + "nativeSrc": "4271:48:46", + "nodeType": "YulAssignment", + "src": "4271:48:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4304:9:46", + "nodeType": "YulIdentifier", + "src": "4304:9:46" + }, + { + "kind": "number", + "nativeSrc": "4315:2:46", + "nodeType": "YulLiteral", + "src": "4315:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4300:3:46", + "nodeType": "YulIdentifier", + "src": "4300:3:46" + }, + "nativeSrc": "4300:18:46", + "nodeType": "YulFunctionCall", + "src": "4300:18:46" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "4281:18:46", + "nodeType": "YulIdentifier", + "src": "4281:18:46" + }, + "nativeSrc": "4281:38:46", + "nodeType": "YulFunctionCall", + "src": "4281:38:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "4271:6:46", + "nodeType": "YulIdentifier", + "src": "4271:6:46" + } + ] + }, + { + "nativeSrc": "4328:16:46", + "nodeType": "YulVariableDeclaration", + "src": "4328:16:46", + "value": { + "kind": "number", + "nativeSrc": "4343:1:46", + "nodeType": "YulLiteral", + "src": "4343:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "4332:7:46", + "nodeType": "YulTypedName", + "src": "4332:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "4353:43:46", + "nodeType": "YulAssignment", + "src": "4353:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4381:9:46", + "nodeType": "YulIdentifier", + "src": "4381:9:46" + }, + { + "kind": "number", + "nativeSrc": "4392:2:46", + "nodeType": "YulLiteral", + "src": "4392:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4377:3:46", + "nodeType": "YulIdentifier", + "src": "4377:3:46" + }, + "nativeSrc": "4377:18:46", + "nodeType": "YulFunctionCall", + "src": "4377:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4364:12:46", + "nodeType": "YulIdentifier", + "src": "4364:12:46" + }, + "nativeSrc": "4364:32:46", + "nodeType": "YulFunctionCall", + "src": "4364:32:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "4353:7:46", + "nodeType": "YulIdentifier", + "src": "4353:7:46" + } + ] + }, + { + "nativeSrc": "4405:17:46", + "nodeType": "YulAssignment", + "src": "4405:17:46", + "value": { + "name": "value_1", + "nativeSrc": "4415:7:46", + "nodeType": "YulIdentifier", + "src": "4415:7:46" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "4405:6:46", + "nodeType": "YulIdentifier", + "src": "4405:6:46" + } + ] + }, + { + "nativeSrc": "4431:48:46", + "nodeType": "YulVariableDeclaration", + "src": "4431:48:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4463:9:46", + "nodeType": "YulIdentifier", + "src": "4463:9:46" + }, + { + "kind": "number", + "nativeSrc": "4474:3:46", + "nodeType": "YulLiteral", + "src": "4474:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4459:3:46", + "nodeType": "YulIdentifier", + "src": "4459:3:46" + }, + "nativeSrc": "4459:19:46", + "nodeType": "YulFunctionCall", + "src": "4459:19:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4446:12:46", + "nodeType": "YulIdentifier", + "src": "4446:12:46" + }, + "nativeSrc": "4446:33:46", + "nodeType": "YulFunctionCall", + "src": "4446:33:46" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "4435:7:46", + "nodeType": "YulTypedName", + "src": "4435:7:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "4542:16:46", + "nodeType": "YulBlock", + "src": "4542:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4551:1:46", + "nodeType": "YulLiteral", + "src": "4551:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4554:1:46", + "nodeType": "YulLiteral", + "src": "4554:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4544:6:46", + "nodeType": "YulIdentifier", + "src": "4544:6:46" + }, + "nativeSrc": "4544:12:46", + "nodeType": "YulFunctionCall", + "src": "4544:12:46" + }, + "nativeSrc": "4544:12:46", + "nodeType": "YulExpressionStatement", + "src": "4544:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value_2", + "nativeSrc": "4501:7:46", + "nodeType": "YulIdentifier", + "src": "4501:7:46" + }, + { + "arguments": [ + { + "name": "value_2", + "nativeSrc": "4514:7:46", + "nodeType": "YulIdentifier", + "src": "4514:7:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4527:3:46", + "nodeType": "YulLiteral", + "src": "4527:3:46", + "type": "", + "value": "240" + }, + { + "kind": "number", + "nativeSrc": "4532:5:46", + "nodeType": "YulLiteral", + "src": "4532:5:46", + "type": "", + "value": "65535" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4523:3:46", + "nodeType": "YulIdentifier", + "src": "4523:3:46" + }, + "nativeSrc": "4523:15:46", + "nodeType": "YulFunctionCall", + "src": "4523:15:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4510:3:46", + "nodeType": "YulIdentifier", + "src": "4510:3:46" + }, + "nativeSrc": "4510:29:46", + "nodeType": "YulFunctionCall", + "src": "4510:29:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "4498:2:46", + "nodeType": "YulIdentifier", + "src": "4498:2:46" + }, + "nativeSrc": "4498:42:46", + "nodeType": "YulFunctionCall", + "src": "4498:42:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4491:6:46", + "nodeType": "YulIdentifier", + "src": "4491:6:46" + }, + "nativeSrc": "4491:50:46", + "nodeType": "YulFunctionCall", + "src": "4491:50:46" + }, + "nativeSrc": "4488:70:46", + "nodeType": "YulIf", + "src": "4488:70:46" + }, + { + "nativeSrc": "4567:17:46", + "nodeType": "YulAssignment", + "src": "4567:17:46", + "value": { + "name": "value_2", + "nativeSrc": "4577:7:46", + "nodeType": "YulIdentifier", + "src": "4577:7:46" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "4567:6:46", + "nodeType": "YulIdentifier", + "src": "4567:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_addresst_addresst_uint256t_bytes2", + "nativeSrc": "3894:696:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3988:9:46", + "nodeType": "YulTypedName", + "src": "3988:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3999:7:46", + "nodeType": "YulTypedName", + "src": "3999:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4011:6:46", + "nodeType": "YulTypedName", + "src": "4011:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4019:6:46", + "nodeType": "YulTypedName", + "src": "4019:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "4027:6:46", + "nodeType": "YulTypedName", + "src": "4027:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "4035:6:46", + "nodeType": "YulTypedName", + "src": "4035:6:46", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "4043:6:46", + "nodeType": "YulTypedName", + "src": "4043:6:46", + "type": "" + } + ], + "src": "3894:696:46" + }, + { + "body": { + "nativeSrc": "4704:212:46", + "nodeType": "YulBlock", + "src": "4704:212:46", + "statements": [ + { + "body": { + "nativeSrc": "4750:16:46", + "nodeType": "YulBlock", + "src": "4750:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4759:1:46", + "nodeType": "YulLiteral", + "src": "4759:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4762:1:46", + "nodeType": "YulLiteral", + "src": "4762:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4752:6:46", + "nodeType": "YulIdentifier", + "src": "4752:6:46" + }, + "nativeSrc": "4752:12:46", + "nodeType": "YulFunctionCall", + "src": "4752:12:46" + }, + "nativeSrc": "4752:12:46", + "nodeType": "YulExpressionStatement", + "src": "4752:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4725:7:46", + "nodeType": "YulIdentifier", + "src": "4725:7:46" + }, + { + "name": "headStart", + "nativeSrc": "4734:9:46", + "nodeType": "YulIdentifier", + "src": "4734:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4721:3:46", + "nodeType": "YulIdentifier", + "src": "4721:3:46" + }, + "nativeSrc": "4721:23:46", + "nodeType": "YulFunctionCall", + "src": "4721:23:46" + }, + { + "kind": "number", + "nativeSrc": "4746:2:46", + "nodeType": "YulLiteral", + "src": "4746:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4717:3:46", + "nodeType": "YulIdentifier", + "src": "4717:3:46" + }, + "nativeSrc": "4717:32:46", + "nodeType": "YulFunctionCall", + "src": "4717:32:46" + }, + "nativeSrc": "4714:52:46", + "nodeType": "YulIf", + "src": "4714:52:46" + }, + { + "nativeSrc": "4775:14:46", + "nodeType": "YulVariableDeclaration", + "src": "4775:14:46", + "value": { + "kind": "number", + "nativeSrc": "4788:1:46", + "nodeType": "YulLiteral", + "src": "4788:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "4779:5:46", + "nodeType": "YulTypedName", + "src": "4779:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "4798:32:46", + "nodeType": "YulAssignment", + "src": "4798:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4820:9:46", + "nodeType": "YulIdentifier", + "src": "4820:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4807:12:46", + "nodeType": "YulIdentifier", + "src": "4807:12:46" + }, + "nativeSrc": "4807:23:46", + "nodeType": "YulFunctionCall", + "src": "4807:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4798:5:46", + "nodeType": "YulIdentifier", + "src": "4798:5:46" + } + ] + }, + { + "nativeSrc": "4839:15:46", + "nodeType": "YulAssignment", + "src": "4839:15:46", + "value": { + "name": "value", + "nativeSrc": "4849:5:46", + "nodeType": "YulIdentifier", + "src": "4849:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4839:6:46", + "nodeType": "YulIdentifier", + "src": "4839:6:46" + } + ] + }, + { + "nativeSrc": "4863:47:46", + "nodeType": "YulAssignment", + "src": "4863:47:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4895:9:46", + "nodeType": "YulIdentifier", + "src": "4895:9:46" + }, + { + "kind": "number", + "nativeSrc": "4906:2:46", + "nodeType": "YulLiteral", + "src": "4906:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4891:3:46", + "nodeType": "YulIdentifier", + "src": "4891:3:46" + }, + "nativeSrc": "4891:18:46", + "nodeType": "YulFunctionCall", + "src": "4891:18:46" + } + ], + "functionName": { + "name": "abi_decode_uint64", + "nativeSrc": "4873:17:46", + "nodeType": "YulIdentifier", + "src": "4873:17:46" + }, + "nativeSrc": "4873:37:46", + "nodeType": "YulFunctionCall", + "src": "4873:37:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4863:6:46", + "nodeType": "YulIdentifier", + "src": "4863:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint64", + "nativeSrc": "4595:321:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4662:9:46", + "nodeType": "YulTypedName", + "src": "4662:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4673:7:46", + "nodeType": "YulTypedName", + "src": "4673:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4685:6:46", + "nodeType": "YulTypedName", + "src": "4685:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4693:6:46", + "nodeType": "YulTypedName", + "src": "4693:6:46", + "type": "" + } + ], + "src": "4595:321:46" + }, + { + "body": { + "nativeSrc": "5158:335:46", + "nodeType": "YulBlock", + "src": "5158:335:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5175:9:46", + "nodeType": "YulIdentifier", + "src": "5175:9:46" + }, + { + "kind": "number", + "nativeSrc": "5186:3:46", + "nodeType": "YulLiteral", + "src": "5186:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5168:6:46", + "nodeType": "YulIdentifier", + "src": "5168:6:46" + }, + "nativeSrc": "5168:22:46", + "nodeType": "YulFunctionCall", + "src": "5168:22:46" + }, + "nativeSrc": "5168:22:46", + "nodeType": "YulExpressionStatement", + "src": "5168:22:46" + }, + { + "nativeSrc": "5199:60:46", + "nodeType": "YulAssignment", + "src": "5199:60:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5231:6:46", + "nodeType": "YulIdentifier", + "src": "5231:6:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5243:9:46", + "nodeType": "YulIdentifier", + "src": "5243:9:46" + }, + { + "kind": "number", + "nativeSrc": "5254:3:46", + "nodeType": "YulLiteral", + "src": "5254:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5239:3:46", + "nodeType": "YulIdentifier", + "src": "5239:3:46" + }, + "nativeSrc": "5239:19:46", + "nodeType": "YulFunctionCall", + "src": "5239:19:46" + } + ], + "functionName": { + "name": "abi_encode_struct_Proof", + "nativeSrc": "5207:23:46", + "nodeType": "YulIdentifier", + "src": "5207:23:46" + }, + "nativeSrc": "5207:52:46", + "nodeType": "YulFunctionCall", + "src": "5207:52:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5199:4:46", + "nodeType": "YulIdentifier", + "src": "5199:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5279:9:46", + "nodeType": "YulIdentifier", + "src": "5279:9:46" + }, + { + "kind": "number", + "nativeSrc": "5290:2:46", + "nodeType": "YulLiteral", + "src": "5290:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5275:3:46", + "nodeType": "YulIdentifier", + "src": "5275:3:46" + }, + "nativeSrc": "5275:18:46", + "nodeType": "YulFunctionCall", + "src": "5275:18:46" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "5301:6:46", + "nodeType": "YulIdentifier", + "src": "5301:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5295:5:46", + "nodeType": "YulIdentifier", + "src": "5295:5:46" + }, + "nativeSrc": "5295:13:46", + "nodeType": "YulFunctionCall", + "src": "5295:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5268:6:46", + "nodeType": "YulIdentifier", + "src": "5268:6:46" + }, + "nativeSrc": "5268:41:46", + "nodeType": "YulFunctionCall", + "src": "5268:41:46" + }, + "nativeSrc": "5268:41:46", + "nodeType": "YulExpressionStatement", + "src": "5268:41:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5329:9:46", + "nodeType": "YulIdentifier", + "src": "5329:9:46" + }, + { + "kind": "number", + "nativeSrc": "5340:2:46", + "nodeType": "YulLiteral", + "src": "5340:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5325:3:46", + "nodeType": "YulIdentifier", + "src": "5325:3:46" + }, + "nativeSrc": "5325:18:46", + "nodeType": "YulFunctionCall", + "src": "5325:18:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "5355:6:46", + "nodeType": "YulIdentifier", + "src": "5355:6:46" + }, + { + "kind": "number", + "nativeSrc": "5363:2:46", + "nodeType": "YulLiteral", + "src": "5363:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5351:3:46", + "nodeType": "YulIdentifier", + "src": "5351:3:46" + }, + "nativeSrc": "5351:15:46", + "nodeType": "YulFunctionCall", + "src": "5351:15:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5345:5:46", + "nodeType": "YulIdentifier", + "src": "5345:5:46" + }, + "nativeSrc": "5345:22:46", + "nodeType": "YulFunctionCall", + "src": "5345:22:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5318:6:46", + "nodeType": "YulIdentifier", + "src": "5318:6:46" + }, + "nativeSrc": "5318:50:46", + "nodeType": "YulFunctionCall", + "src": "5318:50:46" + }, + "nativeSrc": "5318:50:46", + "nodeType": "YulExpressionStatement", + "src": "5318:50:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5388:9:46", + "nodeType": "YulIdentifier", + "src": "5388:9:46" + }, + { + "kind": "number", + "nativeSrc": "5399:2:46", + "nodeType": "YulLiteral", + "src": "5399:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5384:3:46", + "nodeType": "YulIdentifier", + "src": "5384:3:46" + }, + "nativeSrc": "5384:18:46", + "nodeType": "YulFunctionCall", + "src": "5384:18:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "5414:6:46", + "nodeType": "YulIdentifier", + "src": "5414:6:46" + }, + { + "kind": "number", + "nativeSrc": "5422:2:46", + "nodeType": "YulLiteral", + "src": "5422:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5410:3:46", + "nodeType": "YulIdentifier", + "src": "5410:3:46" + }, + "nativeSrc": "5410:15:46", + "nodeType": "YulFunctionCall", + "src": "5410:15:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5404:5:46", + "nodeType": "YulIdentifier", + "src": "5404:5:46" + }, + "nativeSrc": "5404:22:46", + "nodeType": "YulFunctionCall", + "src": "5404:22:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5377:6:46", + "nodeType": "YulIdentifier", + "src": "5377:6:46" + }, + "nativeSrc": "5377:50:46", + "nodeType": "YulFunctionCall", + "src": "5377:50:46" + }, + "nativeSrc": "5377:50:46", + "nodeType": "YulExpressionStatement", + "src": "5377:50:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5447:9:46", + "nodeType": "YulIdentifier", + "src": "5447:9:46" + }, + { + "kind": "number", + "nativeSrc": "5458:3:46", + "nodeType": "YulLiteral", + "src": "5458:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5443:3:46", + "nodeType": "YulIdentifier", + "src": "5443:3:46" + }, + "nativeSrc": "5443:19:46", + "nodeType": "YulFunctionCall", + "src": "5443:19:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "5474:6:46", + "nodeType": "YulIdentifier", + "src": "5474:6:46" + }, + { + "kind": "number", + "nativeSrc": "5482:2:46", + "nodeType": "YulLiteral", + "src": "5482:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5470:3:46", + "nodeType": "YulIdentifier", + "src": "5470:3:46" + }, + "nativeSrc": "5470:15:46", + "nodeType": "YulFunctionCall", + "src": "5470:15:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5464:5:46", + "nodeType": "YulIdentifier", + "src": "5464:5:46" + }, + "nativeSrc": "5464:22:46", + "nodeType": "YulFunctionCall", + "src": "5464:22:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5436:6:46", + "nodeType": "YulIdentifier", + "src": "5436:6:46" + }, + "nativeSrc": "5436:51:46", + "nodeType": "YulFunctionCall", + "src": "5436:51:46" + }, + "nativeSrc": "5436:51:46", + "nodeType": "YulExpressionStatement", + "src": "5436:51:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__fromStack_library_reversed", + "nativeSrc": "4921:572:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5119:9:46", + "nodeType": "YulTypedName", + "src": "5119:9:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5130:6:46", + "nodeType": "YulTypedName", + "src": "5130:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5138:6:46", + "nodeType": "YulTypedName", + "src": "5138:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5149:4:46", + "nodeType": "YulTypedName", + "src": "5149:4:46", + "type": "" + } + ], + "src": "4921:572:46" + }, + { + "body": { + "nativeSrc": "5633:255:46", + "nodeType": "YulBlock", + "src": "5633:255:46", + "statements": [ + { + "body": { + "nativeSrc": "5680:16:46", + "nodeType": "YulBlock", + "src": "5680:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5689:1:46", + "nodeType": "YulLiteral", + "src": "5689:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5692:1:46", + "nodeType": "YulLiteral", + "src": "5692:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5682:6:46", + "nodeType": "YulIdentifier", + "src": "5682:6:46" + }, + "nativeSrc": "5682:12:46", + "nodeType": "YulFunctionCall", + "src": "5682:12:46" + }, + "nativeSrc": "5682:12:46", + "nodeType": "YulExpressionStatement", + "src": "5682:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5654:7:46", + "nodeType": "YulIdentifier", + "src": "5654:7:46" + }, + { + "name": "headStart", + "nativeSrc": "5663:9:46", + "nodeType": "YulIdentifier", + "src": "5663:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5650:3:46", + "nodeType": "YulIdentifier", + "src": "5650:3:46" + }, + "nativeSrc": "5650:23:46", + "nodeType": "YulFunctionCall", + "src": "5650:23:46" + }, + { + "kind": "number", + "nativeSrc": "5675:3:46", + "nodeType": "YulLiteral", + "src": "5675:3:46", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5646:3:46", + "nodeType": "YulIdentifier", + "src": "5646:3:46" + }, + "nativeSrc": "5646:33:46", + "nodeType": "YulFunctionCall", + "src": "5646:33:46" + }, + "nativeSrc": "5643:53:46", + "nodeType": "YulIf", + "src": "5643:53:46" + }, + { + "nativeSrc": "5705:14:46", + "nodeType": "YulVariableDeclaration", + "src": "5705:14:46", + "value": { + "kind": "number", + "nativeSrc": "5718:1:46", + "nodeType": "YulLiteral", + "src": "5718:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "5709:5:46", + "nodeType": "YulTypedName", + "src": "5709:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "5728:32:46", + "nodeType": "YulAssignment", + "src": "5728:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5750:9:46", + "nodeType": "YulIdentifier", + "src": "5750:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5737:12:46", + "nodeType": "YulIdentifier", + "src": "5737:12:46" + }, + "nativeSrc": "5737:23:46", + "nodeType": "YulFunctionCall", + "src": "5737:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "5728:5:46", + "nodeType": "YulIdentifier", + "src": "5728:5:46" + } + ] + }, + { + "nativeSrc": "5769:15:46", + "nodeType": "YulAssignment", + "src": "5769:15:46", + "value": { + "name": "value", + "nativeSrc": "5779:5:46", + "nodeType": "YulIdentifier", + "src": "5779:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5769:6:46", + "nodeType": "YulIdentifier", + "src": "5769:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "5829:16:46", + "nodeType": "YulBlock", + "src": "5829:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5838:1:46", + "nodeType": "YulLiteral", + "src": "5838:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5841:1:46", + "nodeType": "YulLiteral", + "src": "5841:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5831:6:46", + "nodeType": "YulIdentifier", + "src": "5831:6:46" + }, + "nativeSrc": "5831:12:46", + "nodeType": "YulFunctionCall", + "src": "5831:12:46" + }, + "nativeSrc": "5831:12:46", + "nodeType": "YulExpressionStatement", + "src": "5831:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5803:9:46", + "nodeType": "YulIdentifier", + "src": "5803:9:46" + }, + { + "kind": "number", + "nativeSrc": "5814:3:46", + "nodeType": "YulLiteral", + "src": "5814:3:46", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5799:3:46", + "nodeType": "YulIdentifier", + "src": "5799:3:46" + }, + "nativeSrc": "5799:19:46", + "nodeType": "YulFunctionCall", + "src": "5799:19:46" + }, + { + "name": "dataEnd", + "nativeSrc": "5820:7:46", + "nodeType": "YulIdentifier", + "src": "5820:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5796:2:46", + "nodeType": "YulIdentifier", + "src": "5796:2:46" + }, + "nativeSrc": "5796:32:46", + "nodeType": "YulFunctionCall", + "src": "5796:32:46" + }, + "nativeSrc": "5793:52:46", + "nodeType": "YulIf", + "src": "5793:52:46" + }, + { + "nativeSrc": "5854:28:46", + "nodeType": "YulAssignment", + "src": "5854:28:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5868:9:46", + "nodeType": "YulIdentifier", + "src": "5868:9:46" + }, + { + "kind": "number", + "nativeSrc": "5879:2:46", + "nodeType": "YulLiteral", + "src": "5879:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5864:3:46", + "nodeType": "YulIdentifier", + "src": "5864:3:46" + }, + "nativeSrc": "5864:18:46", + "nodeType": "YulFunctionCall", + "src": "5864:18:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5854:6:46", + "nodeType": "YulIdentifier", + "src": "5854:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_array$_t_uint256_$8_calldata_ptr", + "nativeSrc": "5498:390:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5591:9:46", + "nodeType": "YulTypedName", + "src": "5591:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5602:7:46", + "nodeType": "YulTypedName", + "src": "5602:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5614:6:46", + "nodeType": "YulTypedName", + "src": "5614:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5622:6:46", + "nodeType": "YulTypedName", + "src": "5622:6:46", + "type": "" + } + ], + "src": "5498:390:46" + }, + { + "body": { + "nativeSrc": "6081:162:46", + "nodeType": "YulBlock", + "src": "6081:162:46", + "statements": [ + { + "nativeSrc": "6091:26:46", + "nodeType": "YulAssignment", + "src": "6091:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6103:9:46", + "nodeType": "YulIdentifier", + "src": "6103:9:46" + }, + { + "kind": "number", + "nativeSrc": "6114:2:46", + "nodeType": "YulLiteral", + "src": "6114:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6099:3:46", + "nodeType": "YulIdentifier", + "src": "6099:3:46" + }, + "nativeSrc": "6099:18:46", + "nodeType": "YulFunctionCall", + "src": "6099:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6091:4:46", + "nodeType": "YulIdentifier", + "src": "6091:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6133:9:46", + "nodeType": "YulIdentifier", + "src": "6133:9:46" + }, + { + "name": "value0", + "nativeSrc": "6144:6:46", + "nodeType": "YulIdentifier", + "src": "6144:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6126:6:46", + "nodeType": "YulIdentifier", + "src": "6126:6:46" + }, + "nativeSrc": "6126:25:46", + "nodeType": "YulFunctionCall", + "src": "6126:25:46" + }, + "nativeSrc": "6126:25:46", + "nodeType": "YulExpressionStatement", + "src": "6126:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6171:9:46", + "nodeType": "YulIdentifier", + "src": "6171:9:46" + }, + { + "kind": "number", + "nativeSrc": "6182:2:46", + "nodeType": "YulLiteral", + "src": "6182:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6167:3:46", + "nodeType": "YulIdentifier", + "src": "6167:3:46" + }, + "nativeSrc": "6167:18:46", + "nodeType": "YulFunctionCall", + "src": "6167:18:46" + }, + { + "name": "value1", + "nativeSrc": "6187:6:46", + "nodeType": "YulIdentifier", + "src": "6187:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6160:6:46", + "nodeType": "YulIdentifier", + "src": "6160:6:46" + }, + "nativeSrc": "6160:34:46", + "nodeType": "YulFunctionCall", + "src": "6160:34:46" + }, + "nativeSrc": "6160:34:46", + "nodeType": "YulExpressionStatement", + "src": "6160:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6214:9:46", + "nodeType": "YulIdentifier", + "src": "6214:9:46" + }, + { + "kind": "number", + "nativeSrc": "6225:2:46", + "nodeType": "YulLiteral", + "src": "6225:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6210:3:46", + "nodeType": "YulIdentifier", + "src": "6210:3:46" + }, + "nativeSrc": "6210:18:46", + "nodeType": "YulFunctionCall", + "src": "6210:18:46" + }, + { + "name": "value2", + "nativeSrc": "6230:6:46", + "nodeType": "YulIdentifier", + "src": "6230:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6203:6:46", + "nodeType": "YulIdentifier", + "src": "6203:6:46" + }, + "nativeSrc": "6203:34:46", + "nodeType": "YulFunctionCall", + "src": "6203:34:46" + }, + "nativeSrc": "6203:34:46", + "nodeType": "YulExpressionStatement", + "src": "6203:34:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$2960_storage_ptr_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_library_reversed", + "nativeSrc": "5893:350:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6034:9:46", + "nodeType": "YulTypedName", + "src": "6034:9:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "6045:6:46", + "nodeType": "YulTypedName", + "src": "6045:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6053:6:46", + "nodeType": "YulTypedName", + "src": "6053:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "6061:6:46", + "nodeType": "YulTypedName", + "src": "6061:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6072:4:46", + "nodeType": "YulTypedName", + "src": "6072:4:46", + "type": "" + } + ], + "src": "5893:350:46" + }, + { + "body": { + "nativeSrc": "6280:95:46", + "nodeType": "YulBlock", + "src": "6280:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6297:1:46", + "nodeType": "YulLiteral", + "src": "6297:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6304:3:46", + "nodeType": "YulLiteral", + "src": "6304:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "6309:10:46", + "nodeType": "YulLiteral", + "src": "6309:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "6300:3:46", + "nodeType": "YulIdentifier", + "src": "6300:3:46" + }, + "nativeSrc": "6300:20:46", + "nodeType": "YulFunctionCall", + "src": "6300:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6290:6:46", + "nodeType": "YulIdentifier", + "src": "6290:6:46" + }, + "nativeSrc": "6290:31:46", + "nodeType": "YulFunctionCall", + "src": "6290:31:46" + }, + "nativeSrc": "6290:31:46", + "nodeType": "YulExpressionStatement", + "src": "6290:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6337:1:46", + "nodeType": "YulLiteral", + "src": "6337:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "6340:4:46", + "nodeType": "YulLiteral", + "src": "6340:4:46", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6330:6:46", + "nodeType": "YulIdentifier", + "src": "6330:6:46" + }, + "nativeSrc": "6330:15:46", + "nodeType": "YulFunctionCall", + "src": "6330:15:46" + }, + "nativeSrc": "6330:15:46", + "nodeType": "YulExpressionStatement", + "src": "6330:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6361:1:46", + "nodeType": "YulLiteral", + "src": "6361:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6364:4:46", + "nodeType": "YulLiteral", + "src": "6364:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6354:6:46", + "nodeType": "YulIdentifier", + "src": "6354:6:46" + }, + "nativeSrc": "6354:15:46", + "nodeType": "YulFunctionCall", + "src": "6354:15:46" + }, + "nativeSrc": "6354:15:46", + "nodeType": "YulExpressionStatement", + "src": "6354:15:46" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "6248:127:46", + "nodeType": "YulFunctionDefinition", + "src": "6248:127:46" + }, + { + "body": { + "nativeSrc": "6426:209:46", + "nodeType": "YulBlock", + "src": "6426:209:46", + "statements": [ + { + "nativeSrc": "6436:19:46", + "nodeType": "YulAssignment", + "src": "6436:19:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6452:2:46", + "nodeType": "YulLiteral", + "src": "6452:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6446:5:46", + "nodeType": "YulIdentifier", + "src": "6446:5:46" + }, + "nativeSrc": "6446:9:46", + "nodeType": "YulFunctionCall", + "src": "6446:9:46" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "6436:6:46", + "nodeType": "YulIdentifier", + "src": "6436:6:46" + } + ] + }, + { + "nativeSrc": "6464:37:46", + "nodeType": "YulVariableDeclaration", + "src": "6464:37:46", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6486:6:46", + "nodeType": "YulIdentifier", + "src": "6486:6:46" + }, + { + "kind": "number", + "nativeSrc": "6494:6:46", + "nodeType": "YulLiteral", + "src": "6494:6:46", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6482:3:46", + "nodeType": "YulIdentifier", + "src": "6482:3:46" + }, + "nativeSrc": "6482:19:46", + "nodeType": "YulFunctionCall", + "src": "6482:19:46" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "6468:10:46", + "nodeType": "YulTypedName", + "src": "6468:10:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6576:22:46", + "nodeType": "YulBlock", + "src": "6576:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6578:16:46", + "nodeType": "YulIdentifier", + "src": "6578:16:46" + }, + "nativeSrc": "6578:18:46", + "nodeType": "YulFunctionCall", + "src": "6578:18:46" + }, + "nativeSrc": "6578:18:46", + "nodeType": "YulExpressionStatement", + "src": "6578:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6519:10:46", + "nodeType": "YulIdentifier", + "src": "6519:10:46" + }, + { + "kind": "number", + "nativeSrc": "6531:18:46", + "nodeType": "YulLiteral", + "src": "6531:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6516:2:46", + "nodeType": "YulIdentifier", + "src": "6516:2:46" + }, + "nativeSrc": "6516:34:46", + "nodeType": "YulFunctionCall", + "src": "6516:34:46" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6555:10:46", + "nodeType": "YulIdentifier", + "src": "6555:10:46" + }, + { + "name": "memPtr", + "nativeSrc": "6567:6:46", + "nodeType": "YulIdentifier", + "src": "6567:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6552:2:46", + "nodeType": "YulIdentifier", + "src": "6552:2:46" + }, + "nativeSrc": "6552:22:46", + "nodeType": "YulFunctionCall", + "src": "6552:22:46" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6513:2:46", + "nodeType": "YulIdentifier", + "src": "6513:2:46" + }, + "nativeSrc": "6513:62:46", + "nodeType": "YulFunctionCall", + "src": "6513:62:46" + }, + "nativeSrc": "6510:88:46", + "nodeType": "YulIf", + "src": "6510:88:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6614:2:46", + "nodeType": "YulLiteral", + "src": "6614:2:46", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "6618:10:46", + "nodeType": "YulIdentifier", + "src": "6618:10:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6607:6:46", + "nodeType": "YulIdentifier", + "src": "6607:6:46" + }, + "nativeSrc": "6607:22:46", + "nodeType": "YulFunctionCall", + "src": "6607:22:46" + }, + "nativeSrc": "6607:22:46", + "nodeType": "YulExpressionStatement", + "src": "6607:22:46" + } + ] + }, + "name": "allocate_memory_2312", + "nativeSrc": "6380:255:46", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "6415:6:46", + "nodeType": "YulTypedName", + "src": "6415:6:46", + "type": "" + } + ], + "src": "6380:255:46" + }, + { + "body": { + "nativeSrc": "6685:230:46", + "nodeType": "YulBlock", + "src": "6685:230:46", + "statements": [ + { + "nativeSrc": "6695:19:46", + "nodeType": "YulAssignment", + "src": "6695:19:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6711:2:46", + "nodeType": "YulLiteral", + "src": "6711:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6705:5:46", + "nodeType": "YulIdentifier", + "src": "6705:5:46" + }, + "nativeSrc": "6705:9:46", + "nodeType": "YulFunctionCall", + "src": "6705:9:46" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "6695:6:46", + "nodeType": "YulIdentifier", + "src": "6695:6:46" + } + ] + }, + { + "nativeSrc": "6723:58:46", + "nodeType": "YulVariableDeclaration", + "src": "6723:58:46", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6745:6:46", + "nodeType": "YulIdentifier", + "src": "6745:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "size", + "nativeSrc": "6761:4:46", + "nodeType": "YulIdentifier", + "src": "6761:4:46" + }, + { + "kind": "number", + "nativeSrc": "6767:2:46", + "nodeType": "YulLiteral", + "src": "6767:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6757:3:46", + "nodeType": "YulIdentifier", + "src": "6757:3:46" + }, + "nativeSrc": "6757:13:46", + "nodeType": "YulFunctionCall", + "src": "6757:13:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6776:2:46", + "nodeType": "YulLiteral", + "src": "6776:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6772:3:46", + "nodeType": "YulIdentifier", + "src": "6772:3:46" + }, + "nativeSrc": "6772:7:46", + "nodeType": "YulFunctionCall", + "src": "6772:7:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6753:3:46", + "nodeType": "YulIdentifier", + "src": "6753:3:46" + }, + "nativeSrc": "6753:27:46", + "nodeType": "YulFunctionCall", + "src": "6753:27:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6741:3:46", + "nodeType": "YulIdentifier", + "src": "6741:3:46" + }, + "nativeSrc": "6741:40:46", + "nodeType": "YulFunctionCall", + "src": "6741:40:46" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "6727:10:46", + "nodeType": "YulTypedName", + "src": "6727:10:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6856:22:46", + "nodeType": "YulBlock", + "src": "6856:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6858:16:46", + "nodeType": "YulIdentifier", + "src": "6858:16:46" + }, + "nativeSrc": "6858:18:46", + "nodeType": "YulFunctionCall", + "src": "6858:18:46" + }, + "nativeSrc": "6858:18:46", + "nodeType": "YulExpressionStatement", + "src": "6858:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6799:10:46", + "nodeType": "YulIdentifier", + "src": "6799:10:46" + }, + { + "kind": "number", + "nativeSrc": "6811:18:46", + "nodeType": "YulLiteral", + "src": "6811:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6796:2:46", + "nodeType": "YulIdentifier", + "src": "6796:2:46" + }, + "nativeSrc": "6796:34:46", + "nodeType": "YulFunctionCall", + "src": "6796:34:46" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6835:10:46", + "nodeType": "YulIdentifier", + "src": "6835:10:46" + }, + { + "name": "memPtr", + "nativeSrc": "6847:6:46", + "nodeType": "YulIdentifier", + "src": "6847:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6832:2:46", + "nodeType": "YulIdentifier", + "src": "6832:2:46" + }, + "nativeSrc": "6832:22:46", + "nodeType": "YulFunctionCall", + "src": "6832:22:46" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6793:2:46", + "nodeType": "YulIdentifier", + "src": "6793:2:46" + }, + "nativeSrc": "6793:62:46", + "nodeType": "YulFunctionCall", + "src": "6793:62:46" + }, + "nativeSrc": "6790:88:46", + "nodeType": "YulIf", + "src": "6790:88:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6894:2:46", + "nodeType": "YulLiteral", + "src": "6894:2:46", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "6898:10:46", + "nodeType": "YulIdentifier", + "src": "6898:10:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6887:6:46", + "nodeType": "YulIdentifier", + "src": "6887:6:46" + }, + "nativeSrc": "6887:22:46", + "nodeType": "YulFunctionCall", + "src": "6887:22:46" + }, + "nativeSrc": "6887:22:46", + "nodeType": "YulExpressionStatement", + "src": "6887:22:46" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "6640:275:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "6665:4:46", + "nodeType": "YulTypedName", + "src": "6665:4:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "6674:6:46", + "nodeType": "YulTypedName", + "src": "6674:6:46", + "type": "" + } + ], + "src": "6640:275:46" + }, + { + "body": { + "nativeSrc": "6977:107:46", + "nodeType": "YulBlock", + "src": "6977:107:46", + "statements": [ + { + "nativeSrc": "6987:22:46", + "nodeType": "YulAssignment", + "src": "6987:22:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7002:6:46", + "nodeType": "YulIdentifier", + "src": "7002:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6996:5:46", + "nodeType": "YulIdentifier", + "src": "6996:5:46" + }, + "nativeSrc": "6996:13:46", + "nodeType": "YulFunctionCall", + "src": "6996:13:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "6987:5:46", + "nodeType": "YulIdentifier", + "src": "6987:5:46" + } + ] + }, + { + "body": { + "nativeSrc": "7062:16:46", + "nodeType": "YulBlock", + "src": "7062:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7071:1:46", + "nodeType": "YulLiteral", + "src": "7071:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7074:1:46", + "nodeType": "YulLiteral", + "src": "7074:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7064:6:46", + "nodeType": "YulIdentifier", + "src": "7064:6:46" + }, + "nativeSrc": "7064:12:46", + "nodeType": "YulFunctionCall", + "src": "7064:12:46" + }, + "nativeSrc": "7064:12:46", + "nodeType": "YulExpressionStatement", + "src": "7064:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "7031:5:46", + "nodeType": "YulIdentifier", + "src": "7031:5:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "7052:5:46", + "nodeType": "YulIdentifier", + "src": "7052:5:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7045:6:46", + "nodeType": "YulIdentifier", + "src": "7045:6:46" + }, + "nativeSrc": "7045:13:46", + "nodeType": "YulFunctionCall", + "src": "7045:13:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7038:6:46", + "nodeType": "YulIdentifier", + "src": "7038:6:46" + }, + "nativeSrc": "7038:21:46", + "nodeType": "YulFunctionCall", + "src": "7038:21:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "7028:2:46", + "nodeType": "YulIdentifier", + "src": "7028:2:46" + }, + "nativeSrc": "7028:32:46", + "nodeType": "YulFunctionCall", + "src": "7028:32:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7021:6:46", + "nodeType": "YulIdentifier", + "src": "7021:6:46" + }, + "nativeSrc": "7021:40:46", + "nodeType": "YulFunctionCall", + "src": "7021:40:46" + }, + "nativeSrc": "7018:60:46", + "nodeType": "YulIf", + "src": "7018:60:46" + } + ] + }, + "name": "abi_decode_bool_fromMemory", + "nativeSrc": "6920:164:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "6956:6:46", + "nodeType": "YulTypedName", + "src": "6956:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "6967:5:46", + "nodeType": "YulTypedName", + "src": "6967:5:46", + "type": "" + } + ], + "src": "6920:164:46" + }, + { + "body": { + "nativeSrc": "7164:697:46", + "nodeType": "YulBlock", + "src": "7164:697:46", + "statements": [ + { + "body": { + "nativeSrc": "7213:16:46", + "nodeType": "YulBlock", + "src": "7213:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7222:1:46", + "nodeType": "YulLiteral", + "src": "7222:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7225:1:46", + "nodeType": "YulLiteral", + "src": "7225:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7215:6:46", + "nodeType": "YulIdentifier", + "src": "7215:6:46" + }, + "nativeSrc": "7215:12:46", + "nodeType": "YulFunctionCall", + "src": "7215:12:46" + }, + "nativeSrc": "7215:12:46", + "nodeType": "YulExpressionStatement", + "src": "7215:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7192:6:46", + "nodeType": "YulIdentifier", + "src": "7192:6:46" + }, + { + "kind": "number", + "nativeSrc": "7200:4:46", + "nodeType": "YulLiteral", + "src": "7200:4:46", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7188:3:46", + "nodeType": "YulIdentifier", + "src": "7188:3:46" + }, + "nativeSrc": "7188:17:46", + "nodeType": "YulFunctionCall", + "src": "7188:17:46" + }, + { + "name": "end", + "nativeSrc": "7207:3:46", + "nodeType": "YulIdentifier", + "src": "7207:3:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7184:3:46", + "nodeType": "YulIdentifier", + "src": "7184:3:46" + }, + "nativeSrc": "7184:27:46", + "nodeType": "YulFunctionCall", + "src": "7184:27:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7177:6:46", + "nodeType": "YulIdentifier", + "src": "7177:6:46" + }, + "nativeSrc": "7177:35:46", + "nodeType": "YulFunctionCall", + "src": "7177:35:46" + }, + "nativeSrc": "7174:55:46", + "nodeType": "YulIf", + "src": "7174:55:46" + }, + { + "nativeSrc": "7238:27:46", + "nodeType": "YulVariableDeclaration", + "src": "7238:27:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7258:6:46", + "nodeType": "YulIdentifier", + "src": "7258:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7252:5:46", + "nodeType": "YulIdentifier", + "src": "7252:5:46" + }, + "nativeSrc": "7252:13:46", + "nodeType": "YulFunctionCall", + "src": "7252:13:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "7242:6:46", + "nodeType": "YulTypedName", + "src": "7242:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7308:22:46", + "nodeType": "YulBlock", + "src": "7308:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7310:16:46", + "nodeType": "YulIdentifier", + "src": "7310:16:46" + }, + "nativeSrc": "7310:18:46", + "nodeType": "YulFunctionCall", + "src": "7310:18:46" + }, + "nativeSrc": "7310:18:46", + "nodeType": "YulExpressionStatement", + "src": "7310:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "7280:6:46", + "nodeType": "YulIdentifier", + "src": "7280:6:46" + }, + { + "kind": "number", + "nativeSrc": "7288:18:46", + "nodeType": "YulLiteral", + "src": "7288:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7277:2:46", + "nodeType": "YulIdentifier", + "src": "7277:2:46" + }, + "nativeSrc": "7277:30:46", + "nodeType": "YulFunctionCall", + "src": "7277:30:46" + }, + "nativeSrc": "7274:56:46", + "nodeType": "YulIf", + "src": "7274:56:46" + }, + { + "nativeSrc": "7339:24:46", + "nodeType": "YulVariableDeclaration", + "src": "7339:24:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7353:1:46", + "nodeType": "YulLiteral", + "src": "7353:1:46", + "type": "", + "value": "5" + }, + { + "name": "length", + "nativeSrc": "7356:6:46", + "nodeType": "YulIdentifier", + "src": "7356:6:46" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "7349:3:46", + "nodeType": "YulIdentifier", + "src": "7349:3:46" + }, + "nativeSrc": "7349:14:46", + "nodeType": "YulFunctionCall", + "src": "7349:14:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "7343:2:46", + "nodeType": "YulTypedName", + "src": "7343:2:46", + "type": "" + } + ] + }, + { + "nativeSrc": "7372:41:46", + "nodeType": "YulVariableDeclaration", + "src": "7372:41:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "7403:2:46", + "nodeType": "YulIdentifier", + "src": "7403:2:46" + }, + { + "kind": "number", + "nativeSrc": "7407:4:46", + "nodeType": "YulLiteral", + "src": "7407:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7399:3:46", + "nodeType": "YulIdentifier", + "src": "7399:3:46" + }, + "nativeSrc": "7399:13:46", + "nodeType": "YulFunctionCall", + "src": "7399:13:46" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "7383:15:46", + "nodeType": "YulIdentifier", + "src": "7383:15:46" + }, + "nativeSrc": "7383:30:46", + "nodeType": "YulFunctionCall", + "src": "7383:30:46" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "7376:3:46", + "nodeType": "YulTypedName", + "src": "7376:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "7422:18:46", + "nodeType": "YulVariableDeclaration", + "src": "7422:18:46", + "value": { + "name": "dst", + "nativeSrc": "7437:3:46", + "nodeType": "YulIdentifier", + "src": "7437:3:46" + }, + "variables": [ + { + "name": "array_1", + "nativeSrc": "7426:7:46", + "nodeType": "YulTypedName", + "src": "7426:7:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7456:3:46", + "nodeType": "YulIdentifier", + "src": "7456:3:46" + }, + { + "name": "length", + "nativeSrc": "7461:6:46", + "nodeType": "YulIdentifier", + "src": "7461:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7449:6:46", + "nodeType": "YulIdentifier", + "src": "7449:6:46" + }, + "nativeSrc": "7449:19:46", + "nodeType": "YulFunctionCall", + "src": "7449:19:46" + }, + "nativeSrc": "7449:19:46", + "nodeType": "YulExpressionStatement", + "src": "7449:19:46" + }, + { + "nativeSrc": "7477:21:46", + "nodeType": "YulAssignment", + "src": "7477:21:46", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7488:3:46", + "nodeType": "YulIdentifier", + "src": "7488:3:46" + }, + { + "kind": "number", + "nativeSrc": "7493:4:46", + "nodeType": "YulLiteral", + "src": "7493:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7484:3:46", + "nodeType": "YulIdentifier", + "src": "7484:3:46" + }, + "nativeSrc": "7484:14:46", + "nodeType": "YulFunctionCall", + "src": "7484:14:46" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "7477:3:46", + "nodeType": "YulIdentifier", + "src": "7477:3:46" + } + ] + }, + { + "nativeSrc": "7507:40:46", + "nodeType": "YulVariableDeclaration", + "src": "7507:40:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7529:6:46", + "nodeType": "YulIdentifier", + "src": "7529:6:46" + }, + { + "name": "_1", + "nativeSrc": "7537:2:46", + "nodeType": "YulIdentifier", + "src": "7537:2:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7525:3:46", + "nodeType": "YulIdentifier", + "src": "7525:3:46" + }, + "nativeSrc": "7525:15:46", + "nodeType": "YulFunctionCall", + "src": "7525:15:46" + }, + { + "kind": "number", + "nativeSrc": "7542:4:46", + "nodeType": "YulLiteral", + "src": "7542:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7521:3:46", + "nodeType": "YulIdentifier", + "src": "7521:3:46" + }, + "nativeSrc": "7521:26:46", + "nodeType": "YulFunctionCall", + "src": "7521:26:46" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "7511:6:46", + "nodeType": "YulTypedName", + "src": "7511:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7575:16:46", + "nodeType": "YulBlock", + "src": "7575:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7584:1:46", + "nodeType": "YulLiteral", + "src": "7584:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7587:1:46", + "nodeType": "YulLiteral", + "src": "7587:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7577:6:46", + "nodeType": "YulIdentifier", + "src": "7577:6:46" + }, + "nativeSrc": "7577:12:46", + "nodeType": "YulFunctionCall", + "src": "7577:12:46" + }, + "nativeSrc": "7577:12:46", + "nodeType": "YulExpressionStatement", + "src": "7577:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "7562:6:46", + "nodeType": "YulIdentifier", + "src": "7562:6:46" + }, + { + "name": "end", + "nativeSrc": "7570:3:46", + "nodeType": "YulIdentifier", + "src": "7570:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7559:2:46", + "nodeType": "YulIdentifier", + "src": "7559:2:46" + }, + "nativeSrc": "7559:15:46", + "nodeType": "YulFunctionCall", + "src": "7559:15:46" + }, + "nativeSrc": "7556:35:46", + "nodeType": "YulIf", + "src": "7556:35:46" + }, + { + "nativeSrc": "7600:28:46", + "nodeType": "YulVariableDeclaration", + "src": "7600:28:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7615:6:46", + "nodeType": "YulIdentifier", + "src": "7615:6:46" + }, + { + "kind": "number", + "nativeSrc": "7623:4:46", + "nodeType": "YulLiteral", + "src": "7623:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7611:3:46", + "nodeType": "YulIdentifier", + "src": "7611:3:46" + }, + "nativeSrc": "7611:17:46", + "nodeType": "YulFunctionCall", + "src": "7611:17:46" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "7604:3:46", + "nodeType": "YulTypedName", + "src": "7604:3:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7695:135:46", + "nodeType": "YulBlock", + "src": "7695:135:46", + "statements": [ + { + "nativeSrc": "7709:14:46", + "nodeType": "YulVariableDeclaration", + "src": "7709:14:46", + "value": { + "kind": "number", + "nativeSrc": "7722:1:46", + "nodeType": "YulLiteral", + "src": "7722:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "7713:5:46", + "nodeType": "YulTypedName", + "src": "7713:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "7736:19:46", + "nodeType": "YulAssignment", + "src": "7736:19:46", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7751:3:46", + "nodeType": "YulIdentifier", + "src": "7751:3:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7745:5:46", + "nodeType": "YulIdentifier", + "src": "7745:5:46" + }, + "nativeSrc": "7745:10:46", + "nodeType": "YulFunctionCall", + "src": "7745:10:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "7736:5:46", + "nodeType": "YulIdentifier", + "src": "7736:5:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7775:3:46", + "nodeType": "YulIdentifier", + "src": "7775:3:46" + }, + { + "name": "value", + "nativeSrc": "7780:5:46", + "nodeType": "YulIdentifier", + "src": "7780:5:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7768:6:46", + "nodeType": "YulIdentifier", + "src": "7768:6:46" + }, + "nativeSrc": "7768:18:46", + "nodeType": "YulFunctionCall", + "src": "7768:18:46" + }, + "nativeSrc": "7768:18:46", + "nodeType": "YulExpressionStatement", + "src": "7768:18:46" + }, + { + "nativeSrc": "7799:21:46", + "nodeType": "YulAssignment", + "src": "7799:21:46", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "7810:3:46", + "nodeType": "YulIdentifier", + "src": "7810:3:46" + }, + { + "kind": "number", + "nativeSrc": "7815:4:46", + "nodeType": "YulLiteral", + "src": "7815:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7806:3:46", + "nodeType": "YulIdentifier", + "src": "7806:3:46" + }, + "nativeSrc": "7806:14:46", + "nodeType": "YulFunctionCall", + "src": "7806:14:46" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "7799:3:46", + "nodeType": "YulIdentifier", + "src": "7799:3:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7648:3:46", + "nodeType": "YulIdentifier", + "src": "7648:3:46" + }, + { + "name": "srcEnd", + "nativeSrc": "7653:6:46", + "nodeType": "YulIdentifier", + "src": "7653:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7645:2:46", + "nodeType": "YulIdentifier", + "src": "7645:2:46" + }, + "nativeSrc": "7645:15:46", + "nodeType": "YulFunctionCall", + "src": "7645:15:46" + }, + "nativeSrc": "7637:193:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "7661:25:46", + "nodeType": "YulBlock", + "src": "7661:25:46", + "statements": [ + { + "nativeSrc": "7663:21:46", + "nodeType": "YulAssignment", + "src": "7663:21:46", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "7674:3:46", + "nodeType": "YulIdentifier", + "src": "7674:3:46" + }, + { + "kind": "number", + "nativeSrc": "7679:4:46", + "nodeType": "YulLiteral", + "src": "7679:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7670:3:46", + "nodeType": "YulIdentifier", + "src": "7670:3:46" + }, + "nativeSrc": "7670:14:46", + "nodeType": "YulFunctionCall", + "src": "7670:14:46" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "7663:3:46", + "nodeType": "YulIdentifier", + "src": "7663:3:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "7641:3:46", + "nodeType": "YulBlock", + "src": "7641:3:46", + "statements": [] + }, + "src": "7637:193:46" + }, + { + "nativeSrc": "7839:16:46", + "nodeType": "YulAssignment", + "src": "7839:16:46", + "value": { + "name": "array_1", + "nativeSrc": "7848:7:46", + "nodeType": "YulIdentifier", + "src": "7848:7:46" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "7839:5:46", + "nodeType": "YulIdentifier", + "src": "7839:5:46" + } + ] + } + ] + }, + "name": "abi_decode_array_uint256_dyn_fromMemory", + "nativeSrc": "7089:772:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "7138:6:46", + "nodeType": "YulTypedName", + "src": "7138:6:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7146:3:46", + "nodeType": "YulTypedName", + "src": "7146:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "7154:5:46", + "nodeType": "YulTypedName", + "src": "7154:5:46", + "type": "" + } + ], + "src": "7089:772:46" + }, + { + "body": { + "nativeSrc": "7970:1186:46", + "nodeType": "YulBlock", + "src": "7970:1186:46", + "statements": [ + { + "body": { + "nativeSrc": "8016:16:46", + "nodeType": "YulBlock", + "src": "8016:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8025:1:46", + "nodeType": "YulLiteral", + "src": "8025:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8028:1:46", + "nodeType": "YulLiteral", + "src": "8028:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8018:6:46", + "nodeType": "YulIdentifier", + "src": "8018:6:46" + }, + "nativeSrc": "8018:12:46", + "nodeType": "YulFunctionCall", + "src": "8018:12:46" + }, + "nativeSrc": "8018:12:46", + "nodeType": "YulExpressionStatement", + "src": "8018:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "7991:7:46", + "nodeType": "YulIdentifier", + "src": "7991:7:46" + }, + { + "name": "headStart", + "nativeSrc": "8000:9:46", + "nodeType": "YulIdentifier", + "src": "8000:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7987:3:46", + "nodeType": "YulIdentifier", + "src": "7987:3:46" + }, + "nativeSrc": "7987:23:46", + "nodeType": "YulFunctionCall", + "src": "7987:23:46" + }, + { + "kind": "number", + "nativeSrc": "8012:2:46", + "nodeType": "YulLiteral", + "src": "8012:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7983:3:46", + "nodeType": "YulIdentifier", + "src": "7983:3:46" + }, + "nativeSrc": "7983:32:46", + "nodeType": "YulFunctionCall", + "src": "7983:32:46" + }, + "nativeSrc": "7980:52:46", + "nodeType": "YulIf", + "src": "7980:52:46" + }, + { + "nativeSrc": "8041:30:46", + "nodeType": "YulVariableDeclaration", + "src": "8041:30:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8061:9:46", + "nodeType": "YulIdentifier", + "src": "8061:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8055:5:46", + "nodeType": "YulIdentifier", + "src": "8055:5:46" + }, + "nativeSrc": "8055:16:46", + "nodeType": "YulFunctionCall", + "src": "8055:16:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8045:6:46", + "nodeType": "YulTypedName", + "src": "8045:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8114:16:46", + "nodeType": "YulBlock", + "src": "8114:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8123:1:46", + "nodeType": "YulLiteral", + "src": "8123:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8126:1:46", + "nodeType": "YulLiteral", + "src": "8126:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8116:6:46", + "nodeType": "YulIdentifier", + "src": "8116:6:46" + }, + "nativeSrc": "8116:12:46", + "nodeType": "YulFunctionCall", + "src": "8116:12:46" + }, + "nativeSrc": "8116:12:46", + "nodeType": "YulExpressionStatement", + "src": "8116:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8086:6:46", + "nodeType": "YulIdentifier", + "src": "8086:6:46" + }, + { + "kind": "number", + "nativeSrc": "8094:18:46", + "nodeType": "YulLiteral", + "src": "8094:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8083:2:46", + "nodeType": "YulIdentifier", + "src": "8083:2:46" + }, + "nativeSrc": "8083:30:46", + "nodeType": "YulFunctionCall", + "src": "8083:30:46" + }, + "nativeSrc": "8080:50:46", + "nodeType": "YulIf", + "src": "8080:50:46" + }, + { + "nativeSrc": "8139:32:46", + "nodeType": "YulVariableDeclaration", + "src": "8139:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8153:9:46", + "nodeType": "YulIdentifier", + "src": "8153:9:46" + }, + { + "name": "offset", + "nativeSrc": "8164:6:46", + "nodeType": "YulIdentifier", + "src": "8164:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8149:3:46", + "nodeType": "YulIdentifier", + "src": "8149:3:46" + }, + "nativeSrc": "8149:22:46", + "nodeType": "YulFunctionCall", + "src": "8149:22:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "8143:2:46", + "nodeType": "YulTypedName", + "src": "8143:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8213:16:46", + "nodeType": "YulBlock", + "src": "8213:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8222:1:46", + "nodeType": "YulLiteral", + "src": "8222:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8225:1:46", + "nodeType": "YulLiteral", + "src": "8225:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8215:6:46", + "nodeType": "YulIdentifier", + "src": "8215:6:46" + }, + "nativeSrc": "8215:12:46", + "nodeType": "YulFunctionCall", + "src": "8215:12:46" + }, + "nativeSrc": "8215:12:46", + "nodeType": "YulExpressionStatement", + "src": "8215:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8191:7:46", + "nodeType": "YulIdentifier", + "src": "8191:7:46" + }, + { + "name": "_1", + "nativeSrc": "8200:2:46", + "nodeType": "YulIdentifier", + "src": "8200:2:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8187:3:46", + "nodeType": "YulIdentifier", + "src": "8187:3:46" + }, + "nativeSrc": "8187:16:46", + "nodeType": "YulFunctionCall", + "src": "8187:16:46" + }, + { + "kind": "number", + "nativeSrc": "8205:6:46", + "nodeType": "YulLiteral", + "src": "8205:6:46", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8183:3:46", + "nodeType": "YulIdentifier", + "src": "8183:3:46" + }, + "nativeSrc": "8183:29:46", + "nodeType": "YulFunctionCall", + "src": "8183:29:46" + }, + "nativeSrc": "8180:49:46", + "nodeType": "YulIf", + "src": "8180:49:46" + }, + { + "nativeSrc": "8238:35:46", + "nodeType": "YulVariableDeclaration", + "src": "8238:35:46", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_memory_2312", + "nativeSrc": "8251:20:46", + "nodeType": "YulIdentifier", + "src": "8251:20:46" + }, + "nativeSrc": "8251:22:46", + "nodeType": "YulFunctionCall", + "src": "8251:22:46" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "8242:5:46", + "nodeType": "YulTypedName", + "src": "8242:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "8282:16:46", + "nodeType": "YulVariableDeclaration", + "src": "8282:16:46", + "value": { + "kind": "number", + "nativeSrc": "8297:1:46", + "nodeType": "YulLiteral", + "src": "8297:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "8286:7:46", + "nodeType": "YulTypedName", + "src": "8286:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "8307:20:46", + "nodeType": "YulAssignment", + "src": "8307:20:46", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "8324:2:46", + "nodeType": "YulIdentifier", + "src": "8324:2:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8318:5:46", + "nodeType": "YulIdentifier", + "src": "8318:5:46" + }, + "nativeSrc": "8318:9:46", + "nodeType": "YulFunctionCall", + "src": "8318:9:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "8307:7:46", + "nodeType": "YulIdentifier", + "src": "8307:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8343:5:46", + "nodeType": "YulIdentifier", + "src": "8343:5:46" + }, + { + "name": "value_1", + "nativeSrc": "8350:7:46", + "nodeType": "YulIdentifier", + "src": "8350:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8336:6:46", + "nodeType": "YulIdentifier", + "src": "8336:6:46" + }, + "nativeSrc": "8336:22:46", + "nodeType": "YulFunctionCall", + "src": "8336:22:46" + }, + "nativeSrc": "8336:22:46", + "nodeType": "YulExpressionStatement", + "src": "8336:22:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8378:5:46", + "nodeType": "YulIdentifier", + "src": "8378:5:46" + }, + { + "kind": "number", + "nativeSrc": "8385:2:46", + "nodeType": "YulLiteral", + "src": "8385:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8374:3:46", + "nodeType": "YulIdentifier", + "src": "8374:3:46" + }, + "nativeSrc": "8374:14:46", + "nodeType": "YulFunctionCall", + "src": "8374:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "8421:2:46", + "nodeType": "YulIdentifier", + "src": "8421:2:46" + }, + { + "kind": "number", + "nativeSrc": "8425:2:46", + "nodeType": "YulLiteral", + "src": "8425:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8417:3:46", + "nodeType": "YulIdentifier", + "src": "8417:3:46" + }, + "nativeSrc": "8417:11:46", + "nodeType": "YulFunctionCall", + "src": "8417:11:46" + } + ], + "functionName": { + "name": "abi_decode_bool_fromMemory", + "nativeSrc": "8390:26:46", + "nodeType": "YulIdentifier", + "src": "8390:26:46" + }, + "nativeSrc": "8390:39:46", + "nodeType": "YulFunctionCall", + "src": "8390:39:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8367:6:46", + "nodeType": "YulIdentifier", + "src": "8367:6:46" + }, + "nativeSrc": "8367:63:46", + "nodeType": "YulFunctionCall", + "src": "8367:63:46" + }, + "nativeSrc": "8367:63:46", + "nodeType": "YulExpressionStatement", + "src": "8367:63:46" + }, + { + "nativeSrc": "8439:34:46", + "nodeType": "YulVariableDeclaration", + "src": "8439:34:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "8465:2:46", + "nodeType": "YulIdentifier", + "src": "8465:2:46" + }, + { + "kind": "number", + "nativeSrc": "8469:2:46", + "nodeType": "YulLiteral", + "src": "8469:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8461:3:46", + "nodeType": "YulIdentifier", + "src": "8461:3:46" + }, + "nativeSrc": "8461:11:46", + "nodeType": "YulFunctionCall", + "src": "8461:11:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8455:5:46", + "nodeType": "YulIdentifier", + "src": "8455:5:46" + }, + "nativeSrc": "8455:18:46", + "nodeType": "YulFunctionCall", + "src": "8455:18:46" + }, + "variables": [ + { + "name": "offset_1", + "nativeSrc": "8443:8:46", + "nodeType": "YulTypedName", + "src": "8443:8:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8518:16:46", + "nodeType": "YulBlock", + "src": "8518:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8527:1:46", + "nodeType": "YulLiteral", + "src": "8527:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8530:1:46", + "nodeType": "YulLiteral", + "src": "8530:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8520:6:46", + "nodeType": "YulIdentifier", + "src": "8520:6:46" + }, + "nativeSrc": "8520:12:46", + "nodeType": "YulFunctionCall", + "src": "8520:12:46" + }, + "nativeSrc": "8520:12:46", + "nodeType": "YulExpressionStatement", + "src": "8520:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nativeSrc": "8488:8:46", + "nodeType": "YulIdentifier", + "src": "8488:8:46" + }, + { + "kind": "number", + "nativeSrc": "8498:18:46", + "nodeType": "YulLiteral", + "src": "8498:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8485:2:46", + "nodeType": "YulIdentifier", + "src": "8485:2:46" + }, + "nativeSrc": "8485:32:46", + "nodeType": "YulFunctionCall", + "src": "8485:32:46" + }, + "nativeSrc": "8482:52:46", + "nodeType": "YulIf", + "src": "8482:52:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8554:5:46", + "nodeType": "YulIdentifier", + "src": "8554:5:46" + }, + { + "kind": "number", + "nativeSrc": "8561:2:46", + "nodeType": "YulLiteral", + "src": "8561:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8550:3:46", + "nodeType": "YulIdentifier", + "src": "8550:3:46" + }, + "nativeSrc": "8550:14:46", + "nodeType": "YulFunctionCall", + "src": "8550:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "8610:2:46", + "nodeType": "YulIdentifier", + "src": "8610:2:46" + }, + { + "name": "offset_1", + "nativeSrc": "8614:8:46", + "nodeType": "YulIdentifier", + "src": "8614:8:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8606:3:46", + "nodeType": "YulIdentifier", + "src": "8606:3:46" + }, + "nativeSrc": "8606:17:46", + "nodeType": "YulFunctionCall", + "src": "8606:17:46" + }, + { + "name": "dataEnd", + "nativeSrc": "8625:7:46", + "nodeType": "YulIdentifier", + "src": "8625:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_dyn_fromMemory", + "nativeSrc": "8566:39:46", + "nodeType": "YulIdentifier", + "src": "8566:39:46" + }, + "nativeSrc": "8566:67:46", + "nodeType": "YulFunctionCall", + "src": "8566:67:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8543:6:46", + "nodeType": "YulIdentifier", + "src": "8543:6:46" + }, + "nativeSrc": "8543:91:46", + "nodeType": "YulFunctionCall", + "src": "8543:91:46" + }, + "nativeSrc": "8543:91:46", + "nodeType": "YulExpressionStatement", + "src": "8543:91:46" + }, + { + "nativeSrc": "8643:16:46", + "nodeType": "YulVariableDeclaration", + "src": "8643:16:46", + "value": { + "kind": "number", + "nativeSrc": "8658:1:46", + "nodeType": "YulLiteral", + "src": "8658:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "8647:7:46", + "nodeType": "YulTypedName", + "src": "8647:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "8668:29:46", + "nodeType": "YulAssignment", + "src": "8668:29:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "8689:2:46", + "nodeType": "YulIdentifier", + "src": "8689:2:46" + }, + { + "kind": "number", + "nativeSrc": "8693:2:46", + "nodeType": "YulLiteral", + "src": "8693:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8685:3:46", + "nodeType": "YulIdentifier", + "src": "8685:3:46" + }, + "nativeSrc": "8685:11:46", + "nodeType": "YulFunctionCall", + "src": "8685:11:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8679:5:46", + "nodeType": "YulIdentifier", + "src": "8679:5:46" + }, + "nativeSrc": "8679:18:46", + "nodeType": "YulFunctionCall", + "src": "8679:18:46" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "8668:7:46", + "nodeType": "YulIdentifier", + "src": "8668:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8717:5:46", + "nodeType": "YulIdentifier", + "src": "8717:5:46" + }, + { + "kind": "number", + "nativeSrc": "8724:2:46", + "nodeType": "YulLiteral", + "src": "8724:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8713:3:46", + "nodeType": "YulIdentifier", + "src": "8713:3:46" + }, + "nativeSrc": "8713:14:46", + "nodeType": "YulFunctionCall", + "src": "8713:14:46" + }, + { + "name": "value_2", + "nativeSrc": "8729:7:46", + "nodeType": "YulIdentifier", + "src": "8729:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8706:6:46", + "nodeType": "YulIdentifier", + "src": "8706:6:46" + }, + "nativeSrc": "8706:31:46", + "nodeType": "YulFunctionCall", + "src": "8706:31:46" + }, + "nativeSrc": "8706:31:46", + "nodeType": "YulExpressionStatement", + "src": "8706:31:46" + }, + { + "nativeSrc": "8746:16:46", + "nodeType": "YulVariableDeclaration", + "src": "8746:16:46", + "value": { + "kind": "number", + "nativeSrc": "8761:1:46", + "nodeType": "YulLiteral", + "src": "8761:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "8750:7:46", + "nodeType": "YulTypedName", + "src": "8750:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "8771:30:46", + "nodeType": "YulAssignment", + "src": "8771:30:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "8792:2:46", + "nodeType": "YulIdentifier", + "src": "8792:2:46" + }, + { + "kind": "number", + "nativeSrc": "8796:3:46", + "nodeType": "YulLiteral", + "src": "8796:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8788:3:46", + "nodeType": "YulIdentifier", + "src": "8788:3:46" + }, + "nativeSrc": "8788:12:46", + "nodeType": "YulFunctionCall", + "src": "8788:12:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8782:5:46", + "nodeType": "YulIdentifier", + "src": "8782:5:46" + }, + "nativeSrc": "8782:19:46", + "nodeType": "YulFunctionCall", + "src": "8782:19:46" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "8771:7:46", + "nodeType": "YulIdentifier", + "src": "8771:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8821:5:46", + "nodeType": "YulIdentifier", + "src": "8821:5:46" + }, + { + "kind": "number", + "nativeSrc": "8828:3:46", + "nodeType": "YulLiteral", + "src": "8828:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8817:3:46", + "nodeType": "YulIdentifier", + "src": "8817:3:46" + }, + "nativeSrc": "8817:15:46", + "nodeType": "YulFunctionCall", + "src": "8817:15:46" + }, + { + "name": "value_3", + "nativeSrc": "8834:7:46", + "nodeType": "YulIdentifier", + "src": "8834:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8810:6:46", + "nodeType": "YulIdentifier", + "src": "8810:6:46" + }, + "nativeSrc": "8810:32:46", + "nodeType": "YulFunctionCall", + "src": "8810:32:46" + }, + "nativeSrc": "8810:32:46", + "nodeType": "YulExpressionStatement", + "src": "8810:32:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8862:5:46", + "nodeType": "YulIdentifier", + "src": "8862:5:46" + }, + { + "kind": "number", + "nativeSrc": "8869:3:46", + "nodeType": "YulLiteral", + "src": "8869:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8858:3:46", + "nodeType": "YulIdentifier", + "src": "8858:3:46" + }, + "nativeSrc": "8858:15:46", + "nodeType": "YulFunctionCall", + "src": "8858:15:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "8906:2:46", + "nodeType": "YulIdentifier", + "src": "8906:2:46" + }, + { + "kind": "number", + "nativeSrc": "8910:3:46", + "nodeType": "YulLiteral", + "src": "8910:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8902:3:46", + "nodeType": "YulIdentifier", + "src": "8902:3:46" + }, + "nativeSrc": "8902:12:46", + "nodeType": "YulFunctionCall", + "src": "8902:12:46" + } + ], + "functionName": { + "name": "abi_decode_bool_fromMemory", + "nativeSrc": "8875:26:46", + "nodeType": "YulIdentifier", + "src": "8875:26:46" + }, + "nativeSrc": "8875:40:46", + "nodeType": "YulFunctionCall", + "src": "8875:40:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8851:6:46", + "nodeType": "YulIdentifier", + "src": "8851:6:46" + }, + "nativeSrc": "8851:65:46", + "nodeType": "YulFunctionCall", + "src": "8851:65:46" + }, + "nativeSrc": "8851:65:46", + "nodeType": "YulExpressionStatement", + "src": "8851:65:46" + }, + { + "nativeSrc": "8925:16:46", + "nodeType": "YulVariableDeclaration", + "src": "8925:16:46", + "value": { + "kind": "number", + "nativeSrc": "8940:1:46", + "nodeType": "YulLiteral", + "src": "8940:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_4", + "nativeSrc": "8929:7:46", + "nodeType": "YulTypedName", + "src": "8929:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "8950:30:46", + "nodeType": "YulAssignment", + "src": "8950:30:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "8971:2:46", + "nodeType": "YulIdentifier", + "src": "8971:2:46" + }, + { + "kind": "number", + "nativeSrc": "8975:3:46", + "nodeType": "YulLiteral", + "src": "8975:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8967:3:46", + "nodeType": "YulIdentifier", + "src": "8967:3:46" + }, + "nativeSrc": "8967:12:46", + "nodeType": "YulFunctionCall", + "src": "8967:12:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8961:5:46", + "nodeType": "YulIdentifier", + "src": "8961:5:46" + }, + "nativeSrc": "8961:19:46", + "nodeType": "YulFunctionCall", + "src": "8961:19:46" + }, + "variableNames": [ + { + "name": "value_4", + "nativeSrc": "8950:7:46", + "nodeType": "YulIdentifier", + "src": "8950:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "9000:5:46", + "nodeType": "YulIdentifier", + "src": "9000:5:46" + }, + { + "kind": "number", + "nativeSrc": "9007:3:46", + "nodeType": "YulLiteral", + "src": "9007:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8996:3:46", + "nodeType": "YulIdentifier", + "src": "8996:3:46" + }, + "nativeSrc": "8996:15:46", + "nodeType": "YulFunctionCall", + "src": "8996:15:46" + }, + { + "name": "value_4", + "nativeSrc": "9013:7:46", + "nodeType": "YulIdentifier", + "src": "9013:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8989:6:46", + "nodeType": "YulIdentifier", + "src": "8989:6:46" + }, + "nativeSrc": "8989:32:46", + "nodeType": "YulFunctionCall", + "src": "8989:32:46" + }, + "nativeSrc": "8989:32:46", + "nodeType": "YulExpressionStatement", + "src": "8989:32:46" + }, + { + "nativeSrc": "9030:16:46", + "nodeType": "YulVariableDeclaration", + "src": "9030:16:46", + "value": { + "kind": "number", + "nativeSrc": "9045:1:46", + "nodeType": "YulLiteral", + "src": "9045:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_5", + "nativeSrc": "9034:7:46", + "nodeType": "YulTypedName", + "src": "9034:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "9055:30:46", + "nodeType": "YulAssignment", + "src": "9055:30:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "9076:2:46", + "nodeType": "YulIdentifier", + "src": "9076:2:46" + }, + { + "kind": "number", + "nativeSrc": "9080:3:46", + "nodeType": "YulLiteral", + "src": "9080:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9072:3:46", + "nodeType": "YulIdentifier", + "src": "9072:3:46" + }, + "nativeSrc": "9072:12:46", + "nodeType": "YulFunctionCall", + "src": "9072:12:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9066:5:46", + "nodeType": "YulIdentifier", + "src": "9066:5:46" + }, + "nativeSrc": "9066:19:46", + "nodeType": "YulFunctionCall", + "src": "9066:19:46" + }, + "variableNames": [ + { + "name": "value_5", + "nativeSrc": "9055:7:46", + "nodeType": "YulIdentifier", + "src": "9055:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "9105:5:46", + "nodeType": "YulIdentifier", + "src": "9105:5:46" + }, + { + "kind": "number", + "nativeSrc": "9112:3:46", + "nodeType": "YulLiteral", + "src": "9112:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9101:3:46", + "nodeType": "YulIdentifier", + "src": "9101:3:46" + }, + "nativeSrc": "9101:15:46", + "nodeType": "YulFunctionCall", + "src": "9101:15:46" + }, + { + "name": "value_5", + "nativeSrc": "9118:7:46", + "nodeType": "YulIdentifier", + "src": "9118:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9094:6:46", + "nodeType": "YulIdentifier", + "src": "9094:6:46" + }, + "nativeSrc": "9094:32:46", + "nodeType": "YulFunctionCall", + "src": "9094:32:46" + }, + "nativeSrc": "9094:32:46", + "nodeType": "YulExpressionStatement", + "src": "9094:32:46" + }, + { + "nativeSrc": "9135:15:46", + "nodeType": "YulAssignment", + "src": "9135:15:46", + "value": { + "name": "value", + "nativeSrc": "9145:5:46", + "nodeType": "YulIdentifier", + "src": "9145:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9135:6:46", + "nodeType": "YulIdentifier", + "src": "9135:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Proof_$2979_memory_ptr_fromMemory", + "nativeSrc": "7866:1290:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7936:9:46", + "nodeType": "YulTypedName", + "src": "7936:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "7947:7:46", + "nodeType": "YulTypedName", + "src": "7947:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "7959:6:46", + "nodeType": "YulTypedName", + "src": "7959:6:46", + "type": "" + } + ], + "src": "7866:1290:46" + }, + { + "body": { + "nativeSrc": "9335:224:46", + "nodeType": "YulBlock", + "src": "9335:224:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9352:9:46", + "nodeType": "YulIdentifier", + "src": "9352:9:46" + }, + { + "kind": "number", + "nativeSrc": "9363:2:46", + "nodeType": "YulLiteral", + "src": "9363:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9345:6:46", + "nodeType": "YulIdentifier", + "src": "9345:6:46" + }, + "nativeSrc": "9345:21:46", + "nodeType": "YulFunctionCall", + "src": "9345:21:46" + }, + "nativeSrc": "9345:21:46", + "nodeType": "YulExpressionStatement", + "src": "9345:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9386:9:46", + "nodeType": "YulIdentifier", + "src": "9386:9:46" + }, + { + "kind": "number", + "nativeSrc": "9397:2:46", + "nodeType": "YulLiteral", + "src": "9397:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9382:3:46", + "nodeType": "YulIdentifier", + "src": "9382:3:46" + }, + "nativeSrc": "9382:18:46", + "nodeType": "YulFunctionCall", + "src": "9382:18:46" + }, + { + "kind": "number", + "nativeSrc": "9402:2:46", + "nodeType": "YulLiteral", + "src": "9402:2:46", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9375:6:46", + "nodeType": "YulIdentifier", + "src": "9375:6:46" + }, + "nativeSrc": "9375:30:46", + "nodeType": "YulFunctionCall", + "src": "9375:30:46" + }, + "nativeSrc": "9375:30:46", + "nodeType": "YulExpressionStatement", + "src": "9375:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9425:9:46", + "nodeType": "YulIdentifier", + "src": "9425:9:46" + }, + { + "kind": "number", + "nativeSrc": "9436:2:46", + "nodeType": "YulLiteral", + "src": "9436:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9421:3:46", + "nodeType": "YulIdentifier", + "src": "9421:3:46" + }, + "nativeSrc": "9421:18:46", + "nodeType": "YulFunctionCall", + "src": "9421:18:46" + }, + { + "hexValue": "526f6f747320666f72207468697320737461746520646f65736e277420657869", + "kind": "string", + "nativeSrc": "9441:34:46", + "nodeType": "YulLiteral", + "src": "9441:34:46", + "type": "", + "value": "Roots for this state doesn't exi" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9414:6:46", + "nodeType": "YulIdentifier", + "src": "9414:6:46" + }, + "nativeSrc": "9414:62:46", + "nodeType": "YulFunctionCall", + "src": "9414:62:46" + }, + "nativeSrc": "9414:62:46", + "nodeType": "YulExpressionStatement", + "src": "9414:62:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9496:9:46", + "nodeType": "YulIdentifier", + "src": "9496:9:46" + }, + { + "kind": "number", + "nativeSrc": "9507:2:46", + "nodeType": "YulLiteral", + "src": "9507:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9492:3:46", + "nodeType": "YulIdentifier", + "src": "9492:3:46" + }, + "nativeSrc": "9492:18:46", + "nodeType": "YulFunctionCall", + "src": "9492:18:46" + }, + { + "hexValue": "7374", + "kind": "string", + "nativeSrc": "9512:4:46", + "nodeType": "YulLiteral", + "src": "9512:4:46", + "type": "", + "value": "st" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9485:6:46", + "nodeType": "YulIdentifier", + "src": "9485:6:46" + }, + "nativeSrc": "9485:32:46", + "nodeType": "YulFunctionCall", + "src": "9485:32:46" + }, + "nativeSrc": "9485:32:46", + "nodeType": "YulExpressionStatement", + "src": "9485:32:46" + }, + { + "nativeSrc": "9526:27:46", + "nodeType": "YulAssignment", + "src": "9526:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9538:9:46", + "nodeType": "YulIdentifier", + "src": "9538:9:46" + }, + { + "kind": "number", + "nativeSrc": "9549:3:46", + "nodeType": "YulLiteral", + "src": "9549:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9534:3:46", + "nodeType": "YulIdentifier", + "src": "9534:3:46" + }, + "nativeSrc": "9534:19:46", + "nodeType": "YulFunctionCall", + "src": "9534:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9526:4:46", + "nodeType": "YulIdentifier", + "src": "9526:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_d7041224dbf1aef588efd8de52dba4ae3abf3cc31c9ba0eb5e93b35ed6048ad5__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "9161:398:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9312:9:46", + "nodeType": "YulTypedName", + "src": "9312:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9326:4:46", + "nodeType": "YulTypedName", + "src": "9326:4:46", + "type": "" + } + ], + "src": "9161:398:46" + }, + { + "body": { + "nativeSrc": "9696:76:46", + "nodeType": "YulBlock", + "src": "9696:76:46", + "statements": [ + { + "nativeSrc": "9706:26:46", + "nodeType": "YulAssignment", + "src": "9706:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9718:9:46", + "nodeType": "YulIdentifier", + "src": "9718:9:46" + }, + { + "kind": "number", + "nativeSrc": "9729:2:46", + "nodeType": "YulLiteral", + "src": "9729:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9714:3:46", + "nodeType": "YulIdentifier", + "src": "9714:3:46" + }, + "nativeSrc": "9714:18:46", + "nodeType": "YulFunctionCall", + "src": "9714:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9706:4:46", + "nodeType": "YulIdentifier", + "src": "9706:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9748:9:46", + "nodeType": "YulIdentifier", + "src": "9748:9:46" + }, + { + "name": "value0", + "nativeSrc": "9759:6:46", + "nodeType": "YulIdentifier", + "src": "9759:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9741:6:46", + "nodeType": "YulIdentifier", + "src": "9741:6:46" + }, + "nativeSrc": "9741:25:46", + "nodeType": "YulFunctionCall", + "src": "9741:25:46" + }, + "nativeSrc": "9741:25:46", + "nodeType": "YulExpressionStatement", + "src": "9741:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$2960_storage_ptr__to_t_uint256__fromStack_library_reversed", + "nativeSrc": "9564:208:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9665:9:46", + "nodeType": "YulTypedName", + "src": "9665:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "9676:6:46", + "nodeType": "YulTypedName", + "src": "9676:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9687:4:46", + "nodeType": "YulTypedName", + "src": "9687:4:46", + "type": "" + } + ], + "src": "9564:208:46" + }, + { + "body": { + "nativeSrc": "9858:149:46", + "nodeType": "YulBlock", + "src": "9858:149:46", + "statements": [ + { + "body": { + "nativeSrc": "9904:16:46", + "nodeType": "YulBlock", + "src": "9904:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9913:1:46", + "nodeType": "YulLiteral", + "src": "9913:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9916:1:46", + "nodeType": "YulLiteral", + "src": "9916:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9906:6:46", + "nodeType": "YulIdentifier", + "src": "9906:6:46" + }, + "nativeSrc": "9906:12:46", + "nodeType": "YulFunctionCall", + "src": "9906:12:46" + }, + "nativeSrc": "9906:12:46", + "nodeType": "YulExpressionStatement", + "src": "9906:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "9879:7:46", + "nodeType": "YulIdentifier", + "src": "9879:7:46" + }, + { + "name": "headStart", + "nativeSrc": "9888:9:46", + "nodeType": "YulIdentifier", + "src": "9888:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9875:3:46", + "nodeType": "YulIdentifier", + "src": "9875:3:46" + }, + "nativeSrc": "9875:23:46", + "nodeType": "YulFunctionCall", + "src": "9875:23:46" + }, + { + "kind": "number", + "nativeSrc": "9900:2:46", + "nodeType": "YulLiteral", + "src": "9900:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9871:3:46", + "nodeType": "YulIdentifier", + "src": "9871:3:46" + }, + "nativeSrc": "9871:32:46", + "nodeType": "YulFunctionCall", + "src": "9871:32:46" + }, + "nativeSrc": "9868:52:46", + "nodeType": "YulIf", + "src": "9868:52:46" + }, + { + "nativeSrc": "9929:14:46", + "nodeType": "YulVariableDeclaration", + "src": "9929:14:46", + "value": { + "kind": "number", + "nativeSrc": "9942:1:46", + "nodeType": "YulLiteral", + "src": "9942:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "9933:5:46", + "nodeType": "YulTypedName", + "src": "9933:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "9952:25:46", + "nodeType": "YulAssignment", + "src": "9952:25:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9967:9:46", + "nodeType": "YulIdentifier", + "src": "9967:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9961:5:46", + "nodeType": "YulIdentifier", + "src": "9961:5:46" + }, + "nativeSrc": "9961:16:46", + "nodeType": "YulFunctionCall", + "src": "9961:16:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "9952:5:46", + "nodeType": "YulIdentifier", + "src": "9952:5:46" + } + ] + }, + { + "nativeSrc": "9986:15:46", + "nodeType": "YulAssignment", + "src": "9986:15:46", + "value": { + "name": "value", + "nativeSrc": "9996:5:46", + "nodeType": "YulIdentifier", + "src": "9996:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9986:6:46", + "nodeType": "YulIdentifier", + "src": "9986:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nativeSrc": "9777:230:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9824:9:46", + "nodeType": "YulTypedName", + "src": "9824:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "9835:7:46", + "nodeType": "YulTypedName", + "src": "9835:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "9847:6:46", + "nodeType": "YulTypedName", + "src": "9847:6:46", + "type": "" + } + ], + "src": "9777:230:46" + }, + { + "body": { + "nativeSrc": "10167:324:46", + "nodeType": "YulBlock", + "src": "10167:324:46", + "statements": [ + { + "nativeSrc": "10177:26:46", + "nodeType": "YulAssignment", + "src": "10177:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10189:9:46", + "nodeType": "YulIdentifier", + "src": "10189:9:46" + }, + { + "kind": "number", + "nativeSrc": "10200:2:46", + "nodeType": "YulLiteral", + "src": "10200:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10185:3:46", + "nodeType": "YulIdentifier", + "src": "10185:3:46" + }, + "nativeSrc": "10185:18:46", + "nodeType": "YulFunctionCall", + "src": "10185:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10177:4:46", + "nodeType": "YulIdentifier", + "src": "10177:4:46" + } + ] + }, + { + "nativeSrc": "10212:20:46", + "nodeType": "YulVariableDeclaration", + "src": "10212:20:46", + "value": { + "name": "headStart", + "nativeSrc": "10223:9:46", + "nodeType": "YulIdentifier", + "src": "10223:9:46" + }, + "variables": [ + { + "name": "pos", + "nativeSrc": "10216:3:46", + "nodeType": "YulTypedName", + "src": "10216:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "10241:16:46", + "nodeType": "YulAssignment", + "src": "10241:16:46", + "value": { + "name": "headStart", + "nativeSrc": "10248:9:46", + "nodeType": "YulIdentifier", + "src": "10248:9:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "10241:3:46", + "nodeType": "YulIdentifier", + "src": "10241:3:46" + } + ] + }, + { + "nativeSrc": "10266:20:46", + "nodeType": "YulVariableDeclaration", + "src": "10266:20:46", + "value": { + "name": "value0", + "nativeSrc": "10280:6:46", + "nodeType": "YulIdentifier", + "src": "10280:6:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "10270:6:46", + "nodeType": "YulTypedName", + "src": "10270:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "10295:10:46", + "nodeType": "YulVariableDeclaration", + "src": "10295:10:46", + "value": { + "kind": "number", + "nativeSrc": "10304:1:46", + "nodeType": "YulLiteral", + "src": "10304:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "10299:1:46", + "nodeType": "YulTypedName", + "src": "10299:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10361:124:46", + "nodeType": "YulBlock", + "src": "10361:124:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10382:3:46", + "nodeType": "YulIdentifier", + "src": "10382:3:46" + }, + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "10393:6:46", + "nodeType": "YulIdentifier", + "src": "10393:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "10387:5:46", + "nodeType": "YulIdentifier", + "src": "10387:5:46" + }, + "nativeSrc": "10387:13:46", + "nodeType": "YulFunctionCall", + "src": "10387:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10375:6:46", + "nodeType": "YulIdentifier", + "src": "10375:6:46" + }, + "nativeSrc": "10375:26:46", + "nodeType": "YulFunctionCall", + "src": "10375:26:46" + }, + "nativeSrc": "10375:26:46", + "nodeType": "YulExpressionStatement", + "src": "10375:26:46" + }, + { + "nativeSrc": "10414:21:46", + "nodeType": "YulAssignment", + "src": "10414:21:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "10425:3:46", + "nodeType": "YulIdentifier", + "src": "10425:3:46" + }, + { + "kind": "number", + "nativeSrc": "10430:4:46", + "nodeType": "YulLiteral", + "src": "10430:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10421:3:46", + "nodeType": "YulIdentifier", + "src": "10421:3:46" + }, + "nativeSrc": "10421:14:46", + "nodeType": "YulFunctionCall", + "src": "10421:14:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "10414:3:46", + "nodeType": "YulIdentifier", + "src": "10414:3:46" + } + ] + }, + { + "nativeSrc": "10448:27:46", + "nodeType": "YulAssignment", + "src": "10448:27:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "10462:6:46", + "nodeType": "YulIdentifier", + "src": "10462:6:46" + }, + { + "kind": "number", + "nativeSrc": "10470:4:46", + "nodeType": "YulLiteral", + "src": "10470:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10458:3:46", + "nodeType": "YulIdentifier", + "src": "10458:3:46" + }, + "nativeSrc": "10458:17:46", + "nodeType": "YulFunctionCall", + "src": "10458:17:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "10448:6:46", + "nodeType": "YulIdentifier", + "src": "10448:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "10325:1:46", + "nodeType": "YulIdentifier", + "src": "10325:1:46" + }, + { + "kind": "number", + "nativeSrc": "10328:4:46", + "nodeType": "YulLiteral", + "src": "10328:4:46", + "type": "", + "value": "0x03" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "10322:2:46", + "nodeType": "YulIdentifier", + "src": "10322:2:46" + }, + "nativeSrc": "10322:11:46", + "nodeType": "YulFunctionCall", + "src": "10322:11:46" + }, + "nativeSrc": "10314:171:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "10334:18:46", + "nodeType": "YulBlock", + "src": "10334:18:46", + "statements": [ + { + "nativeSrc": "10336:14:46", + "nodeType": "YulAssignment", + "src": "10336:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "10345:1:46", + "nodeType": "YulIdentifier", + "src": "10345:1:46" + }, + { + "kind": "number", + "nativeSrc": "10348:1:46", + "nodeType": "YulLiteral", + "src": "10348:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10341:3:46", + "nodeType": "YulIdentifier", + "src": "10341:3:46" + }, + "nativeSrc": "10341:9:46", + "nodeType": "YulFunctionCall", + "src": "10341:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "10336:1:46", + "nodeType": "YulIdentifier", + "src": "10336:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "10318:3:46", + "nodeType": "YulBlock", + "src": "10318:3:46", + "statements": [] + }, + "src": "10314:171:46" + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$3_memory_ptr__to_t_array$_t_uint256_$3_memory_ptr__fromStack_library_reversed", + "nativeSrc": "10012:479:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10136:9:46", + "nodeType": "YulTypedName", + "src": "10136:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "10147:6:46", + "nodeType": "YulTypedName", + "src": "10147:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10158:4:46", + "nodeType": "YulTypedName", + "src": "10158:4:46", + "type": "" + } + ], + "src": "10012:479:46" + }, + { + "body": { + "nativeSrc": "10670:180:46", + "nodeType": "YulBlock", + "src": "10670:180:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10687:9:46", + "nodeType": "YulIdentifier", + "src": "10687:9:46" + }, + { + "kind": "number", + "nativeSrc": "10698:2:46", + "nodeType": "YulLiteral", + "src": "10698:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10680:6:46", + "nodeType": "YulIdentifier", + "src": "10680:6:46" + }, + "nativeSrc": "10680:21:46", + "nodeType": "YulFunctionCall", + "src": "10680:21:46" + }, + "nativeSrc": "10680:21:46", + "nodeType": "YulExpressionStatement", + "src": "10680:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10721:9:46", + "nodeType": "YulIdentifier", + "src": "10721:9:46" + }, + { + "kind": "number", + "nativeSrc": "10732:2:46", + "nodeType": "YulLiteral", + "src": "10732:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10717:3:46", + "nodeType": "YulIdentifier", + "src": "10717:3:46" + }, + "nativeSrc": "10717:18:46", + "nodeType": "YulFunctionCall", + "src": "10717:18:46" + }, + { + "kind": "number", + "nativeSrc": "10737:2:46", + "nodeType": "YulLiteral", + "src": "10737:2:46", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10710:6:46", + "nodeType": "YulIdentifier", + "src": "10710:6:46" + }, + "nativeSrc": "10710:30:46", + "nodeType": "YulFunctionCall", + "src": "10710:30:46" + }, + "nativeSrc": "10710:30:46", + "nodeType": "YulExpressionStatement", + "src": "10710:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10760:9:46", + "nodeType": "YulIdentifier", + "src": "10760:9:46" + }, + { + "kind": "number", + "nativeSrc": "10771:2:46", + "nodeType": "YulLiteral", + "src": "10771:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10756:3:46", + "nodeType": "YulIdentifier", + "src": "10756:3:46" + }, + "nativeSrc": "10756:18:46", + "nodeType": "YulFunctionCall", + "src": "10756:18:46" + }, + { + "hexValue": "4964656e7469747920747265657320686176656e2774206368616e676564", + "kind": "string", + "nativeSrc": "10776:32:46", + "nodeType": "YulLiteral", + "src": "10776:32:46", + "type": "", + "value": "Identity trees haven't changed" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10749:6:46", + "nodeType": "YulIdentifier", + "src": "10749:6:46" + }, + "nativeSrc": "10749:60:46", + "nodeType": "YulFunctionCall", + "src": "10749:60:46" + }, + "nativeSrc": "10749:60:46", + "nodeType": "YulExpressionStatement", + "src": "10749:60:46" + }, + { + "nativeSrc": "10818:26:46", + "nodeType": "YulAssignment", + "src": "10818:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10830:9:46", + "nodeType": "YulIdentifier", + "src": "10830:9:46" + }, + { + "kind": "number", + "nativeSrc": "10841:2:46", + "nodeType": "YulLiteral", + "src": "10841:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10826:3:46", + "nodeType": "YulIdentifier", + "src": "10826:3:46" + }, + "nativeSrc": "10826:18:46", + "nodeType": "YulFunctionCall", + "src": "10826:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10818:4:46", + "nodeType": "YulIdentifier", + "src": "10818:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_bfe527d2ff3b58e820f9d3002817587119240858f81529ff0e2d6f59b5b5a3a4__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "10496:354:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10647:9:46", + "nodeType": "YulTypedName", + "src": "10647:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10661:4:46", + "nodeType": "YulTypedName", + "src": "10661:4:46", + "type": "" + } + ], + "src": "10496:354:46" + }, + { + "body": { + "nativeSrc": "11051:162:46", + "nodeType": "YulBlock", + "src": "11051:162:46", + "statements": [ + { + "nativeSrc": "11061:26:46", + "nodeType": "YulAssignment", + "src": "11061:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11073:9:46", + "nodeType": "YulIdentifier", + "src": "11073:9:46" + }, + { + "kind": "number", + "nativeSrc": "11084:2:46", + "nodeType": "YulLiteral", + "src": "11084:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11069:3:46", + "nodeType": "YulIdentifier", + "src": "11069:3:46" + }, + "nativeSrc": "11069:18:46", + "nodeType": "YulFunctionCall", + "src": "11069:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11061:4:46", + "nodeType": "YulIdentifier", + "src": "11061:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11103:9:46", + "nodeType": "YulIdentifier", + "src": "11103:9:46" + }, + { + "name": "value0", + "nativeSrc": "11114:6:46", + "nodeType": "YulIdentifier", + "src": "11114:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11096:6:46", + "nodeType": "YulIdentifier", + "src": "11096:6:46" + }, + "nativeSrc": "11096:25:46", + "nodeType": "YulFunctionCall", + "src": "11096:25:46" + }, + "nativeSrc": "11096:25:46", + "nodeType": "YulExpressionStatement", + "src": "11096:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11141:9:46", + "nodeType": "YulIdentifier", + "src": "11141:9:46" + }, + { + "kind": "number", + "nativeSrc": "11152:2:46", + "nodeType": "YulLiteral", + "src": "11152:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11137:3:46", + "nodeType": "YulIdentifier", + "src": "11137:3:46" + }, + "nativeSrc": "11137:18:46", + "nodeType": "YulFunctionCall", + "src": "11137:18:46" + }, + { + "name": "value1", + "nativeSrc": "11157:6:46", + "nodeType": "YulIdentifier", + "src": "11157:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11130:6:46", + "nodeType": "YulIdentifier", + "src": "11130:6:46" + }, + "nativeSrc": "11130:34:46", + "nodeType": "YulFunctionCall", + "src": "11130:34:46" + }, + "nativeSrc": "11130:34:46", + "nodeType": "YulExpressionStatement", + "src": "11130:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11184:9:46", + "nodeType": "YulIdentifier", + "src": "11184:9:46" + }, + { + "kind": "number", + "nativeSrc": "11195:2:46", + "nodeType": "YulLiteral", + "src": "11195:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11180:3:46", + "nodeType": "YulIdentifier", + "src": "11180:3:46" + }, + "nativeSrc": "11180:18:46", + "nodeType": "YulFunctionCall", + "src": "11180:18:46" + }, + { + "name": "value2", + "nativeSrc": "11200:6:46", + "nodeType": "YulIdentifier", + "src": "11200:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11173:6:46", + "nodeType": "YulIdentifier", + "src": "11173:6:46" + }, + "nativeSrc": "11173:34:46", + "nodeType": "YulFunctionCall", + "src": "11173:34:46" + }, + "nativeSrc": "11173:34:46", + "nodeType": "YulExpressionStatement", + "src": "11173:34:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$2960_storage_ptr_t_uint256_t_rational_0_by_1__to_t_uint256_t_uint256_t_uint256__fromStack_library_reversed", + "nativeSrc": "10855:358:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11004:9:46", + "nodeType": "YulTypedName", + "src": "11004:9:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "11015:6:46", + "nodeType": "YulTypedName", + "src": "11015:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11023:6:46", + "nodeType": "YulTypedName", + "src": "11023:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "11031:6:46", + "nodeType": "YulTypedName", + "src": "11031:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11042:4:46", + "nodeType": "YulTypedName", + "src": "11042:4:46", + "type": "" + } + ], + "src": "10855:358:46" + }, + { + "body": { + "nativeSrc": "11479:644:46", + "nodeType": "YulBlock", + "src": "11479:644:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11496:9:46", + "nodeType": "YulIdentifier", + "src": "11496:9:46" + }, + { + "name": "value0", + "nativeSrc": "11507:6:46", + "nodeType": "YulIdentifier", + "src": "11507:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11489:6:46", + "nodeType": "YulIdentifier", + "src": "11489:6:46" + }, + "nativeSrc": "11489:25:46", + "nodeType": "YulFunctionCall", + "src": "11489:25:46" + }, + "nativeSrc": "11489:25:46", + "nodeType": "YulExpressionStatement", + "src": "11489:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11534:9:46", + "nodeType": "YulIdentifier", + "src": "11534:9:46" + }, + { + "kind": "number", + "nativeSrc": "11545:2:46", + "nodeType": "YulLiteral", + "src": "11545:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11530:3:46", + "nodeType": "YulIdentifier", + "src": "11530:3:46" + }, + "nativeSrc": "11530:18:46", + "nodeType": "YulFunctionCall", + "src": "11530:18:46" + }, + { + "name": "value1", + "nativeSrc": "11550:6:46", + "nodeType": "YulIdentifier", + "src": "11550:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11523:6:46", + "nodeType": "YulIdentifier", + "src": "11523:6:46" + }, + "nativeSrc": "11523:34:46", + "nodeType": "YulFunctionCall", + "src": "11523:34:46" + }, + "nativeSrc": "11523:34:46", + "nodeType": "YulExpressionStatement", + "src": "11523:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11577:9:46", + "nodeType": "YulIdentifier", + "src": "11577:9:46" + }, + { + "kind": "number", + "nativeSrc": "11588:2:46", + "nodeType": "YulLiteral", + "src": "11588:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11573:3:46", + "nodeType": "YulIdentifier", + "src": "11573:3:46" + }, + "nativeSrc": "11573:18:46", + "nodeType": "YulFunctionCall", + "src": "11573:18:46" + }, + { + "name": "value2", + "nativeSrc": "11593:6:46", + "nodeType": "YulIdentifier", + "src": "11593:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11566:6:46", + "nodeType": "YulIdentifier", + "src": "11566:6:46" + }, + "nativeSrc": "11566:34:46", + "nodeType": "YulFunctionCall", + "src": "11566:34:46" + }, + "nativeSrc": "11566:34:46", + "nodeType": "YulExpressionStatement", + "src": "11566:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11620:9:46", + "nodeType": "YulIdentifier", + "src": "11620:9:46" + }, + { + "kind": "number", + "nativeSrc": "11631:2:46", + "nodeType": "YulLiteral", + "src": "11631:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11616:3:46", + "nodeType": "YulIdentifier", + "src": "11616:3:46" + }, + "nativeSrc": "11616:18:46", + "nodeType": "YulFunctionCall", + "src": "11616:18:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value3", + "nativeSrc": "11650:6:46", + "nodeType": "YulIdentifier", + "src": "11650:6:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "11643:6:46", + "nodeType": "YulIdentifier", + "src": "11643:6:46" + }, + "nativeSrc": "11643:14:46", + "nodeType": "YulFunctionCall", + "src": "11643:14:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "11636:6:46", + "nodeType": "YulIdentifier", + "src": "11636:6:46" + }, + "nativeSrc": "11636:22:46", + "nodeType": "YulFunctionCall", + "src": "11636:22:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11609:6:46", + "nodeType": "YulIdentifier", + "src": "11609:6:46" + }, + "nativeSrc": "11609:50:46", + "nodeType": "YulFunctionCall", + "src": "11609:50:46" + }, + "nativeSrc": "11609:50:46", + "nodeType": "YulExpressionStatement", + "src": "11609:50:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11679:9:46", + "nodeType": "YulIdentifier", + "src": "11679:9:46" + }, + { + "kind": "number", + "nativeSrc": "11690:3:46", + "nodeType": "YulLiteral", + "src": "11690:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11675:3:46", + "nodeType": "YulIdentifier", + "src": "11675:3:46" + }, + "nativeSrc": "11675:19:46", + "nodeType": "YulFunctionCall", + "src": "11675:19:46" + }, + { + "name": "value4", + "nativeSrc": "11696:6:46", + "nodeType": "YulIdentifier", + "src": "11696:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11668:6:46", + "nodeType": "YulIdentifier", + "src": "11668:6:46" + }, + "nativeSrc": "11668:35:46", + "nodeType": "YulFunctionCall", + "src": "11668:35:46" + }, + "nativeSrc": "11668:35:46", + "nodeType": "YulExpressionStatement", + "src": "11668:35:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11723:9:46", + "nodeType": "YulIdentifier", + "src": "11723:9:46" + }, + { + "kind": "number", + "nativeSrc": "11734:3:46", + "nodeType": "YulLiteral", + "src": "11734:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11719:3:46", + "nodeType": "YulIdentifier", + "src": "11719:3:46" + }, + "nativeSrc": "11719:19:46", + "nodeType": "YulFunctionCall", + "src": "11719:19:46" + }, + { + "kind": "number", + "nativeSrc": "11740:3:46", + "nodeType": "YulLiteral", + "src": "11740:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11712:6:46", + "nodeType": "YulIdentifier", + "src": "11712:6:46" + }, + "nativeSrc": "11712:32:46", + "nodeType": "YulFunctionCall", + "src": "11712:32:46" + }, + "nativeSrc": "11712:32:46", + "nodeType": "YulExpressionStatement", + "src": "11712:32:46" + }, + { + "nativeSrc": "11753:27:46", + "nodeType": "YulVariableDeclaration", + "src": "11753:27:46", + "value": { + "arguments": [ + { + "name": "value5", + "nativeSrc": "11773:6:46", + "nodeType": "YulIdentifier", + "src": "11773:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "11767:5:46", + "nodeType": "YulIdentifier", + "src": "11767:5:46" + }, + "nativeSrc": "11767:13:46", + "nodeType": "YulFunctionCall", + "src": "11767:13:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "11757:6:46", + "nodeType": "YulTypedName", + "src": "11757:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11800:9:46", + "nodeType": "YulIdentifier", + "src": "11800:9:46" + }, + { + "kind": "number", + "nativeSrc": "11811:3:46", + "nodeType": "YulLiteral", + "src": "11811:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11796:3:46", + "nodeType": "YulIdentifier", + "src": "11796:3:46" + }, + "nativeSrc": "11796:19:46", + "nodeType": "YulFunctionCall", + "src": "11796:19:46" + }, + { + "name": "length", + "nativeSrc": "11817:6:46", + "nodeType": "YulIdentifier", + "src": "11817:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11789:6:46", + "nodeType": "YulIdentifier", + "src": "11789:6:46" + }, + "nativeSrc": "11789:35:46", + "nodeType": "YulFunctionCall", + "src": "11789:35:46" + }, + "nativeSrc": "11789:35:46", + "nodeType": "YulExpressionStatement", + "src": "11789:35:46" + }, + { + "nativeSrc": "11833:10:46", + "nodeType": "YulVariableDeclaration", + "src": "11833:10:46", + "value": { + "kind": "number", + "nativeSrc": "11842:1:46", + "nodeType": "YulLiteral", + "src": "11842:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "11837:1:46", + "nodeType": "YulTypedName", + "src": "11837:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "11902:91:46", + "nodeType": "YulBlock", + "src": "11902:91:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11931:9:46", + "nodeType": "YulIdentifier", + "src": "11931:9:46" + }, + { + "name": "i", + "nativeSrc": "11942:1:46", + "nodeType": "YulIdentifier", + "src": "11942:1:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11927:3:46", + "nodeType": "YulIdentifier", + "src": "11927:3:46" + }, + "nativeSrc": "11927:17:46", + "nodeType": "YulFunctionCall", + "src": "11927:17:46" + }, + { + "kind": "number", + "nativeSrc": "11946:3:46", + "nodeType": "YulLiteral", + "src": "11946:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11923:3:46", + "nodeType": "YulIdentifier", + "src": "11923:3:46" + }, + "nativeSrc": "11923:27:46", + "nodeType": "YulFunctionCall", + "src": "11923:27:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value5", + "nativeSrc": "11966:6:46", + "nodeType": "YulIdentifier", + "src": "11966:6:46" + }, + { + "name": "i", + "nativeSrc": "11974:1:46", + "nodeType": "YulIdentifier", + "src": "11974:1:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11962:3:46", + "nodeType": "YulIdentifier", + "src": "11962:3:46" + }, + "nativeSrc": "11962:14:46", + "nodeType": "YulFunctionCall", + "src": "11962:14:46" + }, + { + "kind": "number", + "nativeSrc": "11978:2:46", + "nodeType": "YulLiteral", + "src": "11978:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11958:3:46", + "nodeType": "YulIdentifier", + "src": "11958:3:46" + }, + "nativeSrc": "11958:23:46", + "nodeType": "YulFunctionCall", + "src": "11958:23:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "11952:5:46", + "nodeType": "YulIdentifier", + "src": "11952:5:46" + }, + "nativeSrc": "11952:30:46", + "nodeType": "YulFunctionCall", + "src": "11952:30:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11916:6:46", + "nodeType": "YulIdentifier", + "src": "11916:6:46" + }, + "nativeSrc": "11916:67:46", + "nodeType": "YulFunctionCall", + "src": "11916:67:46" + }, + "nativeSrc": "11916:67:46", + "nodeType": "YulExpressionStatement", + "src": "11916:67:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "11863:1:46", + "nodeType": "YulIdentifier", + "src": "11863:1:46" + }, + { + "name": "length", + "nativeSrc": "11866:6:46", + "nodeType": "YulIdentifier", + "src": "11866:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "11860:2:46", + "nodeType": "YulIdentifier", + "src": "11860:2:46" + }, + "nativeSrc": "11860:13:46", + "nodeType": "YulFunctionCall", + "src": "11860:13:46" + }, + "nativeSrc": "11852:141:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "11874:19:46", + "nodeType": "YulBlock", + "src": "11874:19:46", + "statements": [ + { + "nativeSrc": "11876:15:46", + "nodeType": "YulAssignment", + "src": "11876:15:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "11885:1:46", + "nodeType": "YulIdentifier", + "src": "11885:1:46" + }, + { + "kind": "number", + "nativeSrc": "11888:2:46", + "nodeType": "YulLiteral", + "src": "11888:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11881:3:46", + "nodeType": "YulIdentifier", + "src": "11881:3:46" + }, + "nativeSrc": "11881:10:46", + "nodeType": "YulFunctionCall", + "src": "11881:10:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "11876:1:46", + "nodeType": "YulIdentifier", + "src": "11876:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "11856:3:46", + "nodeType": "YulBlock", + "src": "11856:3:46", + "statements": [] + }, + "src": "11852:141:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12017:9:46", + "nodeType": "YulIdentifier", + "src": "12017:9:46" + }, + { + "name": "length", + "nativeSrc": "12028:6:46", + "nodeType": "YulIdentifier", + "src": "12028:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12013:3:46", + "nodeType": "YulIdentifier", + "src": "12013:3:46" + }, + "nativeSrc": "12013:22:46", + "nodeType": "YulFunctionCall", + "src": "12013:22:46" + }, + { + "kind": "number", + "nativeSrc": "12037:3:46", + "nodeType": "YulLiteral", + "src": "12037:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12009:3:46", + "nodeType": "YulIdentifier", + "src": "12009:3:46" + }, + "nativeSrc": "12009:32:46", + "nodeType": "YulFunctionCall", + "src": "12009:32:46" + }, + { + "kind": "number", + "nativeSrc": "12043:1:46", + "nodeType": "YulLiteral", + "src": "12043:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12002:6:46", + "nodeType": "YulIdentifier", + "src": "12002:6:46" + }, + "nativeSrc": "12002:43:46", + "nodeType": "YulFunctionCall", + "src": "12002:43:46" + }, + "nativeSrc": "12002:43:46", + "nodeType": "YulExpressionStatement", + "src": "12002:43:46" + }, + { + "nativeSrc": "12054:63:46", + "nodeType": "YulAssignment", + "src": "12054:63:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12070:9:46", + "nodeType": "YulIdentifier", + "src": "12070:9:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "12089:6:46", + "nodeType": "YulIdentifier", + "src": "12089:6:46" + }, + { + "kind": "number", + "nativeSrc": "12097:2:46", + "nodeType": "YulLiteral", + "src": "12097:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12085:3:46", + "nodeType": "YulIdentifier", + "src": "12085:3:46" + }, + "nativeSrc": "12085:15:46", + "nodeType": "YulFunctionCall", + "src": "12085:15:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12106:2:46", + "nodeType": "YulLiteral", + "src": "12106:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "12102:3:46", + "nodeType": "YulIdentifier", + "src": "12102:3:46" + }, + "nativeSrc": "12102:7:46", + "nodeType": "YulFunctionCall", + "src": "12102:7:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12081:3:46", + "nodeType": "YulIdentifier", + "src": "12081:3:46" + }, + "nativeSrc": "12081:29:46", + "nodeType": "YulFunctionCall", + "src": "12081:29:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12066:3:46", + "nodeType": "YulIdentifier", + "src": "12066:3:46" + }, + "nativeSrc": "12066:45:46", + "nodeType": "YulFunctionCall", + "src": "12066:45:46" + }, + { + "kind": "number", + "nativeSrc": "12113:3:46", + "nodeType": "YulLiteral", + "src": "12113:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12062:3:46", + "nodeType": "YulIdentifier", + "src": "12062:3:46" + }, + "nativeSrc": "12062:55:46", + "nodeType": "YulFunctionCall", + "src": "12062:55:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12054:4:46", + "nodeType": "YulIdentifier", + "src": "12054:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bool_t_rational_1_by_1_t_bytes_memory_ptr__to_t_uint256_t_uint256_t_uint256_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "11218:905:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11408:9:46", + "nodeType": "YulTypedName", + "src": "11408:9:46", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "11419:6:46", + "nodeType": "YulTypedName", + "src": "11419:6:46", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "11427:6:46", + "nodeType": "YulTypedName", + "src": "11427:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "11435:6:46", + "nodeType": "YulTypedName", + "src": "11435:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "11443:6:46", + "nodeType": "YulTypedName", + "src": "11443:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11451:6:46", + "nodeType": "YulTypedName", + "src": "11451:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "11459:6:46", + "nodeType": "YulTypedName", + "src": "11459:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11470:4:46", + "nodeType": "YulTypedName", + "src": "11470:4:46", + "type": "" + } + ], + "src": "11218:905:46" + }, + { + "body": { + "nativeSrc": "12302:233:46", + "nodeType": "YulBlock", + "src": "12302:233:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12319:9:46", + "nodeType": "YulIdentifier", + "src": "12319:9:46" + }, + { + "kind": "number", + "nativeSrc": "12330:2:46", + "nodeType": "YulLiteral", + "src": "12330:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12312:6:46", + "nodeType": "YulIdentifier", + "src": "12312:6:46" + }, + "nativeSrc": "12312:21:46", + "nodeType": "YulFunctionCall", + "src": "12312:21:46" + }, + "nativeSrc": "12312:21:46", + "nodeType": "YulExpressionStatement", + "src": "12312:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12353:9:46", + "nodeType": "YulIdentifier", + "src": "12353:9:46" + }, + { + "kind": "number", + "nativeSrc": "12364:2:46", + "nodeType": "YulLiteral", + "src": "12364:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12349:3:46", + "nodeType": "YulIdentifier", + "src": "12349:3:46" + }, + "nativeSrc": "12349:18:46", + "nodeType": "YulFunctionCall", + "src": "12349:18:46" + }, + { + "kind": "number", + "nativeSrc": "12369:2:46", + "nodeType": "YulLiteral", + "src": "12369:2:46", + "type": "", + "value": "43" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12342:6:46", + "nodeType": "YulIdentifier", + "src": "12342:6:46" + }, + "nativeSrc": "12342:30:46", + "nodeType": "YulFunctionCall", + "src": "12342:30:46" + }, + "nativeSrc": "12342:30:46", + "nodeType": "YulExpressionStatement", + "src": "12342:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12392:9:46", + "nodeType": "YulIdentifier", + "src": "12392:9:46" + }, + { + "kind": "number", + "nativeSrc": "12403:2:46", + "nodeType": "YulLiteral", + "src": "12403:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12388:3:46", + "nodeType": "YulIdentifier", + "src": "12388:3:46" + }, + "nativeSrc": "12388:18:46", + "nodeType": "YulFunctionCall", + "src": "12388:18:46" + }, + { + "hexValue": "534d542064657074682069732067726561746572207468616e206d617820616c", + "kind": "string", + "nativeSrc": "12408:34:46", + "nodeType": "YulLiteral", + "src": "12408:34:46", + "type": "", + "value": "SMT depth is greater than max al" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12381:6:46", + "nodeType": "YulIdentifier", + "src": "12381:6:46" + }, + "nativeSrc": "12381:62:46", + "nodeType": "YulFunctionCall", + "src": "12381:62:46" + }, + "nativeSrc": "12381:62:46", + "nodeType": "YulExpressionStatement", + "src": "12381:62:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12463:9:46", + "nodeType": "YulIdentifier", + "src": "12463:9:46" + }, + { + "kind": "number", + "nativeSrc": "12474:2:46", + "nodeType": "YulLiteral", + "src": "12474:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12459:3:46", + "nodeType": "YulIdentifier", + "src": "12459:3:46" + }, + "nativeSrc": "12459:18:46", + "nodeType": "YulFunctionCall", + "src": "12459:18:46" + }, + { + "hexValue": "6c6f776564206465707468", + "kind": "string", + "nativeSrc": "12479:13:46", + "nodeType": "YulLiteral", + "src": "12479:13:46", + "type": "", + "value": "lowed depth" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12452:6:46", + "nodeType": "YulIdentifier", + "src": "12452:6:46" + }, + "nativeSrc": "12452:41:46", + "nodeType": "YulFunctionCall", + "src": "12452:41:46" + }, + "nativeSrc": "12452:41:46", + "nodeType": "YulExpressionStatement", + "src": "12452:41:46" + }, + { + "nativeSrc": "12502:27:46", + "nodeType": "YulAssignment", + "src": "12502:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12514:9:46", + "nodeType": "YulIdentifier", + "src": "12514:9:46" + }, + { + "kind": "number", + "nativeSrc": "12525:3:46", + "nodeType": "YulLiteral", + "src": "12525:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12510:3:46", + "nodeType": "YulIdentifier", + "src": "12510:3:46" + }, + "nativeSrc": "12510:19:46", + "nodeType": "YulFunctionCall", + "src": "12510:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12502:4:46", + "nodeType": "YulIdentifier", + "src": "12502:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3373a85b98f1718c998a10926a0cc482f57a490b87fbf0ea79c758ce195432db__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "12128:407:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12279:9:46", + "nodeType": "YulTypedName", + "src": "12279:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12293:4:46", + "nodeType": "YulTypedName", + "src": "12293:4:46", + "type": "" + } + ], + "src": "12128:407:46" + }, + { + "body": { + "nativeSrc": "12639:98:46", + "nodeType": "YulBlock", + "src": "12639:98:46", + "statements": [ + { + "nativeSrc": "12649:26:46", + "nodeType": "YulAssignment", + "src": "12649:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12661:9:46", + "nodeType": "YulIdentifier", + "src": "12661:9:46" + }, + { + "kind": "number", + "nativeSrc": "12672:2:46", + "nodeType": "YulLiteral", + "src": "12672:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12657:3:46", + "nodeType": "YulIdentifier", + "src": "12657:3:46" + }, + "nativeSrc": "12657:18:46", + "nodeType": "YulFunctionCall", + "src": "12657:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12649:4:46", + "nodeType": "YulIdentifier", + "src": "12649:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12691:9:46", + "nodeType": "YulIdentifier", + "src": "12691:9:46" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "12706:6:46", + "nodeType": "YulIdentifier", + "src": "12706:6:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12718:3:46", + "nodeType": "YulLiteral", + "src": "12718:3:46", + "type": "", + "value": "240" + }, + { + "kind": "number", + "nativeSrc": "12723:5:46", + "nodeType": "YulLiteral", + "src": "12723:5:46", + "type": "", + "value": "65535" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "12714:3:46", + "nodeType": "YulIdentifier", + "src": "12714:3:46" + }, + "nativeSrc": "12714:15:46", + "nodeType": "YulFunctionCall", + "src": "12714:15:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "12702:3:46", + "nodeType": "YulIdentifier", + "src": "12702:3:46" + }, + "nativeSrc": "12702:28:46", + "nodeType": "YulFunctionCall", + "src": "12702:28:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12684:6:46", + "nodeType": "YulIdentifier", + "src": "12684:6:46" + }, + "nativeSrc": "12684:47:46", + "nodeType": "YulFunctionCall", + "src": "12684:47:46" + }, + "nativeSrc": "12684:47:46", + "nodeType": "YulExpressionStatement", + "src": "12684:47:46" + } + ] + }, + "name": "abi_encode_tuple_t_bytes2__to_t_bytes2__fromStack_reversed", + "nativeSrc": "12540:197:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12608:9:46", + "nodeType": "YulTypedName", + "src": "12608:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "12619:6:46", + "nodeType": "YulTypedName", + "src": "12619:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12630:4:46", + "nodeType": "YulTypedName", + "src": "12630:4:46", + "type": "" + } + ], + "src": "12540:197:46" + }, + { + "body": { + "nativeSrc": "12820:124:46", + "nodeType": "YulBlock", + "src": "12820:124:46", + "statements": [ + { + "body": { + "nativeSrc": "12866:16:46", + "nodeType": "YulBlock", + "src": "12866:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12875:1:46", + "nodeType": "YulLiteral", + "src": "12875:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12878:1:46", + "nodeType": "YulLiteral", + "src": "12878:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12868:6:46", + "nodeType": "YulIdentifier", + "src": "12868:6:46" + }, + "nativeSrc": "12868:12:46", + "nodeType": "YulFunctionCall", + "src": "12868:12:46" + }, + "nativeSrc": "12868:12:46", + "nodeType": "YulExpressionStatement", + "src": "12868:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "12841:7:46", + "nodeType": "YulIdentifier", + "src": "12841:7:46" + }, + { + "name": "headStart", + "nativeSrc": "12850:9:46", + "nodeType": "YulIdentifier", + "src": "12850:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12837:3:46", + "nodeType": "YulIdentifier", + "src": "12837:3:46" + }, + "nativeSrc": "12837:23:46", + "nodeType": "YulFunctionCall", + "src": "12837:23:46" + }, + { + "kind": "number", + "nativeSrc": "12862:2:46", + "nodeType": "YulLiteral", + "src": "12862:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "12833:3:46", + "nodeType": "YulIdentifier", + "src": "12833:3:46" + }, + "nativeSrc": "12833:32:46", + "nodeType": "YulFunctionCall", + "src": "12833:32:46" + }, + "nativeSrc": "12830:52:46", + "nodeType": "YulIf", + "src": "12830:52:46" + }, + { + "nativeSrc": "12891:47:46", + "nodeType": "YulAssignment", + "src": "12891:47:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12928:9:46", + "nodeType": "YulIdentifier", + "src": "12928:9:46" + } + ], + "functionName": { + "name": "abi_decode_bool_fromMemory", + "nativeSrc": "12901:26:46", + "nodeType": "YulIdentifier", + "src": "12901:26:46" + }, + "nativeSrc": "12901:37:46", + "nodeType": "YulFunctionCall", + "src": "12901:37:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "12891:6:46", + "nodeType": "YulIdentifier", + "src": "12891:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nativeSrc": "12742:202:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12786:9:46", + "nodeType": "YulTypedName", + "src": "12786:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "12797:7:46", + "nodeType": "YulTypedName", + "src": "12797:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "12809:6:46", + "nodeType": "YulTypedName", + "src": "12809:6:46", + "type": "" + } + ], + "src": "12742:202:46" + }, + { + "body": { + "nativeSrc": "13123:174:46", + "nodeType": "YulBlock", + "src": "13123:174:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13140:9:46", + "nodeType": "YulIdentifier", + "src": "13140:9:46" + }, + { + "kind": "number", + "nativeSrc": "13151:2:46", + "nodeType": "YulLiteral", + "src": "13151:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13133:6:46", + "nodeType": "YulIdentifier", + "src": "13133:6:46" + }, + "nativeSrc": "13133:21:46", + "nodeType": "YulFunctionCall", + "src": "13133:21:46" + }, + "nativeSrc": "13133:21:46", + "nodeType": "YulExpressionStatement", + "src": "13133:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13174:9:46", + "nodeType": "YulIdentifier", + "src": "13174:9:46" + }, + { + "kind": "number", + "nativeSrc": "13185:2:46", + "nodeType": "YulLiteral", + "src": "13185:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13170:3:46", + "nodeType": "YulIdentifier", + "src": "13170:3:46" + }, + "nativeSrc": "13170:18:46", + "nodeType": "YulFunctionCall", + "src": "13170:18:46" + }, + { + "kind": "number", + "nativeSrc": "13190:2:46", + "nodeType": "YulLiteral", + "src": "13190:2:46", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13163:6:46", + "nodeType": "YulIdentifier", + "src": "13163:6:46" + }, + "nativeSrc": "13163:30:46", + "nodeType": "YulFunctionCall", + "src": "13163:30:46" + }, + "nativeSrc": "13163:30:46", + "nodeType": "YulExpressionStatement", + "src": "13163:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13213:9:46", + "nodeType": "YulIdentifier", + "src": "13213:9:46" + }, + { + "kind": "number", + "nativeSrc": "13224:2:46", + "nodeType": "YulLiteral", + "src": "13224:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13209:3:46", + "nodeType": "YulIdentifier", + "src": "13209:3:46" + }, + "nativeSrc": "13209:18:46", + "nodeType": "YulFunctionCall", + "src": "13209:18:46" + }, + { + "hexValue": "69642074797065206973206e6f7420737570706f72746564", + "kind": "string", + "nativeSrc": "13229:26:46", + "nodeType": "YulLiteral", + "src": "13229:26:46", + "type": "", + "value": "id type is not supported" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13202:6:46", + "nodeType": "YulIdentifier", + "src": "13202:6:46" + }, + "nativeSrc": "13202:54:46", + "nodeType": "YulFunctionCall", + "src": "13202:54:46" + }, + "nativeSrc": "13202:54:46", + "nodeType": "YulExpressionStatement", + "src": "13202:54:46" + }, + { + "nativeSrc": "13265:26:46", + "nodeType": "YulAssignment", + "src": "13265:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13277:9:46", + "nodeType": "YulIdentifier", + "src": "13277:9:46" + }, + { + "kind": "number", + "nativeSrc": "13288:2:46", + "nodeType": "YulLiteral", + "src": "13288:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13273:3:46", + "nodeType": "YulIdentifier", + "src": "13273:3:46" + }, + "nativeSrc": "13273:18:46", + "nodeType": "YulFunctionCall", + "src": "13273:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13265:4:46", + "nodeType": "YulIdentifier", + "src": "13265:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3050ac86504f6f4eb496200c8717848bbc64735985474666b0e5a7bb9a483662__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "12949:348:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13100:9:46", + "nodeType": "YulTypedName", + "src": "13100:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13114:4:46", + "nodeType": "YulTypedName", + "src": "13114:4:46", + "type": "" + } + ], + "src": "12949:348:46" + }, + { + "body": { + "nativeSrc": "13462:119:46", + "nodeType": "YulBlock", + "src": "13462:119:46", + "statements": [ + { + "nativeSrc": "13472:26:46", + "nodeType": "YulAssignment", + "src": "13472:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13484:9:46", + "nodeType": "YulIdentifier", + "src": "13484:9:46" + }, + { + "kind": "number", + "nativeSrc": "13495:2:46", + "nodeType": "YulLiteral", + "src": "13495:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13480:3:46", + "nodeType": "YulIdentifier", + "src": "13480:3:46" + }, + "nativeSrc": "13480:18:46", + "nodeType": "YulFunctionCall", + "src": "13480:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13472:4:46", + "nodeType": "YulIdentifier", + "src": "13472:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13514:9:46", + "nodeType": "YulIdentifier", + "src": "13514:9:46" + }, + { + "name": "value0", + "nativeSrc": "13525:6:46", + "nodeType": "YulIdentifier", + "src": "13525:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13507:6:46", + "nodeType": "YulIdentifier", + "src": "13507:6:46" + }, + "nativeSrc": "13507:25:46", + "nodeType": "YulFunctionCall", + "src": "13507:25:46" + }, + "nativeSrc": "13507:25:46", + "nodeType": "YulExpressionStatement", + "src": "13507:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13552:9:46", + "nodeType": "YulIdentifier", + "src": "13552:9:46" + }, + { + "kind": "number", + "nativeSrc": "13563:2:46", + "nodeType": "YulLiteral", + "src": "13563:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13548:3:46", + "nodeType": "YulIdentifier", + "src": "13548:3:46" + }, + "nativeSrc": "13548:18:46", + "nodeType": "YulFunctionCall", + "src": "13548:18:46" + }, + { + "name": "value1", + "nativeSrc": "13568:6:46", + "nodeType": "YulIdentifier", + "src": "13568:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13541:6:46", + "nodeType": "YulIdentifier", + "src": "13541:6:46" + }, + "nativeSrc": "13541:34:46", + "nodeType": "YulFunctionCall", + "src": "13541:34:46" + }, + "nativeSrc": "13541:34:46", + "nodeType": "YulExpressionStatement", + "src": "13541:34:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$2960_storage_ptr_t_uint256__to_t_uint256_t_uint256__fromStack_library_reversed", + "nativeSrc": "13302:279:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13423:9:46", + "nodeType": "YulTypedName", + "src": "13423:9:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13434:6:46", + "nodeType": "YulTypedName", + "src": "13434:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "13442:6:46", + "nodeType": "YulTypedName", + "src": "13442:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13453:4:46", + "nodeType": "YulTypedName", + "src": "13453:4:46", + "type": "" + } + ], + "src": "13302:279:46" + }, + { + "body": { + "nativeSrc": "13618:95:46", + "nodeType": "YulBlock", + "src": "13618:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13635:1:46", + "nodeType": "YulLiteral", + "src": "13635:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13642:3:46", + "nodeType": "YulLiteral", + "src": "13642:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "13647:10:46", + "nodeType": "YulLiteral", + "src": "13647:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "13638:3:46", + "nodeType": "YulIdentifier", + "src": "13638:3:46" + }, + "nativeSrc": "13638:20:46", + "nodeType": "YulFunctionCall", + "src": "13638:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13628:6:46", + "nodeType": "YulIdentifier", + "src": "13628:6:46" + }, + "nativeSrc": "13628:31:46", + "nodeType": "YulFunctionCall", + "src": "13628:31:46" + }, + "nativeSrc": "13628:31:46", + "nodeType": "YulExpressionStatement", + "src": "13628:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13675:1:46", + "nodeType": "YulLiteral", + "src": "13675:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "13678:4:46", + "nodeType": "YulLiteral", + "src": "13678:4:46", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13668:6:46", + "nodeType": "YulIdentifier", + "src": "13668:6:46" + }, + "nativeSrc": "13668:15:46", + "nodeType": "YulFunctionCall", + "src": "13668:15:46" + }, + "nativeSrc": "13668:15:46", + "nodeType": "YulExpressionStatement", + "src": "13668:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13699:1:46", + "nodeType": "YulLiteral", + "src": "13699:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13702:4:46", + "nodeType": "YulLiteral", + "src": "13702:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "13692:6:46", + "nodeType": "YulIdentifier", + "src": "13692:6:46" + }, + "nativeSrc": "13692:15:46", + "nodeType": "YulFunctionCall", + "src": "13692:15:46" + }, + "nativeSrc": "13692:15:46", + "nodeType": "YulExpressionStatement", + "src": "13692:15:46" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "13586:127:46", + "nodeType": "YulFunctionDefinition", + "src": "13586:127:46" + }, + { + "body": { + "nativeSrc": "13750:95:46", + "nodeType": "YulBlock", + "src": "13750:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13767:1:46", + "nodeType": "YulLiteral", + "src": "13767:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13774:3:46", + "nodeType": "YulLiteral", + "src": "13774:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "13779:10:46", + "nodeType": "YulLiteral", + "src": "13779:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "13770:3:46", + "nodeType": "YulIdentifier", + "src": "13770:3:46" + }, + "nativeSrc": "13770:20:46", + "nodeType": "YulFunctionCall", + "src": "13770:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13760:6:46", + "nodeType": "YulIdentifier", + "src": "13760:6:46" + }, + "nativeSrc": "13760:31:46", + "nodeType": "YulFunctionCall", + "src": "13760:31:46" + }, + "nativeSrc": "13760:31:46", + "nodeType": "YulExpressionStatement", + "src": "13760:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13807:1:46", + "nodeType": "YulLiteral", + "src": "13807:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "13810:4:46", + "nodeType": "YulLiteral", + "src": "13810:4:46", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13800:6:46", + "nodeType": "YulIdentifier", + "src": "13800:6:46" + }, + "nativeSrc": "13800:15:46", + "nodeType": "YulFunctionCall", + "src": "13800:15:46" + }, + "nativeSrc": "13800:15:46", + "nodeType": "YulExpressionStatement", + "src": "13800:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13831:1:46", + "nodeType": "YulLiteral", + "src": "13831:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13834:4:46", + "nodeType": "YulLiteral", + "src": "13834:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "13824:6:46", + "nodeType": "YulIdentifier", + "src": "13824:6:46" + }, + "nativeSrc": "13824:15:46", + "nodeType": "YulFunctionCall", + "src": "13824:15:46" + }, + "nativeSrc": "13824:15:46", + "nodeType": "YulExpressionStatement", + "src": "13824:15:46" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "13718:127:46", + "nodeType": "YulFunctionDefinition", + "src": "13718:127:46" + }, + { + "body": { + "nativeSrc": "13896:102:46", + "nodeType": "YulBlock", + "src": "13896:102:46", + "statements": [ + { + "nativeSrc": "13906:38:46", + "nodeType": "YulAssignment", + "src": "13906:38:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nativeSrc": "13921:1:46", + "nodeType": "YulIdentifier", + "src": "13921:1:46" + }, + { + "kind": "number", + "nativeSrc": "13924:4:46", + "nodeType": "YulLiteral", + "src": "13924:4:46", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "13917:3:46", + "nodeType": "YulIdentifier", + "src": "13917:3:46" + }, + "nativeSrc": "13917:12:46", + "nodeType": "YulFunctionCall", + "src": "13917:12:46" + }, + { + "arguments": [ + { + "name": "y", + "nativeSrc": "13935:1:46", + "nodeType": "YulIdentifier", + "src": "13935:1:46" + }, + { + "kind": "number", + "nativeSrc": "13938:4:46", + "nodeType": "YulLiteral", + "src": "13938:4:46", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "13931:3:46", + "nodeType": "YulIdentifier", + "src": "13931:3:46" + }, + "nativeSrc": "13931:12:46", + "nodeType": "YulFunctionCall", + "src": "13931:12:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13913:3:46", + "nodeType": "YulIdentifier", + "src": "13913:3:46" + }, + "nativeSrc": "13913:31:46", + "nodeType": "YulFunctionCall", + "src": "13913:31:46" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "13906:3:46", + "nodeType": "YulIdentifier", + "src": "13906:3:46" + } + ] + }, + { + "body": { + "nativeSrc": "13970:22:46", + "nodeType": "YulBlock", + "src": "13970:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "13972:16:46", + "nodeType": "YulIdentifier", + "src": "13972:16:46" + }, + "nativeSrc": "13972:18:46", + "nodeType": "YulFunctionCall", + "src": "13972:18:46" + }, + "nativeSrc": "13972:18:46", + "nodeType": "YulExpressionStatement", + "src": "13972:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "sum", + "nativeSrc": "13959:3:46", + "nodeType": "YulIdentifier", + "src": "13959:3:46" + }, + { + "kind": "number", + "nativeSrc": "13964:4:46", + "nodeType": "YulLiteral", + "src": "13964:4:46", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "13956:2:46", + "nodeType": "YulIdentifier", + "src": "13956:2:46" + }, + "nativeSrc": "13956:13:46", + "nodeType": "YulFunctionCall", + "src": "13956:13:46" + }, + "nativeSrc": "13953:39:46", + "nodeType": "YulIf", + "src": "13953:39:46" + } + ] + }, + "name": "checked_add_t_uint8", + "nativeSrc": "13850:148:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "13879:1:46", + "nodeType": "YulTypedName", + "src": "13879:1:46", + "type": "" + }, + { + "name": "y", + "nativeSrc": "13882:1:46", + "nodeType": "YulTypedName", + "src": "13882:1:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "13888:3:46", + "nodeType": "YulTypedName", + "src": "13888:3:46", + "type": "" + } + ], + "src": "13850:148:46" + }, + { + "body": { + "nativeSrc": "14158:325:46", + "nodeType": "YulBlock", + "src": "14158:325:46", + "statements": [ + { + "nativeSrc": "14168:27:46", + "nodeType": "YulAssignment", + "src": "14168:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14180:9:46", + "nodeType": "YulIdentifier", + "src": "14180:9:46" + }, + { + "kind": "number", + "nativeSrc": "14191:3:46", + "nodeType": "YulLiteral", + "src": "14191:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14176:3:46", + "nodeType": "YulIdentifier", + "src": "14176:3:46" + }, + "nativeSrc": "14176:19:46", + "nodeType": "YulFunctionCall", + "src": "14176:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14168:4:46", + "nodeType": "YulIdentifier", + "src": "14168:4:46" + } + ] + }, + { + "nativeSrc": "14204:20:46", + "nodeType": "YulVariableDeclaration", + "src": "14204:20:46", + "value": { + "name": "headStart", + "nativeSrc": "14215:9:46", + "nodeType": "YulIdentifier", + "src": "14215:9:46" + }, + "variables": [ + { + "name": "pos", + "nativeSrc": "14208:3:46", + "nodeType": "YulTypedName", + "src": "14208:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "14233:16:46", + "nodeType": "YulAssignment", + "src": "14233:16:46", + "value": { + "name": "headStart", + "nativeSrc": "14240:9:46", + "nodeType": "YulIdentifier", + "src": "14240:9:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "14233:3:46", + "nodeType": "YulIdentifier", + "src": "14233:3:46" + } + ] + }, + { + "nativeSrc": "14258:20:46", + "nodeType": "YulVariableDeclaration", + "src": "14258:20:46", + "value": { + "name": "value0", + "nativeSrc": "14272:6:46", + "nodeType": "YulIdentifier", + "src": "14272:6:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "14262:6:46", + "nodeType": "YulTypedName", + "src": "14262:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "14287:10:46", + "nodeType": "YulVariableDeclaration", + "src": "14287:10:46", + "value": { + "kind": "number", + "nativeSrc": "14296:1:46", + "nodeType": "YulLiteral", + "src": "14296:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "14291:1:46", + "nodeType": "YulTypedName", + "src": "14291:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "14353:124:46", + "nodeType": "YulBlock", + "src": "14353:124:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14374:3:46", + "nodeType": "YulIdentifier", + "src": "14374:3:46" + }, + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "14385:6:46", + "nodeType": "YulIdentifier", + "src": "14385:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14379:5:46", + "nodeType": "YulIdentifier", + "src": "14379:5:46" + }, + "nativeSrc": "14379:13:46", + "nodeType": "YulFunctionCall", + "src": "14379:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14367:6:46", + "nodeType": "YulIdentifier", + "src": "14367:6:46" + }, + "nativeSrc": "14367:26:46", + "nodeType": "YulFunctionCall", + "src": "14367:26:46" + }, + "nativeSrc": "14367:26:46", + "nodeType": "YulExpressionStatement", + "src": "14367:26:46" + }, + { + "nativeSrc": "14406:21:46", + "nodeType": "YulAssignment", + "src": "14406:21:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "14417:3:46", + "nodeType": "YulIdentifier", + "src": "14417:3:46" + }, + { + "kind": "number", + "nativeSrc": "14422:4:46", + "nodeType": "YulLiteral", + "src": "14422:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14413:3:46", + "nodeType": "YulIdentifier", + "src": "14413:3:46" + }, + "nativeSrc": "14413:14:46", + "nodeType": "YulFunctionCall", + "src": "14413:14:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "14406:3:46", + "nodeType": "YulIdentifier", + "src": "14406:3:46" + } + ] + }, + { + "nativeSrc": "14440:27:46", + "nodeType": "YulAssignment", + "src": "14440:27:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "14454:6:46", + "nodeType": "YulIdentifier", + "src": "14454:6:46" + }, + { + "kind": "number", + "nativeSrc": "14462:4:46", + "nodeType": "YulLiteral", + "src": "14462:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14450:3:46", + "nodeType": "YulIdentifier", + "src": "14450:3:46" + }, + "nativeSrc": "14450:17:46", + "nodeType": "YulFunctionCall", + "src": "14450:17:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "14440:6:46", + "nodeType": "YulIdentifier", + "src": "14440:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "14317:1:46", + "nodeType": "YulIdentifier", + "src": "14317:1:46" + }, + { + "kind": "number", + "nativeSrc": "14320:4:46", + "nodeType": "YulLiteral", + "src": "14320:4:46", + "type": "", + "value": "0x04" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "14314:2:46", + "nodeType": "YulIdentifier", + "src": "14314:2:46" + }, + "nativeSrc": "14314:11:46", + "nodeType": "YulFunctionCall", + "src": "14314:11:46" + }, + "nativeSrc": "14306:171:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "14326:18:46", + "nodeType": "YulBlock", + "src": "14326:18:46", + "statements": [ + { + "nativeSrc": "14328:14:46", + "nodeType": "YulAssignment", + "src": "14328:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "14337:1:46", + "nodeType": "YulIdentifier", + "src": "14337:1:46" + }, + { + "kind": "number", + "nativeSrc": "14340:1:46", + "nodeType": "YulLiteral", + "src": "14340:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14333:3:46", + "nodeType": "YulIdentifier", + "src": "14333:3:46" + }, + "nativeSrc": "14333:9:46", + "nodeType": "YulFunctionCall", + "src": "14333:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "14328:1:46", + "nodeType": "YulIdentifier", + "src": "14328:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "14310:3:46", + "nodeType": "YulBlock", + "src": "14310:3:46", + "statements": [] + }, + "src": "14306:171:46" + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$4_memory_ptr__to_t_array$_t_uint256_$4_memory_ptr__fromStack_library_reversed", + "nativeSrc": "14003:480:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14127:9:46", + "nodeType": "YulTypedName", + "src": "14127:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "14138:6:46", + "nodeType": "YulTypedName", + "src": "14138:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "14149:4:46", + "nodeType": "YulTypedName", + "src": "14149:4:46", + "type": "" + } + ], + "src": "14003:480:46" + }, + { + "body": { + "nativeSrc": "14662:224:46", + "nodeType": "YulBlock", + "src": "14662:224:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14679:9:46", + "nodeType": "YulIdentifier", + "src": "14679:9:46" + }, + { + "kind": "number", + "nativeSrc": "14690:2:46", + "nodeType": "YulLiteral", + "src": "14690:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14672:6:46", + "nodeType": "YulIdentifier", + "src": "14672:6:46" + }, + "nativeSrc": "14672:21:46", + "nodeType": "YulFunctionCall", + "src": "14672:21:46" + }, + "nativeSrc": "14672:21:46", + "nodeType": "YulExpressionStatement", + "src": "14672:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14713:9:46", + "nodeType": "YulIdentifier", + "src": "14713:9:46" + }, + { + "kind": "number", + "nativeSrc": "14724:2:46", + "nodeType": "YulLiteral", + "src": "14724:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14709:3:46", + "nodeType": "YulIdentifier", + "src": "14709:3:46" + }, + "nativeSrc": "14709:18:46", + "nodeType": "YulFunctionCall", + "src": "14709:18:46" + }, + { + "kind": "number", + "nativeSrc": "14729:2:46", + "nodeType": "YulLiteral", + "src": "14729:2:46", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14702:6:46", + "nodeType": "YulIdentifier", + "src": "14702:6:46" + }, + "nativeSrc": "14702:30:46", + "nodeType": "YulFunctionCall", + "src": "14702:30:46" + }, + "nativeSrc": "14702:30:46", + "nodeType": "YulExpressionStatement", + "src": "14702:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14752:9:46", + "nodeType": "YulIdentifier", + "src": "14752:9:46" + }, + { + "kind": "number", + "nativeSrc": "14763:2:46", + "nodeType": "YulLiteral", + "src": "14763:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14748:3:46", + "nodeType": "YulIdentifier", + "src": "14748:3:46" + }, + "nativeSrc": "14748:18:46", + "nodeType": "YulFunctionCall", + "src": "14748:18:46" + }, + { + "hexValue": "526f6f747320666f72207468697320737461746520616c726561647920657869", + "kind": "string", + "nativeSrc": "14768:34:46", + "nodeType": "YulLiteral", + "src": "14768:34:46", + "type": "", + "value": "Roots for this state already exi" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14741:6:46", + "nodeType": "YulIdentifier", + "src": "14741:6:46" + }, + "nativeSrc": "14741:62:46", + "nodeType": "YulFunctionCall", + "src": "14741:62:46" + }, + "nativeSrc": "14741:62:46", + "nodeType": "YulExpressionStatement", + "src": "14741:62:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14823:9:46", + "nodeType": "YulIdentifier", + "src": "14823:9:46" + }, + { + "kind": "number", + "nativeSrc": "14834:2:46", + "nodeType": "YulLiteral", + "src": "14834:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14819:3:46", + "nodeType": "YulIdentifier", + "src": "14819:3:46" + }, + "nativeSrc": "14819:18:46", + "nodeType": "YulFunctionCall", + "src": "14819:18:46" + }, + { + "hexValue": "7374", + "kind": "string", + "nativeSrc": "14839:4:46", + "nodeType": "YulLiteral", + "src": "14839:4:46", + "type": "", + "value": "st" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14812:6:46", + "nodeType": "YulIdentifier", + "src": "14812:6:46" + }, + "nativeSrc": "14812:32:46", + "nodeType": "YulFunctionCall", + "src": "14812:32:46" + }, + "nativeSrc": "14812:32:46", + "nodeType": "YulExpressionStatement", + "src": "14812:32:46" + }, + { + "nativeSrc": "14853:27:46", + "nodeType": "YulAssignment", + "src": "14853:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14865:9:46", + "nodeType": "YulIdentifier", + "src": "14865:9:46" + }, + { + "kind": "number", + "nativeSrc": "14876:3:46", + "nodeType": "YulLiteral", + "src": "14876:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14861:3:46", + "nodeType": "YulIdentifier", + "src": "14861:3:46" + }, + "nativeSrc": "14861:19:46", + "nodeType": "YulFunctionCall", + "src": "14861:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "14853:4:46", + "nodeType": "YulIdentifier", + "src": "14853:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_6824f57e98af605fc3b03feb3b76bdf32650aedf61a3aa7698b69a981ebba9a7__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "14488:398:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14639:9:46", + "nodeType": "YulTypedName", + "src": "14639:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "14653:4:46", + "nodeType": "YulTypedName", + "src": "14653:4:46", + "type": "" + } + ], + "src": "14488:398:46" + }, + { + "body": { + "nativeSrc": "14940:79:46", + "nodeType": "YulBlock", + "src": "14940:79:46", + "statements": [ + { + "nativeSrc": "14950:17:46", + "nodeType": "YulAssignment", + "src": "14950:17:46", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "14962:1:46", + "nodeType": "YulIdentifier", + "src": "14962:1:46" + }, + { + "name": "y", + "nativeSrc": "14965:1:46", + "nodeType": "YulIdentifier", + "src": "14965:1:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "14958:3:46", + "nodeType": "YulIdentifier", + "src": "14958:3:46" + }, + "nativeSrc": "14958:9:46", + "nodeType": "YulFunctionCall", + "src": "14958:9:46" + }, + "variableNames": [ + { + "name": "diff", + "nativeSrc": "14950:4:46", + "nodeType": "YulIdentifier", + "src": "14950:4:46" + } + ] + }, + { + "body": { + "nativeSrc": "14991:22:46", + "nodeType": "YulBlock", + "src": "14991:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "14993:16:46", + "nodeType": "YulIdentifier", + "src": "14993:16:46" + }, + "nativeSrc": "14993:18:46", + "nodeType": "YulFunctionCall", + "src": "14993:18:46" + }, + "nativeSrc": "14993:18:46", + "nodeType": "YulExpressionStatement", + "src": "14993:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nativeSrc": "14982:4:46", + "nodeType": "YulIdentifier", + "src": "14982:4:46" + }, + { + "name": "x", + "nativeSrc": "14988:1:46", + "nodeType": "YulIdentifier", + "src": "14988:1:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "14979:2:46", + "nodeType": "YulIdentifier", + "src": "14979:2:46" + }, + "nativeSrc": "14979:11:46", + "nodeType": "YulFunctionCall", + "src": "14979:11:46" + }, + "nativeSrc": "14976:37:46", + "nodeType": "YulIf", + "src": "14976:37:46" + } + ] + }, + "name": "checked_sub_t_uint256", + "nativeSrc": "14891:128:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "14922:1:46", + "nodeType": "YulTypedName", + "src": "14922:1:46", + "type": "" + }, + { + "name": "y", + "nativeSrc": "14925:1:46", + "nodeType": "YulTypedName", + "src": "14925:1:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nativeSrc": "14931:4:46", + "nodeType": "YulTypedName", + "src": "14931:4:46", + "type": "" + } + ], + "src": "14891:128:46" + }, + { + "body": { + "nativeSrc": "15141:84:46", + "nodeType": "YulBlock", + "src": "15141:84:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15158:3:46", + "nodeType": "YulIdentifier", + "src": "15158:3:46" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "15167:6:46", + "nodeType": "YulIdentifier", + "src": "15167:6:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15179:3:46", + "nodeType": "YulLiteral", + "src": "15179:3:46", + "type": "", + "value": "240" + }, + { + "kind": "number", + "nativeSrc": "15184:5:46", + "nodeType": "YulLiteral", + "src": "15184:5:46", + "type": "", + "value": "65535" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "15175:3:46", + "nodeType": "YulIdentifier", + "src": "15175:3:46" + }, + "nativeSrc": "15175:15:46", + "nodeType": "YulFunctionCall", + "src": "15175:15:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "15163:3:46", + "nodeType": "YulIdentifier", + "src": "15163:3:46" + }, + "nativeSrc": "15163:28:46", + "nodeType": "YulFunctionCall", + "src": "15163:28:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15151:6:46", + "nodeType": "YulIdentifier", + "src": "15151:6:46" + }, + "nativeSrc": "15151:41:46", + "nodeType": "YulFunctionCall", + "src": "15151:41:46" + }, + "nativeSrc": "15151:41:46", + "nodeType": "YulExpressionStatement", + "src": "15151:41:46" + }, + { + "nativeSrc": "15201:18:46", + "nodeType": "YulAssignment", + "src": "15201:18:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15212:3:46", + "nodeType": "YulIdentifier", + "src": "15212:3:46" + }, + { + "kind": "number", + "nativeSrc": "15217:1:46", + "nodeType": "YulLiteral", + "src": "15217:1:46", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15208:3:46", + "nodeType": "YulIdentifier", + "src": "15208:3:46" + }, + "nativeSrc": "15208:11:46", + "nodeType": "YulFunctionCall", + "src": "15208:11:46" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "15201:3:46", + "nodeType": "YulIdentifier", + "src": "15201:3:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes2__to_t_bytes2__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "15024:201:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "15117:3:46", + "nodeType": "YulTypedName", + "src": "15117:3:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "15122:6:46", + "nodeType": "YulTypedName", + "src": "15122:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "15133:3:46", + "nodeType": "YulTypedName", + "src": "15133:3:46", + "type": "" + } + ], + "src": "15024:201:46" + }, + { + "body": { + "nativeSrc": "15347:94:46", + "nodeType": "YulBlock", + "src": "15347:94:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15364:3:46", + "nodeType": "YulIdentifier", + "src": "15364:3:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15377:3:46", + "nodeType": "YulLiteral", + "src": "15377:3:46", + "type": "", + "value": "240" + }, + { + "name": "value0", + "nativeSrc": "15382:6:46", + "nodeType": "YulIdentifier", + "src": "15382:6:46" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "15373:3:46", + "nodeType": "YulIdentifier", + "src": "15373:3:46" + }, + "nativeSrc": "15373:16:46", + "nodeType": "YulFunctionCall", + "src": "15373:16:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15395:3:46", + "nodeType": "YulLiteral", + "src": "15395:3:46", + "type": "", + "value": "240" + }, + { + "kind": "number", + "nativeSrc": "15400:5:46", + "nodeType": "YulLiteral", + "src": "15400:5:46", + "type": "", + "value": "65535" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "15391:3:46", + "nodeType": "YulIdentifier", + "src": "15391:3:46" + }, + "nativeSrc": "15391:15:46", + "nodeType": "YulFunctionCall", + "src": "15391:15:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "15369:3:46", + "nodeType": "YulIdentifier", + "src": "15369:3:46" + }, + "nativeSrc": "15369:38:46", + "nodeType": "YulFunctionCall", + "src": "15369:38:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15357:6:46", + "nodeType": "YulIdentifier", + "src": "15357:6:46" + }, + "nativeSrc": "15357:51:46", + "nodeType": "YulFunctionCall", + "src": "15357:51:46" + }, + "nativeSrc": "15357:51:46", + "nodeType": "YulExpressionStatement", + "src": "15357:51:46" + }, + { + "nativeSrc": "15417:18:46", + "nodeType": "YulAssignment", + "src": "15417:18:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "15428:3:46", + "nodeType": "YulIdentifier", + "src": "15428:3:46" + }, + { + "kind": "number", + "nativeSrc": "15433:1:46", + "nodeType": "YulLiteral", + "src": "15433:1:46", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15424:3:46", + "nodeType": "YulIdentifier", + "src": "15424:3:46" + }, + "nativeSrc": "15424:11:46", + "nodeType": "YulFunctionCall", + "src": "15424:11:46" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "15417:3:46", + "nodeType": "YulIdentifier", + "src": "15417:3:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_uint16__to_t_uint16__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "15230:211:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "15323:3:46", + "nodeType": "YulTypedName", + "src": "15323:3:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "15328:6:46", + "nodeType": "YulTypedName", + "src": "15328:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "15339:3:46", + "nodeType": "YulTypedName", + "src": "15339:3:46", + "type": "" + } + ], + "src": "15230:211:46" + }, + { + "body": { + "nativeSrc": "15620:182:46", + "nodeType": "YulBlock", + "src": "15620:182:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15637:9:46", + "nodeType": "YulIdentifier", + "src": "15637:9:46" + }, + { + "kind": "number", + "nativeSrc": "15648:2:46", + "nodeType": "YulLiteral", + "src": "15648:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15630:6:46", + "nodeType": "YulIdentifier", + "src": "15630:6:46" + }, + "nativeSrc": "15630:21:46", + "nodeType": "YulFunctionCall", + "src": "15630:21:46" + }, + "nativeSrc": "15630:21:46", + "nodeType": "YulExpressionStatement", + "src": "15630:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15671:9:46", + "nodeType": "YulIdentifier", + "src": "15671:9:46" + }, + { + "kind": "number", + "nativeSrc": "15682:2:46", + "nodeType": "YulLiteral", + "src": "15682:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15667:3:46", + "nodeType": "YulIdentifier", + "src": "15667:3:46" + }, + "nativeSrc": "15667:18:46", + "nodeType": "YulFunctionCall", + "src": "15667:18:46" + }, + { + "kind": "number", + "nativeSrc": "15687:2:46", + "nodeType": "YulLiteral", + "src": "15687:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15660:6:46", + "nodeType": "YulIdentifier", + "src": "15660:6:46" + }, + "nativeSrc": "15660:30:46", + "nodeType": "YulFunctionCall", + "src": "15660:30:46" + }, + "nativeSrc": "15660:30:46", + "nodeType": "YulExpressionStatement", + "src": "15660:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15710:9:46", + "nodeType": "YulIdentifier", + "src": "15710:9:46" + }, + { + "kind": "number", + "nativeSrc": "15721:2:46", + "nodeType": "YulLiteral", + "src": "15721:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15706:3:46", + "nodeType": "YulIdentifier", + "src": "15706:3:46" + }, + "nativeSrc": "15706:18:46", + "nodeType": "YulFunctionCall", + "src": "15706:18:46" + }, + { + "hexValue": "69644279746573207265717569726573203331206c656e677468206172726179", + "kind": "string", + "nativeSrc": "15726:34:46", + "nodeType": "YulLiteral", + "src": "15726:34:46", + "type": "", + "value": "idBytes requires 31 length array" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15699:6:46", + "nodeType": "YulIdentifier", + "src": "15699:6:46" + }, + "nativeSrc": "15699:62:46", + "nodeType": "YulFunctionCall", + "src": "15699:62:46" + }, + "nativeSrc": "15699:62:46", + "nodeType": "YulExpressionStatement", + "src": "15699:62:46" + }, + { + "nativeSrc": "15770:26:46", + "nodeType": "YulAssignment", + "src": "15770:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15782:9:46", + "nodeType": "YulIdentifier", + "src": "15782:9:46" + }, + { + "kind": "number", + "nativeSrc": "15793:2:46", + "nodeType": "YulLiteral", + "src": "15793:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15778:3:46", + "nodeType": "YulIdentifier", + "src": "15778:3:46" + }, + "nativeSrc": "15778:18:46", + "nodeType": "YulFunctionCall", + "src": "15778:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "15770:4:46", + "nodeType": "YulIdentifier", + "src": "15770:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_927599b089841c4ed82223494044191b3442ce5fcdceba2208631608986675d1__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "15446:356:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15597:9:46", + "nodeType": "YulTypedName", + "src": "15597:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "15611:4:46", + "nodeType": "YulTypedName", + "src": "15611:4:46", + "type": "" + } + ], + "src": "15446:356:46" + }, + { + "body": { + "nativeSrc": "15981:223:46", + "nodeType": "YulBlock", + "src": "15981:223:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15998:9:46", + "nodeType": "YulIdentifier", + "src": "15998:9:46" + }, + { + "kind": "number", + "nativeSrc": "16009:2:46", + "nodeType": "YulLiteral", + "src": "16009:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15991:6:46", + "nodeType": "YulIdentifier", + "src": "15991:6:46" + }, + "nativeSrc": "15991:21:46", + "nodeType": "YulFunctionCall", + "src": "15991:21:46" + }, + "nativeSrc": "15991:21:46", + "nodeType": "YulExpressionStatement", + "src": "15991:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16032:9:46", + "nodeType": "YulIdentifier", + "src": "16032:9:46" + }, + { + "kind": "number", + "nativeSrc": "16043:2:46", + "nodeType": "YulLiteral", + "src": "16043:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16028:3:46", + "nodeType": "YulIdentifier", + "src": "16028:3:46" + }, + "nativeSrc": "16028:18:46", + "nodeType": "YulFunctionCall", + "src": "16028:18:46" + }, + { + "kind": "number", + "nativeSrc": "16048:2:46", + "nodeType": "YulLiteral", + "src": "16048:2:46", + "type": "", + "value": "33" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16021:6:46", + "nodeType": "YulIdentifier", + "src": "16021:6:46" + }, + "nativeSrc": "16021:30:46", + "nodeType": "YulFunctionCall", + "src": "16021:30:46" + }, + "nativeSrc": "16021:30:46", + "nodeType": "YulExpressionStatement", + "src": "16021:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16071:9:46", + "nodeType": "YulIdentifier", + "src": "16071:9:46" + }, + { + "kind": "number", + "nativeSrc": "16082:2:46", + "nodeType": "YulLiteral", + "src": "16082:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16067:3:46", + "nodeType": "YulIdentifier", + "src": "16067:3:46" + }, + "nativeSrc": "16067:18:46", + "nodeType": "YulFunctionCall", + "src": "16067:18:46" + }, + { + "hexValue": "436865636b73756d207265717569726573203239206c656e6774682061727261", + "kind": "string", + "nativeSrc": "16087:34:46", + "nodeType": "YulLiteral", + "src": "16087:34:46", + "type": "", + "value": "Checksum requires 29 length arra" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16060:6:46", + "nodeType": "YulIdentifier", + "src": "16060:6:46" + }, + "nativeSrc": "16060:62:46", + "nodeType": "YulFunctionCall", + "src": "16060:62:46" + }, + "nativeSrc": "16060:62:46", + "nodeType": "YulExpressionStatement", + "src": "16060:62:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16142:9:46", + "nodeType": "YulIdentifier", + "src": "16142:9:46" + }, + { + "kind": "number", + "nativeSrc": "16153:2:46", + "nodeType": "YulLiteral", + "src": "16153:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16138:3:46", + "nodeType": "YulIdentifier", + "src": "16138:3:46" + }, + "nativeSrc": "16138:18:46", + "nodeType": "YulFunctionCall", + "src": "16138:18:46" + }, + { + "hexValue": "79", + "kind": "string", + "nativeSrc": "16158:3:46", + "nodeType": "YulLiteral", + "src": "16158:3:46", + "type": "", + "value": "y" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16131:6:46", + "nodeType": "YulIdentifier", + "src": "16131:6:46" + }, + "nativeSrc": "16131:31:46", + "nodeType": "YulFunctionCall", + "src": "16131:31:46" + }, + "nativeSrc": "16131:31:46", + "nodeType": "YulExpressionStatement", + "src": "16131:31:46" + }, + { + "nativeSrc": "16171:27:46", + "nodeType": "YulAssignment", + "src": "16171:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16183:9:46", + "nodeType": "YulIdentifier", + "src": "16183:9:46" + }, + { + "kind": "number", + "nativeSrc": "16194:3:46", + "nodeType": "YulLiteral", + "src": "16194:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16179:3:46", + "nodeType": "YulIdentifier", + "src": "16179:3:46" + }, + "nativeSrc": "16179:19:46", + "nodeType": "YulFunctionCall", + "src": "16179:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "16171:4:46", + "nodeType": "YulIdentifier", + "src": "16171:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_8913fb6098b083fbd4c1742211a970a034991471b53e0cd894357bdfba5ebae5__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "15807:397:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15958:9:46", + "nodeType": "YulTypedName", + "src": "15958:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "15972:4:46", + "nodeType": "YulTypedName", + "src": "15972:4:46", + "type": "" + } + ], + "src": "15807:397:46" + }, + { + "body": { + "nativeSrc": "16256:108:46", + "nodeType": "YulBlock", + "src": "16256:108:46", + "statements": [ + { + "nativeSrc": "16266:42:46", + "nodeType": "YulAssignment", + "src": "16266:42:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nativeSrc": "16281:1:46", + "nodeType": "YulIdentifier", + "src": "16281:1:46" + }, + { + "kind": "number", + "nativeSrc": "16284:6:46", + "nodeType": "YulLiteral", + "src": "16284:6:46", + "type": "", + "value": "0xffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16277:3:46", + "nodeType": "YulIdentifier", + "src": "16277:3:46" + }, + "nativeSrc": "16277:14:46", + "nodeType": "YulFunctionCall", + "src": "16277:14:46" + }, + { + "arguments": [ + { + "name": "y", + "nativeSrc": "16297:1:46", + "nodeType": "YulIdentifier", + "src": "16297:1:46" + }, + { + "kind": "number", + "nativeSrc": "16300:6:46", + "nodeType": "YulLiteral", + "src": "16300:6:46", + "type": "", + "value": "0xffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16293:3:46", + "nodeType": "YulIdentifier", + "src": "16293:3:46" + }, + "nativeSrc": "16293:14:46", + "nodeType": "YulFunctionCall", + "src": "16293:14:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16273:3:46", + "nodeType": "YulIdentifier", + "src": "16273:3:46" + }, + "nativeSrc": "16273:35:46", + "nodeType": "YulFunctionCall", + "src": "16273:35:46" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "16266:3:46", + "nodeType": "YulIdentifier", + "src": "16266:3:46" + } + ] + }, + { + "body": { + "nativeSrc": "16336:22:46", + "nodeType": "YulBlock", + "src": "16336:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "16338:16:46", + "nodeType": "YulIdentifier", + "src": "16338:16:46" + }, + "nativeSrc": "16338:18:46", + "nodeType": "YulFunctionCall", + "src": "16338:18:46" + }, + "nativeSrc": "16338:18:46", + "nodeType": "YulExpressionStatement", + "src": "16338:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "sum", + "nativeSrc": "16323:3:46", + "nodeType": "YulIdentifier", + "src": "16323:3:46" + }, + { + "kind": "number", + "nativeSrc": "16328:6:46", + "nodeType": "YulLiteral", + "src": "16328:6:46", + "type": "", + "value": "0xffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "16320:2:46", + "nodeType": "YulIdentifier", + "src": "16320:2:46" + }, + "nativeSrc": "16320:15:46", + "nodeType": "YulFunctionCall", + "src": "16320:15:46" + }, + "nativeSrc": "16317:41:46", + "nodeType": "YulIf", + "src": "16317:41:46" + } + ] + }, + "name": "checked_add_t_uint16", + "nativeSrc": "16209:155:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "16239:1:46", + "nodeType": "YulTypedName", + "src": "16239:1:46", + "type": "" + }, + { + "name": "y", + "nativeSrc": "16242:1:46", + "nodeType": "YulTypedName", + "src": "16242:1:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "16248:3:46", + "nodeType": "YulTypedName", + "src": "16248:3:46", + "type": "" + } + ], + "src": "16209:155:46" + }, + { + "body": { + "nativeSrc": "16463:203:46", + "nodeType": "YulBlock", + "src": "16463:203:46", + "statements": [ + { + "nativeSrc": "16473:26:46", + "nodeType": "YulVariableDeclaration", + "src": "16473:26:46", + "value": { + "arguments": [ + { + "name": "array", + "nativeSrc": "16493:5:46", + "nodeType": "YulIdentifier", + "src": "16493:5:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "16487:5:46", + "nodeType": "YulIdentifier", + "src": "16487:5:46" + }, + "nativeSrc": "16487:12:46", + "nodeType": "YulFunctionCall", + "src": "16487:12:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "16477:6:46", + "nodeType": "YulTypedName", + "src": "16477:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "16508:32:46", + "nodeType": "YulAssignment", + "src": "16508:32:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "array", + "nativeSrc": "16527:5:46", + "nodeType": "YulIdentifier", + "src": "16527:5:46" + }, + { + "kind": "number", + "nativeSrc": "16534:4:46", + "nodeType": "YulLiteral", + "src": "16534:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16523:3:46", + "nodeType": "YulIdentifier", + "src": "16523:3:46" + }, + "nativeSrc": "16523:16:46", + "nodeType": "YulFunctionCall", + "src": "16523:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "16517:5:46", + "nodeType": "YulIdentifier", + "src": "16517:5:46" + }, + "nativeSrc": "16517:23:46", + "nodeType": "YulFunctionCall", + "src": "16517:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "16508:5:46", + "nodeType": "YulIdentifier", + "src": "16508:5:46" + } + ] + }, + { + "body": { + "nativeSrc": "16577:83:46", + "nodeType": "YulBlock", + "src": "16577:83:46", + "statements": [ + { + "nativeSrc": "16591:59:46", + "nodeType": "YulAssignment", + "src": "16591:59:46", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "16604:5:46", + "nodeType": "YulIdentifier", + "src": "16604:5:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16619:1:46", + "nodeType": "YulLiteral", + "src": "16619:1:46", + "type": "", + "value": "3" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16626:4:46", + "nodeType": "YulLiteral", + "src": "16626:4:46", + "type": "", + "value": "0x20" + }, + { + "name": "length", + "nativeSrc": "16632:6:46", + "nodeType": "YulIdentifier", + "src": "16632:6:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16622:3:46", + "nodeType": "YulIdentifier", + "src": "16622:3:46" + }, + "nativeSrc": "16622:17:46", + "nodeType": "YulFunctionCall", + "src": "16622:17:46" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "16615:3:46", + "nodeType": "YulIdentifier", + "src": "16615:3:46" + }, + "nativeSrc": "16615:25:46", + "nodeType": "YulFunctionCall", + "src": "16615:25:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16646:1:46", + "nodeType": "YulLiteral", + "src": "16646:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "16642:3:46", + "nodeType": "YulIdentifier", + "src": "16642:3:46" + }, + "nativeSrc": "16642:6:46", + "nodeType": "YulFunctionCall", + "src": "16642:6:46" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "16611:3:46", + "nodeType": "YulIdentifier", + "src": "16611:3:46" + }, + "nativeSrc": "16611:38:46", + "nodeType": "YulFunctionCall", + "src": "16611:38:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16600:3:46", + "nodeType": "YulIdentifier", + "src": "16600:3:46" + }, + "nativeSrc": "16600:50:46", + "nodeType": "YulFunctionCall", + "src": "16600:50:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "16591:5:46", + "nodeType": "YulIdentifier", + "src": "16591:5:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "16555:6:46", + "nodeType": "YulIdentifier", + "src": "16555:6:46" + }, + { + "kind": "number", + "nativeSrc": "16563:4:46", + "nodeType": "YulLiteral", + "src": "16563:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "16552:2:46", + "nodeType": "YulIdentifier", + "src": "16552:2:46" + }, + "nativeSrc": "16552:16:46", + "nodeType": "YulFunctionCall", + "src": "16552:16:46" + }, + "nativeSrc": "16549:111:46", + "nodeType": "YulIf", + "src": "16549:111:46" + } + ] + }, + "name": "convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32", + "nativeSrc": "16369:297:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "16443:5:46", + "nodeType": "YulTypedName", + "src": "16443:5:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "16453:5:46", + "nodeType": "YulTypedName", + "src": "16453:5:46", + "type": "" + } + ], + "src": "16369:297:46" + }, + { + "body": { + "nativeSrc": "16719:77:46", + "nodeType": "YulBlock", + "src": "16719:77:46", + "statements": [ + { + "nativeSrc": "16729:16:46", + "nodeType": "YulAssignment", + "src": "16729:16:46", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "16740:1:46", + "nodeType": "YulIdentifier", + "src": "16740:1:46" + }, + { + "name": "y", + "nativeSrc": "16743:1:46", + "nodeType": "YulIdentifier", + "src": "16743:1:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16736:3:46", + "nodeType": "YulIdentifier", + "src": "16736:3:46" + }, + "nativeSrc": "16736:9:46", + "nodeType": "YulFunctionCall", + "src": "16736:9:46" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "16729:3:46", + "nodeType": "YulIdentifier", + "src": "16729:3:46" + } + ] + }, + { + "body": { + "nativeSrc": "16768:22:46", + "nodeType": "YulBlock", + "src": "16768:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "16770:16:46", + "nodeType": "YulIdentifier", + "src": "16770:16:46" + }, + "nativeSrc": "16770:18:46", + "nodeType": "YulFunctionCall", + "src": "16770:18:46" + }, + "nativeSrc": "16770:18:46", + "nodeType": "YulExpressionStatement", + "src": "16770:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "16760:1:46", + "nodeType": "YulIdentifier", + "src": "16760:1:46" + }, + { + "name": "sum", + "nativeSrc": "16763:3:46", + "nodeType": "YulIdentifier", + "src": "16763:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "16757:2:46", + "nodeType": "YulIdentifier", + "src": "16757:2:46" + }, + "nativeSrc": "16757:10:46", + "nodeType": "YulFunctionCall", + "src": "16757:10:46" + }, + "nativeSrc": "16754:36:46", + "nodeType": "YulIf", + "src": "16754:36:46" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "16671:125:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "16702:1:46", + "nodeType": "YulTypedName", + "src": "16702:1:46", + "type": "" + }, + { + "name": "y", + "nativeSrc": "16705:1:46", + "nodeType": "YulTypedName", + "src": "16705:1:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "16711:3:46", + "nodeType": "YulTypedName", + "src": "16711:3:46", + "type": "" + } + ], + "src": "16671:125:46" + }, + { + "body": { + "nativeSrc": "16975:164:46", + "nodeType": "YulBlock", + "src": "16975:164:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16992:9:46", + "nodeType": "YulIdentifier", + "src": "16992:9:46" + }, + { + "kind": "number", + "nativeSrc": "17003:2:46", + "nodeType": "YulLiteral", + "src": "17003:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16985:6:46", + "nodeType": "YulIdentifier", + "src": "16985:6:46" + }, + "nativeSrc": "16985:21:46", + "nodeType": "YulFunctionCall", + "src": "16985:21:46" + }, + "nativeSrc": "16985:21:46", + "nodeType": "YulExpressionStatement", + "src": "16985:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17026:9:46", + "nodeType": "YulIdentifier", + "src": "17026:9:46" + }, + { + "kind": "number", + "nativeSrc": "17037:2:46", + "nodeType": "YulLiteral", + "src": "17037:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17022:3:46", + "nodeType": "YulIdentifier", + "src": "17022:3:46" + }, + "nativeSrc": "17022:18:46", + "nodeType": "YulFunctionCall", + "src": "17022:18:46" + }, + { + "kind": "number", + "nativeSrc": "17042:2:46", + "nodeType": "YulLiteral", + "src": "17042:2:46", + "type": "", + "value": "14" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17015:6:46", + "nodeType": "YulIdentifier", + "src": "17015:6:46" + }, + "nativeSrc": "17015:30:46", + "nodeType": "YulFunctionCall", + "src": "17015:30:46" + }, + "nativeSrc": "17015:30:46", + "nodeType": "YulExpressionStatement", + "src": "17015:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17065:9:46", + "nodeType": "YulIdentifier", + "src": "17065:9:46" + }, + { + "kind": "number", + "nativeSrc": "17076:2:46", + "nodeType": "YulLiteral", + "src": "17076:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17061:3:46", + "nodeType": "YulIdentifier", + "src": "17061:3:46" + }, + "nativeSrc": "17061:18:46", + "nodeType": "YulFunctionCall", + "src": "17061:18:46" + }, + { + "hexValue": "736c6963655f6f766572666c6f77", + "kind": "string", + "nativeSrc": "17081:16:46", + "nodeType": "YulLiteral", + "src": "17081:16:46", + "type": "", + "value": "slice_overflow" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17054:6:46", + "nodeType": "YulIdentifier", + "src": "17054:6:46" + }, + "nativeSrc": "17054:44:46", + "nodeType": "YulFunctionCall", + "src": "17054:44:46" + }, + "nativeSrc": "17054:44:46", + "nodeType": "YulExpressionStatement", + "src": "17054:44:46" + }, + { + "nativeSrc": "17107:26:46", + "nodeType": "YulAssignment", + "src": "17107:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17119:9:46", + "nodeType": "YulIdentifier", + "src": "17119:9:46" + }, + { + "kind": "number", + "nativeSrc": "17130:2:46", + "nodeType": "YulLiteral", + "src": "17130:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17115:3:46", + "nodeType": "YulIdentifier", + "src": "17115:3:46" + }, + "nativeSrc": "17115:18:46", + "nodeType": "YulFunctionCall", + "src": "17115:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "17107:4:46", + "nodeType": "YulIdentifier", + "src": "17107:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "16801:338:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "16952:9:46", + "nodeType": "YulTypedName", + "src": "16952:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "16966:4:46", + "nodeType": "YulTypedName", + "src": "16966:4:46", + "type": "" + } + ], + "src": "16801:338:46" + }, + { + "body": { + "nativeSrc": "17318:167:46", + "nodeType": "YulBlock", + "src": "17318:167:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17335:9:46", + "nodeType": "YulIdentifier", + "src": "17335:9:46" + }, + { + "kind": "number", + "nativeSrc": "17346:2:46", + "nodeType": "YulLiteral", + "src": "17346:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17328:6:46", + "nodeType": "YulIdentifier", + "src": "17328:6:46" + }, + "nativeSrc": "17328:21:46", + "nodeType": "YulFunctionCall", + "src": "17328:21:46" + }, + "nativeSrc": "17328:21:46", + "nodeType": "YulExpressionStatement", + "src": "17328:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17369:9:46", + "nodeType": "YulIdentifier", + "src": "17369:9:46" + }, + { + "kind": "number", + "nativeSrc": "17380:2:46", + "nodeType": "YulLiteral", + "src": "17380:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17365:3:46", + "nodeType": "YulIdentifier", + "src": "17365:3:46" + }, + "nativeSrc": "17365:18:46", + "nodeType": "YulFunctionCall", + "src": "17365:18:46" + }, + { + "kind": "number", + "nativeSrc": "17385:2:46", + "nodeType": "YulLiteral", + "src": "17385:2:46", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17358:6:46", + "nodeType": "YulIdentifier", + "src": "17358:6:46" + }, + "nativeSrc": "17358:30:46", + "nodeType": "YulFunctionCall", + "src": "17358:30:46" + }, + "nativeSrc": "17358:30:46", + "nodeType": "YulExpressionStatement", + "src": "17358:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17408:9:46", + "nodeType": "YulIdentifier", + "src": "17408:9:46" + }, + { + "kind": "number", + "nativeSrc": "17419:2:46", + "nodeType": "YulLiteral", + "src": "17419:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17404:3:46", + "nodeType": "YulIdentifier", + "src": "17404:3:46" + }, + "nativeSrc": "17404:18:46", + "nodeType": "YulFunctionCall", + "src": "17404:18:46" + }, + { + "hexValue": "736c6963655f6f75744f66426f756e6473", + "kind": "string", + "nativeSrc": "17424:19:46", + "nodeType": "YulLiteral", + "src": "17424:19:46", + "type": "", + "value": "slice_outOfBounds" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17397:6:46", + "nodeType": "YulIdentifier", + "src": "17397:6:46" + }, + "nativeSrc": "17397:47:46", + "nodeType": "YulFunctionCall", + "src": "17397:47:46" + }, + "nativeSrc": "17397:47:46", + "nodeType": "YulExpressionStatement", + "src": "17397:47:46" + }, + { + "nativeSrc": "17453:26:46", + "nodeType": "YulAssignment", + "src": "17453:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17465:9:46", + "nodeType": "YulIdentifier", + "src": "17465:9:46" + }, + { + "kind": "number", + "nativeSrc": "17476:2:46", + "nodeType": "YulLiteral", + "src": "17476:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17461:3:46", + "nodeType": "YulIdentifier", + "src": "17461:3:46" + }, + "nativeSrc": "17461:18:46", + "nodeType": "YulFunctionCall", + "src": "17461:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "17453:4:46", + "nodeType": "YulIdentifier", + "src": "17453:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "17144:341:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "17295:9:46", + "nodeType": "YulTypedName", + "src": "17295:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "17309:4:46", + "nodeType": "YulTypedName", + "src": "17309:4:46", + "type": "" + } + ], + "src": "17144:341:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n }\n function abi_encode_bool(value, pos)\n {\n mstore(pos, iszero(iszero(value)))\n }\n function abi_encode_struct_Proof(value, pos) -> end\n {\n let tail := add(pos, 0x0100)\n mstore(pos, mload(value))\n mstore(add(pos, 0x20), iszero(iszero(mload(add(value, 0x20)))))\n let memberValue0 := mload(add(value, 0x40))\n mstore(add(pos, 0x40), 0x0100)\n let pos_1 := tail\n let length := mload(memberValue0)\n mstore(tail, length)\n pos_1 := add(pos, 288)\n let srcPtr := add(memberValue0, 0x20)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos_1, mload(srcPtr))\n pos_1 := add(pos_1, 0x20)\n srcPtr := add(srcPtr, 0x20)\n }\n mstore(add(pos, 0x60), mload(add(value, 0x60)))\n mstore(add(pos, 0x80), mload(add(value, 0x80)))\n let memberValue0_1 := mload(add(value, 0xa0))\n abi_encode_bool(memberValue0_1, add(pos, 0xa0))\n mstore(add(pos, 0xc0), mload(add(value, 0xc0)))\n mstore(add(pos, 0xe0), mload(add(value, 0xe0)))\n end := pos_1\n }\n function abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_struct_Proof(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n let value_2 := 0\n value_2 := calldataload(add(headStart, 64))\n value2 := value_2\n }\n function abi_encode_tuple_t_struct$_Roots_$1390_memory_ptr__to_t_struct$_Roots_$1390_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, mload(value0))\n mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n }\n function abi_decode_uint64(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint64t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n value1 := abi_decode_uint64(add(headStart, 32))\n let value_1 := 0\n value_1 := calldataload(add(headStart, 64))\n value2 := value_1\n }\n function abi_decode_tuple_t_struct$_Data_$1371_storage_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_addresst_addresst_uint256t_bytes2(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n value1 := abi_decode_address(add(headStart, 32))\n value2 := abi_decode_address(add(headStart, 64))\n let value_1 := 0\n value_1 := calldataload(add(headStart, 96))\n value3 := value_1\n let value_2 := calldataload(add(headStart, 128))\n if iszero(eq(value_2, and(value_2, shl(240, 65535)))) { revert(0, 0) }\n value4 := value_2\n }\n function abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_uint64(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n value1 := abi_decode_uint64(add(headStart, 32))\n }\n function abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__fromStack_library_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 160)\n tail := abi_encode_struct_Proof(value0, add(headStart, 160))\n mstore(add(headStart, 32), mload(value1))\n mstore(add(headStart, 64), mload(add(value1, 32)))\n mstore(add(headStart, 96), mload(add(value1, 64)))\n mstore(add(headStart, 128), mload(add(value1, 96)))\n }\n function abi_decode_tuple_t_struct$_Data_$1371_storage_ptrt_array$_t_uint256_$8_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 288) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n if gt(add(headStart, 288), dataEnd) { revert(0, 0) }\n value1 := add(headStart, 32)\n }\n function abi_encode_tuple_t_struct$_Data_$2960_storage_ptr_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_library_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\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_2312() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 0x0100)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function abi_decode_bool_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_array_uint256_dyn_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := mload(offset)\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n let _1 := shl(5, length)\n let dst := allocate_memory(add(_1, 0x20))\n let array_1 := dst\n mstore(dst, length)\n dst := add(dst, 0x20)\n let srcEnd := add(add(offset, _1), 0x20)\n if gt(srcEnd, end) { revert(0, 0) }\n let src := add(offset, 0x20)\n for { } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n let value := 0\n value := mload(src)\n mstore(dst, value)\n dst := add(dst, 0x20)\n }\n array := array_1\n }\n function abi_decode_tuple_t_struct$_Proof_$2979_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if slt(sub(dataEnd, _1), 0x0100) { revert(0, 0) }\n let value := allocate_memory_2312()\n let value_1 := 0\n value_1 := mload(_1)\n mstore(value, value_1)\n mstore(add(value, 32), abi_decode_bool_fromMemory(add(_1, 32)))\n let offset_1 := mload(add(_1, 64))\n if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n mstore(add(value, 64), abi_decode_array_uint256_dyn_fromMemory(add(_1, offset_1), dataEnd))\n let value_2 := 0\n value_2 := mload(add(_1, 96))\n mstore(add(value, 96), value_2)\n let value_3 := 0\n value_3 := mload(add(_1, 128))\n mstore(add(value, 128), value_3)\n mstore(add(value, 160), abi_decode_bool_fromMemory(add(_1, 160)))\n let value_4 := 0\n value_4 := mload(add(_1, 192))\n mstore(add(value, 192), value_4)\n let value_5 := 0\n value_5 := mload(add(_1, 224))\n mstore(add(value, 224), value_5)\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_d7041224dbf1aef588efd8de52dba4ae3abf3cc31c9ba0eb5e93b35ed6048ad5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"Roots for this state doesn't exi\")\n mstore(add(headStart, 96), \"st\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_struct$_Data_$2960_storage_ptr__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := 0\n value := mload(headStart)\n value0 := value\n }\n function abi_encode_tuple_t_array$_t_uint256_$3_memory_ptr__to_t_array$_t_uint256_$3_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 96)\n let pos := headStart\n pos := headStart\n let srcPtr := value0\n let i := 0\n for { } lt(i, 0x03) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, 0x20)\n srcPtr := add(srcPtr, 0x20)\n }\n }\n function abi_encode_tuple_t_stringliteral_bfe527d2ff3b58e820f9d3002817587119240858f81529ff0e2d6f59b5b5a3a4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"Identity trees haven't changed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_struct$_Data_$2960_storage_ptr_t_uint256_t_rational_0_by_1__to_t_uint256_t_uint256_t_uint256__fromStack_library_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_bool_t_rational_1_by_1_t_bytes_memory_ptr__to_t_uint256_t_uint256_t_uint256_t_bool_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), iszero(iszero(value3)))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), 192)\n let length := mload(value5)\n mstore(add(headStart, 192), length)\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(add(headStart, i), 224), mload(add(add(value5, i), 32)))\n }\n mstore(add(add(headStart, length), 224), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 224)\n }\n function abi_encode_tuple_t_stringliteral_3373a85b98f1718c998a10926a0cc482f57a490b87fbf0ea79c758ce195432db__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 43)\n mstore(add(headStart, 64), \"SMT depth is greater than max al\")\n mstore(add(headStart, 96), \"lowed depth\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_bytes2__to_t_bytes2__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, shl(240, 65535)))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_bool_fromMemory(headStart)\n }\n function abi_encode_tuple_t_stringliteral_3050ac86504f6f4eb496200c8717848bbc64735985474666b0e5a7bb9a483662__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"id type is not supported\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_struct$_Data_$2960_storage_ptr_t_uint256__to_t_uint256_t_uint256__fromStack_library_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\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 checked_add_t_uint8(x, y) -> sum\n {\n sum := add(and(x, 0xff), and(y, 0xff))\n if gt(sum, 0xff) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_array$_t_uint256_$4_memory_ptr__to_t_array$_t_uint256_$4_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 128)\n let pos := headStart\n pos := headStart\n let srcPtr := value0\n let i := 0\n for { } lt(i, 0x04) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, 0x20)\n srcPtr := add(srcPtr, 0x20)\n }\n }\n function abi_encode_tuple_t_stringliteral_6824f57e98af605fc3b03feb3b76bdf32650aedf61a3aa7698b69a981ebba9a7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"Roots for this state already exi\")\n mstore(add(headStart, 96), \"st\")\n tail := add(headStart, 128)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function abi_encode_tuple_packed_t_bytes2__to_t_bytes2__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, and(value0, shl(240, 65535)))\n end := add(pos, 2)\n }\n function abi_encode_tuple_packed_t_uint16__to_t_uint16__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, and(shl(240, value0), shl(240, 65535)))\n end := add(pos, 2)\n }\n function abi_encode_tuple_t_stringliteral_927599b089841c4ed82223494044191b3442ce5fcdceba2208631608986675d1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 32)\n mstore(add(headStart, 64), \"idBytes requires 31 length array\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_8913fb6098b083fbd4c1742211a970a034991471b53e0cd894357bdfba5ebae5__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 33)\n mstore(add(headStart, 64), \"Checksum requires 29 length arra\")\n mstore(add(headStart, 96), \"y\")\n tail := add(headStart, 128)\n }\n function checked_add_t_uint16(x, y) -> sum\n {\n sum := add(and(x, 0xffff), and(y, 0xffff))\n if gt(sum, 0xffff) { panic_error_0x11() }\n }\n function convert_bytes_to_fixedbytes_from_t_bytes_memory_ptr_to_t_bytes32(array) -> value\n {\n let length := mload(array)\n value := mload(add(array, 0x20))\n if lt(length, 0x20)\n {\n value := and(value, shl(shl(3, sub(0x20, length)), not(0)))\n }\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_5d3d629f76473d94377d221b1f1c8f2161f7b65cab69e095662ec5d0e026c17e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"slice_overflow\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_cca2258dcc0d08c244435525255fbef9116c9a31b4c29471218f002bbbceb7a0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 17)\n mstore(add(headStart, 64), \"slice_outOfBounds\")\n tail := add(headStart, 96)\n }\n}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": { + "@iden3/contracts/lib/Poseidon.sol": { + "PoseidonUnit3L": [ + { + "length": 20, + "start": 1579 + } + ], + "PoseidonUnit4L": [ + { + "length": 20, + "start": 4955 + }, + { + "length": 20, + "start": 5066 + } + ] + }, + "@iden3/contracts/lib/SmtLib.sol": { + "SmtLib": [ + { + "length": 20, + "start": 886 + }, + { + "length": 20, + "start": 1032 + }, + { + "length": 20, + "start": 1435 + }, + { + "length": 20, + "start": 1608 + }, + { + "length": 20, + "start": 1733 + }, + { + "length": 20, + "start": 1859 + }, + { + "length": 20, + "start": 2076 + }, + { + "length": 20, + "start": 2142 + }, + { + "length": 20, + "start": 2266 + }, + { + "length": 20, + "start": 2390 + }, + { + "length": 20, + "start": 2650 + }, + { + "length": 20, + "start": 2787 + }, + { + "length": 20, + "start": 3500 + }, + { + "length": 20, + "start": 3606 + }, + { + "length": 20, + "start": 3714 + }, + { + "length": 20, + "start": 3839 + }, + { + "length": 20, + "start": 3900 + }, + { + "length": 20, + "start": 3995 + }, + { + "length": 20, + "start": 4076 + }, + { + "length": 20, + "start": 4209 + }, + { + "length": 20, + "start": 4338 + }, + { + "length": 20, + "start": 4540 + }, + { + "length": 20, + "start": 4620 + }, + { + "length": 20, + "start": 4749 + }, + { + "length": 20, + "start": 5225 + }, + { + "length": 20, + "start": 5414 + } + ] + } + }, + "object": "73000000000000000000000000000000000000000030146080604052600436106101355760003560e01c8063765c2c61116100b7578063d55da6a31161007b578063d55da6a3146102d6578063d5818b8e146102e9578063d5a3b14e146102fc578063e1f0eaa91461030f578063f8b802681461032f57600080fd5b8063765c2c611461025c5780637d0aba4f1461026f5780638ad7195d1461028257806397ac5391146102a2578063a3018d79146102b557600080fd5b80631e75e7f3116100fe5780631e75e7f3146101ee5780632c72e822146102015780632eb747d21461020957806359a60691146102295780636e2fe66c1461024957600080fd5b8062cf08901461013a57806306fb1575146101635780630b1a9cd31461018557806316579a36146101ba5780631a3046d7146101cd575b600080fd5b61014d610148366004611b8b565b610342565b60405161015a9190611c4f565b60405180910390f35b81801561016f57600080fd5b5061018361017e366004611c62565b6103e2565b005b610198610193366004611b8b565b61045a565b604080518251815260208084015190820152918101519082015260600161015a565b61014d6101c8366004611cab565b610564565b6101e06101db366004611ce1565b610606565b60405190815260200161015a565b6101e06101fc366004611ce1565b610801565b6101e0602881565b81801561021557600080fd5b50610183610224366004611ce1565b61083e565b81801561023557600080fd5b50610183610244366004611d11565b610c39565b6101e0610257366004611ce1565b610ee4565b6101e061026a366004611ce1565b610f21565b61014d61027d366004611d79565b610f5e565b81801561028e57600080fd5b5061018361029d366004611d79565b610fbd565b61014d6102b0366004611b8b565b61103d565b6102c86102c3366004611b8b565b611093565b60405161015a929190611da5565b61014d6102e4366004611c62565b61118e565b61014d6102f7366004611c62565b6111de565b6102c861030a366004611b8b565b61122e565b81801561031b57600080fd5b5061018361032a366004611de6565b6112af565b6102c861033d366004611d79565b6114be565b61034a611b24565b609a830154604051633ce0bd4b60e11b815260048086019082015260248101849052604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a96906064015b600060405180830381865af41580156103b1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103d99190810190611f1f565b90505b92915050565b60405163c1d29f0160e01b8152600484810190820152602481018390526044810182905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9063c1d29f019060640160006040518083038186803b15801561043d57600080fd5b505af4158015610451573d6000803e3d6000fd5b50505050505050565b61047e60405180606001604052806000815260200160008152602001600081525090565b60008281526003840160205260409020541515806104ae5750600082815260038401602052604090206001015415155b806104cb5750600082815260038401602052604090206002015415155b6105275760405162461bcd60e51b815260206004820152602260248201527f526f6f747320666f72207468697320737461746520646f65736e2774206578696044820152611cdd60f21b60648201526084015b60405180910390fd5b5060009081526003919091016020908152604091829020825160608101845281548152600182015492810192909252600201549181019190915290565b61056c611b24565b604051633ce0bd4b60e11b815260368501600482015267ffffffffffffffff841660248201526044810183905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a96906064015b600060405180830381865af41580156105d6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526105fe9190810190611f1f565b949350505050565b6040805160608101918290526379f9712560e01b90915260048201606482015260009073__$03320550cd1b629da90608251571b2532e$__906325cc70e8908073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__6379f9712560848301602060405180830381865af4158015610681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106a59190611fe7565b81526040516379f9712560e01b815260368701600482015260209091019073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af41580156106ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107239190611fe7565b81526040516379f9712560e01b815260688701600482015260209091019073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af415801561077d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107a19190611fe7565b8152506040518263ffffffff1660e01b81526004016107c09190612000565b602060405180830381865af41580156107dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103dc9190611fe7565b6040516379f9712560e01b815260688201600482015260009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f97125906024016107c0565b60018101546040516379f9712560e01b815260048084019082015260009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af4158015610898573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bc9190611fe7565b6040516379f9712560e01b815260368501600482015290915060009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af4158015610914573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109389190611fe7565b6040516379f9712560e01b815260688601600482015290915060009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af4158015610990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109b49190611fe7565b609a860154909150831415806109ce5750609b8501548214155b806109dd5750609c8501548114155b610a295760405162461bcd60e51b815260206004820152601e60248201527f4964656e7469747920747265657320686176656e2774206368616e6765640000604482015260640161051e565b609a8501548314610aa85760405163c1d29f0160e01b8152606886016004820152602481018490526000604482015273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9063c1d29f019060640160006040518083038186803b158015610a8f57600080fd5b505af4158015610aa3573d6000803e3d6000fd5b505050505b6000610ab386610606565b60018701819055609a8701859055609b87018490556040516379f9712560e01b815260688801600482015290915073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f9712590602401602060405180830381865af4158015610b1d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b419190611fe7565b609c870181905560028701805460ff198116909155600188015460408051606081018252609a8b01548152609b8b015460208201529081019390935260ff90911691610b8e918991611548565b600287015487546101009091046001600160a01b031690637d0dcba590888585600160006040519080825280601f01601f191660200182016040528015610bdc576020820181803683370190505b506040518763ffffffff1660e01b8152600401610bfe96959493929190612031565b600060405180830381600087803b158015610c1857600080fd5b505af1158015610c2c573d6000803e3d6000fd5b5050505050505050505050565b6028821115610c9e5760405162461bcd60e51b815260206004820152602b60248201527f534d542064657074682069732067726561746572207468616e206d617820616c60448201526a0d8deeecac840c8cae0e8d60ab1b606482015260840161051e565b600285018054610100600160a81b0319166101006001600160a01b038781168202929092179283905560405163932e87a160e01b81526001600160f01b0319851660048201529204169063932e87a190602401602060405180830381865afa158015610d0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3291906120a4565b610d7e5760405162461bcd60e51b815260206004820152601860248201527f69642074797065206973206e6f7420737570706f727465640000000000000000604482015260640161051e565b60028501805460ff19166001179055604051639e43b81360e01b81526004808701908201526024810183905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__90639e43b8139060440160006040518083038186803b158015610de157600080fd5b505af4158015610df5573d6000803e3d6000fd5b5050604051639e43b81360e01b81526036880160048201526024810185905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9250639e43b813915060440160006040518083038186803b158015610e4d57600080fd5b505af4158015610e61573d6000803e3d6000fd5b5050604051639e43b81360e01b81526068880160048201526024810185905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9250639e43b813915060440160006040518083038186803b158015610eb957600080fd5b505af4158015610ecd573d6000803e3d6000fd5b50505050610edb8184611618565b90945550505050565b6040516379f9712560e01b815260048281019082015260009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f97125906024016107c0565b6040516379f9712560e01b815260368201600482015260009073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379f97125906024016107c0565b610f66611b24565b609b830154604051633ce0bd4b60e11b815260368501600482015267ffffffffffffffff84166024820152604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a9690606401610394565b60405163c1d29f0160e01b815260368301600482015267ffffffffffffffff821660248201526000604482015273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9063c1d29f019060640160006040518083038186803b15801561102157600080fd5b505af4158015611035573d6000803e3d6000fd5b505050505050565b611045611b24565b609c830154604051633ce0bd4b60e11b815260688501600482015260248101849052604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a9690606401610394565b61109b611b24565b6110c66040518060800160405280600081526020016000815260200160008152602001600081525090565b609c840154604051633ce0bd4b60e11b815260688601600482015260248101859052604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a96906064015b600060405180830381865af415801561112d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111559190810190611f1f565b6040805160808101825260018701548152609a8701546020820152609b87015491810191909152609c9095015460608601529492505050565b611196611b24565b604051633ce0bd4b60e11b8152606885016004820152602481018490526044810183905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a96906064016105b9565b6111e6611b24565b604051633ce0bd4b60e11b8152600485810190820152602481018490526044810183905273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a96906064016105b9565b611236611b24565b6112616040518060800160405280600081526020016000815260200160008152602001600081525090565b609a840154604051633ce0bd4b60e11b815260048087019082015260248101859052604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a9690606401611110565b6112b7611b6d565b6112bf611b6d565b60005b60048160ff16101561134857838160ff16600881106112e3576112e36120bf565b6020020135838260ff16600481106112fd576112fd6120bf565b60200201528361130e8260046120eb565b60ff1660088110611321576113216120bf565b6020020135828260ff166004811061133b5761133b6120bf565b60200201526001016112c2565b5060405163248f667760e01b815260009073__$2650005024f117ed9b6c57ec1bf6374b69$__9063248f667790611383908690600401612104565b602060405180830381865af41580156113a0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c49190611fe7565b9050600073__$2650005024f117ed9b6c57ec1bf6374b69$__63248f6677846040518263ffffffff1660e01b81526004016113ff9190612104565b602060405180830381865af415801561141c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114409190611fe7565b60405163c1d29f0160e01b8152600488810190820152602481018490526044810182905290915073__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__9063c1d29f019060640160006040518083038186803b15801561149e57600080fd5b505af41580156114b2573d6000803e3d6000fd5b50505050505050505050565b6114c6611b24565b6114f16040518060800160405280600081526020016000815260200160008152602001600081525090565b609b840154604051633ce0bd4b60e11b815260368601600482015267ffffffffffffffff85166024820152604481019190915273__$dc6c4dd02ac6da041aea5ed0aea43c2a22$__906379c17a9690606401611110565b600082815260038401602052604090205415801561157757506000828152600384016020526040902060010154155b801561159457506000828152600384016020526040902060020154155b6115eb5760405162461bcd60e51b815260206004820152602260248201527f526f6f747320666f72207468697320737461746520616c7265616479206578696044820152611cdd60f21b606482015260840161051e565b60009182526003909201602090815260409182902083518155908301516001820155910151600290910155565b60006001600160a01b0382166105fe8461163183611636565b61177b565b60008190506008817eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff16901b6008827fff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff0016901c1790506010817dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff16901b6010827fffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff000016901c1790506020817bffffffff00000000ffffffff00000000ffffffff00000000ffffffff16901b6020827fffffffff00000000ffffffff00000000ffffffff00000000ffffffff0000000016901c17905060408177ffffffffffffffff0000000000000000ffffffffffffffff16901b60408277ffffffffffffffff0000000000000000ffffffffffffffff1916901c179050608081901b608082901c179050919050565b60008061178f61178a84611636565b6118af565b905060006117ac82601b84516117a5919061212c565b601b6118d9565b6040516001600160f01b0319871660208201529091506000906117e190602201604051602081830303815290604052836118e6565b905060006118056117f1836118f2565b600881811b62ffff001691901c60ff161790565b6040805160f083901b6001600160f01b0319166020820152815160028183030181526022909101909152909150600061183e84836118e6565b90508051601f146118915760405162461bcd60e51b815260206004820181905260248201527f69644279746573207265717569726573203331206c656e677468206172726179604482015260640161051e565b6118a261189d8261198f565b611636565b9998505050505050505050565b60408051602080825281830190925260609160208201818036833750505060208101929092525090565b60606105fe84848461199a565b60606103d98383611aa7565b60008151601d1461194f5760405162461bcd60e51b815260206004820152602160248201527f436865636b73756d207265717569726573203239206c656e67746820617272616044820152607960f81b606482015260840161051e565b60005b82518110156119895782818151811061196d5761196d6120bf565b016020015161197f9060f81c8361213f565b9150600101611952565b50919050565b60006103dc82612159565b6060816119a881601f61217d565b10156119e75760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015260640161051e565b6119f1828461217d565b84511015611a355760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015260640161051e565b606082158015611a545760405191506000825260208201604052611a9e565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611a8d578051835260209283019201611a75565b5050858452601f01601f1916604052505b50949350505050565b6060806040519050835180825260208201818101602087015b81831015611ad8578051835260209283019201611ac0565b50855184518101855292509050808201602086015b81831015611b05578051835260209283019201611aed565b508651929092011591909101601f01601f191660405250905092915050565b6040518061010001604052806000815260200160001515815260200160608152602001600081526020016000815260200160001515815260200160008152602001600081525090565b60405180608001604052806004906020820280368337509192915050565b60008060408385031215611b9e57600080fd5b50508035926020909101359150565b805182526020808201511515818401526040808301516101009185018290528051918501829052600092019082906101208601905b80831015611c055783518252602082019150602084019350600183019250611be2565b50606085015160608701526080850151608087015260a08501519250611c2f60a087018415159052565b60c085015160c087015260e085015160e087015280935050505092915050565b6020815260006103d96020830184611bad565b600080600060608486031215611c7757600080fd5b505081359360208301359350604090920135919050565b803567ffffffffffffffff81168114611ca657600080fd5b919050565b600080600060608486031215611cc057600080fd5b83359250611cd060208501611c8e565b929592945050506040919091013590565b600060208284031215611cf357600080fd5b5035919050565b80356001600160a01b0381168114611ca657600080fd5b600080600080600060a08688031215611d2957600080fd5b85359450611d3960208701611cfa565b9350611d4760408701611cfa565b92506060860135915060808601356001600160f01b031981168114611d6b57600080fd5b809150509295509295909350565b60008060408385031215611d8c57600080fd5b82359150611d9c60208401611c8e565b90509250929050565b60a081526000611db860a0830185611bad565b9050825160208301526020830151604083015260408301516060830152606083015160808301529392505050565b6000806101208385031215611dfa57600080fd5b823591506101208301841015611e0f57600080fd5b50926020919091019150565b634e487b7160e01b600052604160045260246000fd5b604051610100810167ffffffffffffffff81118282101715611e5557611e55611e1b565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715611e8457611e84611e1b565b604052919050565b80518015158114611ca657600080fd5b600082601f830112611ead57600080fd5b815167ffffffffffffffff811115611ec757611ec7611e1b565b8060051b611ed760208201611e5b565b91825260208185018101929081019086841115611ef357600080fd5b6020860192505b83831015611f15578251825260209283019290910190611efa565b9695505050505050565b600060208284031215611f3157600080fd5b815167ffffffffffffffff811115611f4857600080fd5b82016101008185031215611f5b57600080fd5b611f63611e31565b81518152611f7360208301611e8c565b6020820152604082015167ffffffffffffffff811115611f9257600080fd5b611f9e86828501611e9c565b6040830152506060828101519082015260808083015190820152611fc460a08301611e8c565b60a082015260c0828101519082015260e091820151918101919091529392505050565b600060208284031215611ff957600080fd5b5051919050565b60608101818360005b6003811015612028578151835260209283019290910190600101612009565b50505092915050565b868152856020820152846040820152831515606082015282608082015260c060a0820152600082518060c084015260005b8181101561207f57602081860181015160e0868401015201612062565b50600060e0828501015260e0601f19601f830116840101915050979650505050505050565b6000602082840312156120b657600080fd5b6103d982611e8c565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60ff81811683821601908111156103dc576103dc6120d5565b60808101818360005b600481101561202857815183526020928301929091019060010161210d565b818103818111156103dc576103dc6120d5565b61ffff81811683821601908111156103dc576103dc6120d5565b805160208083015191908110156119895760001960209190910360031b1b16919050565b808201808211156103dc576103dc6120d556fea2646970667358221220aa65629b816777c025a82a1ec2ced268f4da03b01343c1453af68c59f0d7b0f064736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x135 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x765C2C61 GT PUSH2 0xB7 JUMPI DUP1 PUSH4 0xD55DA6A3 GT PUSH2 0x7B JUMPI DUP1 PUSH4 0xD55DA6A3 EQ PUSH2 0x2D6 JUMPI DUP1 PUSH4 0xD5818B8E EQ PUSH2 0x2E9 JUMPI DUP1 PUSH4 0xD5A3B14E EQ PUSH2 0x2FC JUMPI DUP1 PUSH4 0xE1F0EAA9 EQ PUSH2 0x30F JUMPI DUP1 PUSH4 0xF8B80268 EQ PUSH2 0x32F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x765C2C61 EQ PUSH2 0x25C JUMPI DUP1 PUSH4 0x7D0ABA4F EQ PUSH2 0x26F JUMPI DUP1 PUSH4 0x8AD7195D EQ PUSH2 0x282 JUMPI DUP1 PUSH4 0x97AC5391 EQ PUSH2 0x2A2 JUMPI DUP1 PUSH4 0xA3018D79 EQ PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1E75E7F3 GT PUSH2 0xFE JUMPI DUP1 PUSH4 0x1E75E7F3 EQ PUSH2 0x1EE JUMPI DUP1 PUSH4 0x2C72E822 EQ PUSH2 0x201 JUMPI DUP1 PUSH4 0x2EB747D2 EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x59A60691 EQ PUSH2 0x229 JUMPI DUP1 PUSH4 0x6E2FE66C EQ PUSH2 0x249 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0xCF0890 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x6FB1575 EQ PUSH2 0x163 JUMPI DUP1 PUSH4 0xB1A9CD3 EQ PUSH2 0x185 JUMPI DUP1 PUSH4 0x16579A36 EQ PUSH2 0x1BA JUMPI DUP1 PUSH4 0x1A3046D7 EQ PUSH2 0x1CD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x14D PUSH2 0x148 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B8B JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15A SWAP2 SWAP1 PUSH2 0x1C4F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x16F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH2 0x17E CALLDATASIZE PUSH1 0x4 PUSH2 0x1C62 JUMP JUMPDEST PUSH2 0x3E2 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x198 PUSH2 0x193 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B8B JUMP JUMPDEST PUSH2 0x45A JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP2 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x15A JUMP JUMPDEST PUSH2 0x14D PUSH2 0x1C8 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CAB JUMP JUMPDEST PUSH2 0x564 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x1DB CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0x606 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x15A JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x1FC CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0x801 JUMP JUMPDEST PUSH2 0x1E0 PUSH1 0x28 DUP2 JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x215 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH2 0x224 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0x83E JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x235 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH2 0x244 CALLDATASIZE PUSH1 0x4 PUSH2 0x1D11 JUMP JUMPDEST PUSH2 0xC39 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x257 CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0xEE4 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x26A CALLDATASIZE PUSH1 0x4 PUSH2 0x1CE1 JUMP JUMPDEST PUSH2 0xF21 JUMP JUMPDEST PUSH2 0x14D PUSH2 0x27D CALLDATASIZE PUSH1 0x4 PUSH2 0x1D79 JUMP JUMPDEST PUSH2 0xF5E JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x28E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH2 0x29D CALLDATASIZE PUSH1 0x4 PUSH2 0x1D79 JUMP JUMPDEST PUSH2 0xFBD JUMP JUMPDEST PUSH2 0x14D PUSH2 0x2B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B8B JUMP JUMPDEST PUSH2 0x103D JUMP JUMPDEST PUSH2 0x2C8 PUSH2 0x2C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B8B JUMP JUMPDEST PUSH2 0x1093 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x15A SWAP3 SWAP2 SWAP1 PUSH2 0x1DA5 JUMP JUMPDEST PUSH2 0x14D PUSH2 0x2E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C62 JUMP JUMPDEST PUSH2 0x118E JUMP JUMPDEST PUSH2 0x14D PUSH2 0x2F7 CALLDATASIZE PUSH1 0x4 PUSH2 0x1C62 JUMP JUMPDEST PUSH2 0x11DE JUMP JUMPDEST PUSH2 0x2C8 PUSH2 0x30A CALLDATASIZE PUSH1 0x4 PUSH2 0x1B8B JUMP JUMPDEST PUSH2 0x122E JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x31B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x183 PUSH2 0x32A CALLDATASIZE PUSH1 0x4 PUSH2 0x1DE6 JUMP JUMPDEST PUSH2 0x12AF JUMP JUMPDEST PUSH2 0x2C8 PUSH2 0x33D CALLDATASIZE PUSH1 0x4 PUSH2 0x1D79 JUMP JUMPDEST PUSH2 0x14BE JUMP JUMPDEST PUSH2 0x34A PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x9A DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP1 DUP7 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x3B1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x3D9 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1F1F JUMP JUMPDEST SWAP1 POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC1D29F01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP5 DUP2 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xC1D29F01 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x43D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x451 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x47E PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO DUP1 PUSH2 0x4AE JUMPI POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO ISZERO JUMPDEST DUP1 PUSH2 0x4CB JUMPI POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD ISZERO ISZERO JUMPDEST PUSH2 0x527 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x526F6F747320666F72207468697320737461746520646F65736E277420657869 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1CDD PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 SWAP2 SWAP1 SWAP2 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP3 MLOAD PUSH1 0x60 DUP2 ADD DUP5 MSTORE DUP2 SLOAD DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD SWAP3 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x2 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP1 JUMP JUMPDEST PUSH2 0x56C PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x36 DUP6 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x5D6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x5FE SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1F1F JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD SWAP2 DUP3 SWAP1 MSTORE PUSH4 0x79F97125 PUSH1 0xE0 SHL SWAP1 SWAP2 MSTORE PUSH1 0x4 DUP3 ADD PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x25CC70E8 SWAP1 DUP1 PUSH20 0x0 PUSH4 0x79F97125 PUSH1 0x84 DUP4 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x681 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x6A5 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x36 DUP8 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x6FF JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x723 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP8 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x20 SWAP1 SWAP2 ADD SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x77D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7A1 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x7C0 SWAP2 SWAP1 PUSH2 0x2000 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x7DD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x3DC SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP3 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH2 0x7C0 JUMP JUMPDEST PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP1 DUP5 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x898 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x8BC SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x36 DUP6 ADD PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x914 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x938 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP7 ADD PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x990 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x9B4 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x9A DUP7 ADD SLOAD SWAP1 SWAP2 POP DUP4 EQ ISZERO DUP1 PUSH2 0x9CE JUMPI POP PUSH1 0x9B DUP6 ADD SLOAD DUP3 EQ ISZERO JUMPDEST DUP1 PUSH2 0x9DD JUMPI POP PUSH1 0x9C DUP6 ADD SLOAD DUP2 EQ ISZERO JUMPDEST PUSH2 0xA29 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1E PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4964656E7469747920747265657320686176656E2774206368616E6765640000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x9A DUP6 ADD SLOAD DUP4 EQ PUSH2 0xAA8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xC1D29F01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP7 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x0 PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xC1D29F01 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xA8F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xAA3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP JUMPDEST PUSH1 0x0 PUSH2 0xAB3 DUP7 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 DUP8 ADD DUP2 SWAP1 SSTORE PUSH1 0x9A DUP8 ADD DUP6 SWAP1 SSTORE PUSH1 0x9B DUP8 ADD DUP5 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP9 ADD PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xB1D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB41 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x9C DUP8 ADD DUP2 SWAP1 SSTORE PUSH1 0x2 DUP8 ADD DUP1 SLOAD PUSH1 0xFF NOT DUP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP9 ADD SLOAD PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE PUSH1 0x9A DUP12 ADD SLOAD DUP2 MSTORE PUSH1 0x9B DUP12 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE PUSH1 0xFF SWAP1 SWAP2 AND SWAP2 PUSH2 0xB8E SWAP2 DUP10 SWAP2 PUSH2 0x1548 JUMP JUMPDEST PUSH1 0x2 DUP8 ADD SLOAD DUP8 SLOAD PUSH2 0x100 SWAP1 SWAP2 DIV PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7D0DCBA5 SWAP1 DUP9 DUP6 DUP6 PUSH1 0x1 PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0xBDC JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x40 MLOAD DUP8 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xBFE SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2031 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xC18 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0xC2C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x28 DUP3 GT ISZERO PUSH2 0xC9E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x2B PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x534D542064657074682069732067726561746572207468616E206D617820616C PUSH1 0x44 DUP3 ADD MSTORE PUSH11 0xD8DEEECAC840C8CAE0E8D PUSH1 0xAB SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x2 DUP6 ADD DUP1 SLOAD PUSH2 0x100 PUSH1 0x1 PUSH1 0xA8 SHL SUB NOT AND PUSH2 0x100 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP3 MUL SWAP3 SWAP1 SWAP3 OR SWAP3 DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x932E87A1 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE SWAP3 DIV AND SWAP1 PUSH4 0x932E87A1 SWAP1 PUSH1 0x24 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0xD0E JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xD32 SWAP2 SWAP1 PUSH2 0x20A4 JUMP JUMPDEST PUSH2 0xD7E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x69642074797065206973206E6F7420737570706F727465640000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x2 DUP6 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE PUSH1 0x40 MLOAD PUSH4 0x9E43B813 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP1 DUP8 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x9E43B813 SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDE1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xDF5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x9E43B813 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x36 DUP9 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH20 0x0 SWAP3 POP PUSH4 0x9E43B813 SWAP2 POP PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xE4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xE61 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH4 0x9E43B813 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x68 DUP9 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH20 0x0 SWAP3 POP PUSH4 0x9E43B813 SWAP2 POP PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xECD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0xEDB DUP2 DUP5 PUSH2 0x1618 JUMP JUMPDEST SWAP1 SWAP5 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP3 DUP2 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH2 0x7C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x79F97125 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x36 DUP3 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x79F97125 SWAP1 PUSH1 0x24 ADD PUSH2 0x7C0 JUMP JUMPDEST PUSH2 0xF66 PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x9B DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x36 DUP6 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x394 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC1D29F01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x36 DUP4 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x0 PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xC1D29F01 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1021 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1035 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1045 PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x9C DUP4 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x68 DUP6 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x394 JUMP JUMPDEST PUSH2 0x109B PUSH2 0x1B24 JUMP JUMPDEST PUSH2 0x10C6 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x9C DUP5 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x68 DUP7 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x112D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1155 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1F1F JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE PUSH1 0x1 DUP8 ADD SLOAD DUP2 MSTORE PUSH1 0x9A DUP8 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x9B DUP8 ADD SLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x9C SWAP1 SWAP6 ADD SLOAD PUSH1 0x60 DUP7 ADD MSTORE SWAP5 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x1196 PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x68 DUP6 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x5B9 JUMP JUMPDEST PUSH2 0x11E6 PUSH2 0x1B24 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP6 DUP2 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x5B9 JUMP JUMPDEST PUSH2 0x1236 PUSH2 0x1B24 JUMP JUMPDEST PUSH2 0x1261 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x9A DUP5 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP1 DUP8 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x1110 JUMP JUMPDEST PUSH2 0x12B7 PUSH2 0x1B6D JUMP JUMPDEST PUSH2 0x12BF PUSH2 0x1B6D JUMP JUMPDEST PUSH1 0x0 JUMPDEST PUSH1 0x4 DUP2 PUSH1 0xFF AND LT ISZERO PUSH2 0x1348 JUMPI DUP4 DUP2 PUSH1 0xFF AND PUSH1 0x8 DUP2 LT PUSH2 0x12E3 JUMPI PUSH2 0x12E3 PUSH2 0x20BF JUMP JUMPDEST PUSH1 0x20 MUL ADD CALLDATALOAD DUP4 DUP3 PUSH1 0xFF AND PUSH1 0x4 DUP2 LT PUSH2 0x12FD JUMPI PUSH2 0x12FD PUSH2 0x20BF JUMP JUMPDEST PUSH1 0x20 MUL ADD MSTORE DUP4 PUSH2 0x130E DUP3 PUSH1 0x4 PUSH2 0x20EB JUMP JUMPDEST PUSH1 0xFF AND PUSH1 0x8 DUP2 LT PUSH2 0x1321 JUMPI PUSH2 0x1321 PUSH2 0x20BF JUMP JUMPDEST PUSH1 0x20 MUL ADD CALLDATALOAD DUP3 DUP3 PUSH1 0xFF AND PUSH1 0x4 DUP2 LT PUSH2 0x133B JUMPI PUSH2 0x133B PUSH2 0x20BF JUMP JUMPDEST PUSH1 0x20 MUL ADD MSTORE PUSH1 0x1 ADD PUSH2 0x12C2 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH4 0x248F6677 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x248F6677 SWAP1 PUSH2 0x1383 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x2104 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x13A0 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x13C4 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH20 0x0 PUSH4 0x248F6677 DUP5 PUSH1 0x40 MLOAD DUP3 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x13FF SWAP2 SWAP1 PUSH2 0x2104 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x141C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1440 SWAP2 SWAP1 PUSH2 0x1FE7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xC1D29F01 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP9 DUP2 ADD SWAP1 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH20 0x0 SWAP1 PUSH4 0xC1D29F01 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x149E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x14B2 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x14C6 PUSH2 0x1B24 JUMP JUMPDEST PUSH2 0x14F1 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x9B DUP5 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CE0BD4B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x36 DUP7 ADD PUSH1 0x4 DUP3 ADD MSTORE PUSH8 0xFFFFFFFFFFFFFFFF DUP6 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x79C17A96 SWAP1 PUSH1 0x64 ADD PUSH2 0x1110 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO DUP1 ISZERO PUSH2 0x1577 JUMPI POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x1 ADD SLOAD ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x1594 JUMPI POP PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x3 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x2 ADD SLOAD ISZERO JUMPDEST PUSH2 0x15EB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x526F6F747320666F72207468697320737461746520616C726561647920657869 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x1CDD PUSH1 0xF2 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x3 SWAP1 SWAP3 ADD PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 SWAP2 DUP3 SWAP1 KECCAK256 DUP4 MLOAD DUP2 SSTORE SWAP1 DUP4 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE SWAP2 ADD MLOAD PUSH1 0x2 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x5FE DUP5 PUSH2 0x1631 DUP4 PUSH2 0x1636 JUMP JUMPDEST PUSH2 0x177B JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x8 DUP2 PUSH31 0xFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF AND SWAP1 SHL PUSH1 0x8 DUP3 PUSH32 0xFF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00FF00 AND SWAP1 SHR OR SWAP1 POP PUSH1 0x10 DUP2 PUSH30 0xFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF AND SWAP1 SHL PUSH1 0x10 DUP3 PUSH32 0xFFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000 AND SWAP1 SHR OR SWAP1 POP PUSH1 0x20 DUP2 PUSH28 0xFFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF AND SWAP1 SHL PUSH1 0x20 DUP3 PUSH32 0xFFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000FFFFFFFF00000000 AND SWAP1 SHR OR SWAP1 POP PUSH1 0x40 DUP2 PUSH24 0xFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF AND SWAP1 SHL PUSH1 0x40 DUP3 PUSH24 0xFFFFFFFFFFFFFFFF0000000000000000FFFFFFFFFFFFFFFF NOT AND SWAP1 SHR OR SWAP1 POP PUSH1 0x80 DUP2 SWAP1 SHL PUSH1 0x80 DUP3 SWAP1 SHR OR SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x178F PUSH2 0x178A DUP5 PUSH2 0x1636 JUMP JUMPDEST PUSH2 0x18AF JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x17AC DUP3 PUSH1 0x1B DUP5 MLOAD PUSH2 0x17A5 SWAP2 SWAP1 PUSH2 0x212C JUMP JUMPDEST PUSH1 0x1B PUSH2 0x18D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP8 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x17E1 SWAP1 PUSH1 0x22 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP4 PUSH2 0x18E6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x1805 PUSH2 0x17F1 DUP4 PUSH2 0x18F2 JUMP JUMPDEST PUSH1 0x8 DUP2 DUP2 SHL PUSH3 0xFFFF00 AND SWAP2 SWAP1 SHR PUSH1 0xFF AND OR SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xF0 DUP4 SWAP1 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD MSTORE DUP2 MLOAD PUSH1 0x2 DUP2 DUP4 SUB ADD DUP2 MSTORE PUSH1 0x22 SWAP1 SWAP2 ADD SWAP1 SWAP2 MSTORE SWAP1 SWAP2 POP PUSH1 0x0 PUSH2 0x183E DUP5 DUP4 PUSH2 0x18E6 JUMP JUMPDEST SWAP1 POP DUP1 MLOAD PUSH1 0x1F EQ PUSH2 0x1891 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x69644279746573207265717569726573203331206C656E677468206172726179 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51E JUMP JUMPDEST PUSH2 0x18A2 PUSH2 0x189D DUP3 PUSH2 0x198F JUMP JUMPDEST PUSH2 0x1636 JUMP JUMPDEST SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP4 ADD SWAP1 SWAP3 MSTORE PUSH1 0x60 SWAP2 PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY POP POP POP PUSH1 0x20 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x5FE DUP5 DUP5 DUP5 PUSH2 0x199A JUMP JUMPDEST PUSH1 0x60 PUSH2 0x3D9 DUP4 DUP4 PUSH2 0x1AA7 JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD PUSH1 0x1D EQ PUSH2 0x194F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x21 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x436865636B73756D207265717569726573203239206C656E6774682061727261 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x79 PUSH1 0xF8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP3 MLOAD DUP2 LT ISZERO PUSH2 0x1989 JUMPI DUP3 DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x196D JUMPI PUSH2 0x196D PUSH2 0x20BF JUMP JUMPDEST ADD PUSH1 0x20 ADD MLOAD PUSH2 0x197F SWAP1 PUSH1 0xF8 SHR DUP4 PUSH2 0x213F JUMP JUMPDEST SWAP2 POP PUSH1 0x1 ADD PUSH2 0x1952 JUMP JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3DC DUP3 PUSH2 0x2159 JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH2 0x19A8 DUP2 PUSH1 0x1F PUSH2 0x217D JUMP JUMPDEST LT ISZERO PUSH2 0x19E7 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x736C6963655F6F766572666C6F77 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51E JUMP JUMPDEST PUSH2 0x19F1 DUP3 DUP5 PUSH2 0x217D JUMP JUMPDEST DUP5 MLOAD LT ISZERO PUSH2 0x1A35 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x736C6963655F6F75744F66426F756E6473 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x51E JUMP JUMPDEST PUSH1 0x60 DUP3 ISZERO DUP1 ISZERO PUSH2 0x1A54 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x0 DUP3 MSTORE PUSH1 0x20 DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1A9E JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F DUP5 AND DUP1 ISZERO PUSH1 0x20 MUL DUP2 DUP5 ADD ADD DUP6 DUP2 ADD DUP8 DUP4 ISZERO PUSH1 0x20 MUL DUP5 DUP12 ADD ADD ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x1A8D JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1A75 JUMP JUMPDEST POP POP DUP6 DUP5 MSTORE PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 DUP1 PUSH1 0x40 MLOAD SWAP1 POP DUP4 MLOAD DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP2 DUP2 ADD PUSH1 0x20 DUP8 ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x1AD8 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1AC0 JUMP JUMPDEST POP DUP6 MLOAD DUP5 MLOAD DUP2 ADD DUP6 MSTORE SWAP3 POP SWAP1 POP DUP1 DUP3 ADD PUSH1 0x20 DUP7 ADD JUMPDEST DUP2 DUP4 LT ISZERO PUSH2 0x1B05 JUMPI DUP1 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 ADD PUSH2 0x1AED JUMP JUMPDEST POP DUP7 MLOAD SWAP3 SWAP1 SWAP3 ADD ISZERO SWAP2 SWAP1 SWAP2 ADD PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x40 MSTORE POP SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 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 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1B9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD ISZERO ISZERO DUP2 DUP5 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH2 0x100 SWAP2 DUP6 ADD DUP3 SWAP1 MSTORE DUP1 MLOAD SWAP2 DUP6 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP3 ADD SWAP1 DUP3 SWAP1 PUSH2 0x120 DUP7 ADD SWAP1 JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x1C05 JUMPI DUP4 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x1 DUP4 ADD SWAP3 POP PUSH2 0x1BE2 JUMP JUMPDEST POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0x80 DUP8 ADD MSTORE PUSH1 0xA0 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x1C2F PUSH1 0xA0 DUP8 ADD DUP5 ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xC0 DUP8 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH1 0xE0 DUP8 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3D9 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x1BAD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1C77 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 AND DUP2 EQ PUSH2 0x1CA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1CC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH2 0x1CD0 PUSH1 0x20 DUP6 ADD PUSH2 0x1C8E JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1CF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x1CA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0xA0 DUP7 DUP9 SUB SLT ISZERO PUSH2 0x1D29 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 CALLDATALOAD SWAP5 POP PUSH2 0x1D39 PUSH1 0x20 DUP8 ADD PUSH2 0x1CFA JUMP JUMPDEST SWAP4 POP PUSH2 0x1D47 PUSH1 0x40 DUP8 ADD PUSH2 0x1CFA JUMP JUMPDEST SWAP3 POP PUSH1 0x60 DUP7 ADD CALLDATALOAD SWAP2 POP PUSH1 0x80 DUP7 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x1D6B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 SWAP1 SWAP4 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1D8C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x1D9C PUSH1 0x20 DUP5 ADD PUSH2 0x1C8E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x1DB8 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x1BAD JUMP JUMPDEST SWAP1 POP DUP3 MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x120 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1DFA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x120 DUP4 ADD DUP5 LT ISZERO PUSH2 0x1E0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP3 PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP2 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x100 DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1E55 JUMPI PUSH2 0x1E55 PUSH2 0x1E1B JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x1E84 JUMPI PUSH2 0x1E84 PUSH2 0x1E1B JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x1CA6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1EAD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1EC7 JUMPI PUSH2 0x1EC7 PUSH2 0x1E1B JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH2 0x1ED7 PUSH1 0x20 DUP3 ADD PUSH2 0x1E5B JUMP JUMPDEST SWAP2 DUP3 MSTORE PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD SWAP3 SWAP1 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x1EF3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0x1F15 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x1EFA JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1F31 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F48 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH2 0x100 DUP2 DUP6 SUB SLT ISZERO PUSH2 0x1F5B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F63 PUSH2 0x1E31 JUMP JUMPDEST DUP2 MLOAD DUP2 MSTORE PUSH2 0x1F73 PUSH1 0x20 DUP4 ADD PUSH2 0x1E8C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x1F92 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1F9E DUP7 DUP3 DUP6 ADD PUSH2 0x1E9C JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x1FC4 PUSH1 0xA0 DUP4 ADD PUSH2 0x1E8C JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 SWAP2 DUP3 ADD MLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1FF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 DUP2 ADD DUP2 DUP4 PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x2028 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2009 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP7 DUP2 MSTORE DUP6 PUSH1 0x20 DUP3 ADD MSTORE DUP5 PUSH1 0x40 DUP3 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x60 DUP3 ADD MSTORE DUP3 PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0xC0 DUP5 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x207F JUMPI PUSH1 0x20 DUP2 DUP7 ADD DUP2 ADD MLOAD PUSH1 0xE0 DUP7 DUP5 ADD ADD MSTORE ADD PUSH2 0x2062 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0xE0 DUP3 DUP6 ADD ADD MSTORE PUSH1 0xE0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP5 ADD ADD SWAP2 POP POP SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x20B6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D9 DUP3 PUSH2 0x1E8C 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 0xFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH2 0x20D5 JUMP JUMPDEST PUSH1 0x80 DUP2 ADD DUP2 DUP4 PUSH1 0x0 JUMPDEST PUSH1 0x4 DUP2 LT ISZERO PUSH2 0x2028 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x210D JUMP JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH2 0x20D5 JUMP JUMPDEST PUSH2 0xFFFF DUP2 DUP2 AND DUP4 DUP3 AND ADD SWAP1 DUP2 GT ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH2 0x20D5 JUMP JUMPDEST DUP1 MLOAD PUSH1 0x20 DUP1 DUP4 ADD MLOAD SWAP2 SWAP1 DUP2 LT ISZERO PUSH2 0x1989 JUMPI PUSH1 0x0 NOT PUSH1 0x20 SWAP2 SWAP1 SWAP2 SUB PUSH1 0x3 SHL SHL AND SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x3DC JUMPI PUSH2 0x3DC PUSH2 0x20D5 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xAA PUSH6 0x629B816777C0 0x25 0xA8 0x2A 0x1E 0xC2 0xCE 0xD2 PUSH9 0xF4DA03B01343C1453A 0xF6 DUP13 MSIZE CREATE 0xD7 0xB0 CREATE PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "335:14838:8:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7071:308;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3481:156;;;;;;;;;;-1:-1:-1;3481:156:8;;;;;:::i;:::-;;:::i;:::-;;14750:421;;;;;;:::i;:::-;;:::i;:::-;;;;2499:13:46;;2481:32;;2569:4;2557:17;;;2551:24;2529:20;;;2522:54;2620:17;;;2614:24;2592:20;;;2585:54;2469:2;2454:18;14750:421:8;2281:364:46;11116:262:8;;;;;;:::i;:::-;;:::i;6413:348::-;;;;;;:::i;:::-;;:::i;:::-;;;3680:25:46;;;3668:2;3653:18;6413:348:8;3526:185:46;13879:131:8;;;;;;:::i;:::-;;:::i;396:51::-;;445:2;396:51;;3969:2357;;;;;;;;;;-1:-1:-1;3969:2357:8;;;;;:::i;:::-;;:::i;2083:693::-;;;;;;;;;;-1:-1:-1;2083:693:8;;;;;:::i;:::-;;:::i;9017:133::-;;;;;;:::i;:::-;;:::i;11497:143::-;;;;;;:::i;:::-;;:::i;9464:333::-;;;;;;:::i;:::-;;:::i;3760:153::-;;;;;;;;;;-1:-1:-1;3760:153:8;;;;;:::i;:::-;;:::i;11947:303::-;;;;;;:::i;:::-;;:::i;12588:653::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;13532:240::-;;;;;;:::i;:::-;;:::i;8666:242::-;;;;;;:::i;:::-;;:::i;7720:658::-;;;;;;:::i;:::-;;:::i;2853:477::-;;;;;;;;;;-1:-1:-1;2853:477:8;;;;;:::i;:::-;;:::i;10143:683::-;;;;;;:::i;:::-;;:::i;7071:308::-;7182:19;;:::i;:::-;7318:29;;;:40;7232:140;;-1:-1:-1;;;7232:140:8;;:10;;;;:140;;;6126:25:46;6167:18;;;6160:34;;;6210:18;;;6203:34;;;;7232:36:8;;;;6099:18:46;;7232:140:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7232:140:8;;;;;;;;;;;;:::i;:::-;7213:159;;7071:308;;;;;:::o;3481:156::-;3579:51;;-1:-1:-1;;;3579:51:8;;:10;;;;:51;;;6126:25:46;6167:18;;;6160:34;;;6210:18;;;6203:34;;;3579:29:8;;;;6099:18:46;;3579:51:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3481:156;;;:::o;14750:421::-;14854:12;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;14854:12:8;14899:24;;;;:17;;;:24;;;;;:35;:40;;;:105;;-1:-1:-1;14959:24:8;;;;:17;;;:24;;;;;:40;;;:45;;14899:105;:164;;;-1:-1:-1;15024:24:8;;;;:17;;;:24;;;;;:34;;;:39;;14899:164;14878:245;;;;-1:-1:-1;;;14878:245:8;;9363:2:46;14878:245:8;;;9345:21:46;9402:2;9382:18;;;9375:30;9441:34;9421:18;;;9414:62;-1:-1:-1;;;9492:18:46;;;9485:32;9534:19;;14878:245:8;;;;;;;;;-1:-1:-1;15140:24:8;;;;:17;;;;;:24;;;;;;;;;15133:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14750:421::o;11116:262::-;11260:19;;:::i;:::-;11298:73;;-1:-1:-1;;;11298:73:8;;:26;;;:10;:73;;6126:25:46;11340:24:8;;;6167:18:46;;;6160:34;6210:18;;;6203:34;;;11298:41:8;;;;6099:18:46;;11298:73:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11298:73:8;;;;;;;;;;;;:::i;:::-;11291:80;11116:262;-1:-1:-1;;;;11116:262:8:o;6413:348::-;6518:236;;;;;;;;;;-1:-1:-1;;;6581:31:8;;;:10;;;:31;;;3680:25:46;-1:-1:-1;;6518:14:8;;:23;;:236;6581:29;;3653:18:46;;;6581:31:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6518:236;;6634:36;;-1:-1:-1;;;6634:36:8;;:26;;;:10;:36;;3680:25:46;6518:236:8;;;;;6634:34;;;;3653:18:46;;6634:36:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6518:236;;6692:30;;-1:-1:-1;;;6692:30:8;;:20;;;:10;:30;;3680:25:46;6518:236:8;;;;;6692:28;;;;3653:18:46;;6692:30:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6518:236;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;13879:131::-;13973:30;;-1:-1:-1;;;13973:30:8;;:20;;;:10;:30;;3680:25:46;13947:7:8;;13973:28;;;;3653:18:46;;13973:30:8;3526:185:46;3969:2357:8;4056:25;;;;4123:31;;-1:-1:-1;;;4123:31:8;;:10;;;;:31;;;3680:25:46;4029:24:8;;4123:29;;;;3653:18:46;;4123:31:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4201:36;;-1:-1:-1;;;4201:36:8;;:26;;;:10;:36;;3680:25:46;4091:63:8;;-1:-1:-1;4164:34:8;;4201;;;;3653:18:46;;4201:36:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4278:30;;-1:-1:-1;;;4278:30:8;;:20;;;:10;:30;;3680:25:46;4164:73:8;;-1:-1:-1;4247:28:8;;4278;;;;3653:18:46;;4278:30:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4341:29;;;:40;4247:61;;-1:-1:-1;4341:65:8;;;;4340:164;;-1:-1:-1;4428:45:8;;;;:75;;;4340:164;:249;;;-1:-1:-1;4525:39:8;;;;:63;;;4340:249;4319:326;;;;-1:-1:-1;;;4319:326:8;;10698:2:46;4319:326:8;;;10680:21:46;10737:2;10717:18;;;10710:30;10776:32;10756:18;;;10749:60;10826:18;;4319:326:8;10496:354:46;4319:326:8;4723:29;;;:40;:65;;4719:150;;4804:54;;-1:-1:-1;;;4804:54:8;;:20;;;:10;:54;;6126:25:46;6167:18;;;6160:34;;;4856:1:8;6210:18:46;;;6203:34;4804:28:8;;;;6099:18:46;;4804:54:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4719:150;4879:24;4906:23;4924:4;4906:17;:23::i;:::-;4978:25;;;:44;;;5032:29;;;:64;;;5106:45;;;:74;;;5232:30;;-1:-1:-1;;;5232:30:8;;:20;;;:10;:30;;3680:25:46;4978:44:8;;-1:-1:-1;5232:28:8;;;;3653:18:46;;5232:30:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5190:39;;;:72;;;:39;5298:22;;;;-1:-1:-1;;5607:30:8;;;;;5298:22;5692:25;;;5731:239;;;;;;;;5190:29;;;5767:40;5731:239;;5842:45;;;;5731:239;;;;;;;;;;;5298:22;;;;;5648:332;;5190:4;;5648:12;:332::i;:::-;6040:18;;;;6092:7;;6040:18;;;;-1:-1:-1;;;;;6040:18:8;;:38;;6113:16;6143;6173:17;6040:18;6092:7;6274:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6274:12:8;;6040:279;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4019:2307;;;;;;3969:2357;:::o;2083:693::-;445:2;2276:5;:31;;2268:87;;;;-1:-1:-1;;;2268:87:8;;12330:2:46;2268:87:8;;;12312:21:46;12369:2;12349:18;;;12342:30;12408:34;12388:18;;;12381:62;-1:-1:-1;;;12459:18:46;;;12452:41;12510:19;;2268:87:8;12128:407:46;2268:87:8;2365:18;;;:47;;-1:-1:-1;;;;;;2365:47:8;;-1:-1:-1;;;;;2365:47:8;;;;;;;;;;;;;2430:44;;-1:-1:-1;;;2430:44:8;;-1:-1:-1;;;;;;12702:28:46;;2430:44:8;;;12684:47:46;2430:18:8;;;;:36;;12657:18:46;;2430:44:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2422:81;;;;-1:-1:-1;;;2422:81:8;;13151:2:46;2422:81:8;;;13133:21:46;13190:2;13170:18;;;13163:30;13229:26;13209:18;;;13202:54;13273:18;;2422:81:8;12949:348:46;2422:81:8;2513:22;;;:29;;-1:-1:-1;;2513:29:8;2538:4;2513:29;;;2552:39;;-1:-1:-1;;;2552:39:8;;:10;;;;:39;;;13507:25:46;13548:18;;;13541:34;;;2552:32:8;;;;13480:18:46;;2552:39:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2601:44:8;;-1:-1:-1;;;2601:44:8;;:26;;;:10;:44;;13507:25:46;13548:18;;;13541:34;;;2601:37:8;;-1:-1:-1;2601:37:8;;-1:-1:-1;13480:18:46;;2601:44:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2655:38:8;;-1:-1:-1;;;2655:38:8;;:20;;;:10;:38;;13507:25:46;13548:18;;;13541:34;;;2655:31:8;;-1:-1:-1;2655:31:8;;-1:-1:-1;13480:18:46;;2655:38:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2713:56;2747:6;2755:13;2713:33;:56::i;:::-;2703:66;;;-1:-1:-1;;;;2083:693:8:o;9017:133::-;9112:31;;-1:-1:-1;;;9112:31:8;;:10;;;;:31;;;3680:25:46;9086:7:8;;9112:29;;;;3653:18:46;;9112:31:8;3526:185:46;11497:143:8;11597:36;;-1:-1:-1;;;11597:36:8;;:26;;;:10;:36;;3680:25:46;11571:7:8;;11597:34;;;;3653:18:46;;11597:36:8;3526:185:46;9464:333:8;9580:19;;:::i;:::-;9731:45;;;;9630:160;;-1:-1:-1;;;9630:160:8;;:26;;;:10;:160;;6126:25:46;9689:24:8;;;6167:18:46;;;6160:34;6210:18;;;6203:34;;;;9630:41:8;;;;6099:18:46;;9630:160:8;5893:350:46;3760:153:8;3843:63;;-1:-1:-1;;;3843:63:8;;:26;;;:10;:63;;6126:25:46;3878:24:8;;;6167:18:46;;;6160:34;3904:1:8;6210:18:46;;;6203:34;3843::8;;;;6099:18:46;;3843:63:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3760:153;;:::o;11947:303::-;12056:19;;:::i;:::-;12190:39;;;;12106:137;;-1:-1:-1;;;12106:137:8;;:20;;;:10;:137;;6126:25:46;6167:18;;;6160:34;;;6210:18;;;6203:34;;;;12106:35:8;;;;6099:18:46;;12106:137:8;5893:350:46;12588:653:8;12710:19;;:::i;:::-;12731:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12731:16:8;12864:39;;;;12780:137;;-1:-1:-1;;;12780:137:8;;:20;;;:10;:137;;6126:25:46;6167:18;;;6160:34;;;6210:18;;;6203:34;;;;12780:35:8;;;;6099:18:46;;12780:137:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12780:137:8;;;;;;;;;;;;:::i;:::-;12931:293;;;;;;;;12966:25;;;;12931:293;;13021:29;;;:40;12931:293;;;;13096:45;;;;12931:293;;;;;;;13170:39;;;;;12931:293;;;;12759:475;12588:653;-1:-1:-1;;;12588:653:8:o;13532:240::-;13670:19;;:::i;:::-;13708:57;;-1:-1:-1;;;13708:57:8;;:20;;;:10;:57;;6126:25:46;6167:18;;;6160:34;;;6210:18;;;6203:34;;;13708:35:8;;;;6099:18:46;;13708:57:8;5893:350:46;8666:242:8;8805:19;;:::i;:::-;8843:58;;-1:-1:-1;;;8843:58:8;;:10;;;;:58;;;6126:25:46;6167:18;;;6160:34;;;6210:18;;;6203:34;;;8843:36:8;;;;6099:18:46;;8843:58:8;5893:350:46;7720:658:8;7844:19;;:::i;:::-;7865:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7865:16:8;8000:29;;;:40;7914:140;;-1:-1:-1;;;7914:140:8;;:10;;;;:140;;;6126:25:46;6167:18;;;6160:34;;;6210:18;;;6203:34;;;;7914:36:8;;;;6099:18:46;;7914:140:8;5893:350:46;2853:477:8;2936:28;;:::i;:::-;2974;;:::i;:::-;3017:7;3012:121;3034:1;3030;:5;;;3012:121;;;3072:5;3078:1;3072:8;;;;;;;;;:::i;:::-;;;;;3056:10;3067:1;3056:13;;;;;;;;;:::i;:::-;;;;:24;3110:5;3116;:1;3120;3116:5;:::i;:::-;3110:12;;;;;;;;;:::i;:::-;;;;;3094:10;3105:1;3094:13;;;;;;;;;:::i;:::-;;;;:28;3037:3;;3012:121;;;-1:-1:-1;3162:35:8;;-1:-1:-1;;;3162:35:8;;3142:17;;3162:14;;:23;;:35;;3186:10;;3162:35;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3142:55;;3207:17;3227:14;:23;3251:10;3227:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3272:51;;-1:-1:-1;;;3272:51:8;;:10;;;;:51;;;6126:25:46;6167:18;;;6160:34;;;6210:18;;;6203:34;;;3207:55:8;;-1:-1:-1;3272:29:8;;;;6099:18:46;;3272:51:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2926:404;;;;2853:477;;:::o;10143:683::-;10272:19;;:::i;:::-;10293:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10293:16:8;10443:45;;;;10342:160;;-1:-1:-1;;;10342:160:8;;:26;;;:10;:160;;6126:25:46;10401:24:8;;;6167:18:46;;;6160:34;6210:18;;;6203:34;;;;10342:41:8;;;;6099:18:46;;10342:160:8;5893:350:46;14172:389:8;14288:24;;;;:17;;;:24;;;;;:35;:40;:105;;;;-1:-1:-1;14348:24:8;;;;:17;;;:24;;;;;:40;;;:45;14288:105;:164;;;;-1:-1:-1;14413:24:8;;;;:17;;;:24;;;;;:34;;;:39;14288:164;14267:245;;;;-1:-1:-1;;;14267:245:8;;14690:2:46;14267:245:8;;;14672:21:46;14729:2;14709:18;;;14702:30;14768:34;14748:18;;;14741:62;-1:-1:-1;;;14819:18:46;;;14812:32;14861:19;;14267:245:8;14488:398:46;14267:245:8;14522:24;;;;:17;;;;:24;;;;;;;;;:32;;;;;;;;;;;;;;;;;;;;14172:389::o;1912:257:6:-;1996:7;-1:-1:-1;;;;;3926:23:10;;2091:71:6;2114:6;2122:39;3926:23:10;2122:33:6;:39::i;:::-;2091:22;:71::i;429:1102:10:-;491:9;516:5;512:9;;741:1;666;670:66;666:70;665:77;;647:1;572;576:66;572:70;571:77;;570:173;554:189;;976:2;901:1;905:66;901:70;900:78;;881:2;806:1;810:66;806:70;805:78;;804:175;788:191;;1212:2;1137:1;1141:66;1137:70;1136:78;;1117:2;1042:1;1046:66;1042:70;1041:78;;1040:175;1024:191;;1448:2;1373:1;1377:66;1373:70;1372:78;;1353:2;1278:1;-1:-1:-1;;1278:70:10;1277:78;;1276:175;1260:191;;1520:3;1515:1;:8;;1507:3;1502:1;:8;;1501:23;1497:27;;429:1102;;;:::o;984:873:6:-;1093:7;1112:24;1139:99;1186:42;1220:7;1186:33;:42::i;:::-;1139:33;:99::i;:::-;1112:126;;1249:21;1273:66;1298:11;1332:2;1311:11;:18;:23;;;;:::i;:::-;1336:2;1273:24;:66::i;:::-;1405:24;;-1:-1:-1;;;;;;15163:28:46;;1405:24:6;;;15151:41:46;1249:90:6;;-1:-1:-1;1349:27:6;;1379:61;;15208:11:46;;1405:24:6;;;;;;;;;;;;1431:8;1379:25;:61::i;:::-;1349:91;;1451:15;1469:53;1502:19;1506:14;1502:3;:19::i;:::-;1723:1:10;1718:6;;;;;1707;;;;;1706:19;;1580:152;1469:53:6;1561:26;;;15395:3:46;15373:16;;;-1:-1:-1;;;;;;15369:38:46;1561:26:6;;;15357:51:46;1561:26:6;;;;;;;;;15424:11:46;;;;1561:26:6;;;15373:16:46;;-1:-1:-1;1532:26:6;1621:56;1647:14;1561:26;1621:25;:56::i;:::-;1598:79;;1695:7;:14;1713:2;1695:20;1687:65;;;;-1:-1:-1;;;1687:65:6;;15648:2:46;1687:65:6;;;15630:21:46;;;15667:18;;;15660:30;15726:34;15706:18;;;15699:62;15778:18;;1687:65:6;15446:356:46;1687:65:6;1770:80;1804:45;1841:7;1804:36;:45::i;:::-;1770:33;:80::i;:::-;1763:87;984:873;-1:-1:-1;;;;;;;;;984:873:6:o;208:171:10:-;296:13;;;306:2;296:13;;;;;;;;;266:14;;296:13;;;;;;;;-1:-1:-1;;;356:2:10;349:10;;342:21;;;;-1:-1:-1;349:10:10;208:171::o;3222:189::-;3339:12;3370:34;3385:3;3390:5;3397:6;3370:14;:34::i;3000:182::-;3108:12;3139:36;3155:8;3165:9;3139:15;:36::i;184:253:6:-;240:8;268:5;:12;284:2;268:18;260:64;;;;-1:-1:-1;;;260:64:6;;16009:2:46;260:64:6;;;15991:21:46;16048:2;16028:18;;;16021:30;16087:34;16067:18;;;16060:62;-1:-1:-1;;;16138:18:46;;;16131:31;16179:19;;260:64:6;15807:397:46;260:64:6;340:9;335:96;359:5;:12;355:1;:16;335:96;;;410:5;416:1;410:8;;;;;;;;:::i;:::-;;;;;392:28;;410:8;;392:28;;:::i;:::-;;-1:-1:-1;373:3:6;;335:96;;;;184:253;;;:::o;2631:124:10:-;2697:13;2737:10;2745:1;2737:10;:::i;9457:2804:45:-;9603:12;9655:7;9639:12;9655:7;9649:2;9639:12;:::i;:::-;:23;;9631:50;;;;-1:-1:-1;;;9631:50:45;;17003:2:46;9631:50:45;;;16985:21:46;17042:2;17022:18;;;17015:30;-1:-1:-1;;;17061:18:46;;;17054:44;17115:18;;9631:50:45;16801:338:46;9631:50:45;9716:16;9725:7;9716:6;:16;:::i;:::-;9699:6;:13;:33;;9691:63;;;;-1:-1:-1;;;9691:63:45;;17346:2:46;9691:63:45;;;17328:21:46;17385:2;17365:18;;;17358:30;-1:-1:-1;;;17404:18:46;;;17397:47;17461:18;;9691:63:45;17144:341:46;9691:63:45;9765:22;9828:15;;9856:1967;;;;11964:4;11958:11;11945:24;;12150:1;12139:9;12132:20;12198:4;12187:9;12183:20;12177:4;12170:34;9821:2397;;9856:1967;10038:4;10032:11;10019:24;;10697:2;10688:7;10684:16;11079:9;11072:17;11066:4;11062:28;11050:9;11039;11035:25;11031:60;11127:7;11123:2;11119:16;11379:6;11365:9;11358:17;11352:4;11348:28;11336:9;11328:6;11324:22;11320:57;11316:70;11153:425;11412:3;11408:2;11405:11;11153:425;;;11550:9;;11539:21;;11453:4;11445:13;;;;11485;11153:425;;;-1:-1:-1;;11596:26:45;;;11804:2;11787:11;-1:-1:-1;;11783:25:45;11777:4;11770:39;-1:-1:-1;9821:2397:45;-1:-1:-1;12245:9:45;9457:2804;-1:-1:-1;;;;9457:2804:45:o;393:2955::-;527:12;555:22;760:4;754:11;741:24;;917:9;911:16;958:6;947:9;940:25;1200:4;1189:9;1185:20;1349:6;1345:2;1341:15;1543:4;1532:9;1528:20;1370:525;1570:3;1566:2;1563:11;1370:525;;;1871:9;;1860:21;;1677:4;1669:13;;;;1705;1370:525;;;-1:-1:-1;2106:17:45;;2166:16;;2154:29;;2136:48;;2106:17;-1:-1:-1;2328:3:45;-1:-1:-1;2465:15:45;;;2542:4;2526:21;;2494:221;2569:3;2565:2;2562:11;2494:221;;;2691:9;;2680:21;;2606:4;2598:13;;;;2634;2494:221;;;-1:-1:-1;3204:16:45;;3192:29;;;;3185:37;3176:47;;;;3248:2;3172:56;-1:-1:-1;;3153:151:45;3147:4;3140:165;-1:-1:-1;3332:9:45;-1:-1:-1;393:2955:45;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:369:46:-;105:6;113;166:2;154:9;145:7;141:23;137:32;134:52;;;182:1;179;172:12;134:52;-1:-1:-1;;227:23:46;;;347:2;332:18;;;319:32;;-1:-1:-1;14:369:46:o;484:1033::-;599:12;;587:25;;675:4;664:16;;;658:23;651:31;644:39;628:14;;;621:63;730:4;719:16;;;713:23;571:6;752:14;;;745:30;;;824:19;;562:16;;;852:20;;;532:3;;926:23;;532:3;;899;890:13;;;977:179;991:6;988:1;985:13;977:179;;;1060:6;1054:13;1047:5;1040:28;1101:4;1094:5;1090:16;1081:25;;1141:4;1133:6;1129:17;1119:27;;1013:1;1010;1006:9;1001:14;;977:179;;;981:3;1205:4;1198:5;1194:16;1188:23;1181:4;1176:3;1172:14;1165:47;1261:4;1254:5;1250:16;1244:23;1237:4;1232:3;1228:14;1221:47;1316:4;1309:5;1305:16;1299:23;1277:45;;1331:47;1372:4;1367:3;1363:14;1347;458:13;451:21;439:34;;388:91;1331:47;1427:4;1420:5;1416:16;1410:23;1403:4;1398:3;1394:14;1387:47;1483:4;1476:5;1472:16;1466:23;1459:4;1454:3;1450:14;1443:47;1506:5;1499:12;;;;;484:1033;;;;:::o;1522:260::-;1705:2;1694:9;1687:21;1668:4;1725:51;1772:2;1761:9;1757:18;1749:6;1725:51;:::i;1787:489::-;1887:6;1895;1903;1956:2;1944:9;1935:7;1931:23;1927:32;1924:52;;;1972:1;1969;1962:12;1924:52;-1:-1:-1;;2017:23:46;;;2137:2;2122:18;;2109:32;;-1:-1:-1;2240:2:46;2225:18;;;2212:32;;1787:489;-1:-1:-1;1787:489:46:o;2650:171::-;2717:20;;2777:18;2766:30;;2756:41;;2746:69;;2811:1;2808;2801:12;2746:69;2650:171;;;:::o;2826:441::-;2925:6;2933;2941;2994:2;2982:9;2973:7;2969:23;2965:32;2962:52;;;3010:1;3007;3000:12;2962:52;3055:23;;;-1:-1:-1;3121:37:46;3154:2;3139:18;;3121:37;:::i;:::-;2826:441;;3111:47;;-1:-1:-1;;;3231:2:46;3216:18;;;;3203:32;;2826:441::o;3272:249::-;3354:6;3407:2;3395:9;3386:7;3382:23;3378:32;3375:52;;;3423:1;3420;3413:12;3375:52;-1:-1:-1;3468:23:46;;3272:249;-1:-1:-1;3272:249:46:o;3716:173::-;3784:20;;-1:-1:-1;;;;;3833:31:46;;3823:42;;3813:70;;3879:1;3876;3869:12;3894:696;4011:6;4019;4027;4035;4043;4096:3;4084:9;4075:7;4071:23;4067:33;4064:53;;;4113:1;4110;4103:12;4064:53;4158:23;;;-1:-1:-1;4224:38:46;4258:2;4243:18;;4224:38;:::i;:::-;4214:48;;4281:38;4315:2;4304:9;4300:18;4281:38;:::i;:::-;4271:48;-1:-1:-1;4392:2:46;4377:18;;4364:32;;-1:-1:-1;4474:3:46;4459:19;;4446:33;-1:-1:-1;;;;;;4510:29:46;;4498:42;;4488:70;;4554:1;4551;4544:12;4488:70;4577:7;4567:17;;;3894:696;;;;;;;;:::o;4595:321::-;4685:6;4693;4746:2;4734:9;4725:7;4721:23;4717:32;4714:52;;;4762:1;4759;4752:12;4714:52;4807:23;;;-1:-1:-1;4873:37:46;4906:2;4891:18;;4873:37;:::i;:::-;4863:47;;4595:321;;;;;:::o;4921:572::-;5186:3;5175:9;5168:22;5149:4;5207:52;5254:3;5243:9;5239:19;5231:6;5207:52;:::i;:::-;5199:60;;5301:6;5295:13;5290:2;5279:9;5275:18;5268:41;5363:2;5355:6;5351:15;5345:22;5340:2;5329:9;5325:18;5318:50;5422:2;5414:6;5410:15;5404:22;5399:2;5388:9;5384:18;5377:50;5482:2;5474:6;5470:15;5464:22;5458:3;5447:9;5443:19;5436:51;4921:572;;;;;:::o;5498:390::-;5614:6;5622;5675:3;5663:9;5654:7;5650:23;5646:33;5643:53;;;5692:1;5689;5682:12;5643:53;5737:23;;;-1:-1:-1;5814:3:46;5799:19;;5796:32;-1:-1:-1;5793:52:46;;;5841:1;5838;5831:12;5793:52;-1:-1:-1;5498:390:46;5879:2;5864:18;;;;;-1:-1:-1;5498:390:46:o;6248:127::-;6309:10;6304:3;6300:20;6297:1;6290:31;6340:4;6337:1;6330:15;6364:4;6361:1;6354:15;6380:255;6452:2;6446:9;6494:6;6482:19;;6531:18;6516:34;;6552:22;;;6513:62;6510:88;;;6578:18;;:::i;:::-;6614:2;6607:22;6380:255;:::o;6640:275::-;6711:2;6705:9;6776:2;6757:13;;-1:-1:-1;;6753:27:46;6741:40;;6811:18;6796:34;;6832:22;;;6793:62;6790:88;;;6858:18;;:::i;:::-;6894:2;6887:22;6640:275;;-1:-1:-1;6640:275:46:o;6920:164::-;6996:13;;7045;;7038:21;7028:32;;7018:60;;7074:1;7071;7064:12;7089:772;7154:5;7207:3;7200:4;7192:6;7188:17;7184:27;7174:55;;7225:1;7222;7215:12;7174:55;7258:6;7252:13;7288:18;7280:6;7277:30;7274:56;;;7310:18;;:::i;:::-;7356:6;7353:1;7349:14;7383:30;7407:4;7403:2;7399:13;7383:30;:::i;:::-;7449:19;;;7493:4;7525:15;;;7521:26;;;7484:14;;;;7559:15;;;7556:35;;;7587:1;7584;7577:12;7556:35;7623:4;7615:6;7611:17;7600:28;;7637:193;7653:6;7648:3;7645:15;7637:193;;;7745:10;;7768:18;;7815:4;7670:14;;;;7806;;;;7637:193;;;7848:7;7089:772;-1:-1:-1;;;;;;7089:772:46:o;7866:1290::-;7959:6;8012:2;8000:9;7991:7;7987:23;7983:32;7980:52;;;8028:1;8025;8018:12;7980:52;8061:9;8055:16;8094:18;8086:6;8083:30;8080:50;;;8126:1;8123;8116:12;8080:50;8149:22;;8205:6;8187:16;;;8183:29;8180:49;;;8225:1;8222;8215:12;8180:49;8251:22;;:::i;:::-;8318:9;;8336:22;;8390:39;8425:2;8417:11;;8390:39;:::i;:::-;8385:2;8378:5;8374:14;8367:63;8469:2;8465;8461:11;8455:18;8498;8488:8;8485:32;8482:52;;;8530:1;8527;8520:12;8482:52;8566:67;8625:7;8614:8;8610:2;8606:17;8566:67;:::i;:::-;8561:2;8550:14;;8543:91;-1:-1:-1;8693:2:46;8685:11;;;8679:18;8713:14;;;8706:31;8796:3;8788:12;;;8782:19;8817:15;;;8810:32;8875:40;8910:3;8902:12;;8875:40;:::i;:::-;8869:3;8858:15;;8851:65;8975:3;8967:12;;;8961:19;8996:15;;;8989:32;9080:3;9072:12;;;9066:19;9101:15;;;9094:32;;;;8862:5;7866:1290;-1:-1:-1;;;7866:1290:46:o;9777:230::-;9847:6;9900:2;9888:9;9879:7;9875:23;9871:32;9868:52;;;9916:1;9913;9906:12;9868:52;-1:-1:-1;9961:16:46;;9777:230;-1:-1:-1;9777:230:46:o;10012:479::-;10200:2;10185:18;;10189:9;10280:6;10158:4;10314:171;10328:4;10325:1;10322:11;10314:171;;;10387:13;;10375:26;;10430:4;10421:14;;;;10458:17;;;;10348:1;10341:9;10314:171;;;10318:3;;;10012:479;;;;:::o;11218:905::-;11507:6;11496:9;11489:25;11550:6;11545:2;11534:9;11530:18;11523:34;11593:6;11588:2;11577:9;11573:18;11566:34;11650:6;11643:14;11636:22;11631:2;11620:9;11616:18;11609:50;11696:6;11690:3;11679:9;11675:19;11668:35;11740:3;11734;11723:9;11719:19;11712:32;11470:4;11773:6;11767:13;11817:6;11811:3;11800:9;11796:19;11789:35;11842:1;11852:141;11866:6;11863:1;11860:13;11852:141;;;11978:2;11962:14;;;11958:23;;11952:30;11946:3;11927:17;;;11923:27;11916:67;11881:10;11852:141;;;11856:3;12043:1;12037:3;12028:6;12017:9;12013:22;12009:32;12002:43;12113:3;12106:2;12102:7;12097:2;12089:6;12085:15;12081:29;12070:9;12066:45;12062:55;12054:63;;;11218:905;;;;;;;;;:::o;12742:202::-;12809:6;12862:2;12850:9;12841:7;12837:23;12833:32;12830:52;;;12878:1;12875;12868:12;12830:52;12901:37;12928:9;12901:37;:::i;13586:127::-;13647:10;13642:3;13638:20;13635:1;13628:31;13678:4;13675:1;13668:15;13702:4;13699:1;13692:15;13718:127;13779:10;13774:3;13770:20;13767:1;13760:31;13810:4;13807:1;13800:15;13834:4;13831:1;13824:15;13850:148;13938:4;13917:12;;;13931;;;13913:31;;13956:13;;13953:39;;;13972:18;;:::i;14003:480::-;14191:3;14176:19;;14180:9;14272:6;14149:4;14306:171;14320:4;14317:1;14314:11;14306:171;;;14379:13;;14367:26;;14422:4;14413:14;;;;14450:17;;;;14340:1;14333:9;14306:171;;14891:128;14958:9;;;14979:11;;;14976:37;;;14993:18;;:::i;16209:155::-;16300:6;16277:14;;;16293;;;16273:35;;16320:15;;16317:41;;;16338:18;;:::i;16369:297::-;16487:12;;16534:4;16523:16;;;16517:23;;16487:12;16552:16;;16549:111;;;-1:-1:-1;;16626:4:46;16622:17;;;;16619:1;16615:25;16611:38;16600:50;;16369:297;-1:-1:-1;16369:297:46:o;16671:125::-;16736:9;;;16757:10;;;16754:36;;;16770:18;;:::i" + }, + "methodIdentifiers": { + "IDENTITY_MAX_SMT_DEPTH()": "2c72e822", + "addClaim(IdentityLib.Data storage,uint256[8])": "e1f0eaa9", + "addClaimHash(IdentityLib.Data storage,uint256,uint256)": "06fb1575", + "calcIdentityState(IdentityLib.Data storage)": "1a3046d7", + "getClaimProof(IdentityLib.Data storage,uint256)": "00cf0890", + "getClaimProofByRoot(IdentityLib.Data storage,uint256,uint256)": "d5818b8e", + "getClaimProofWithStateInfo(IdentityLib.Data storage,uint256)": "d5a3b14e", + "getClaimsTreeRoot(IdentityLib.Data storage)": "6e2fe66c", + "getRevocationProof(IdentityLib.Data storage,uint64)": "7d0aba4f", + "getRevocationProofByRoot(IdentityLib.Data storage,uint64,uint256)": "16579a36", + "getRevocationProofWithStateInfo(IdentityLib.Data storage,uint64)": "f8b80268", + "getRevocationsTreeRoot(IdentityLib.Data storage)": "765c2c61", + "getRootProof(IdentityLib.Data storage,uint256)": "97ac5391", + "getRootProofByRoot(IdentityLib.Data storage,uint256,uint256)": "d55da6a3", + "getRootProofWithStateInfo(IdentityLib.Data storage,uint256)": "a3018d79", + "getRootsByState(IdentityLib.Data storage,uint256)": "0b1a9cd3", + "getRootsTreeRoot(IdentityLib.Data storage)": "1e75e7f3", + "initialize(IdentityLib.Data storage,address,address,uint256,bytes2)": "59a60691", + "revokeClaim(IdentityLib.Data storage,uint64)": "8ad7195d", + "transitState(IdentityLib.Data storage)": "2eb747d2" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"IDENTITY_MAX_SMT_DEPTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addClaim(IdentityLib.Data storage,uint256[8])\":{\"details\":\"Add claim\",\"params\":{\"claim\":\"- claim data\"}},\"addClaimHash(IdentityLib.Data storage,uint256,uint256)\":{\"details\":\"Add claim hash\",\"params\":{\"hashIndex\":\"- hash of claim index part\",\"hashValue\":\"- hash of claim value part\"}},\"calcIdentityState(IdentityLib.Data storage)\":{\"details\":\"Calculate IdentityState\",\"returns\":{\"_0\":\"IdentityState\"}},\"getClaimProof(IdentityLib.Data storage,uint256)\":{\"details\":\"Retrieve Claim inclusion or non-inclusion proof for a given claim index. Note that proof is taken for the latest published claims tree root.\",\"params\":{\"claimIndexHash\":\"- hash of Claim Index\"},\"returns\":{\"_0\":\"The ClaimsTree inclusion or non-inclusion proof for the claim\"}},\"getClaimProofByRoot(IdentityLib.Data storage,uint256,uint256)\":{\"details\":\"Retrieve Claim inclusion or non-inclusion proof for a given claim index by target root.\",\"params\":{\"claimIndexHash\":\"- hash of Claim Index\",\"root\":\"- root of the tree\"},\"returns\":{\"_0\":\"The ClaimsTree inclusion or non-inclusion proof for the claim\"}},\"getClaimProofWithStateInfo(IdentityLib.Data storage,uint256)\":{\"details\":\"Retrieve Claim inclusion or non-inclusion proof for a given claim index with state info. Note that proof is taken for the latest published claims tree root.\",\"params\":{\"claimIndexHash\":\"- hash of Claim Index\"},\"returns\":{\"_0\":\"The ClaimsTree inclusion or non-inclusion proof for the claim and state info\"}},\"getClaimsTreeRoot(IdentityLib.Data storage)\":{\"details\":\"Retrieve ClaimsTree latest root.\",\"returns\":{\"_0\":\"The latest ClaimsTree root\"}},\"getRevocationProof(IdentityLib.Data storage,uint64)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given revocation nonce. Note that proof is taken for the latest published revocation tree root.\",\"params\":{\"revocationNonce\":\"- revocation nonce\"},\"returns\":{\"_0\":\"The RevocationsTree inclusion or non-inclusion proof for the claim\"}},\"getRevocationProofByRoot(IdentityLib.Data storage,uint64,uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given revocation nonce by target root.\",\"params\":{\"revocationNonce\":\"- revocation nonce\",\"root\":\"- root of the tree\"},\"returns\":{\"_0\":\"The RevocationsTree inclusion or non-inclusion proof for the claim\"}},\"getRevocationProofWithStateInfo(IdentityLib.Data storage,uint64)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given revocation nonce with state info. Note that proof is taken for the latest published revocation tree root.\",\"params\":{\"revocationNonce\":\"- revocation nonce\"},\"returns\":{\"_0\":\"The RevocationsTree inclusion or non-inclusion proof for the claim and state info.\"}},\"getRevocationsTreeRoot(IdentityLib.Data storage)\":{\"details\":\"Retrieve RevocationsTree latest root.\",\"returns\":{\"_0\":\"The latest RevocationsTree root\"}},\"getRootProof(IdentityLib.Data storage,uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot. Note that proof is taken for the latest published roots tree root.\",\"params\":{\"rootsTreeRoot\":\"- roots tree root\"},\"returns\":{\"_0\":\"The RootsTree inclusion or non-inclusion proof for the roots tree root\"}},\"getRootProofByRoot(IdentityLib.Data storage,uint256,uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given claimsTreeRoot by target root.\",\"params\":{\"claimsTreeRoot\":\"- claims tree root\",\"root\":\"- root of the tree\"},\"returns\":{\"_0\":\"The RootsTree inclusion or non-inclusion proof for the claim tree root\"}},\"getRootProofWithStateInfo(IdentityLib.Data storage,uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot and state info. Note that proof is taken for the latest published roots tree root.\",\"params\":{\"rootsTreeRoot\":\"- roots tree root\"},\"returns\":{\"_0\":\"The RootsTree inclusion or non-inclusion proof for the roots tree root and state info.\"}},\"getRootsByState(IdentityLib.Data storage,uint256)\":{\"details\":\"returns historical claimsTree roots, revocationsTree roots, rootsTree roots by state\",\"params\":{\"state\":\"identity state\"},\"returns\":{\"_0\":\"set of roots\"}},\"getRootsTreeRoot(IdentityLib.Data storage)\":{\"details\":\"Retrieve RootsTree latest root.\",\"returns\":{\"_0\":\"The latest RootsTree root\"}},\"initialize(IdentityLib.Data storage,address,address,uint256,bytes2)\":{\"details\":\"Initialization of the library state variables\",\"params\":{\"_identityAddr\":\"- address of the Identity contract, which calls this function\",\"_stateContractAddr\":\"- address of the State contract\",\"depth\":\"- depth of identity SMTs\",\"idType\":\"- idType\"}},\"revokeClaim(IdentityLib.Data storage,uint64)\":{\"details\":\"Revoke claim using it's revocationNonce\",\"params\":{\"revocationNonce\":\"- revocation nonce\"}},\"transitState(IdentityLib.Data storage)\":{\"details\":\"Make state transition\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/IdentityLib.sol\":\"IdentityLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/interfaces/IState.sol\":{\"keccak256\":\"0x9ad1637f51eefacb8b80afab1a2568389da02142dfd0bddf2a769f8fe118f1d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://41253a4bb51672482bfb1207ccae04f5a173e47872f52240f5b94f0e24ccd64a\",\"dweb:/ipfs/QmfC7LpzWsUtPrDJvtT3swQ52nCZGVMC4SRtFVx3qZ5RFU\"]},\"@iden3/contracts/lib/ArrayUtils.sol\":{\"keccak256\":\"0x7c5e3f9c56e8e80811db1f1336a1e37c657947f44687451e5a1d6bd12e9e6141\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c9497d8d8fe9fc2b2c9d61bbdfa5a4eb881ddf8948bbc099024e5026fadd6846\",\"dweb:/ipfs/Qmczkk8FLcxpM91ZAWpixowBEdq64YVLke3ZqVDt3NkYiT\"]},\"@iden3/contracts/lib/GenesisUtils.sol\":{\"keccak256\":\"0xcd0456a57885d39010095d9642a4cbf8d723e975af6e3a7bcce6d2ed9d8adc05\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dd03b9ab5422c9b715399ea889e68a7e85b1caa0a74a1f7238dc1a8377f32a6e\",\"dweb:/ipfs/QmUUvKPdP6KuciKjKi9jKkiT4EezjdfdfJsAGaqfFCdRR2\"]},\"@iden3/contracts/lib/IdentityLib.sol\":{\"keccak256\":\"0x1bbb8fbe53fcc817c216b4fd1fed3936ab6659bf83ceb7cb10fa474bcc8812f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1ee97a30fcba35d3c269b58b628c9114df4b915ff413c6f2b85f2a2454a9b54e\",\"dweb:/ipfs/QmbopmBVWniJcMLdFMHg7wkRwC2uTpRNXWLLAuCKUaAFcD\"]},\"@iden3/contracts/lib/Poseidon.sol\":{\"keccak256\":\"0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539\",\"dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc\"]},\"@iden3/contracts/lib/PrimitiveTypeUtils.sol\":{\"keccak256\":\"0x3126dd4b236d36112a66f54ae70e791d153480248ab485373b4259b2498b7235\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f704ec7d5ee0bb109532a32f75d0457213c0852797a257392a95b64ed63b8b3a\",\"dweb:/ipfs/QmSAAH9gecdDxtrf52Pyq73g61GsKwPnBWYH1gzTiWUn3s\"]},\"@iden3/contracts/lib/SmtLib.sol\":{\"keccak256\":\"0x9c67be9b7d045ded48a63bd827a5bdc3f2255c68f9640bae41eef074640f1779\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f2b2452120f5b2b2c5589fcf58183f7d800d3f8a2c202ebdc3b69815bcfb2aa\",\"dweb:/ipfs/QmbnvLnfJaKL3eqt1CfXofsiLJ7G3nYTawUEqGpCazWbrQ\"]},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xf75784dfc94ea43668eb195d5690a1dde1b6eda62017e73a3899721583821d29\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://ca16cef8b94f3ac75d376489a668618f6c4595a906b939d674a883f4bf426014\",\"dweb:/ipfs/QmceGU7qhyFLSejaj6i4dEtMzXDCSF3aYDtW1UeKjXQaRn\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@iden3/contracts/lib/Poseidon.sol": { + "PoseidonFacade": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[1]", + "name": "el", + "type": "uint256[1]" + } + ], + "name": "poseidon1", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[2]", + "name": "el", + "type": "uint256[2]" + } + ], + "name": "poseidon2", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[3]", + "name": "el", + "type": "uint256[3]" + } + ], + "name": "poseidon3", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[4]", + "name": "el", + "type": "uint256[4]" + } + ], + "name": "poseidon4", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[5]", + "name": "el", + "type": "uint256[5]" + } + ], + "name": "poseidon5", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[6]", + "name": "el", + "type": "uint256[6]" + } + ], + "name": "poseidon6", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "el", + "type": "uint256[]" + } + ], + "name": "poseidonSponge", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": { + "@iden3/contracts/lib/Poseidon.sol": { + "PoseidonUnit1L": [ + { + "length": 20, + "start": 553 + } + ], + "PoseidonUnit2L": [ + { + "length": 20, + "start": 495 + } + ], + "PoseidonUnit3L": [ + { + "length": 20, + "start": 366 + } + ], + "PoseidonUnit4L": [ + { + "length": 20, + "start": 743 + } + ], + "PoseidonUnit5L": [ + { + "length": 20, + "start": 801 + } + ], + "PoseidonUnit6L": [ + { + "length": 20, + "start": 859 + } + ], + "SpongePoseidon": [ + { + "length": 20, + "start": 611 + } + ] + } + }, + "object": "610575610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c8063a8ba0b2811610065578063a8ba0b28146100d7578063ac490f26146100ea578063c2720d54146100fd578063db809cd51461011057600080fd5b806327babae21461008c57806347632628146100b15780638844c1a6146100c4575b600080fd5b61009f61009a36600461034a565b610123565b60405190815260200160405180910390f35b61009f6100bf366004610372565b6101a4565b61009f6100d2366004610394565b6101de565b61009f6100e53660046103b6565b610218565b61009f6100f836600461042d565b61029c565b61009f61010b36600461044f565b6102d6565b61009f61011e366004610471565b610310565b6040516304b98e1d60e31b815260009073__$03320550cd1b629da90608251571b2532e$__906325cc70e89061015d908590600401610493565b602060405180830381865af415801561017a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019e91906104a2565b92915050565b6040516314d2f97b60e11b815260009073__$ebe82a1924a894141c89e6680d3cbc7e88$__906329a5f2f69061015d9085906004016104bb565b604051631caab9a760e01b815260009073__$8f7e095f182f3470dd3dcaa5f47b253a9b$__90631caab9a79061015d9085906004016104ca565b6040516340ec6e4960e01b815260009073__$581a64dd30105ceace6de9764d2f405eec$__906340ec6e499061025490869086906004016104d9565b602060405180830381865af4158015610271573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029591906104a2565b9392505050565b60405163248f667760e01b815260009073__$2650005024f117ed9b6c57ec1bf6374b69$__9063248f66779061015d908590600401610512565b604051630926f44b60e31b815260009073__$7a833bd291b05f3a96939bc4c08dfa9199$__90634937a2589061015d908590600401610521565b604051631eb694f160e31b815260009073__$037d0ef5096c0205b2ca530e7bc3ca349a$__9063f5b4a7889061015d908590600401610530565b60006060828403121561035c57600080fd5b8260608301111561036c57600080fd5b50919050565b60006040828403121561038457600080fd5b8260408301111561036c57600080fd5b6000602082840312156103a657600080fd5b8260208301111561036c57600080fd5b600080602083850312156103c957600080fd5b823567ffffffffffffffff8111156103e057600080fd5b8301601f810185136103f157600080fd5b803567ffffffffffffffff81111561040857600080fd5b8560208260051b840101111561041d57600080fd5b6020919091019590945092505050565b60006080828403121561043f57600080fd5b8260808301111561036c57600080fd5b600060a0828403121561046157600080fd5b8260a08301111561036c57600080fd5b600060c0828403121561048357600080fd5b8260c08301111561036c57600080fd5b60608181019083833792915050565b6000602082840312156104b457600080fd5b5051919050565b60408181019083833792915050565b60208181019083833792915050565b6020808252810182905260006001600160fb1b038311156104f957600080fd5b8260051b80856040850137919091016040019392505050565b60808181019083833792915050565b60a08181019083833792915050565b60c0818101908383379291505056fea2646970667358221220476d10ca66eaf65cfdcbafa90dd1ed84ed386e3bfb9b0ff8345e61cac9685acf64736f6c634300081b0033", + "opcodes": "PUSH2 0x575 PUSH2 0x39 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2C 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 0x4 CALLDATASIZE LT PUSH2 0x87 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA8BA0B28 GT PUSH2 0x65 JUMPI DUP1 PUSH4 0xA8BA0B28 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0xAC490F26 EQ PUSH2 0xEA JUMPI DUP1 PUSH4 0xC2720D54 EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0xDB809CD5 EQ PUSH2 0x110 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x27BABAE2 EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x47632628 EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0x8844C1A6 EQ PUSH2 0xC4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9F PUSH2 0x9A CALLDATASIZE PUSH1 0x4 PUSH2 0x34A JUMP JUMPDEST PUSH2 0x123 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9F PUSH2 0xBF CALLDATASIZE PUSH1 0x4 PUSH2 0x372 JUMP JUMPDEST PUSH2 0x1A4 JUMP JUMPDEST PUSH2 0x9F PUSH2 0xD2 CALLDATASIZE PUSH1 0x4 PUSH2 0x394 JUMP JUMPDEST PUSH2 0x1DE JUMP JUMPDEST PUSH2 0x9F PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B6 JUMP JUMPDEST PUSH2 0x218 JUMP JUMPDEST PUSH2 0x9F PUSH2 0xF8 CALLDATASIZE PUSH1 0x4 PUSH2 0x42D JUMP JUMPDEST PUSH2 0x29C JUMP JUMPDEST PUSH2 0x9F PUSH2 0x10B CALLDATASIZE PUSH1 0x4 PUSH2 0x44F JUMP JUMPDEST PUSH2 0x2D6 JUMP JUMPDEST PUSH2 0x9F PUSH2 0x11E CALLDATASIZE PUSH1 0x4 PUSH2 0x471 JUMP JUMPDEST PUSH2 0x310 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4B98E1D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x25CC70E8 SWAP1 PUSH2 0x15D SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x493 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x17A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19E SWAP2 SWAP1 PUSH2 0x4A2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x14D2F97B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x29A5F2F6 SWAP1 PUSH2 0x15D SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x4BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1CAAB9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x1CAAB9A7 SWAP1 PUSH2 0x15D SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x4CA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x40EC6E49 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x40EC6E49 SWAP1 PUSH2 0x254 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4D9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x271 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x295 SWAP2 SWAP1 PUSH2 0x4A2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x248F6677 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x248F6677 SWAP1 PUSH2 0x15D SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x512 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x926F44B PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x4937A258 SWAP1 PUSH2 0x15D SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x521 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1EB694F1 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0xF5B4A788 SWAP1 PUSH2 0x15D SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x530 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x60 DUP4 ADD GT ISZERO PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x384 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x40 DUP4 ADD GT ISZERO PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP4 ADD GT ISZERO PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x3F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x408 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP5 ADD ADD GT ISZERO PUSH2 0x41D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x43F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x80 DUP4 ADD GT ISZERO PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0xA0 DUP4 ADD GT ISZERO PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x483 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0xC0 DUP4 ADD GT ISZERO PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 DUP2 DUP2 ADD SWAP1 DUP4 DUP4 CALLDATACOPY SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD SWAP1 DUP4 DUP4 CALLDATACOPY SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 DUP2 ADD SWAP1 DUP4 DUP4 CALLDATACOPY SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xFB SHL SUB DUP4 GT ISZERO PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x5 SHL DUP1 DUP6 PUSH1 0x40 DUP6 ADD CALLDATACOPY SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 DUP2 ADD SWAP1 DUP4 DUP4 CALLDATACOPY SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 DUP2 ADD SWAP1 DUP4 DUP4 CALLDATACOPY SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 DUP2 ADD SWAP1 DUP4 DUP4 CALLDATACOPY SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFBALANCE PUSH14 0x10CA66EAF65CFDCBAFA90DD1ED84 0xED CODESIZE PUSH15 0x3BFB9B0FF8345E61CAC9685ACF6473 PUSH16 0x6C634300081B00330000000000000000 ", + "sourceMap": "1616:935:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1616:935:9;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@poseidon1_2424": { + "entryPoint": 478, + "id": 2424, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@poseidon2_2439": { + "entryPoint": 420, + "id": 2439, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@poseidon3_2454": { + "entryPoint": 291, + "id": 2454, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@poseidon4_2469": { + "entryPoint": 668, + "id": 2469, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@poseidon5_2484": { + "entryPoint": 726, + "id": 2484, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@poseidon6_2499": { + "entryPoint": 784, + "id": 2499, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@poseidonSponge_2513": { + "entryPoint": 536, + "id": 2513, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$1_calldata_ptr": { + "entryPoint": 916, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptr": { + "entryPoint": 882, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$3_calldata_ptr": { + "entryPoint": 842, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$4_calldata_ptr": { + "entryPoint": 1069, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$5_calldata_ptr": { + "entryPoint": 1103, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$6_calldata_ptr": { + "entryPoint": 1137, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr": { + "entryPoint": 950, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 1186, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$1_calldata_ptr__to_t_array$_t_uint256_$1_memory_ptr__fromStack_library_reversed": { + "entryPoint": 1226, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$2_calldata_ptr__to_t_array$_t_uint256_$2_memory_ptr__fromStack_library_reversed": { + "entryPoint": 1211, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$3_calldata_ptr__to_t_array$_t_uint256_$3_memory_ptr__fromStack_library_reversed": { + "entryPoint": 1171, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$4_calldata_ptr__to_t_array$_t_uint256_$4_memory_ptr__fromStack_library_reversed": { + "entryPoint": 1298, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$5_calldata_ptr__to_t_array$_t_uint256_$5_memory_ptr__fromStack_library_reversed": { + "entryPoint": 1313, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$6_calldata_ptr__to_t_array$_t_uint256_$6_memory_ptr__fromStack_library_reversed": { + "entryPoint": 1328, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_library_reversed": { + "entryPoint": 1241, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:4497:46", + "nodeType": "YulBlock", + "src": "0:4497:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "109:156:46", + "nodeType": "YulBlock", + "src": "109:156:46", + "statements": [ + { + "body": { + "nativeSrc": "155:16:46", + "nodeType": "YulBlock", + "src": "155:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "164:1:46", + "nodeType": "YulLiteral", + "src": "164:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "167:1:46", + "nodeType": "YulLiteral", + "src": "167:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "157:6:46", + "nodeType": "YulIdentifier", + "src": "157:6:46" + }, + "nativeSrc": "157:12:46", + "nodeType": "YulFunctionCall", + "src": "157:12:46" + }, + "nativeSrc": "157:12:46", + "nodeType": "YulExpressionStatement", + "src": "157:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "130:7:46", + "nodeType": "YulIdentifier", + "src": "130:7:46" + }, + { + "name": "headStart", + "nativeSrc": "139:9:46", + "nodeType": "YulIdentifier", + "src": "139:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "126:3:46", + "nodeType": "YulIdentifier", + "src": "126:3:46" + }, + "nativeSrc": "126:23:46", + "nodeType": "YulFunctionCall", + "src": "126:23:46" + }, + { + "kind": "number", + "nativeSrc": "151:2:46", + "nodeType": "YulLiteral", + "src": "151:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "122:3:46", + "nodeType": "YulIdentifier", + "src": "122:3:46" + }, + "nativeSrc": "122:32:46", + "nodeType": "YulFunctionCall", + "src": "122:32:46" + }, + "nativeSrc": "119:52:46", + "nodeType": "YulIf", + "src": "119:52:46" + }, + { + "body": { + "nativeSrc": "215:16:46", + "nodeType": "YulBlock", + "src": "215:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "224:1:46", + "nodeType": "YulLiteral", + "src": "224:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "227:1:46", + "nodeType": "YulLiteral", + "src": "227:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "217:6:46", + "nodeType": "YulIdentifier", + "src": "217:6:46" + }, + "nativeSrc": "217:12:46", + "nodeType": "YulFunctionCall", + "src": "217:12:46" + }, + "nativeSrc": "217:12:46", + "nodeType": "YulExpressionStatement", + "src": "217:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "190:9:46", + "nodeType": "YulIdentifier", + "src": "190:9:46" + }, + { + "kind": "number", + "nativeSrc": "201:2:46", + "nodeType": "YulLiteral", + "src": "201:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "186:3:46", + "nodeType": "YulIdentifier", + "src": "186:3:46" + }, + "nativeSrc": "186:18:46", + "nodeType": "YulFunctionCall", + "src": "186:18:46" + }, + { + "name": "dataEnd", + "nativeSrc": "206:7:46", + "nodeType": "YulIdentifier", + "src": "206:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "183:2:46", + "nodeType": "YulIdentifier", + "src": "183:2:46" + }, + "nativeSrc": "183:31:46", + "nodeType": "YulFunctionCall", + "src": "183:31:46" + }, + "nativeSrc": "180:51:46", + "nodeType": "YulIf", + "src": "180:51:46" + }, + { + "nativeSrc": "240:19:46", + "nodeType": "YulAssignment", + "src": "240:19:46", + "value": { + "name": "headStart", + "nativeSrc": "250:9:46", + "nodeType": "YulIdentifier", + "src": "250:9:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "240:6:46", + "nodeType": "YulIdentifier", + "src": "240:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$3_calldata_ptr", + "nativeSrc": "14:251:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "75:9:46", + "nodeType": "YulTypedName", + "src": "75:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "86:7:46", + "nodeType": "YulTypedName", + "src": "86:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "98:6:46", + "nodeType": "YulTypedName", + "src": "98:6:46", + "type": "" + } + ], + "src": "14:251:46" + }, + { + "body": { + "nativeSrc": "379:76:46", + "nodeType": "YulBlock", + "src": "379:76:46", + "statements": [ + { + "nativeSrc": "389:26:46", + "nodeType": "YulAssignment", + "src": "389:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "401:9:46", + "nodeType": "YulIdentifier", + "src": "401:9:46" + }, + { + "kind": "number", + "nativeSrc": "412:2:46", + "nodeType": "YulLiteral", + "src": "412:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "397:3:46", + "nodeType": "YulIdentifier", + "src": "397:3:46" + }, + "nativeSrc": "397:18:46", + "nodeType": "YulFunctionCall", + "src": "397:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "389:4:46", + "nodeType": "YulIdentifier", + "src": "389:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "431:9:46", + "nodeType": "YulIdentifier", + "src": "431:9:46" + }, + { + "name": "value0", + "nativeSrc": "442:6:46", + "nodeType": "YulIdentifier", + "src": "442:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "424:6:46", + "nodeType": "YulIdentifier", + "src": "424:6:46" + }, + "nativeSrc": "424:25:46", + "nodeType": "YulFunctionCall", + "src": "424:25:46" + }, + "nativeSrc": "424:25:46", + "nodeType": "YulExpressionStatement", + "src": "424:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed", + "nativeSrc": "270:185:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "348:9:46", + "nodeType": "YulTypedName", + "src": "348:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "359:6:46", + "nodeType": "YulTypedName", + "src": "359:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "370:4:46", + "nodeType": "YulTypedName", + "src": "370:4:46", + "type": "" + } + ], + "src": "270:185:46" + }, + { + "body": { + "nativeSrc": "555:156:46", + "nodeType": "YulBlock", + "src": "555:156:46", + "statements": [ + { + "body": { + "nativeSrc": "601:16:46", + "nodeType": "YulBlock", + "src": "601:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "610:1:46", + "nodeType": "YulLiteral", + "src": "610:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "613:1:46", + "nodeType": "YulLiteral", + "src": "613:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "603:6:46", + "nodeType": "YulIdentifier", + "src": "603:6:46" + }, + "nativeSrc": "603:12:46", + "nodeType": "YulFunctionCall", + "src": "603:12:46" + }, + "nativeSrc": "603:12:46", + "nodeType": "YulExpressionStatement", + "src": "603:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "576:7:46", + "nodeType": "YulIdentifier", + "src": "576:7:46" + }, + { + "name": "headStart", + "nativeSrc": "585:9:46", + "nodeType": "YulIdentifier", + "src": "585:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "572:3:46", + "nodeType": "YulIdentifier", + "src": "572:3:46" + }, + "nativeSrc": "572:23:46", + "nodeType": "YulFunctionCall", + "src": "572:23:46" + }, + { + "kind": "number", + "nativeSrc": "597:2:46", + "nodeType": "YulLiteral", + "src": "597:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "568:3:46", + "nodeType": "YulIdentifier", + "src": "568:3:46" + }, + "nativeSrc": "568:32:46", + "nodeType": "YulFunctionCall", + "src": "568:32:46" + }, + "nativeSrc": "565:52:46", + "nodeType": "YulIf", + "src": "565:52:46" + }, + { + "body": { + "nativeSrc": "661:16:46", + "nodeType": "YulBlock", + "src": "661:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "670:1:46", + "nodeType": "YulLiteral", + "src": "670:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "673:1:46", + "nodeType": "YulLiteral", + "src": "673:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "663:6:46", + "nodeType": "YulIdentifier", + "src": "663:6:46" + }, + "nativeSrc": "663:12:46", + "nodeType": "YulFunctionCall", + "src": "663:12:46" + }, + "nativeSrc": "663:12:46", + "nodeType": "YulExpressionStatement", + "src": "663:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "636:9:46", + "nodeType": "YulIdentifier", + "src": "636:9:46" + }, + { + "kind": "number", + "nativeSrc": "647:2:46", + "nodeType": "YulLiteral", + "src": "647:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "632:3:46", + "nodeType": "YulIdentifier", + "src": "632:3:46" + }, + "nativeSrc": "632:18:46", + "nodeType": "YulFunctionCall", + "src": "632:18:46" + }, + { + "name": "dataEnd", + "nativeSrc": "652:7:46", + "nodeType": "YulIdentifier", + "src": "652:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "629:2:46", + "nodeType": "YulIdentifier", + "src": "629:2:46" + }, + "nativeSrc": "629:31:46", + "nodeType": "YulFunctionCall", + "src": "629:31:46" + }, + "nativeSrc": "626:51:46", + "nodeType": "YulIf", + "src": "626:51:46" + }, + { + "nativeSrc": "686:19:46", + "nodeType": "YulAssignment", + "src": "686:19:46", + "value": { + "name": "headStart", + "nativeSrc": "696:9:46", + "nodeType": "YulIdentifier", + "src": "696:9:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "686:6:46", + "nodeType": "YulIdentifier", + "src": "686:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptr", + "nativeSrc": "460:251:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "521:9:46", + "nodeType": "YulTypedName", + "src": "521:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "532:7:46", + "nodeType": "YulTypedName", + "src": "532:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "544:6:46", + "nodeType": "YulTypedName", + "src": "544:6:46", + "type": "" + } + ], + "src": "460:251:46" + }, + { + "body": { + "nativeSrc": "811:156:46", + "nodeType": "YulBlock", + "src": "811:156:46", + "statements": [ + { + "body": { + "nativeSrc": "857:16:46", + "nodeType": "YulBlock", + "src": "857:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "866:1:46", + "nodeType": "YulLiteral", + "src": "866:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "869:1:46", + "nodeType": "YulLiteral", + "src": "869:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "859:6:46", + "nodeType": "YulIdentifier", + "src": "859:6:46" + }, + "nativeSrc": "859:12:46", + "nodeType": "YulFunctionCall", + "src": "859:12:46" + }, + "nativeSrc": "859:12:46", + "nodeType": "YulExpressionStatement", + "src": "859:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "832:7:46", + "nodeType": "YulIdentifier", + "src": "832:7:46" + }, + { + "name": "headStart", + "nativeSrc": "841:9:46", + "nodeType": "YulIdentifier", + "src": "841:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "828:3:46", + "nodeType": "YulIdentifier", + "src": "828:3:46" + }, + "nativeSrc": "828:23:46", + "nodeType": "YulFunctionCall", + "src": "828:23:46" + }, + { + "kind": "number", + "nativeSrc": "853:2:46", + "nodeType": "YulLiteral", + "src": "853:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "824:3:46", + "nodeType": "YulIdentifier", + "src": "824:3:46" + }, + "nativeSrc": "824:32:46", + "nodeType": "YulFunctionCall", + "src": "824:32:46" + }, + "nativeSrc": "821:52:46", + "nodeType": "YulIf", + "src": "821:52:46" + }, + { + "body": { + "nativeSrc": "917:16:46", + "nodeType": "YulBlock", + "src": "917:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "926:1:46", + "nodeType": "YulLiteral", + "src": "926:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "929:1:46", + "nodeType": "YulLiteral", + "src": "929:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "919:6:46", + "nodeType": "YulIdentifier", + "src": "919:6:46" + }, + "nativeSrc": "919:12:46", + "nodeType": "YulFunctionCall", + "src": "919:12:46" + }, + "nativeSrc": "919:12:46", + "nodeType": "YulExpressionStatement", + "src": "919:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "892:9:46", + "nodeType": "YulIdentifier", + "src": "892:9:46" + }, + { + "kind": "number", + "nativeSrc": "903:2:46", + "nodeType": "YulLiteral", + "src": "903:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "888:3:46", + "nodeType": "YulIdentifier", + "src": "888:3:46" + }, + "nativeSrc": "888:18:46", + "nodeType": "YulFunctionCall", + "src": "888:18:46" + }, + { + "name": "dataEnd", + "nativeSrc": "908:7:46", + "nodeType": "YulIdentifier", + "src": "908:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "885:2:46", + "nodeType": "YulIdentifier", + "src": "885:2:46" + }, + "nativeSrc": "885:31:46", + "nodeType": "YulFunctionCall", + "src": "885:31:46" + }, + "nativeSrc": "882:51:46", + "nodeType": "YulIf", + "src": "882:51:46" + }, + { + "nativeSrc": "942:19:46", + "nodeType": "YulAssignment", + "src": "942:19:46", + "value": { + "name": "headStart", + "nativeSrc": "952:9:46", + "nodeType": "YulIdentifier", + "src": "952:9:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "942:6:46", + "nodeType": "YulIdentifier", + "src": "942:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$1_calldata_ptr", + "nativeSrc": "716:251:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "777:9:46", + "nodeType": "YulTypedName", + "src": "777:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "788:7:46", + "nodeType": "YulTypedName", + "src": "788:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "800:6:46", + "nodeType": "YulTypedName", + "src": "800:6:46", + "type": "" + } + ], + "src": "716:251:46" + }, + { + "body": { + "nativeSrc": "1077:505:46", + "nodeType": "YulBlock", + "src": "1077:505:46", + "statements": [ + { + "body": { + "nativeSrc": "1123:16:46", + "nodeType": "YulBlock", + "src": "1123:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1132:1:46", + "nodeType": "YulLiteral", + "src": "1132:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1135:1:46", + "nodeType": "YulLiteral", + "src": "1135:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1125:6:46", + "nodeType": "YulIdentifier", + "src": "1125:6:46" + }, + "nativeSrc": "1125:12:46", + "nodeType": "YulFunctionCall", + "src": "1125:12:46" + }, + "nativeSrc": "1125:12:46", + "nodeType": "YulExpressionStatement", + "src": "1125:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1098:7:46", + "nodeType": "YulIdentifier", + "src": "1098:7:46" + }, + { + "name": "headStart", + "nativeSrc": "1107:9:46", + "nodeType": "YulIdentifier", + "src": "1107:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1094:3:46", + "nodeType": "YulIdentifier", + "src": "1094:3:46" + }, + "nativeSrc": "1094:23:46", + "nodeType": "YulFunctionCall", + "src": "1094:23:46" + }, + { + "kind": "number", + "nativeSrc": "1119:2:46", + "nodeType": "YulLiteral", + "src": "1119:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1090:3:46", + "nodeType": "YulIdentifier", + "src": "1090:3:46" + }, + "nativeSrc": "1090:32:46", + "nodeType": "YulFunctionCall", + "src": "1090:32:46" + }, + "nativeSrc": "1087:52:46", + "nodeType": "YulIf", + "src": "1087:52:46" + }, + { + "nativeSrc": "1148:37:46", + "nodeType": "YulVariableDeclaration", + "src": "1148:37:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1175:9:46", + "nodeType": "YulIdentifier", + "src": "1175:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1162:12:46", + "nodeType": "YulIdentifier", + "src": "1162:12:46" + }, + "nativeSrc": "1162:23:46", + "nodeType": "YulFunctionCall", + "src": "1162:23:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "1152:6:46", + "nodeType": "YulTypedName", + "src": "1152:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1228:16:46", + "nodeType": "YulBlock", + "src": "1228:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1237:1:46", + "nodeType": "YulLiteral", + "src": "1237:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1240:1:46", + "nodeType": "YulLiteral", + "src": "1240:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1230:6:46", + "nodeType": "YulIdentifier", + "src": "1230:6:46" + }, + "nativeSrc": "1230:12:46", + "nodeType": "YulFunctionCall", + "src": "1230:12:46" + }, + "nativeSrc": "1230:12:46", + "nodeType": "YulExpressionStatement", + "src": "1230:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "1200:6:46", + "nodeType": "YulIdentifier", + "src": "1200:6:46" + }, + { + "kind": "number", + "nativeSrc": "1208:18:46", + "nodeType": "YulLiteral", + "src": "1208:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1197:2:46", + "nodeType": "YulIdentifier", + "src": "1197:2:46" + }, + "nativeSrc": "1197:30:46", + "nodeType": "YulFunctionCall", + "src": "1197:30:46" + }, + "nativeSrc": "1194:50:46", + "nodeType": "YulIf", + "src": "1194:50:46" + }, + { + "nativeSrc": "1253:32:46", + "nodeType": "YulVariableDeclaration", + "src": "1253:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1267:9:46", + "nodeType": "YulIdentifier", + "src": "1267:9:46" + }, + { + "name": "offset", + "nativeSrc": "1278:6:46", + "nodeType": "YulIdentifier", + "src": "1278:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1263:3:46", + "nodeType": "YulIdentifier", + "src": "1263:3:46" + }, + "nativeSrc": "1263:22:46", + "nodeType": "YulFunctionCall", + "src": "1263:22:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "1257:2:46", + "nodeType": "YulTypedName", + "src": "1257:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1333:16:46", + "nodeType": "YulBlock", + "src": "1333:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1342:1:46", + "nodeType": "YulLiteral", + "src": "1342:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1345:1:46", + "nodeType": "YulLiteral", + "src": "1345:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1335:6:46", + "nodeType": "YulIdentifier", + "src": "1335:6:46" + }, + "nativeSrc": "1335:12:46", + "nodeType": "YulFunctionCall", + "src": "1335:12:46" + }, + "nativeSrc": "1335:12:46", + "nodeType": "YulExpressionStatement", + "src": "1335:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "1312:2:46", + "nodeType": "YulIdentifier", + "src": "1312:2:46" + }, + { + "kind": "number", + "nativeSrc": "1316:4:46", + "nodeType": "YulLiteral", + "src": "1316:4:46", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1308:3:46", + "nodeType": "YulIdentifier", + "src": "1308:3:46" + }, + "nativeSrc": "1308:13:46", + "nodeType": "YulFunctionCall", + "src": "1308:13:46" + }, + { + "name": "dataEnd", + "nativeSrc": "1323:7:46", + "nodeType": "YulIdentifier", + "src": "1323:7:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1304:3:46", + "nodeType": "YulIdentifier", + "src": "1304:3:46" + }, + "nativeSrc": "1304:27:46", + "nodeType": "YulFunctionCall", + "src": "1304:27:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1297:6:46", + "nodeType": "YulIdentifier", + "src": "1297:6:46" + }, + "nativeSrc": "1297:35:46", + "nodeType": "YulFunctionCall", + "src": "1297:35:46" + }, + "nativeSrc": "1294:55:46", + "nodeType": "YulIf", + "src": "1294:55:46" + }, + { + "nativeSrc": "1358:30:46", + "nodeType": "YulVariableDeclaration", + "src": "1358:30:46", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "1385:2:46", + "nodeType": "YulIdentifier", + "src": "1385:2:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1372:12:46", + "nodeType": "YulIdentifier", + "src": "1372:12:46" + }, + "nativeSrc": "1372:16:46", + "nodeType": "YulFunctionCall", + "src": "1372:16:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "1362:6:46", + "nodeType": "YulTypedName", + "src": "1362:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1431:16:46", + "nodeType": "YulBlock", + "src": "1431:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1440:1:46", + "nodeType": "YulLiteral", + "src": "1440:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1443:1:46", + "nodeType": "YulLiteral", + "src": "1443:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1433:6:46", + "nodeType": "YulIdentifier", + "src": "1433:6:46" + }, + "nativeSrc": "1433:12:46", + "nodeType": "YulFunctionCall", + "src": "1433:12:46" + }, + "nativeSrc": "1433:12:46", + "nodeType": "YulExpressionStatement", + "src": "1433:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "1403:6:46", + "nodeType": "YulIdentifier", + "src": "1403:6:46" + }, + { + "kind": "number", + "nativeSrc": "1411:18:46", + "nodeType": "YulLiteral", + "src": "1411:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1400:2:46", + "nodeType": "YulIdentifier", + "src": "1400:2:46" + }, + "nativeSrc": "1400:30:46", + "nodeType": "YulFunctionCall", + "src": "1400:30:46" + }, + "nativeSrc": "1397:50:46", + "nodeType": "YulIf", + "src": "1397:50:46" + }, + { + "body": { + "nativeSrc": "1505:16:46", + "nodeType": "YulBlock", + "src": "1505:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1514:1:46", + "nodeType": "YulLiteral", + "src": "1514:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1517:1:46", + "nodeType": "YulLiteral", + "src": "1517:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1507:6:46", + "nodeType": "YulIdentifier", + "src": "1507:6:46" + }, + "nativeSrc": "1507:12:46", + "nodeType": "YulFunctionCall", + "src": "1507:12:46" + }, + "nativeSrc": "1507:12:46", + "nodeType": "YulExpressionStatement", + "src": "1507:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "1470:2:46", + "nodeType": "YulIdentifier", + "src": "1470:2:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1478:1:46", + "nodeType": "YulLiteral", + "src": "1478:1:46", + "type": "", + "value": "5" + }, + { + "name": "length", + "nativeSrc": "1481:6:46", + "nodeType": "YulIdentifier", + "src": "1481:6:46" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1474:3:46", + "nodeType": "YulIdentifier", + "src": "1474:3:46" + }, + "nativeSrc": "1474:14:46", + "nodeType": "YulFunctionCall", + "src": "1474:14:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1466:3:46", + "nodeType": "YulIdentifier", + "src": "1466:3:46" + }, + "nativeSrc": "1466:23:46", + "nodeType": "YulFunctionCall", + "src": "1466:23:46" + }, + { + "kind": "number", + "nativeSrc": "1491:2:46", + "nodeType": "YulLiteral", + "src": "1491:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1462:3:46", + "nodeType": "YulIdentifier", + "src": "1462:3:46" + }, + "nativeSrc": "1462:32:46", + "nodeType": "YulFunctionCall", + "src": "1462:32:46" + }, + { + "name": "dataEnd", + "nativeSrc": "1496:7:46", + "nodeType": "YulIdentifier", + "src": "1496:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1459:2:46", + "nodeType": "YulIdentifier", + "src": "1459:2:46" + }, + "nativeSrc": "1459:45:46", + "nodeType": "YulFunctionCall", + "src": "1459:45:46" + }, + "nativeSrc": "1456:65:46", + "nodeType": "YulIf", + "src": "1456:65:46" + }, + { + "nativeSrc": "1530:21:46", + "nodeType": "YulAssignment", + "src": "1530:21:46", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "1544:2:46", + "nodeType": "YulIdentifier", + "src": "1544:2:46" + }, + { + "kind": "number", + "nativeSrc": "1548:2:46", + "nodeType": "YulLiteral", + "src": "1548:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1540:3:46", + "nodeType": "YulIdentifier", + "src": "1540:3:46" + }, + "nativeSrc": "1540:11:46", + "nodeType": "YulFunctionCall", + "src": "1540:11:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1530:6:46", + "nodeType": "YulIdentifier", + "src": "1530:6:46" + } + ] + }, + { + "nativeSrc": "1560:16:46", + "nodeType": "YulAssignment", + "src": "1560:16:46", + "value": { + "name": "length", + "nativeSrc": "1570:6:46", + "nodeType": "YulIdentifier", + "src": "1570:6:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "1560:6:46", + "nodeType": "YulIdentifier", + "src": "1560:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr", + "nativeSrc": "972:610:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1035:9:46", + "nodeType": "YulTypedName", + "src": "1035:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1046:7:46", + "nodeType": "YulTypedName", + "src": "1046:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1058:6:46", + "nodeType": "YulTypedName", + "src": "1058:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1066:6:46", + "nodeType": "YulTypedName", + "src": "1066:6:46", + "type": "" + } + ], + "src": "972:610:46" + }, + { + "body": { + "nativeSrc": "1682:158:46", + "nodeType": "YulBlock", + "src": "1682:158:46", + "statements": [ + { + "body": { + "nativeSrc": "1729:16:46", + "nodeType": "YulBlock", + "src": "1729:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1738:1:46", + "nodeType": "YulLiteral", + "src": "1738:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1741:1:46", + "nodeType": "YulLiteral", + "src": "1741:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1731:6:46", + "nodeType": "YulIdentifier", + "src": "1731:6:46" + }, + "nativeSrc": "1731:12:46", + "nodeType": "YulFunctionCall", + "src": "1731:12:46" + }, + "nativeSrc": "1731:12:46", + "nodeType": "YulExpressionStatement", + "src": "1731:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1703:7:46", + "nodeType": "YulIdentifier", + "src": "1703:7:46" + }, + { + "name": "headStart", + "nativeSrc": "1712:9:46", + "nodeType": "YulIdentifier", + "src": "1712:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1699:3:46", + "nodeType": "YulIdentifier", + "src": "1699:3:46" + }, + "nativeSrc": "1699:23:46", + "nodeType": "YulFunctionCall", + "src": "1699:23:46" + }, + { + "kind": "number", + "nativeSrc": "1724:3:46", + "nodeType": "YulLiteral", + "src": "1724:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1695:3:46", + "nodeType": "YulIdentifier", + "src": "1695:3:46" + }, + "nativeSrc": "1695:33:46", + "nodeType": "YulFunctionCall", + "src": "1695:33:46" + }, + "nativeSrc": "1692:53:46", + "nodeType": "YulIf", + "src": "1692:53:46" + }, + { + "body": { + "nativeSrc": "1790:16:46", + "nodeType": "YulBlock", + "src": "1790:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1799:1:46", + "nodeType": "YulLiteral", + "src": "1799:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1802:1:46", + "nodeType": "YulLiteral", + "src": "1802:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1792:6:46", + "nodeType": "YulIdentifier", + "src": "1792:6:46" + }, + "nativeSrc": "1792:12:46", + "nodeType": "YulFunctionCall", + "src": "1792:12:46" + }, + "nativeSrc": "1792:12:46", + "nodeType": "YulExpressionStatement", + "src": "1792:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1764:9:46", + "nodeType": "YulIdentifier", + "src": "1764:9:46" + }, + { + "kind": "number", + "nativeSrc": "1775:3:46", + "nodeType": "YulLiteral", + "src": "1775:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1760:3:46", + "nodeType": "YulIdentifier", + "src": "1760:3:46" + }, + "nativeSrc": "1760:19:46", + "nodeType": "YulFunctionCall", + "src": "1760:19:46" + }, + { + "name": "dataEnd", + "nativeSrc": "1781:7:46", + "nodeType": "YulIdentifier", + "src": "1781:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1757:2:46", + "nodeType": "YulIdentifier", + "src": "1757:2:46" + }, + "nativeSrc": "1757:32:46", + "nodeType": "YulFunctionCall", + "src": "1757:32:46" + }, + "nativeSrc": "1754:52:46", + "nodeType": "YulIf", + "src": "1754:52:46" + }, + { + "nativeSrc": "1815:19:46", + "nodeType": "YulAssignment", + "src": "1815:19:46", + "value": { + "name": "headStart", + "nativeSrc": "1825:9:46", + "nodeType": "YulIdentifier", + "src": "1825:9:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1815:6:46", + "nodeType": "YulIdentifier", + "src": "1815:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$4_calldata_ptr", + "nativeSrc": "1587:253:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1648:9:46", + "nodeType": "YulTypedName", + "src": "1648:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1659:7:46", + "nodeType": "YulTypedName", + "src": "1659:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1671:6:46", + "nodeType": "YulTypedName", + "src": "1671:6:46", + "type": "" + } + ], + "src": "1587:253:46" + }, + { + "body": { + "nativeSrc": "1940:158:46", + "nodeType": "YulBlock", + "src": "1940:158:46", + "statements": [ + { + "body": { + "nativeSrc": "1987:16:46", + "nodeType": "YulBlock", + "src": "1987:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1996:1:46", + "nodeType": "YulLiteral", + "src": "1996:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1999:1:46", + "nodeType": "YulLiteral", + "src": "1999:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1989:6:46", + "nodeType": "YulIdentifier", + "src": "1989:6:46" + }, + "nativeSrc": "1989:12:46", + "nodeType": "YulFunctionCall", + "src": "1989:12:46" + }, + "nativeSrc": "1989:12:46", + "nodeType": "YulExpressionStatement", + "src": "1989:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "1961:7:46", + "nodeType": "YulIdentifier", + "src": "1961:7:46" + }, + { + "name": "headStart", + "nativeSrc": "1970:9:46", + "nodeType": "YulIdentifier", + "src": "1970:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1957:3:46", + "nodeType": "YulIdentifier", + "src": "1957:3:46" + }, + "nativeSrc": "1957:23:46", + "nodeType": "YulFunctionCall", + "src": "1957:23:46" + }, + { + "kind": "number", + "nativeSrc": "1982:3:46", + "nodeType": "YulLiteral", + "src": "1982:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "1953:3:46", + "nodeType": "YulIdentifier", + "src": "1953:3:46" + }, + "nativeSrc": "1953:33:46", + "nodeType": "YulFunctionCall", + "src": "1953:33:46" + }, + "nativeSrc": "1950:53:46", + "nodeType": "YulIf", + "src": "1950:53:46" + }, + { + "body": { + "nativeSrc": "2048:16:46", + "nodeType": "YulBlock", + "src": "2048:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2057:1:46", + "nodeType": "YulLiteral", + "src": "2057:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2060:1:46", + "nodeType": "YulLiteral", + "src": "2060:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2050:6:46", + "nodeType": "YulIdentifier", + "src": "2050:6:46" + }, + "nativeSrc": "2050:12:46", + "nodeType": "YulFunctionCall", + "src": "2050:12:46" + }, + "nativeSrc": "2050:12:46", + "nodeType": "YulExpressionStatement", + "src": "2050:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2022:9:46", + "nodeType": "YulIdentifier", + "src": "2022:9:46" + }, + { + "kind": "number", + "nativeSrc": "2033:3:46", + "nodeType": "YulLiteral", + "src": "2033:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2018:3:46", + "nodeType": "YulIdentifier", + "src": "2018:3:46" + }, + "nativeSrc": "2018:19:46", + "nodeType": "YulFunctionCall", + "src": "2018:19:46" + }, + { + "name": "dataEnd", + "nativeSrc": "2039:7:46", + "nodeType": "YulIdentifier", + "src": "2039:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2015:2:46", + "nodeType": "YulIdentifier", + "src": "2015:2:46" + }, + "nativeSrc": "2015:32:46", + "nodeType": "YulFunctionCall", + "src": "2015:32:46" + }, + "nativeSrc": "2012:52:46", + "nodeType": "YulIf", + "src": "2012:52:46" + }, + { + "nativeSrc": "2073:19:46", + "nodeType": "YulAssignment", + "src": "2073:19:46", + "value": { + "name": "headStart", + "nativeSrc": "2083:9:46", + "nodeType": "YulIdentifier", + "src": "2083:9:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2073:6:46", + "nodeType": "YulIdentifier", + "src": "2073:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$5_calldata_ptr", + "nativeSrc": "1845:253:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1906:9:46", + "nodeType": "YulTypedName", + "src": "1906:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "1917:7:46", + "nodeType": "YulTypedName", + "src": "1917:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "1929:6:46", + "nodeType": "YulTypedName", + "src": "1929:6:46", + "type": "" + } + ], + "src": "1845:253:46" + }, + { + "body": { + "nativeSrc": "2198:158:46", + "nodeType": "YulBlock", + "src": "2198:158:46", + "statements": [ + { + "body": { + "nativeSrc": "2245:16:46", + "nodeType": "YulBlock", + "src": "2245:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2254:1:46", + "nodeType": "YulLiteral", + "src": "2254:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2257:1:46", + "nodeType": "YulLiteral", + "src": "2257:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2247:6:46", + "nodeType": "YulIdentifier", + "src": "2247:6:46" + }, + "nativeSrc": "2247:12:46", + "nodeType": "YulFunctionCall", + "src": "2247:12:46" + }, + "nativeSrc": "2247:12:46", + "nodeType": "YulExpressionStatement", + "src": "2247:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2219:7:46", + "nodeType": "YulIdentifier", + "src": "2219:7:46" + }, + { + "name": "headStart", + "nativeSrc": "2228:9:46", + "nodeType": "YulIdentifier", + "src": "2228:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2215:3:46", + "nodeType": "YulIdentifier", + "src": "2215:3:46" + }, + "nativeSrc": "2215:23:46", + "nodeType": "YulFunctionCall", + "src": "2215:23:46" + }, + { + "kind": "number", + "nativeSrc": "2240:3:46", + "nodeType": "YulLiteral", + "src": "2240:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2211:3:46", + "nodeType": "YulIdentifier", + "src": "2211:3:46" + }, + "nativeSrc": "2211:33:46", + "nodeType": "YulFunctionCall", + "src": "2211:33:46" + }, + "nativeSrc": "2208:53:46", + "nodeType": "YulIf", + "src": "2208:53:46" + }, + { + "body": { + "nativeSrc": "2306:16:46", + "nodeType": "YulBlock", + "src": "2306:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2315:1:46", + "nodeType": "YulLiteral", + "src": "2315:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2318:1:46", + "nodeType": "YulLiteral", + "src": "2318:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2308:6:46", + "nodeType": "YulIdentifier", + "src": "2308:6:46" + }, + "nativeSrc": "2308:12:46", + "nodeType": "YulFunctionCall", + "src": "2308:12:46" + }, + "nativeSrc": "2308:12:46", + "nodeType": "YulExpressionStatement", + "src": "2308:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2280:9:46", + "nodeType": "YulIdentifier", + "src": "2280:9:46" + }, + { + "kind": "number", + "nativeSrc": "2291:3:46", + "nodeType": "YulLiteral", + "src": "2291:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2276:3:46", + "nodeType": "YulIdentifier", + "src": "2276:3:46" + }, + "nativeSrc": "2276:19:46", + "nodeType": "YulFunctionCall", + "src": "2276:19:46" + }, + { + "name": "dataEnd", + "nativeSrc": "2297:7:46", + "nodeType": "YulIdentifier", + "src": "2297:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "2273:2:46", + "nodeType": "YulIdentifier", + "src": "2273:2:46" + }, + "nativeSrc": "2273:32:46", + "nodeType": "YulFunctionCall", + "src": "2273:32:46" + }, + "nativeSrc": "2270:52:46", + "nodeType": "YulIf", + "src": "2270:52:46" + }, + { + "nativeSrc": "2331:19:46", + "nodeType": "YulAssignment", + "src": "2331:19:46", + "value": { + "name": "headStart", + "nativeSrc": "2341:9:46", + "nodeType": "YulIdentifier", + "src": "2341:9:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2331:6:46", + "nodeType": "YulIdentifier", + "src": "2331:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$6_calldata_ptr", + "nativeSrc": "2103:253:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2164:9:46", + "nodeType": "YulTypedName", + "src": "2164:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2175:7:46", + "nodeType": "YulTypedName", + "src": "2175:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2187:6:46", + "nodeType": "YulTypedName", + "src": "2187:6:46", + "type": "" + } + ], + "src": "2103:253:46" + }, + { + "body": { + "nativeSrc": "2518:86:46", + "nodeType": "YulBlock", + "src": "2518:86:46", + "statements": [ + { + "nativeSrc": "2528:26:46", + "nodeType": "YulAssignment", + "src": "2528:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2540:9:46", + "nodeType": "YulIdentifier", + "src": "2540:9:46" + }, + { + "kind": "number", + "nativeSrc": "2551:2:46", + "nodeType": "YulLiteral", + "src": "2551:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2536:3:46", + "nodeType": "YulIdentifier", + "src": "2536:3:46" + }, + "nativeSrc": "2536:18:46", + "nodeType": "YulFunctionCall", + "src": "2536:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2528:4:46", + "nodeType": "YulIdentifier", + "src": "2528:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2576:9:46", + "nodeType": "YulIdentifier", + "src": "2576:9:46" + }, + { + "name": "value0", + "nativeSrc": "2587:6:46", + "nodeType": "YulIdentifier", + "src": "2587:6:46" + }, + { + "kind": "number", + "nativeSrc": "2595:2:46", + "nodeType": "YulLiteral", + "src": "2595:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "2563:12:46", + "nodeType": "YulIdentifier", + "src": "2563:12:46" + }, + "nativeSrc": "2563:35:46", + "nodeType": "YulFunctionCall", + "src": "2563:35:46" + }, + "nativeSrc": "2563:35:46", + "nodeType": "YulExpressionStatement", + "src": "2563:35:46" + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$3_calldata_ptr__to_t_array$_t_uint256_$3_memory_ptr__fromStack_library_reversed", + "nativeSrc": "2361:243:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2487:9:46", + "nodeType": "YulTypedName", + "src": "2487:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2498:6:46", + "nodeType": "YulTypedName", + "src": "2498:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2509:4:46", + "nodeType": "YulTypedName", + "src": "2509:4:46", + "type": "" + } + ], + "src": "2361:243:46" + }, + { + "body": { + "nativeSrc": "2690:103:46", + "nodeType": "YulBlock", + "src": "2690:103:46", + "statements": [ + { + "body": { + "nativeSrc": "2736:16:46", + "nodeType": "YulBlock", + "src": "2736:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2745:1:46", + "nodeType": "YulLiteral", + "src": "2745:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2748:1:46", + "nodeType": "YulLiteral", + "src": "2748:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2738:6:46", + "nodeType": "YulIdentifier", + "src": "2738:6:46" + }, + "nativeSrc": "2738:12:46", + "nodeType": "YulFunctionCall", + "src": "2738:12:46" + }, + "nativeSrc": "2738:12:46", + "nodeType": "YulExpressionStatement", + "src": "2738:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2711:7:46", + "nodeType": "YulIdentifier", + "src": "2711:7:46" + }, + { + "name": "headStart", + "nativeSrc": "2720:9:46", + "nodeType": "YulIdentifier", + "src": "2720:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2707:3:46", + "nodeType": "YulIdentifier", + "src": "2707:3:46" + }, + "nativeSrc": "2707:23:46", + "nodeType": "YulFunctionCall", + "src": "2707:23:46" + }, + { + "kind": "number", + "nativeSrc": "2732:2:46", + "nodeType": "YulLiteral", + "src": "2732:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2703:3:46", + "nodeType": "YulIdentifier", + "src": "2703:3:46" + }, + "nativeSrc": "2703:32:46", + "nodeType": "YulFunctionCall", + "src": "2703:32:46" + }, + "nativeSrc": "2700:52:46", + "nodeType": "YulIf", + "src": "2700:52:46" + }, + { + "nativeSrc": "2761:26:46", + "nodeType": "YulAssignment", + "src": "2761:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2777:9:46", + "nodeType": "YulIdentifier", + "src": "2777:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2771:5:46", + "nodeType": "YulIdentifier", + "src": "2771:5:46" + }, + "nativeSrc": "2771:16:46", + "nodeType": "YulFunctionCall", + "src": "2771:16:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2761:6:46", + "nodeType": "YulIdentifier", + "src": "2761:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nativeSrc": "2609:184:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2656:9:46", + "nodeType": "YulTypedName", + "src": "2656:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2667:7:46", + "nodeType": "YulTypedName", + "src": "2667:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2679:6:46", + "nodeType": "YulTypedName", + "src": "2679:6:46", + "type": "" + } + ], + "src": "2609:184:46" + }, + { + "body": { + "nativeSrc": "2955:86:46", + "nodeType": "YulBlock", + "src": "2955:86:46", + "statements": [ + { + "nativeSrc": "2965:26:46", + "nodeType": "YulAssignment", + "src": "2965:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2977:9:46", + "nodeType": "YulIdentifier", + "src": "2977:9:46" + }, + { + "kind": "number", + "nativeSrc": "2988:2:46", + "nodeType": "YulLiteral", + "src": "2988:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2973:3:46", + "nodeType": "YulIdentifier", + "src": "2973:3:46" + }, + "nativeSrc": "2973:18:46", + "nodeType": "YulFunctionCall", + "src": "2973:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2965:4:46", + "nodeType": "YulIdentifier", + "src": "2965:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3013:9:46", + "nodeType": "YulIdentifier", + "src": "3013:9:46" + }, + { + "name": "value0", + "nativeSrc": "3024:6:46", + "nodeType": "YulIdentifier", + "src": "3024:6:46" + }, + { + "kind": "number", + "nativeSrc": "3032:2:46", + "nodeType": "YulLiteral", + "src": "3032:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "3000:12:46", + "nodeType": "YulIdentifier", + "src": "3000:12:46" + }, + "nativeSrc": "3000:35:46", + "nodeType": "YulFunctionCall", + "src": "3000:35:46" + }, + "nativeSrc": "3000:35:46", + "nodeType": "YulExpressionStatement", + "src": "3000:35:46" + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$2_calldata_ptr__to_t_array$_t_uint256_$2_memory_ptr__fromStack_library_reversed", + "nativeSrc": "2798:243:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2924:9:46", + "nodeType": "YulTypedName", + "src": "2924:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2935:6:46", + "nodeType": "YulTypedName", + "src": "2935:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2946:4:46", + "nodeType": "YulTypedName", + "src": "2946:4:46", + "type": "" + } + ], + "src": "2798:243:46" + }, + { + "body": { + "nativeSrc": "3203:86:46", + "nodeType": "YulBlock", + "src": "3203:86:46", + "statements": [ + { + "nativeSrc": "3213:26:46", + "nodeType": "YulAssignment", + "src": "3213:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3225:9:46", + "nodeType": "YulIdentifier", + "src": "3225:9:46" + }, + { + "kind": "number", + "nativeSrc": "3236:2:46", + "nodeType": "YulLiteral", + "src": "3236:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3221:3:46", + "nodeType": "YulIdentifier", + "src": "3221:3:46" + }, + "nativeSrc": "3221:18:46", + "nodeType": "YulFunctionCall", + "src": "3221:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3213:4:46", + "nodeType": "YulIdentifier", + "src": "3213:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3261:9:46", + "nodeType": "YulIdentifier", + "src": "3261:9:46" + }, + { + "name": "value0", + "nativeSrc": "3272:6:46", + "nodeType": "YulIdentifier", + "src": "3272:6:46" + }, + { + "kind": "number", + "nativeSrc": "3280:2:46", + "nodeType": "YulLiteral", + "src": "3280:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "3248:12:46", + "nodeType": "YulIdentifier", + "src": "3248:12:46" + }, + "nativeSrc": "3248:35:46", + "nodeType": "YulFunctionCall", + "src": "3248:35:46" + }, + "nativeSrc": "3248:35:46", + "nodeType": "YulExpressionStatement", + "src": "3248:35:46" + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$1_calldata_ptr__to_t_array$_t_uint256_$1_memory_ptr__fromStack_library_reversed", + "nativeSrc": "3046:243:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3172:9:46", + "nodeType": "YulTypedName", + "src": "3172:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3183:6:46", + "nodeType": "YulTypedName", + "src": "3183:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3194:4:46", + "nodeType": "YulTypedName", + "src": "3194:4:46", + "type": "" + } + ], + "src": "3046:243:46" + }, + { + "body": { + "nativeSrc": "3463:282:46", + "nodeType": "YulBlock", + "src": "3463:282:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3480:9:46", + "nodeType": "YulIdentifier", + "src": "3480:9:46" + }, + { + "kind": "number", + "nativeSrc": "3491:2:46", + "nodeType": "YulLiteral", + "src": "3491:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3473:6:46", + "nodeType": "YulIdentifier", + "src": "3473:6:46" + }, + "nativeSrc": "3473:21:46", + "nodeType": "YulFunctionCall", + "src": "3473:21:46" + }, + "nativeSrc": "3473:21:46", + "nodeType": "YulExpressionStatement", + "src": "3473:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3514:9:46", + "nodeType": "YulIdentifier", + "src": "3514:9:46" + }, + { + "kind": "number", + "nativeSrc": "3525:2:46", + "nodeType": "YulLiteral", + "src": "3525:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3510:3:46", + "nodeType": "YulIdentifier", + "src": "3510:3:46" + }, + "nativeSrc": "3510:18:46", + "nodeType": "YulFunctionCall", + "src": "3510:18:46" + }, + { + "name": "value1", + "nativeSrc": "3530:6:46", + "nodeType": "YulIdentifier", + "src": "3530:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3503:6:46", + "nodeType": "YulIdentifier", + "src": "3503:6:46" + }, + "nativeSrc": "3503:34:46", + "nodeType": "YulFunctionCall", + "src": "3503:34:46" + }, + "nativeSrc": "3503:34:46", + "nodeType": "YulExpressionStatement", + "src": "3503:34:46" + }, + { + "body": { + "nativeSrc": "3581:16:46", + "nodeType": "YulBlock", + "src": "3581:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3590:1:46", + "nodeType": "YulLiteral", + "src": "3590:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3593:1:46", + "nodeType": "YulLiteral", + "src": "3593:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3583:6:46", + "nodeType": "YulIdentifier", + "src": "3583:6:46" + }, + "nativeSrc": "3583:12:46", + "nodeType": "YulFunctionCall", + "src": "3583:12:46" + }, + "nativeSrc": "3583:12:46", + "nodeType": "YulExpressionStatement", + "src": "3583:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "3552:6:46", + "nodeType": "YulIdentifier", + "src": "3552:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3568:3:46", + "nodeType": "YulLiteral", + "src": "3568:3:46", + "type": "", + "value": "251" + }, + { + "kind": "number", + "nativeSrc": "3573:1:46", + "nodeType": "YulLiteral", + "src": "3573:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "3564:3:46", + "nodeType": "YulIdentifier", + "src": "3564:3:46" + }, + "nativeSrc": "3564:11:46", + "nodeType": "YulFunctionCall", + "src": "3564:11:46" + }, + { + "kind": "number", + "nativeSrc": "3577:1:46", + "nodeType": "YulLiteral", + "src": "3577:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3560:3:46", + "nodeType": "YulIdentifier", + "src": "3560:3:46" + }, + "nativeSrc": "3560:19:46", + "nodeType": "YulFunctionCall", + "src": "3560:19:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "3549:2:46", + "nodeType": "YulIdentifier", + "src": "3549:2:46" + }, + "nativeSrc": "3549:31:46", + "nodeType": "YulFunctionCall", + "src": "3549:31:46" + }, + "nativeSrc": "3546:51:46", + "nodeType": "YulIf", + "src": "3546:51:46" + }, + { + "nativeSrc": "3606:28:46", + "nodeType": "YulVariableDeclaration", + "src": "3606:28:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3624:1:46", + "nodeType": "YulLiteral", + "src": "3624:1:46", + "type": "", + "value": "5" + }, + { + "name": "value1", + "nativeSrc": "3627:6:46", + "nodeType": "YulIdentifier", + "src": "3627:6:46" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "3620:3:46", + "nodeType": "YulIdentifier", + "src": "3620:3:46" + }, + "nativeSrc": "3620:14:46", + "nodeType": "YulFunctionCall", + "src": "3620:14:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "3610:6:46", + "nodeType": "YulTypedName", + "src": "3610:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3660:9:46", + "nodeType": "YulIdentifier", + "src": "3660:9:46" + }, + { + "kind": "number", + "nativeSrc": "3671:2:46", + "nodeType": "YulLiteral", + "src": "3671:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3656:3:46", + "nodeType": "YulIdentifier", + "src": "3656:3:46" + }, + "nativeSrc": "3656:18:46", + "nodeType": "YulFunctionCall", + "src": "3656:18:46" + }, + { + "name": "value0", + "nativeSrc": "3676:6:46", + "nodeType": "YulIdentifier", + "src": "3676:6:46" + }, + { + "name": "length", + "nativeSrc": "3684:6:46", + "nodeType": "YulIdentifier", + "src": "3684:6:46" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "3643:12:46", + "nodeType": "YulIdentifier", + "src": "3643:12:46" + }, + "nativeSrc": "3643:48:46", + "nodeType": "YulFunctionCall", + "src": "3643:48:46" + }, + "nativeSrc": "3643:48:46", + "nodeType": "YulExpressionStatement", + "src": "3643:48:46" + }, + { + "nativeSrc": "3700:39:46", + "nodeType": "YulAssignment", + "src": "3700:39:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3716:9:46", + "nodeType": "YulIdentifier", + "src": "3716:9:46" + }, + { + "name": "length", + "nativeSrc": "3727:6:46", + "nodeType": "YulIdentifier", + "src": "3727:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3712:3:46", + "nodeType": "YulIdentifier", + "src": "3712:3:46" + }, + "nativeSrc": "3712:22:46", + "nodeType": "YulFunctionCall", + "src": "3712:22:46" + }, + { + "kind": "number", + "nativeSrc": "3736:2:46", + "nodeType": "YulLiteral", + "src": "3736:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3708:3:46", + "nodeType": "YulIdentifier", + "src": "3708:3:46" + }, + "nativeSrc": "3708:31:46", + "nodeType": "YulFunctionCall", + "src": "3708:31:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3700:4:46", + "nodeType": "YulIdentifier", + "src": "3700:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_library_reversed", + "nativeSrc": "3294:451:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3424:9:46", + "nodeType": "YulTypedName", + "src": "3424:9:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3435:6:46", + "nodeType": "YulTypedName", + "src": "3435:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3443:6:46", + "nodeType": "YulTypedName", + "src": "3443:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3454:4:46", + "nodeType": "YulTypedName", + "src": "3454:4:46", + "type": "" + } + ], + "src": "3294:451:46" + }, + { + "body": { + "nativeSrc": "3907:88:46", + "nodeType": "YulBlock", + "src": "3907:88:46", + "statements": [ + { + "nativeSrc": "3917:27:46", + "nodeType": "YulAssignment", + "src": "3917:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3929:9:46", + "nodeType": "YulIdentifier", + "src": "3929:9:46" + }, + { + "kind": "number", + "nativeSrc": "3940:3:46", + "nodeType": "YulLiteral", + "src": "3940:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3925:3:46", + "nodeType": "YulIdentifier", + "src": "3925:3:46" + }, + "nativeSrc": "3925:19:46", + "nodeType": "YulFunctionCall", + "src": "3925:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3917:4:46", + "nodeType": "YulIdentifier", + "src": "3917:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3966:9:46", + "nodeType": "YulIdentifier", + "src": "3966:9:46" + }, + { + "name": "value0", + "nativeSrc": "3977:6:46", + "nodeType": "YulIdentifier", + "src": "3977:6:46" + }, + { + "kind": "number", + "nativeSrc": "3985:3:46", + "nodeType": "YulLiteral", + "src": "3985:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "3953:12:46", + "nodeType": "YulIdentifier", + "src": "3953:12:46" + }, + "nativeSrc": "3953:36:46", + "nodeType": "YulFunctionCall", + "src": "3953:36:46" + }, + "nativeSrc": "3953:36:46", + "nodeType": "YulExpressionStatement", + "src": "3953:36:46" + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$4_calldata_ptr__to_t_array$_t_uint256_$4_memory_ptr__fromStack_library_reversed", + "nativeSrc": "3750:245:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3876:9:46", + "nodeType": "YulTypedName", + "src": "3876:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3887:6:46", + "nodeType": "YulTypedName", + "src": "3887:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3898:4:46", + "nodeType": "YulTypedName", + "src": "3898:4:46", + "type": "" + } + ], + "src": "3750:245:46" + }, + { + "body": { + "nativeSrc": "4157:88:46", + "nodeType": "YulBlock", + "src": "4157:88:46", + "statements": [ + { + "nativeSrc": "4167:27:46", + "nodeType": "YulAssignment", + "src": "4167:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4179:9:46", + "nodeType": "YulIdentifier", + "src": "4179:9:46" + }, + { + "kind": "number", + "nativeSrc": "4190:3:46", + "nodeType": "YulLiteral", + "src": "4190:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4175:3:46", + "nodeType": "YulIdentifier", + "src": "4175:3:46" + }, + "nativeSrc": "4175:19:46", + "nodeType": "YulFunctionCall", + "src": "4175:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4167:4:46", + "nodeType": "YulIdentifier", + "src": "4167:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4216:9:46", + "nodeType": "YulIdentifier", + "src": "4216:9:46" + }, + { + "name": "value0", + "nativeSrc": "4227:6:46", + "nodeType": "YulIdentifier", + "src": "4227:6:46" + }, + { + "kind": "number", + "nativeSrc": "4235:3:46", + "nodeType": "YulLiteral", + "src": "4235:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "4203:12:46", + "nodeType": "YulIdentifier", + "src": "4203:12:46" + }, + "nativeSrc": "4203:36:46", + "nodeType": "YulFunctionCall", + "src": "4203:36:46" + }, + "nativeSrc": "4203:36:46", + "nodeType": "YulExpressionStatement", + "src": "4203:36:46" + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$5_calldata_ptr__to_t_array$_t_uint256_$5_memory_ptr__fromStack_library_reversed", + "nativeSrc": "4000:245:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4126:9:46", + "nodeType": "YulTypedName", + "src": "4126:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4137:6:46", + "nodeType": "YulTypedName", + "src": "4137:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4148:4:46", + "nodeType": "YulTypedName", + "src": "4148:4:46", + "type": "" + } + ], + "src": "4000:245:46" + }, + { + "body": { + "nativeSrc": "4407:88:46", + "nodeType": "YulBlock", + "src": "4407:88:46", + "statements": [ + { + "nativeSrc": "4417:27:46", + "nodeType": "YulAssignment", + "src": "4417:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4429:9:46", + "nodeType": "YulIdentifier", + "src": "4429:9:46" + }, + { + "kind": "number", + "nativeSrc": "4440:3:46", + "nodeType": "YulLiteral", + "src": "4440:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4425:3:46", + "nodeType": "YulIdentifier", + "src": "4425:3:46" + }, + "nativeSrc": "4425:19:46", + "nodeType": "YulFunctionCall", + "src": "4425:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4417:4:46", + "nodeType": "YulIdentifier", + "src": "4417:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4466:9:46", + "nodeType": "YulIdentifier", + "src": "4466:9:46" + }, + { + "name": "value0", + "nativeSrc": "4477:6:46", + "nodeType": "YulIdentifier", + "src": "4477:6:46" + }, + { + "kind": "number", + "nativeSrc": "4485:3:46", + "nodeType": "YulLiteral", + "src": "4485:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "4453:12:46", + "nodeType": "YulIdentifier", + "src": "4453:12:46" + }, + "nativeSrc": "4453:36:46", + "nodeType": "YulFunctionCall", + "src": "4453:36:46" + }, + "nativeSrc": "4453:36:46", + "nodeType": "YulExpressionStatement", + "src": "4453:36:46" + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$6_calldata_ptr__to_t_array$_t_uint256_$6_memory_ptr__fromStack_library_reversed", + "nativeSrc": "4250:245:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4376:9:46", + "nodeType": "YulTypedName", + "src": "4376:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4387:6:46", + "nodeType": "YulTypedName", + "src": "4387:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4398:4:46", + "nodeType": "YulTypedName", + "src": "4398:4:46", + "type": "" + } + ], + "src": "4250:245:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_tuple_t_array$_t_uint256_$3_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n if gt(add(headStart, 96), dataEnd) { revert(0, 0) }\n value0 := headStart\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n if gt(add(headStart, 64), dataEnd) { revert(0, 0) }\n value0 := headStart\n }\n function abi_decode_tuple_t_array$_t_uint256_$1_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n if gt(add(headStart, 32), dataEnd) { revert(0, 0) }\n value0 := headStart\n }\n function abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n if gt(add(add(_1, shl(5, length)), 32), dataEnd) { revert(0, 0) }\n value0 := add(_1, 32)\n value1 := length\n }\n function abi_decode_tuple_t_array$_t_uint256_$4_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n if gt(add(headStart, 128), dataEnd) { revert(0, 0) }\n value0 := headStart\n }\n function abi_decode_tuple_t_array$_t_uint256_$5_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n if gt(add(headStart, 160), dataEnd) { revert(0, 0) }\n value0 := headStart\n }\n function abi_decode_tuple_t_array$_t_uint256_$6_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n if gt(add(headStart, 192), dataEnd) { revert(0, 0) }\n value0 := headStart\n }\n function abi_encode_tuple_t_array$_t_uint256_$3_calldata_ptr__to_t_array$_t_uint256_$3_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 96)\n calldatacopy(headStart, value0, 96)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_array$_t_uint256_$2_calldata_ptr__to_t_array$_t_uint256_$2_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 64)\n calldatacopy(headStart, value0, 64)\n }\n function abi_encode_tuple_t_array$_t_uint256_$1_calldata_ptr__to_t_array$_t_uint256_$1_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n calldatacopy(headStart, value0, 32)\n }\n function abi_encode_tuple_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_library_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), value1)\n if gt(value1, sub(shl(251, 1), 1)) { revert(0, 0) }\n let length := shl(5, value1)\n calldatacopy(add(headStart, 64), value0, length)\n tail := add(add(headStart, length), 64)\n }\n function abi_encode_tuple_t_array$_t_uint256_$4_calldata_ptr__to_t_array$_t_uint256_$4_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 128)\n calldatacopy(headStart, value0, 128)\n }\n function abi_encode_tuple_t_array$_t_uint256_$5_calldata_ptr__to_t_array$_t_uint256_$5_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 160)\n calldatacopy(headStart, value0, 160)\n }\n function abi_encode_tuple_t_array$_t_uint256_$6_calldata_ptr__to_t_array$_t_uint256_$6_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 192)\n calldatacopy(headStart, value0, 192)\n }\n}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": { + "@iden3/contracts/lib/Poseidon.sol": { + "PoseidonUnit1L": [ + { + "length": 20, + "start": 496 + } + ], + "PoseidonUnit2L": [ + { + "length": 20, + "start": 438 + } + ], + "PoseidonUnit3L": [ + { + "length": 20, + "start": 309 + } + ], + "PoseidonUnit4L": [ + { + "length": 20, + "start": 686 + } + ], + "PoseidonUnit5L": [ + { + "length": 20, + "start": 744 + } + ], + "PoseidonUnit6L": [ + { + "length": 20, + "start": 802 + } + ], + "SpongePoseidon": [ + { + "length": 20, + "start": 554 + } + ] + } + }, + "object": "73000000000000000000000000000000000000000030146080604052600436106100875760003560e01c8063a8ba0b2811610065578063a8ba0b28146100d7578063ac490f26146100ea578063c2720d54146100fd578063db809cd51461011057600080fd5b806327babae21461008c57806347632628146100b15780638844c1a6146100c4575b600080fd5b61009f61009a36600461034a565b610123565b60405190815260200160405180910390f35b61009f6100bf366004610372565b6101a4565b61009f6100d2366004610394565b6101de565b61009f6100e53660046103b6565b610218565b61009f6100f836600461042d565b61029c565b61009f61010b36600461044f565b6102d6565b61009f61011e366004610471565b610310565b6040516304b98e1d60e31b815260009073__$03320550cd1b629da90608251571b2532e$__906325cc70e89061015d908590600401610493565b602060405180830381865af415801561017a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061019e91906104a2565b92915050565b6040516314d2f97b60e11b815260009073__$ebe82a1924a894141c89e6680d3cbc7e88$__906329a5f2f69061015d9085906004016104bb565b604051631caab9a760e01b815260009073__$8f7e095f182f3470dd3dcaa5f47b253a9b$__90631caab9a79061015d9085906004016104ca565b6040516340ec6e4960e01b815260009073__$581a64dd30105ceace6de9764d2f405eec$__906340ec6e499061025490869086906004016104d9565b602060405180830381865af4158015610271573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029591906104a2565b9392505050565b60405163248f667760e01b815260009073__$2650005024f117ed9b6c57ec1bf6374b69$__9063248f66779061015d908590600401610512565b604051630926f44b60e31b815260009073__$7a833bd291b05f3a96939bc4c08dfa9199$__90634937a2589061015d908590600401610521565b604051631eb694f160e31b815260009073__$037d0ef5096c0205b2ca530e7bc3ca349a$__9063f5b4a7889061015d908590600401610530565b60006060828403121561035c57600080fd5b8260608301111561036c57600080fd5b50919050565b60006040828403121561038457600080fd5b8260408301111561036c57600080fd5b6000602082840312156103a657600080fd5b8260208301111561036c57600080fd5b600080602083850312156103c957600080fd5b823567ffffffffffffffff8111156103e057600080fd5b8301601f810185136103f157600080fd5b803567ffffffffffffffff81111561040857600080fd5b8560208260051b840101111561041d57600080fd5b6020919091019590945092505050565b60006080828403121561043f57600080fd5b8260808301111561036c57600080fd5b600060a0828403121561046157600080fd5b8260a08301111561036c57600080fd5b600060c0828403121561048357600080fd5b8260c08301111561036c57600080fd5b60608181019083833792915050565b6000602082840312156104b457600080fd5b5051919050565b60408181019083833792915050565b60208181019083833792915050565b6020808252810182905260006001600160fb1b038311156104f957600080fd5b8260051b80856040850137919091016040019392505050565b60808181019083833792915050565b60a08181019083833792915050565b60c0818101908383379291505056fea2646970667358221220476d10ca66eaf65cfdcbafa90dd1ed84ed386e3bfb9b0ff8345e61cac9685acf64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x87 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA8BA0B28 GT PUSH2 0x65 JUMPI DUP1 PUSH4 0xA8BA0B28 EQ PUSH2 0xD7 JUMPI DUP1 PUSH4 0xAC490F26 EQ PUSH2 0xEA JUMPI DUP1 PUSH4 0xC2720D54 EQ PUSH2 0xFD JUMPI DUP1 PUSH4 0xDB809CD5 EQ PUSH2 0x110 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x27BABAE2 EQ PUSH2 0x8C JUMPI DUP1 PUSH4 0x47632628 EQ PUSH2 0xB1 JUMPI DUP1 PUSH4 0x8844C1A6 EQ PUSH2 0xC4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9F PUSH2 0x9A CALLDATASIZE PUSH1 0x4 PUSH2 0x34A JUMP JUMPDEST PUSH2 0x123 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x9F PUSH2 0xBF CALLDATASIZE PUSH1 0x4 PUSH2 0x372 JUMP JUMPDEST PUSH2 0x1A4 JUMP JUMPDEST PUSH2 0x9F PUSH2 0xD2 CALLDATASIZE PUSH1 0x4 PUSH2 0x394 JUMP JUMPDEST PUSH2 0x1DE JUMP JUMPDEST PUSH2 0x9F PUSH2 0xE5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3B6 JUMP JUMPDEST PUSH2 0x218 JUMP JUMPDEST PUSH2 0x9F PUSH2 0xF8 CALLDATASIZE PUSH1 0x4 PUSH2 0x42D JUMP JUMPDEST PUSH2 0x29C JUMP JUMPDEST PUSH2 0x9F PUSH2 0x10B CALLDATASIZE PUSH1 0x4 PUSH2 0x44F JUMP JUMPDEST PUSH2 0x2D6 JUMP JUMPDEST PUSH2 0x9F PUSH2 0x11E CALLDATASIZE PUSH1 0x4 PUSH2 0x471 JUMP JUMPDEST PUSH2 0x310 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x4B98E1D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x25CC70E8 SWAP1 PUSH2 0x15D SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x493 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x17A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x19E SWAP2 SWAP1 PUSH2 0x4A2 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x14D2F97B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x29A5F2F6 SWAP1 PUSH2 0x15D SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x4BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1CAAB9A7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x1CAAB9A7 SWAP1 PUSH2 0x15D SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x4CA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x40EC6E49 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x40EC6E49 SWAP1 PUSH2 0x254 SWAP1 DUP7 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x4D9 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x271 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x295 SWAP2 SWAP1 PUSH2 0x4A2 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x248F6677 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x248F6677 SWAP1 PUSH2 0x15D SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x512 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x926F44B PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0x4937A258 SWAP1 PUSH2 0x15D SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x521 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1EB694F1 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x0 SWAP1 PUSH20 0x0 SWAP1 PUSH4 0xF5B4A788 SWAP1 PUSH2 0x15D SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x530 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x35C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x60 DUP4 ADD GT ISZERO PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x384 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x40 DUP4 ADD GT ISZERO PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP4 ADD GT ISZERO PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x3F1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x408 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP6 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP5 ADD ADD GT ISZERO PUSH2 0x41D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x43F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x80 DUP4 ADD GT ISZERO PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x461 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0xA0 DUP4 ADD GT ISZERO PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x483 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0xC0 DUP4 ADD GT ISZERO PUSH2 0x36C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 DUP2 DUP2 ADD SWAP1 DUP4 DUP4 CALLDATACOPY SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x4B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 DUP2 ADD SWAP1 DUP4 DUP4 CALLDATACOPY SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 DUP2 ADD SWAP1 DUP4 DUP4 CALLDATACOPY SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xFB SHL SUB DUP4 GT ISZERO PUSH2 0x4F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x5 SHL DUP1 DUP6 PUSH1 0x40 DUP6 ADD CALLDATACOPY SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 DUP2 DUP2 ADD SWAP1 DUP4 DUP4 CALLDATACOPY SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 DUP2 ADD SWAP1 DUP4 DUP4 CALLDATACOPY SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 DUP2 ADD SWAP1 DUP4 DUP4 CALLDATACOPY SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SELFBALANCE PUSH14 0x10CA66EAF65CFDCBAFA90DD1ED84 0xED CODESIZE PUSH15 0x3BFB9B0FF8345E61CAC9685ACF6473 PUSH16 0x6C634300081B00330000000000000000 ", + "sourceMap": "1616:935:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1905:124;;;;;;:::i;:::-;;:::i;:::-;;;424:25:46;;;412:2;397:18;1905:124:9;;;;;;;1775;;;;;;:::i;:::-;;:::i;1645:::-;;;;;;:::i;:::-;;:::i;2425:::-;;;;;;:::i;:::-;;:::i;2035:::-;;;;;;:::i;:::-;;:::i;2165:::-;;;;;;:::i;:::-;;:::i;2295:::-;;;;;;:::i;:::-;;:::i;1905:::-;1995:27;;-1:-1:-1;;;1995:27:9;;1969:7;;1995:14;;:23;;:27;;2019:2;;1995:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1988:34;1905:124;-1:-1:-1;;1905:124:9:o;1775:::-;1865:27;;-1:-1:-1;;;1865:27:9;;1839:7;;1865:14;;:23;;:27;;1889:2;;1865:27;;;:::i;1645:124::-;1735:27;;-1:-1:-1;;;1735:27:9;;1709:7;;1735:14;;:23;;:27;;1759:2;;1735:27;;;:::i;2425:124::-;2519:23;;-1:-1:-1;;;2519:23:9;;2493:7;;2519:14;;:19;;:23;;2539:2;;;;2519:23;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2512:30;2425:124;-1:-1:-1;;;2425:124:9:o;2035:::-;2125:27;;-1:-1:-1;;;2125:27:9;;2099:7;;2125:14;;:23;;:27;;2149:2;;2125:27;;;:::i;2165:124::-;2255:27;;-1:-1:-1;;;2255:27:9;;2229:7;;2255:14;;:23;;:27;;2279:2;;2255:27;;;:::i;2295:124::-;2385:27;;-1:-1:-1;;;2385:27:9;;2359:7;;2385:14;;:23;;:27;;2409:2;;2385:27;;;:::i;14:251:46:-;98:6;151:2;139:9;130:7;126:23;122:32;119:52;;;167:1;164;157:12;119:52;206:7;201:2;190:9;186:18;183:31;180:51;;;227:1;224;217:12;180:51;-1:-1:-1;250:9:46;14:251;-1:-1:-1;14:251:46:o;460:::-;544:6;597:2;585:9;576:7;572:23;568:32;565:52;;;613:1;610;603:12;565:52;652:7;647:2;636:9;632:18;629:31;626:51;;;673:1;670;663:12;716:251;800:6;853:2;841:9;832:7;828:23;824:32;821:52;;;869:1;866;859:12;821:52;908:7;903:2;892:9;888:18;885:31;882:51;;;929:1;926;919:12;972:610;1058:6;1066;1119:2;1107:9;1098:7;1094:23;1090:32;1087:52;;;1135:1;1132;1125:12;1087:52;1175:9;1162:23;1208:18;1200:6;1197:30;1194:50;;;1240:1;1237;1230:12;1194:50;1263:22;;1316:4;1308:13;;1304:27;-1:-1:-1;1294:55:46;;1345:1;1342;1335:12;1294:55;1385:2;1372:16;1411:18;1403:6;1400:30;1397:50;;;1443:1;1440;1433:12;1397:50;1496:7;1491:2;1481:6;1478:1;1474:14;1470:2;1466:23;1462:32;1459:45;1456:65;;;1517:1;1514;1507:12;1456:65;1548:2;1540:11;;;;;1570:6;;-1:-1:-1;972:610:46;-1:-1:-1;;;972:610:46:o;1587:253::-;1671:6;1724:3;1712:9;1703:7;1699:23;1695:33;1692:53;;;1741:1;1738;1731:12;1692:53;1781:7;1775:3;1764:9;1760:19;1757:32;1754:52;;;1802:1;1799;1792:12;1845:253;1929:6;1982:3;1970:9;1961:7;1957:23;1953:33;1950:53;;;1999:1;1996;1989:12;1950:53;2039:7;2033:3;2022:9;2018:19;2015:32;2012:52;;;2060:1;2057;2050:12;2103:253;2187:6;2240:3;2228:9;2219:7;2215:23;2211:33;2208:53;;;2257:1;2254;2247:12;2208:53;2297:7;2291:3;2280:9;2276:19;2273:32;2270:52;;;2318:1;2315;2308:12;2361:243;2551:2;2536:18;;;;2587:6;2540:9;2563:35;2361:243;;;;:::o;2609:184::-;2679:6;2732:2;2720:9;2711:7;2707:23;2703:32;2700:52;;;2748:1;2745;2738:12;2700:52;-1:-1:-1;2771:16:46;;2609:184;-1:-1:-1;2609:184:46:o;2798:243::-;2988:2;2973:18;;;;3024:6;2977:9;3000:35;2798:243;;;;:::o;3046:::-;3236:2;3221:18;;;;3272:6;3225:9;3248:35;3046:243;;;;:::o;3294:451::-;3491:2;3473:21;;;3510:18;;3503:34;;;-1:-1:-1;;;;;;3549:31:46;;3546:51;;;3593:1;3590;3583:12;3546:51;3627:6;3624:1;3620:14;3684:6;3676;3671:2;3660:9;3656:18;3643:48;3712:22;;;;3736:2;3708:31;;3294:451;-1:-1:-1;;;3294:451:46:o;3750:245::-;3940:3;3925:19;;;;3977:6;3929:9;3953:36;3750:245;;;;:::o;4000:::-;4190:3;4175:19;;;;4227:6;4179:9;4203:36;4000:245;;;;:::o;4250:::-;4440:3;4425:19;;;;4477:6;4429:9;4453:36;4250:245;;;;:::o" + }, + "methodIdentifiers": { + "poseidon1(uint256[1])": "8844c1a6", + "poseidon2(uint256[2])": "47632628", + "poseidon3(uint256[3])": "27babae2", + "poseidon4(uint256[4])": "ac490f26", + "poseidon5(uint256[5])": "c2720d54", + "poseidon6(uint256[6])": "db809cd5", + "poseidonSponge(uint256[])": "a8ba0b28" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[1]\",\"name\":\"el\",\"type\":\"uint256[1]\"}],\"name\":\"poseidon1\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"el\",\"type\":\"uint256[2]\"}],\"name\":\"poseidon2\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[3]\",\"name\":\"el\",\"type\":\"uint256[3]\"}],\"name\":\"poseidon3\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[4]\",\"name\":\"el\",\"type\":\"uint256[4]\"}],\"name\":\"poseidon4\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[5]\",\"name\":\"el\",\"type\":\"uint256[5]\"}],\"name\":\"poseidon5\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[6]\",\"name\":\"el\",\"type\":\"uint256[6]\"}],\"name\":\"poseidon6\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"el\",\"type\":\"uint256[]\"}],\"name\":\"poseidonSponge\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/Poseidon.sol\":\"PoseidonFacade\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/lib/Poseidon.sol\":{\"keccak256\":\"0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539\",\"dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + }, + "PoseidonUnit1L": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[1]", + "name": "", + "type": "uint256[1]" + } + ], + "name": "poseidon", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60b76037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c80631caab9a7146038575b600080fd5b60496043366004605b565b50600090565b60405190815260200160405180910390f35b600060208284031215606c57600080fd5b82602083011115607b57600080fd5b5091905056fea2646970667358221220d13eb71fd51a7aa0a9ab712960622da4b10aa9ac2c7df324b78bad0c3d17123364736f6c634300081b0033", + "opcodes": "PUSH1 0xB7 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 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1CAAB9A7 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x49 PUSH1 0x43 CALLDATASIZE PUSH1 0x4 PUSH1 0x5B JUMP JUMPDEST POP PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP4 ADD GT ISZERO PUSH1 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 RETURNDATACOPY 0xB7 0x1F 0xD5 BYTE PUSH27 0xA0A9AB712960622DA4B10AA9AC2C7DF324B78BAD0C3D1712336473 PUSH16 0x6C634300081B00330000000000000000 ", + "sourceMap": "61:102:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;61:102:9;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@poseidon_2229": { + "entryPoint": null, + "id": 2229, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$1_calldata_ptr": { + "entryPoint": 91, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:457:46", + "nodeType": "YulBlock", + "src": "0:457:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "109:156:46", + "nodeType": "YulBlock", + "src": "109:156:46", + "statements": [ + { + "body": { + "nativeSrc": "155:16:46", + "nodeType": "YulBlock", + "src": "155:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "164:1:46", + "nodeType": "YulLiteral", + "src": "164:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "167:1:46", + "nodeType": "YulLiteral", + "src": "167:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "157:6:46", + "nodeType": "YulIdentifier", + "src": "157:6:46" + }, + "nativeSrc": "157:12:46", + "nodeType": "YulFunctionCall", + "src": "157:12:46" + }, + "nativeSrc": "157:12:46", + "nodeType": "YulExpressionStatement", + "src": "157:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "130:7:46", + "nodeType": "YulIdentifier", + "src": "130:7:46" + }, + { + "name": "headStart", + "nativeSrc": "139:9:46", + "nodeType": "YulIdentifier", + "src": "139:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "126:3:46", + "nodeType": "YulIdentifier", + "src": "126:3:46" + }, + "nativeSrc": "126:23:46", + "nodeType": "YulFunctionCall", + "src": "126:23:46" + }, + { + "kind": "number", + "nativeSrc": "151:2:46", + "nodeType": "YulLiteral", + "src": "151:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "122:3:46", + "nodeType": "YulIdentifier", + "src": "122:3:46" + }, + "nativeSrc": "122:32:46", + "nodeType": "YulFunctionCall", + "src": "122:32:46" + }, + "nativeSrc": "119:52:46", + "nodeType": "YulIf", + "src": "119:52:46" + }, + { + "body": { + "nativeSrc": "215:16:46", + "nodeType": "YulBlock", + "src": "215:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "224:1:46", + "nodeType": "YulLiteral", + "src": "224:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "227:1:46", + "nodeType": "YulLiteral", + "src": "227:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "217:6:46", + "nodeType": "YulIdentifier", + "src": "217:6:46" + }, + "nativeSrc": "217:12:46", + "nodeType": "YulFunctionCall", + "src": "217:12:46" + }, + "nativeSrc": "217:12:46", + "nodeType": "YulExpressionStatement", + "src": "217:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "190:9:46", + "nodeType": "YulIdentifier", + "src": "190:9:46" + }, + { + "kind": "number", + "nativeSrc": "201:2:46", + "nodeType": "YulLiteral", + "src": "201:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "186:3:46", + "nodeType": "YulIdentifier", + "src": "186:3:46" + }, + "nativeSrc": "186:18:46", + "nodeType": "YulFunctionCall", + "src": "186:18:46" + }, + { + "name": "dataEnd", + "nativeSrc": "206:7:46", + "nodeType": "YulIdentifier", + "src": "206:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "183:2:46", + "nodeType": "YulIdentifier", + "src": "183:2:46" + }, + "nativeSrc": "183:31:46", + "nodeType": "YulFunctionCall", + "src": "183:31:46" + }, + "nativeSrc": "180:51:46", + "nodeType": "YulIf", + "src": "180:51:46" + }, + { + "nativeSrc": "240:19:46", + "nodeType": "YulAssignment", + "src": "240:19:46", + "value": { + "name": "headStart", + "nativeSrc": "250:9:46", + "nodeType": "YulIdentifier", + "src": "250:9:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "240:6:46", + "nodeType": "YulIdentifier", + "src": "240:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$1_calldata_ptr", + "nativeSrc": "14:251:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "75:9:46", + "nodeType": "YulTypedName", + "src": "75:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "86:7:46", + "nodeType": "YulTypedName", + "src": "86:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "98:6:46", + "nodeType": "YulTypedName", + "src": "98:6:46", + "type": "" + } + ], + "src": "14:251:46" + }, + { + "body": { + "nativeSrc": "379:76:46", + "nodeType": "YulBlock", + "src": "379:76:46", + "statements": [ + { + "nativeSrc": "389:26:46", + "nodeType": "YulAssignment", + "src": "389:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "401:9:46", + "nodeType": "YulIdentifier", + "src": "401:9:46" + }, + { + "kind": "number", + "nativeSrc": "412:2:46", + "nodeType": "YulLiteral", + "src": "412:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "397:3:46", + "nodeType": "YulIdentifier", + "src": "397:3:46" + }, + "nativeSrc": "397:18:46", + "nodeType": "YulFunctionCall", + "src": "397:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "389:4:46", + "nodeType": "YulIdentifier", + "src": "389:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "431:9:46", + "nodeType": "YulIdentifier", + "src": "431:9:46" + }, + { + "name": "value0", + "nativeSrc": "442:6:46", + "nodeType": "YulIdentifier", + "src": "442:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "424:6:46", + "nodeType": "YulIdentifier", + "src": "424:6:46" + }, + "nativeSrc": "424:25:46", + "nodeType": "YulFunctionCall", + "src": "424:25:46" + }, + "nativeSrc": "424:25:46", + "nodeType": "YulExpressionStatement", + "src": "424:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed", + "nativeSrc": "270:185:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "348:9:46", + "nodeType": "YulTypedName", + "src": "348:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "359:6:46", + "nodeType": "YulTypedName", + "src": "359:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "370:4:46", + "nodeType": "YulTypedName", + "src": "370:4:46", + "type": "" + } + ], + "src": "270:185:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_tuple_t_array$_t_uint256_$1_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n if gt(add(headStart, 32), dataEnd) { revert(0, 0) }\n value0 := headStart\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "730000000000000000000000000000000000000000301460806040526004361060335760003560e01c80631caab9a7146038575b600080fd5b60496043366004605b565b50600090565b60405190815260200160405180910390f35b600060208284031215606c57600080fd5b82602083011115607b57600080fd5b5091905056fea2646970667358221220d13eb71fd51a7aa0a9ab712960622da4b10aa9ac2c7df324b78bad0c3d17123364736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x1CAAB9A7 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x49 PUSH1 0x43 CALLDATASIZE PUSH1 0x4 PUSH1 0x5B JUMP JUMPDEST POP PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP4 ADD GT ISZERO PUSH1 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD1 RETURNDATACOPY 0xB7 0x1F 0xD5 BYTE PUSH27 0xA0A9AB712960622DA4B10AA9AC2C7DF324B78BAD0C3D1712336473 PUSH16 0x6C634300081B00330000000000000000 ", + "sourceMap": "61:102:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;90:71;;;;;;:::i;:::-;-1:-1:-1;150:7:9;;90:71;;;;424:25:46;;;412:2;397:18;90:71:9;;;;;;;14:251:46;98:6;151:2;139:9;130:7;126:23;122:32;119:52;;;167:1;164;157:12;119:52;206:7;201:2;190:9;186:18;183:31;180:51;;;227:1;224;217:12;180:51;-1:-1:-1;250:9:46;14:251;-1:-1:-1;14:251:46:o" + }, + "methodIdentifiers": { + "poseidon(uint256[1])": "1caab9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[1]\",\"name\":\"\",\"type\":\"uint256[1]\"}],\"name\":\"poseidon\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/Poseidon.sol\":\"PoseidonUnit1L\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/lib/Poseidon.sol\":{\"keccak256\":\"0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539\",\"dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + }, + "PoseidonUnit2L": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[2]", + "name": "", + "type": "uint256[2]" + } + ], + "name": "poseidon", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60b76037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c806329a5f2f6146038575b600080fd5b60496043366004605b565b50600090565b60405190815260200160405180910390f35b600060408284031215606c57600080fd5b82604083011115607b57600080fd5b5091905056fea2646970667358221220a4d210f4a6382fb399fdf8ec15ffbe48db0cb7173fde2426c7a635b1b1a9501a64736f6c634300081b0033", + "opcodes": "PUSH1 0xB7 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 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x29A5F2F6 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x49 PUSH1 0x43 CALLDATASIZE PUSH1 0x4 PUSH1 0x5B JUMP JUMPDEST POP PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x40 DUP4 ADD GT ISZERO PUSH1 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG4 0xD2 LT DELEGATECALL 0xA6 CODESIZE 0x2F 0xB3 SWAP10 REVERT 0xF8 0xEC ISZERO SELFDESTRUCT 0xBE BASEFEE 0xDB 0xC 0xB7 OR EXTCODEHASH 0xDE 0x24 0x26 0xC7 0xA6 CALLDATALOAD 0xB1 0xB1 0xA9 POP BYTE PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "165:102:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;165:102:9;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@poseidon_2240": { + "entryPoint": null, + "id": 2240, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptr": { + "entryPoint": 91, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:457:46", + "nodeType": "YulBlock", + "src": "0:457:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "109:156:46", + "nodeType": "YulBlock", + "src": "109:156:46", + "statements": [ + { + "body": { + "nativeSrc": "155:16:46", + "nodeType": "YulBlock", + "src": "155:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "164:1:46", + "nodeType": "YulLiteral", + "src": "164:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "167:1:46", + "nodeType": "YulLiteral", + "src": "167:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "157:6:46", + "nodeType": "YulIdentifier", + "src": "157:6:46" + }, + "nativeSrc": "157:12:46", + "nodeType": "YulFunctionCall", + "src": "157:12:46" + }, + "nativeSrc": "157:12:46", + "nodeType": "YulExpressionStatement", + "src": "157:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "130:7:46", + "nodeType": "YulIdentifier", + "src": "130:7:46" + }, + { + "name": "headStart", + "nativeSrc": "139:9:46", + "nodeType": "YulIdentifier", + "src": "139:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "126:3:46", + "nodeType": "YulIdentifier", + "src": "126:3:46" + }, + "nativeSrc": "126:23:46", + "nodeType": "YulFunctionCall", + "src": "126:23:46" + }, + { + "kind": "number", + "nativeSrc": "151:2:46", + "nodeType": "YulLiteral", + "src": "151:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "122:3:46", + "nodeType": "YulIdentifier", + "src": "122:3:46" + }, + "nativeSrc": "122:32:46", + "nodeType": "YulFunctionCall", + "src": "122:32:46" + }, + "nativeSrc": "119:52:46", + "nodeType": "YulIf", + "src": "119:52:46" + }, + { + "body": { + "nativeSrc": "215:16:46", + "nodeType": "YulBlock", + "src": "215:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "224:1:46", + "nodeType": "YulLiteral", + "src": "224:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "227:1:46", + "nodeType": "YulLiteral", + "src": "227:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "217:6:46", + "nodeType": "YulIdentifier", + "src": "217:6:46" + }, + "nativeSrc": "217:12:46", + "nodeType": "YulFunctionCall", + "src": "217:12:46" + }, + "nativeSrc": "217:12:46", + "nodeType": "YulExpressionStatement", + "src": "217:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "190:9:46", + "nodeType": "YulIdentifier", + "src": "190:9:46" + }, + { + "kind": "number", + "nativeSrc": "201:2:46", + "nodeType": "YulLiteral", + "src": "201:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "186:3:46", + "nodeType": "YulIdentifier", + "src": "186:3:46" + }, + "nativeSrc": "186:18:46", + "nodeType": "YulFunctionCall", + "src": "186:18:46" + }, + { + "name": "dataEnd", + "nativeSrc": "206:7:46", + "nodeType": "YulIdentifier", + "src": "206:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "183:2:46", + "nodeType": "YulIdentifier", + "src": "183:2:46" + }, + "nativeSrc": "183:31:46", + "nodeType": "YulFunctionCall", + "src": "183:31:46" + }, + "nativeSrc": "180:51:46", + "nodeType": "YulIf", + "src": "180:51:46" + }, + { + "nativeSrc": "240:19:46", + "nodeType": "YulAssignment", + "src": "240:19:46", + "value": { + "name": "headStart", + "nativeSrc": "250:9:46", + "nodeType": "YulIdentifier", + "src": "250:9:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "240:6:46", + "nodeType": "YulIdentifier", + "src": "240:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptr", + "nativeSrc": "14:251:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "75:9:46", + "nodeType": "YulTypedName", + "src": "75:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "86:7:46", + "nodeType": "YulTypedName", + "src": "86:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "98:6:46", + "nodeType": "YulTypedName", + "src": "98:6:46", + "type": "" + } + ], + "src": "14:251:46" + }, + { + "body": { + "nativeSrc": "379:76:46", + "nodeType": "YulBlock", + "src": "379:76:46", + "statements": [ + { + "nativeSrc": "389:26:46", + "nodeType": "YulAssignment", + "src": "389:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "401:9:46", + "nodeType": "YulIdentifier", + "src": "401:9:46" + }, + { + "kind": "number", + "nativeSrc": "412:2:46", + "nodeType": "YulLiteral", + "src": "412:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "397:3:46", + "nodeType": "YulIdentifier", + "src": "397:3:46" + }, + "nativeSrc": "397:18:46", + "nodeType": "YulFunctionCall", + "src": "397:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "389:4:46", + "nodeType": "YulIdentifier", + "src": "389:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "431:9:46", + "nodeType": "YulIdentifier", + "src": "431:9:46" + }, + { + "name": "value0", + "nativeSrc": "442:6:46", + "nodeType": "YulIdentifier", + "src": "442:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "424:6:46", + "nodeType": "YulIdentifier", + "src": "424:6:46" + }, + "nativeSrc": "424:25:46", + "nodeType": "YulFunctionCall", + "src": "424:25:46" + }, + "nativeSrc": "424:25:46", + "nodeType": "YulExpressionStatement", + "src": "424:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed", + "nativeSrc": "270:185:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "348:9:46", + "nodeType": "YulTypedName", + "src": "348:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "359:6:46", + "nodeType": "YulTypedName", + "src": "359:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "370:4:46", + "nodeType": "YulTypedName", + "src": "370:4:46", + "type": "" + } + ], + "src": "270:185:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n if gt(add(headStart, 64), dataEnd) { revert(0, 0) }\n value0 := headStart\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "730000000000000000000000000000000000000000301460806040526004361060335760003560e01c806329a5f2f6146038575b600080fd5b60496043366004605b565b50600090565b60405190815260200160405180910390f35b600060408284031215606c57600080fd5b82604083011115607b57600080fd5b5091905056fea2646970667358221220a4d210f4a6382fb399fdf8ec15ffbe48db0cb7173fde2426c7a635b1b1a9501a64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x29A5F2F6 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x49 PUSH1 0x43 CALLDATASIZE PUSH1 0x4 PUSH1 0x5B JUMP JUMPDEST POP PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x40 DUP4 ADD GT ISZERO PUSH1 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG4 0xD2 LT DELEGATECALL 0xA6 CODESIZE 0x2F 0xB3 SWAP10 REVERT 0xF8 0xEC ISZERO SELFDESTRUCT 0xBE BASEFEE 0xDB 0xC 0xB7 OR EXTCODEHASH 0xDE 0x24 0x26 0xC7 0xA6 CALLDATALOAD 0xB1 0xB1 0xA9 POP BYTE PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "165:102:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;194:71;;;;;;:::i;:::-;-1:-1:-1;254:7:9;;194:71;;;;424:25:46;;;412:2;397:18;194:71:9;;;;;;;14:251:46;98:6;151:2;139:9;130:7;126:23;122:32;119:52;;;167:1;164;157:12;119:52;206:7;201:2;190:9;186:18;183:31;180:51;;;227:1;224;217:12;180:51;-1:-1:-1;250:9:46;14:251;-1:-1:-1;14:251:46:o" + }, + "methodIdentifiers": { + "poseidon(uint256[2])": "29a5f2f6" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"\",\"type\":\"uint256[2]\"}],\"name\":\"poseidon\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/Poseidon.sol\":\"PoseidonUnit2L\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/lib/Poseidon.sol\":{\"keccak256\":\"0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539\",\"dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + }, + "PoseidonUnit3L": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[3]", + "name": "", + "type": "uint256[3]" + } + ], + "name": "poseidon", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60b76037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c806325cc70e8146038575b600080fd5b60496043366004605b565b50600090565b60405190815260200160405180910390f35b600060608284031215606c57600080fd5b82606083011115607b57600080fd5b5091905056fea2646970667358221220c63c59ecde48f9ec41a911857996d7279d0b6590d61db7b09b49c489324499cd64736f6c634300081b0033", + "opcodes": "PUSH1 0xB7 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 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x25CC70E8 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x49 PUSH1 0x43 CALLDATASIZE PUSH1 0x4 PUSH1 0x5B JUMP JUMPDEST POP PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x60 DUP4 ADD GT ISZERO PUSH1 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC6 EXTCODECOPY MSIZE 0xEC 0xDE BASEFEE 0xF9 0xEC COINBASE 0xA9 GT DUP6 PUSH26 0x96D7279D0B6590D61DB7B09B49C489324499CD64736F6C634300 ADDMOD SHL STOP CALLER ", + "sourceMap": "269:102:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;269:102:9;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@poseidon_2251": { + "entryPoint": null, + "id": 2251, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$3_calldata_ptr": { + "entryPoint": 91, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:457:46", + "nodeType": "YulBlock", + "src": "0:457:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "109:156:46", + "nodeType": "YulBlock", + "src": "109:156:46", + "statements": [ + { + "body": { + "nativeSrc": "155:16:46", + "nodeType": "YulBlock", + "src": "155:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "164:1:46", + "nodeType": "YulLiteral", + "src": "164:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "167:1:46", + "nodeType": "YulLiteral", + "src": "167:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "157:6:46", + "nodeType": "YulIdentifier", + "src": "157:6:46" + }, + "nativeSrc": "157:12:46", + "nodeType": "YulFunctionCall", + "src": "157:12:46" + }, + "nativeSrc": "157:12:46", + "nodeType": "YulExpressionStatement", + "src": "157:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "130:7:46", + "nodeType": "YulIdentifier", + "src": "130:7:46" + }, + { + "name": "headStart", + "nativeSrc": "139:9:46", + "nodeType": "YulIdentifier", + "src": "139:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "126:3:46", + "nodeType": "YulIdentifier", + "src": "126:3:46" + }, + "nativeSrc": "126:23:46", + "nodeType": "YulFunctionCall", + "src": "126:23:46" + }, + { + "kind": "number", + "nativeSrc": "151:2:46", + "nodeType": "YulLiteral", + "src": "151:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "122:3:46", + "nodeType": "YulIdentifier", + "src": "122:3:46" + }, + "nativeSrc": "122:32:46", + "nodeType": "YulFunctionCall", + "src": "122:32:46" + }, + "nativeSrc": "119:52:46", + "nodeType": "YulIf", + "src": "119:52:46" + }, + { + "body": { + "nativeSrc": "215:16:46", + "nodeType": "YulBlock", + "src": "215:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "224:1:46", + "nodeType": "YulLiteral", + "src": "224:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "227:1:46", + "nodeType": "YulLiteral", + "src": "227:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "217:6:46", + "nodeType": "YulIdentifier", + "src": "217:6:46" + }, + "nativeSrc": "217:12:46", + "nodeType": "YulFunctionCall", + "src": "217:12:46" + }, + "nativeSrc": "217:12:46", + "nodeType": "YulExpressionStatement", + "src": "217:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "190:9:46", + "nodeType": "YulIdentifier", + "src": "190:9:46" + }, + { + "kind": "number", + "nativeSrc": "201:2:46", + "nodeType": "YulLiteral", + "src": "201:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "186:3:46", + "nodeType": "YulIdentifier", + "src": "186:3:46" + }, + "nativeSrc": "186:18:46", + "nodeType": "YulFunctionCall", + "src": "186:18:46" + }, + { + "name": "dataEnd", + "nativeSrc": "206:7:46", + "nodeType": "YulIdentifier", + "src": "206:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "183:2:46", + "nodeType": "YulIdentifier", + "src": "183:2:46" + }, + "nativeSrc": "183:31:46", + "nodeType": "YulFunctionCall", + "src": "183:31:46" + }, + "nativeSrc": "180:51:46", + "nodeType": "YulIf", + "src": "180:51:46" + }, + { + "nativeSrc": "240:19:46", + "nodeType": "YulAssignment", + "src": "240:19:46", + "value": { + "name": "headStart", + "nativeSrc": "250:9:46", + "nodeType": "YulIdentifier", + "src": "250:9:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "240:6:46", + "nodeType": "YulIdentifier", + "src": "240:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$3_calldata_ptr", + "nativeSrc": "14:251:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "75:9:46", + "nodeType": "YulTypedName", + "src": "75:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "86:7:46", + "nodeType": "YulTypedName", + "src": "86:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "98:6:46", + "nodeType": "YulTypedName", + "src": "98:6:46", + "type": "" + } + ], + "src": "14:251:46" + }, + { + "body": { + "nativeSrc": "379:76:46", + "nodeType": "YulBlock", + "src": "379:76:46", + "statements": [ + { + "nativeSrc": "389:26:46", + "nodeType": "YulAssignment", + "src": "389:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "401:9:46", + "nodeType": "YulIdentifier", + "src": "401:9:46" + }, + { + "kind": "number", + "nativeSrc": "412:2:46", + "nodeType": "YulLiteral", + "src": "412:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "397:3:46", + "nodeType": "YulIdentifier", + "src": "397:3:46" + }, + "nativeSrc": "397:18:46", + "nodeType": "YulFunctionCall", + "src": "397:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "389:4:46", + "nodeType": "YulIdentifier", + "src": "389:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "431:9:46", + "nodeType": "YulIdentifier", + "src": "431:9:46" + }, + { + "name": "value0", + "nativeSrc": "442:6:46", + "nodeType": "YulIdentifier", + "src": "442:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "424:6:46", + "nodeType": "YulIdentifier", + "src": "424:6:46" + }, + "nativeSrc": "424:25:46", + "nodeType": "YulFunctionCall", + "src": "424:25:46" + }, + "nativeSrc": "424:25:46", + "nodeType": "YulExpressionStatement", + "src": "424:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed", + "nativeSrc": "270:185:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "348:9:46", + "nodeType": "YulTypedName", + "src": "348:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "359:6:46", + "nodeType": "YulTypedName", + "src": "359:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "370:4:46", + "nodeType": "YulTypedName", + "src": "370:4:46", + "type": "" + } + ], + "src": "270:185:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_tuple_t_array$_t_uint256_$3_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n if gt(add(headStart, 96), dataEnd) { revert(0, 0) }\n value0 := headStart\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "730000000000000000000000000000000000000000301460806040526004361060335760003560e01c806325cc70e8146038575b600080fd5b60496043366004605b565b50600090565b60405190815260200160405180910390f35b600060608284031215606c57600080fd5b82606083011115607b57600080fd5b5091905056fea2646970667358221220c63c59ecde48f9ec41a911857996d7279d0b6590d61db7b09b49c489324499cd64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x25CC70E8 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x49 PUSH1 0x43 CALLDATASIZE PUSH1 0x4 PUSH1 0x5B JUMP JUMPDEST POP PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x60 DUP4 ADD GT ISZERO PUSH1 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC6 EXTCODECOPY MSIZE 0xEC 0xDE BASEFEE 0xF9 0xEC COINBASE 0xA9 GT DUP6 PUSH26 0x96D7279D0B6590D61DB7B09B49C489324499CD64736F6C634300 ADDMOD SHL STOP CALLER ", + "sourceMap": "269:102:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;298:71;;;;;;:::i;:::-;-1:-1:-1;358:7:9;;298:71;;;;424:25:46;;;412:2;397:18;298:71:9;;;;;;;14:251:46;98:6;151:2;139:9;130:7;126:23;122:32;119:52;;;167:1;164;157:12;119:52;206:7;201:2;190:9;186:18;183:31;180:51;;;227:1;224;217:12;180:51;-1:-1:-1;250:9:46;14:251;-1:-1:-1;14:251:46:o" + }, + "methodIdentifiers": { + "poseidon(uint256[3])": "25cc70e8" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[3]\",\"name\":\"\",\"type\":\"uint256[3]\"}],\"name\":\"poseidon\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/Poseidon.sol\":\"PoseidonUnit3L\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/lib/Poseidon.sol\":{\"keccak256\":\"0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539\",\"dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + }, + "PoseidonUnit4L": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[4]", + "name": "", + "type": "uint256[4]" + } + ], + "name": "poseidon", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60b76037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063248f6677146038575b600080fd5b60496043366004605b565b50600090565b60405190815260200160405180910390f35b600060808284031215606c57600080fd5b82608083011115607b57600080fd5b5091905056fea26469706673582212209d0034c4601269b60780c798027517eecf591a4ddf1ee47ef5687bc50c897ceb64736f6c634300081b0033", + "opcodes": "PUSH1 0xB7 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 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x248F6677 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x49 PUSH1 0x43 CALLDATASIZE PUSH1 0x4 PUSH1 0x5B JUMP JUMPDEST POP PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x80 DUP4 ADD GT ISZERO PUSH1 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP14 STOP CALLVALUE 0xC4 PUSH1 0x12 PUSH10 0xB60780C798027517EECF MSIZE BYTE 0x4D 0xDF 0x1E 0xE4 PUSH31 0xF5687BC50C897CEB64736F6C634300081B0033000000000000000000000000 ", + "sourceMap": "373:102:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;373:102:9;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@poseidon_2262": { + "entryPoint": null, + "id": 2262, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$4_calldata_ptr": { + "entryPoint": 91, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:459:46", + "nodeType": "YulBlock", + "src": "0:459:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "109:158:46", + "nodeType": "YulBlock", + "src": "109:158:46", + "statements": [ + { + "body": { + "nativeSrc": "156:16:46", + "nodeType": "YulBlock", + "src": "156:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "165:1:46", + "nodeType": "YulLiteral", + "src": "165:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "168:1:46", + "nodeType": "YulLiteral", + "src": "168:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "158:6:46", + "nodeType": "YulIdentifier", + "src": "158:6:46" + }, + "nativeSrc": "158:12:46", + "nodeType": "YulFunctionCall", + "src": "158:12:46" + }, + "nativeSrc": "158:12:46", + "nodeType": "YulExpressionStatement", + "src": "158:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "130:7:46", + "nodeType": "YulIdentifier", + "src": "130:7:46" + }, + { + "name": "headStart", + "nativeSrc": "139:9:46", + "nodeType": "YulIdentifier", + "src": "139:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "126:3:46", + "nodeType": "YulIdentifier", + "src": "126:3:46" + }, + "nativeSrc": "126:23:46", + "nodeType": "YulFunctionCall", + "src": "126:23:46" + }, + { + "kind": "number", + "nativeSrc": "151:3:46", + "nodeType": "YulLiteral", + "src": "151:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "122:3:46", + "nodeType": "YulIdentifier", + "src": "122:3:46" + }, + "nativeSrc": "122:33:46", + "nodeType": "YulFunctionCall", + "src": "122:33:46" + }, + "nativeSrc": "119:53:46", + "nodeType": "YulIf", + "src": "119:53:46" + }, + { + "body": { + "nativeSrc": "217:16:46", + "nodeType": "YulBlock", + "src": "217:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "226:1:46", + "nodeType": "YulLiteral", + "src": "226:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "229:1:46", + "nodeType": "YulLiteral", + "src": "229:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "219:6:46", + "nodeType": "YulIdentifier", + "src": "219:6:46" + }, + "nativeSrc": "219:12:46", + "nodeType": "YulFunctionCall", + "src": "219:12:46" + }, + "nativeSrc": "219:12:46", + "nodeType": "YulExpressionStatement", + "src": "219:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "191:9:46", + "nodeType": "YulIdentifier", + "src": "191:9:46" + }, + { + "kind": "number", + "nativeSrc": "202:3:46", + "nodeType": "YulLiteral", + "src": "202:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "187:3:46", + "nodeType": "YulIdentifier", + "src": "187:3:46" + }, + "nativeSrc": "187:19:46", + "nodeType": "YulFunctionCall", + "src": "187:19:46" + }, + { + "name": "dataEnd", + "nativeSrc": "208:7:46", + "nodeType": "YulIdentifier", + "src": "208:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "184:2:46", + "nodeType": "YulIdentifier", + "src": "184:2:46" + }, + "nativeSrc": "184:32:46", + "nodeType": "YulFunctionCall", + "src": "184:32:46" + }, + "nativeSrc": "181:52:46", + "nodeType": "YulIf", + "src": "181:52:46" + }, + { + "nativeSrc": "242:19:46", + "nodeType": "YulAssignment", + "src": "242:19:46", + "value": { + "name": "headStart", + "nativeSrc": "252:9:46", + "nodeType": "YulIdentifier", + "src": "252:9:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "242:6:46", + "nodeType": "YulIdentifier", + "src": "242:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$4_calldata_ptr", + "nativeSrc": "14:253:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "75:9:46", + "nodeType": "YulTypedName", + "src": "75:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "86:7:46", + "nodeType": "YulTypedName", + "src": "86:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "98:6:46", + "nodeType": "YulTypedName", + "src": "98:6:46", + "type": "" + } + ], + "src": "14:253:46" + }, + { + "body": { + "nativeSrc": "381:76:46", + "nodeType": "YulBlock", + "src": "381:76:46", + "statements": [ + { + "nativeSrc": "391:26:46", + "nodeType": "YulAssignment", + "src": "391:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "403:9:46", + "nodeType": "YulIdentifier", + "src": "403:9:46" + }, + { + "kind": "number", + "nativeSrc": "414:2:46", + "nodeType": "YulLiteral", + "src": "414:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "399:3:46", + "nodeType": "YulIdentifier", + "src": "399:3:46" + }, + "nativeSrc": "399:18:46", + "nodeType": "YulFunctionCall", + "src": "399:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "391:4:46", + "nodeType": "YulIdentifier", + "src": "391:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "433:9:46", + "nodeType": "YulIdentifier", + "src": "433:9:46" + }, + { + "name": "value0", + "nativeSrc": "444:6:46", + "nodeType": "YulIdentifier", + "src": "444:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "426:6:46", + "nodeType": "YulIdentifier", + "src": "426:6:46" + }, + "nativeSrc": "426:25:46", + "nodeType": "YulFunctionCall", + "src": "426:25:46" + }, + "nativeSrc": "426:25:46", + "nodeType": "YulExpressionStatement", + "src": "426:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed", + "nativeSrc": "272:185:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "350:9:46", + "nodeType": "YulTypedName", + "src": "350:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "361:6:46", + "nodeType": "YulTypedName", + "src": "361:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "372:4:46", + "nodeType": "YulTypedName", + "src": "372:4:46", + "type": "" + } + ], + "src": "272:185:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_tuple_t_array$_t_uint256_$4_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n if gt(add(headStart, 128), dataEnd) { revert(0, 0) }\n value0 := headStart\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063248f6677146038575b600080fd5b60496043366004605b565b50600090565b60405190815260200160405180910390f35b600060808284031215606c57600080fd5b82608083011115607b57600080fd5b5091905056fea26469706673582212209d0034c4601269b60780c798027517eecf591a4ddf1ee47ef5687bc50c897ceb64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x248F6677 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x49 PUSH1 0x43 CALLDATASIZE PUSH1 0x4 PUSH1 0x5B JUMP JUMPDEST POP PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0x80 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x80 DUP4 ADD GT ISZERO PUSH1 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP14 STOP CALLVALUE 0xC4 PUSH1 0x12 PUSH10 0xB60780C798027517EECF MSIZE BYTE 0x4D 0xDF 0x1E 0xE4 PUSH31 0xF5687BC50C897CEB64736F6C634300081B0033000000000000000000000000 ", + "sourceMap": "373:102:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;402:71;;;;;;:::i;:::-;-1:-1:-1;462:7:9;;402:71;;;;426:25:46;;;414:2;399:18;402:71:9;;;;;;;14:253:46;98:6;151:3;139:9;130:7;126:23;122:33;119:53;;;168:1;165;158:12;119:53;208:7;202:3;191:9;187:19;184:32;181:52;;;229:1;226;219:12;181:52;-1:-1:-1;252:9:46;14:253;-1:-1:-1;14:253:46:o" + }, + "methodIdentifiers": { + "poseidon(uint256[4])": "248f6677" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[4]\",\"name\":\"\",\"type\":\"uint256[4]\"}],\"name\":\"poseidon\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/Poseidon.sol\":\"PoseidonUnit4L\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/lib/Poseidon.sol\":{\"keccak256\":\"0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539\",\"dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + }, + "PoseidonUnit5L": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[5]", + "name": "", + "type": "uint256[5]" + } + ], + "name": "poseidon", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60b76037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c80634937a258146038575b600080fd5b60496043366004605b565b50600090565b60405190815260200160405180910390f35b600060a08284031215606c57600080fd5b8260a083011115607b57600080fd5b5091905056fea2646970667358221220e2786242d0505069591a163056e57040f6e837f52305aee04cbf6b3523ca4ec164736f6c634300081b0033", + "opcodes": "PUSH1 0xB7 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 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4937A258 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x49 PUSH1 0x43 CALLDATASIZE PUSH1 0x4 PUSH1 0x5B JUMP JUMPDEST POP PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0xA0 DUP4 ADD GT ISZERO PUSH1 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 PUSH25 0x6242D0505069591A163056E57040F6E837F52305AEE04CBF6B CALLDATALOAD 0x23 0xCA 0x4E 0xC1 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "477:102:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;477:102:9;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@poseidon_2273": { + "entryPoint": null, + "id": 2273, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$5_calldata_ptr": { + "entryPoint": 91, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:459:46", + "nodeType": "YulBlock", + "src": "0:459:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "109:158:46", + "nodeType": "YulBlock", + "src": "109:158:46", + "statements": [ + { + "body": { + "nativeSrc": "156:16:46", + "nodeType": "YulBlock", + "src": "156:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "165:1:46", + "nodeType": "YulLiteral", + "src": "165:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "168:1:46", + "nodeType": "YulLiteral", + "src": "168:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "158:6:46", + "nodeType": "YulIdentifier", + "src": "158:6:46" + }, + "nativeSrc": "158:12:46", + "nodeType": "YulFunctionCall", + "src": "158:12:46" + }, + "nativeSrc": "158:12:46", + "nodeType": "YulExpressionStatement", + "src": "158:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "130:7:46", + "nodeType": "YulIdentifier", + "src": "130:7:46" + }, + { + "name": "headStart", + "nativeSrc": "139:9:46", + "nodeType": "YulIdentifier", + "src": "139:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "126:3:46", + "nodeType": "YulIdentifier", + "src": "126:3:46" + }, + "nativeSrc": "126:23:46", + "nodeType": "YulFunctionCall", + "src": "126:23:46" + }, + { + "kind": "number", + "nativeSrc": "151:3:46", + "nodeType": "YulLiteral", + "src": "151:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "122:3:46", + "nodeType": "YulIdentifier", + "src": "122:3:46" + }, + "nativeSrc": "122:33:46", + "nodeType": "YulFunctionCall", + "src": "122:33:46" + }, + "nativeSrc": "119:53:46", + "nodeType": "YulIf", + "src": "119:53:46" + }, + { + "body": { + "nativeSrc": "217:16:46", + "nodeType": "YulBlock", + "src": "217:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "226:1:46", + "nodeType": "YulLiteral", + "src": "226:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "229:1:46", + "nodeType": "YulLiteral", + "src": "229:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "219:6:46", + "nodeType": "YulIdentifier", + "src": "219:6:46" + }, + "nativeSrc": "219:12:46", + "nodeType": "YulFunctionCall", + "src": "219:12:46" + }, + "nativeSrc": "219:12:46", + "nodeType": "YulExpressionStatement", + "src": "219:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "191:9:46", + "nodeType": "YulIdentifier", + "src": "191:9:46" + }, + { + "kind": "number", + "nativeSrc": "202:3:46", + "nodeType": "YulLiteral", + "src": "202:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "187:3:46", + "nodeType": "YulIdentifier", + "src": "187:3:46" + }, + "nativeSrc": "187:19:46", + "nodeType": "YulFunctionCall", + "src": "187:19:46" + }, + { + "name": "dataEnd", + "nativeSrc": "208:7:46", + "nodeType": "YulIdentifier", + "src": "208:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "184:2:46", + "nodeType": "YulIdentifier", + "src": "184:2:46" + }, + "nativeSrc": "184:32:46", + "nodeType": "YulFunctionCall", + "src": "184:32:46" + }, + "nativeSrc": "181:52:46", + "nodeType": "YulIf", + "src": "181:52:46" + }, + { + "nativeSrc": "242:19:46", + "nodeType": "YulAssignment", + "src": "242:19:46", + "value": { + "name": "headStart", + "nativeSrc": "252:9:46", + "nodeType": "YulIdentifier", + "src": "252:9:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "242:6:46", + "nodeType": "YulIdentifier", + "src": "242:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$5_calldata_ptr", + "nativeSrc": "14:253:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "75:9:46", + "nodeType": "YulTypedName", + "src": "75:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "86:7:46", + "nodeType": "YulTypedName", + "src": "86:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "98:6:46", + "nodeType": "YulTypedName", + "src": "98:6:46", + "type": "" + } + ], + "src": "14:253:46" + }, + { + "body": { + "nativeSrc": "381:76:46", + "nodeType": "YulBlock", + "src": "381:76:46", + "statements": [ + { + "nativeSrc": "391:26:46", + "nodeType": "YulAssignment", + "src": "391:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "403:9:46", + "nodeType": "YulIdentifier", + "src": "403:9:46" + }, + { + "kind": "number", + "nativeSrc": "414:2:46", + "nodeType": "YulLiteral", + "src": "414:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "399:3:46", + "nodeType": "YulIdentifier", + "src": "399:3:46" + }, + "nativeSrc": "399:18:46", + "nodeType": "YulFunctionCall", + "src": "399:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "391:4:46", + "nodeType": "YulIdentifier", + "src": "391:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "433:9:46", + "nodeType": "YulIdentifier", + "src": "433:9:46" + }, + { + "name": "value0", + "nativeSrc": "444:6:46", + "nodeType": "YulIdentifier", + "src": "444:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "426:6:46", + "nodeType": "YulIdentifier", + "src": "426:6:46" + }, + "nativeSrc": "426:25:46", + "nodeType": "YulFunctionCall", + "src": "426:25:46" + }, + "nativeSrc": "426:25:46", + "nodeType": "YulExpressionStatement", + "src": "426:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed", + "nativeSrc": "272:185:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "350:9:46", + "nodeType": "YulTypedName", + "src": "350:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "361:6:46", + "nodeType": "YulTypedName", + "src": "361:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "372:4:46", + "nodeType": "YulTypedName", + "src": "372:4:46", + "type": "" + } + ], + "src": "272:185:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_tuple_t_array$_t_uint256_$5_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n if gt(add(headStart, 160), dataEnd) { revert(0, 0) }\n value0 := headStart\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "730000000000000000000000000000000000000000301460806040526004361060335760003560e01c80634937a258146038575b600080fd5b60496043366004605b565b50600090565b60405190815260200160405180910390f35b600060a08284031215606c57600080fd5b8260a083011115607b57600080fd5b5091905056fea2646970667358221220e2786242d0505069591a163056e57040f6e837f52305aee04cbf6b3523ca4ec164736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x4937A258 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x49 PUSH1 0x43 CALLDATASIZE PUSH1 0x4 PUSH1 0x5B JUMP JUMPDEST POP PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0xA0 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0xA0 DUP4 ADD GT ISZERO PUSH1 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 PUSH25 0x6242D0505069591A163056E57040F6E837F52305AEE04CBF6B CALLDATALOAD 0x23 0xCA 0x4E 0xC1 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "477:102:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;506:71;;;;;;:::i;:::-;-1:-1:-1;566:7:9;;506:71;;;;426:25:46;;;414:2;399:18;506:71:9;;;;;;;14:253:46;98:6;151:3;139:9;130:7;126:23;122:33;119:53;;;168:1;165;158:12;119:53;208:7;202:3;191:9;187:19;184:32;181:52;;;229:1;226;219:12;181:52;-1:-1:-1;252:9:46;14:253;-1:-1:-1;14:253:46:o" + }, + "methodIdentifiers": { + "poseidon(uint256[5])": "4937a258" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[5]\",\"name\":\"\",\"type\":\"uint256[5]\"}],\"name\":\"poseidon\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/Poseidon.sol\":\"PoseidonUnit5L\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/lib/Poseidon.sol\":{\"keccak256\":\"0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539\",\"dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + }, + "PoseidonUnit6L": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[6]", + "name": "", + "type": "uint256[6]" + } + ], + "name": "poseidon", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60b76037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063f5b4a788146038575b600080fd5b60496043366004605b565b50600090565b60405190815260200160405180910390f35b600060c08284031215606c57600080fd5b8260c083011115607b57600080fd5b5091905056fea26469706673582212203aa24cb269c75e4c83b23a0da49a8750a108b6eb7ecf85fe3aeec4a677687e6664736f6c634300081b0033", + "opcodes": "PUSH1 0xB7 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 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xF5B4A788 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x49 PUSH1 0x43 CALLDATASIZE PUSH1 0x4 PUSH1 0x5B JUMP JUMPDEST POP PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0xC0 DUP4 ADD GT ISZERO PUSH1 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASPRICE LOG2 0x4C 0xB2 PUSH10 0xC75E4C83B23A0DA49A87 POP LOG1 ADDMOD 0xB6 0xEB PUSH31 0xCF85FE3AEEC4A677687E6664736F6C634300081B0033000000000000000000 ", + "sourceMap": "581:102:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;581:102:9;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@poseidon_2284": { + "entryPoint": null, + "id": 2284, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$6_calldata_ptr": { + "entryPoint": 91, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:459:46", + "nodeType": "YulBlock", + "src": "0:459:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "109:158:46", + "nodeType": "YulBlock", + "src": "109:158:46", + "statements": [ + { + "body": { + "nativeSrc": "156:16:46", + "nodeType": "YulBlock", + "src": "156:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "165:1:46", + "nodeType": "YulLiteral", + "src": "165:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "168:1:46", + "nodeType": "YulLiteral", + "src": "168:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "158:6:46", + "nodeType": "YulIdentifier", + "src": "158:6:46" + }, + "nativeSrc": "158:12:46", + "nodeType": "YulFunctionCall", + "src": "158:12:46" + }, + "nativeSrc": "158:12:46", + "nodeType": "YulExpressionStatement", + "src": "158:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "130:7:46", + "nodeType": "YulIdentifier", + "src": "130:7:46" + }, + { + "name": "headStart", + "nativeSrc": "139:9:46", + "nodeType": "YulIdentifier", + "src": "139:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "126:3:46", + "nodeType": "YulIdentifier", + "src": "126:3:46" + }, + "nativeSrc": "126:23:46", + "nodeType": "YulFunctionCall", + "src": "126:23:46" + }, + { + "kind": "number", + "nativeSrc": "151:3:46", + "nodeType": "YulLiteral", + "src": "151:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "122:3:46", + "nodeType": "YulIdentifier", + "src": "122:3:46" + }, + "nativeSrc": "122:33:46", + "nodeType": "YulFunctionCall", + "src": "122:33:46" + }, + "nativeSrc": "119:53:46", + "nodeType": "YulIf", + "src": "119:53:46" + }, + { + "body": { + "nativeSrc": "217:16:46", + "nodeType": "YulBlock", + "src": "217:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "226:1:46", + "nodeType": "YulLiteral", + "src": "226:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "229:1:46", + "nodeType": "YulLiteral", + "src": "229:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "219:6:46", + "nodeType": "YulIdentifier", + "src": "219:6:46" + }, + "nativeSrc": "219:12:46", + "nodeType": "YulFunctionCall", + "src": "219:12:46" + }, + "nativeSrc": "219:12:46", + "nodeType": "YulExpressionStatement", + "src": "219:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "191:9:46", + "nodeType": "YulIdentifier", + "src": "191:9:46" + }, + { + "kind": "number", + "nativeSrc": "202:3:46", + "nodeType": "YulLiteral", + "src": "202:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "187:3:46", + "nodeType": "YulIdentifier", + "src": "187:3:46" + }, + "nativeSrc": "187:19:46", + "nodeType": "YulFunctionCall", + "src": "187:19:46" + }, + { + "name": "dataEnd", + "nativeSrc": "208:7:46", + "nodeType": "YulIdentifier", + "src": "208:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "184:2:46", + "nodeType": "YulIdentifier", + "src": "184:2:46" + }, + "nativeSrc": "184:32:46", + "nodeType": "YulFunctionCall", + "src": "184:32:46" + }, + "nativeSrc": "181:52:46", + "nodeType": "YulIf", + "src": "181:52:46" + }, + { + "nativeSrc": "242:19:46", + "nodeType": "YulAssignment", + "src": "242:19:46", + "value": { + "name": "headStart", + "nativeSrc": "252:9:46", + "nodeType": "YulIdentifier", + "src": "252:9:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "242:6:46", + "nodeType": "YulIdentifier", + "src": "242:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$6_calldata_ptr", + "nativeSrc": "14:253:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "75:9:46", + "nodeType": "YulTypedName", + "src": "75:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "86:7:46", + "nodeType": "YulTypedName", + "src": "86:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "98:6:46", + "nodeType": "YulTypedName", + "src": "98:6:46", + "type": "" + } + ], + "src": "14:253:46" + }, + { + "body": { + "nativeSrc": "381:76:46", + "nodeType": "YulBlock", + "src": "381:76:46", + "statements": [ + { + "nativeSrc": "391:26:46", + "nodeType": "YulAssignment", + "src": "391:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "403:9:46", + "nodeType": "YulIdentifier", + "src": "403:9:46" + }, + { + "kind": "number", + "nativeSrc": "414:2:46", + "nodeType": "YulLiteral", + "src": "414:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "399:3:46", + "nodeType": "YulIdentifier", + "src": "399:3:46" + }, + "nativeSrc": "399:18:46", + "nodeType": "YulFunctionCall", + "src": "399:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "391:4:46", + "nodeType": "YulIdentifier", + "src": "391:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "433:9:46", + "nodeType": "YulIdentifier", + "src": "433:9:46" + }, + { + "name": "value0", + "nativeSrc": "444:6:46", + "nodeType": "YulIdentifier", + "src": "444:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "426:6:46", + "nodeType": "YulIdentifier", + "src": "426:6:46" + }, + "nativeSrc": "426:25:46", + "nodeType": "YulFunctionCall", + "src": "426:25:46" + }, + "nativeSrc": "426:25:46", + "nodeType": "YulExpressionStatement", + "src": "426:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed", + "nativeSrc": "272:185:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "350:9:46", + "nodeType": "YulTypedName", + "src": "350:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "361:6:46", + "nodeType": "YulTypedName", + "src": "361:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "372:4:46", + "nodeType": "YulTypedName", + "src": "372:4:46", + "type": "" + } + ], + "src": "272:185:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_tuple_t_array$_t_uint256_$6_calldata_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n if gt(add(headStart, 192), dataEnd) { revert(0, 0) }\n value0 := headStart\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "730000000000000000000000000000000000000000301460806040526004361060335760003560e01c8063f5b4a788146038575b600080fd5b60496043366004605b565b50600090565b60405190815260200160405180910390f35b600060c08284031215606c57600080fd5b8260c083011115607b57600080fd5b5091905056fea26469706673582212203aa24cb269c75e4c83b23a0da49a8750a108b6eb7ecf85fe3aeec4a677687e6664736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH1 0x33 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xF5B4A788 EQ PUSH1 0x38 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x49 PUSH1 0x43 CALLDATASIZE PUSH1 0x4 PUSH1 0x5B JUMP JUMPDEST POP PUSH1 0x0 SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH1 0xC0 DUP3 DUP5 SUB SLT ISZERO PUSH1 0x6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0xC0 DUP4 ADD GT ISZERO PUSH1 0x7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASPRICE LOG2 0x4C 0xB2 PUSH10 0xC75E4C83B23A0DA49A87 POP LOG1 ADDMOD 0xB6 0xEB PUSH31 0xCF85FE3AEEC4A677687E6664736F6C634300081B0033000000000000000000 ", + "sourceMap": "581:102:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;610:71;;;;;;:::i;:::-;-1:-1:-1;670:7:9;;610:71;;;;426:25:46;;;414:2;399:18;610:71:9;;;;;;;14:253:46;98:6;151:3;139:9;130:7;126:23;122:33;119:53;;;168:1;165;158:12;119:53;208:7;202:3;191:9;187:19;184:32;181:52;;;229:1;226;219:12;181:52;-1:-1:-1;252:9:46;14:253;-1:-1:-1;14:253:46:o" + }, + "methodIdentifiers": { + "poseidon(uint256[6])": "f5b4a788" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[6]\",\"name\":\"\",\"type\":\"uint256[6]\"}],\"name\":\"poseidon\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/Poseidon.sol\":\"PoseidonUnit6L\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/lib/Poseidon.sol\":{\"keccak256\":\"0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539\",\"dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + }, + "SpongePoseidon": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "values", + "type": "uint256[]" + } + ], + "name": "hash", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": { + "@iden3/contracts/lib/Poseidon.sol": { + "PoseidonUnit6L": [ + { + "length": 20, + "start": 340 + }, + { + "length": 20, + "start": 592 + } + ] + } + }, + "object": "610462610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806340ec6e491461003a575b600080fd5b61004d6100483660046102a2565b61005f565b60405190815260200160405180910390f35b6000806040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090506000806000805b86518163ffffffff1610156102015760019350868163ffffffff16815181106100c9576100c961036f565b6020026020010151858363ffffffff16600681106100e9576100e961036f565b60200201526100fa6001600661039b565b63ffffffff168263ffffffff16036101e157604051631eb694f160e31b815273__$037d0ef5096c0205b2ca530e7bc3ca349a$__9063f5b4a788906101439088906004016103bd565b602060405180830381865af4158015610160573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061018491906103ee565b9250600093506040518060c0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815250945082856000600681106101d3576101d361036f565b6020020152600191506101ef565b816101eb81610407565b9250505b806101f981610407565b91505061009e565b50821561028357604051631eb694f160e31b815273__$037d0ef5096c0205b2ca530e7bc3ca349a$__9063f5b4a7889061023f9087906004016103bd565b602060405180830381865af415801561025c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028091906103ee565b91505b50949350505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156102b457600080fd5b813567ffffffffffffffff8111156102cb57600080fd5b8201601f810184136102dc57600080fd5b803567ffffffffffffffff8111156102f6576102f661028c565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156103235761032361028c565b60405291825260208184018101929081018784111561034157600080fd5b6020850194505b8385101561036457843580825260209586019590935001610348565b509695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b63ffffffff82811682821603908111156103b7576103b7610385565b92915050565b60c08101818360005b60068110156103e55781518352602092830192909101906001016103c6565b50505092915050565b60006020828403121561040057600080fd5b5051919050565b600063ffffffff821663ffffffff810361042357610423610385565b6001019291505056fea2646970667358221220ed3a5ea1917eacc5d28378046a970d9eb5f88605860ee851159cfa4eacf95dd164736f6c634300081b0033", + "opcodes": "PUSH2 0x462 PUSH2 0x39 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2C 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 0x4 CALLDATASIZE LT PUSH2 0x35 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40EC6E49 EQ PUSH2 0x3A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D PUSH2 0x48 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A2 JUMP JUMPDEST PUSH2 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 JUMPDEST DUP7 MLOAD DUP2 PUSH4 0xFFFFFFFF AND LT ISZERO PUSH2 0x201 JUMPI PUSH1 0x1 SWAP4 POP DUP7 DUP2 PUSH4 0xFFFFFFFF AND DUP2 MLOAD DUP2 LT PUSH2 0xC9 JUMPI PUSH2 0xC9 PUSH2 0x36F JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0x6 DUP2 LT PUSH2 0xE9 JUMPI PUSH2 0xE9 PUSH2 0x36F JUMP JUMPDEST PUSH1 0x20 MUL ADD MSTORE PUSH2 0xFA PUSH1 0x1 PUSH1 0x6 PUSH2 0x39B JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP3 PUSH4 0xFFFFFFFF AND SUB PUSH2 0x1E1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1EB694F1 PUSH1 0xE3 SHL DUP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xF5B4A788 SWAP1 PUSH2 0x143 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x3BD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x160 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x184 SWAP2 SWAP1 PUSH2 0x3EE JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP4 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP5 POP DUP3 DUP6 PUSH1 0x0 PUSH1 0x6 DUP2 LT PUSH2 0x1D3 JUMPI PUSH2 0x1D3 PUSH2 0x36F JUMP JUMPDEST PUSH1 0x20 MUL ADD MSTORE PUSH1 0x1 SWAP2 POP PUSH2 0x1EF JUMP JUMPDEST DUP2 PUSH2 0x1EB DUP2 PUSH2 0x407 JUMP JUMPDEST SWAP3 POP POP JUMPDEST DUP1 PUSH2 0x1F9 DUP2 PUSH2 0x407 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x9E JUMP JUMPDEST POP DUP3 ISZERO PUSH2 0x283 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1EB694F1 PUSH1 0xE3 SHL DUP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xF5B4A788 SWAP1 PUSH2 0x23F SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x3BD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x25C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x280 SWAP2 SWAP1 PUSH2 0x3EE JUMP JUMPDEST SWAP2 POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2F6 JUMPI PUSH2 0x2F6 PUSH2 0x28C JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x323 JUMPI PUSH2 0x323 PUSH2 0x28C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x20 DUP2 DUP5 ADD DUP2 ADD SWAP3 SWAP1 DUP2 ADD DUP8 DUP5 GT ISZERO PUSH2 0x341 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD SWAP5 POP JUMPDEST DUP4 DUP6 LT ISZERO PUSH2 0x364 JUMPI DUP5 CALLDATALOAD DUP1 DUP3 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP4 POP ADD PUSH2 0x348 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP 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 PUSH4 0xFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x3B7 JUMPI PUSH2 0x3B7 PUSH2 0x385 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD DUP2 DUP4 PUSH1 0x0 JUMPDEST PUSH1 0x6 DUP2 LT ISZERO PUSH2 0x3E5 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3C6 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND PUSH4 0xFFFFFFFF DUP2 SUB PUSH2 0x423 JUMPI PUSH2 0x423 PUSH2 0x385 JUMP JUMPDEST PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xED GASPRICE MCOPY LOG1 SWAP2 PUSH31 0xACC5D28378046A970D9EB5F88605860EE851159CFA4EACF95DD164736F6C63 NUMBER STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "685:929:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;685:929:9;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@hash_2408": { + "entryPoint": 95, + "id": 2408, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr": { + "entryPoint": 674, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 1006, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$6_memory_ptr__to_t_array$_t_uint256_$6_memory_ptr__fromStack_library_reversed": { + "entryPoint": 957, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint32": { + "entryPoint": 923, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "increment_t_uint32": { + "entryPoint": 1031, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 901, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 879, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 652, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:2819:46", + "nodeType": "YulBlock", + "src": "0:2819:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "46:95:46", + "nodeType": "YulBlock", + "src": "46:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "63:1:46", + "nodeType": "YulLiteral", + "src": "63:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "70:3:46", + "nodeType": "YulLiteral", + "src": "70:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "75:10:46", + "nodeType": "YulLiteral", + "src": "75:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "66:3:46", + "nodeType": "YulIdentifier", + "src": "66:3:46" + }, + "nativeSrc": "66:20:46", + "nodeType": "YulFunctionCall", + "src": "66:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "56:6:46", + "nodeType": "YulIdentifier", + "src": "56:6:46" + }, + "nativeSrc": "56:31:46", + "nodeType": "YulFunctionCall", + "src": "56:31:46" + }, + "nativeSrc": "56:31:46", + "nodeType": "YulExpressionStatement", + "src": "56:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "103:1:46", + "nodeType": "YulLiteral", + "src": "103:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "106:4:46", + "nodeType": "YulLiteral", + "src": "106:4:46", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "96:6:46", + "nodeType": "YulIdentifier", + "src": "96:6:46" + }, + "nativeSrc": "96:15:46", + "nodeType": "YulFunctionCall", + "src": "96:15:46" + }, + "nativeSrc": "96:15:46", + "nodeType": "YulExpressionStatement", + "src": "96:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "127:1:46", + "nodeType": "YulLiteral", + "src": "127:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "130:4:46", + "nodeType": "YulLiteral", + "src": "130:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "120:6:46", + "nodeType": "YulIdentifier", + "src": "120:6:46" + }, + "nativeSrc": "120:15:46", + "nodeType": "YulFunctionCall", + "src": "120:15:46" + }, + "nativeSrc": "120:15:46", + "nodeType": "YulExpressionStatement", + "src": "120:15:46" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "14:127:46", + "nodeType": "YulFunctionDefinition", + "src": "14:127:46" + }, + { + "body": { + "nativeSrc": "241:1080:46", + "nodeType": "YulBlock", + "src": "241:1080:46", + "statements": [ + { + "body": { + "nativeSrc": "287:16:46", + "nodeType": "YulBlock", + "src": "287:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "296:1:46", + "nodeType": "YulLiteral", + "src": "296:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "299:1:46", + "nodeType": "YulLiteral", + "src": "299:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "289:6:46", + "nodeType": "YulIdentifier", + "src": "289:6:46" + }, + "nativeSrc": "289:12:46", + "nodeType": "YulFunctionCall", + "src": "289:12:46" + }, + "nativeSrc": "289:12:46", + "nodeType": "YulExpressionStatement", + "src": "289:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "262:7:46", + "nodeType": "YulIdentifier", + "src": "262:7:46" + }, + { + "name": "headStart", + "nativeSrc": "271:9:46", + "nodeType": "YulIdentifier", + "src": "271:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "258:3:46", + "nodeType": "YulIdentifier", + "src": "258:3:46" + }, + "nativeSrc": "258:23:46", + "nodeType": "YulFunctionCall", + "src": "258:23:46" + }, + { + "kind": "number", + "nativeSrc": "283:2:46", + "nodeType": "YulLiteral", + "src": "283:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "254:3:46", + "nodeType": "YulIdentifier", + "src": "254:3:46" + }, + "nativeSrc": "254:32:46", + "nodeType": "YulFunctionCall", + "src": "254:32:46" + }, + "nativeSrc": "251:52:46", + "nodeType": "YulIf", + "src": "251:52:46" + }, + { + "nativeSrc": "312:37:46", + "nodeType": "YulVariableDeclaration", + "src": "312:37:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "339:9:46", + "nodeType": "YulIdentifier", + "src": "339:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "326:12:46", + "nodeType": "YulIdentifier", + "src": "326:12:46" + }, + "nativeSrc": "326:23:46", + "nodeType": "YulFunctionCall", + "src": "326:23:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "316:6:46", + "nodeType": "YulTypedName", + "src": "316:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "392:16:46", + "nodeType": "YulBlock", + "src": "392:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "401:1:46", + "nodeType": "YulLiteral", + "src": "401:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "404:1:46", + "nodeType": "YulLiteral", + "src": "404:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "394:6:46", + "nodeType": "YulIdentifier", + "src": "394:6:46" + }, + "nativeSrc": "394:12:46", + "nodeType": "YulFunctionCall", + "src": "394:12:46" + }, + "nativeSrc": "394:12:46", + "nodeType": "YulExpressionStatement", + "src": "394:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "364:6:46", + "nodeType": "YulIdentifier", + "src": "364:6:46" + }, + { + "kind": "number", + "nativeSrc": "372:18:46", + "nodeType": "YulLiteral", + "src": "372:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "361:2:46", + "nodeType": "YulIdentifier", + "src": "361:2:46" + }, + "nativeSrc": "361:30:46", + "nodeType": "YulFunctionCall", + "src": "361:30:46" + }, + "nativeSrc": "358:50:46", + "nodeType": "YulIf", + "src": "358:50:46" + }, + { + "nativeSrc": "417:32:46", + "nodeType": "YulVariableDeclaration", + "src": "417:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "431:9:46", + "nodeType": "YulIdentifier", + "src": "431:9:46" + }, + { + "name": "offset", + "nativeSrc": "442:6:46", + "nodeType": "YulIdentifier", + "src": "442:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "427:3:46", + "nodeType": "YulIdentifier", + "src": "427:3:46" + }, + "nativeSrc": "427:22:46", + "nodeType": "YulFunctionCall", + "src": "427:22:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "421:2:46", + "nodeType": "YulTypedName", + "src": "421:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "497:16:46", + "nodeType": "YulBlock", + "src": "497:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "506:1:46", + "nodeType": "YulLiteral", + "src": "506:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "509:1:46", + "nodeType": "YulLiteral", + "src": "509:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "499:6:46", + "nodeType": "YulIdentifier", + "src": "499:6:46" + }, + "nativeSrc": "499:12:46", + "nodeType": "YulFunctionCall", + "src": "499:12:46" + }, + "nativeSrc": "499:12:46", + "nodeType": "YulExpressionStatement", + "src": "499:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "476:2:46", + "nodeType": "YulIdentifier", + "src": "476:2:46" + }, + { + "kind": "number", + "nativeSrc": "480:4:46", + "nodeType": "YulLiteral", + "src": "480:4:46", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "472:3:46", + "nodeType": "YulIdentifier", + "src": "472:3:46" + }, + "nativeSrc": "472:13:46", + "nodeType": "YulFunctionCall", + "src": "472:13:46" + }, + { + "name": "dataEnd", + "nativeSrc": "487:7:46", + "nodeType": "YulIdentifier", + "src": "487:7:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "468:3:46", + "nodeType": "YulIdentifier", + "src": "468:3:46" + }, + "nativeSrc": "468:27:46", + "nodeType": "YulFunctionCall", + "src": "468:27:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "461:6:46", + "nodeType": "YulIdentifier", + "src": "461:6:46" + }, + "nativeSrc": "461:35:46", + "nodeType": "YulFunctionCall", + "src": "461:35:46" + }, + "nativeSrc": "458:55:46", + "nodeType": "YulIf", + "src": "458:55:46" + }, + { + "nativeSrc": "522:30:46", + "nodeType": "YulVariableDeclaration", + "src": "522:30:46", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "549:2:46", + "nodeType": "YulIdentifier", + "src": "549:2:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "536:12:46", + "nodeType": "YulIdentifier", + "src": "536:12:46" + }, + "nativeSrc": "536:16:46", + "nodeType": "YulFunctionCall", + "src": "536:16:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "526:6:46", + "nodeType": "YulTypedName", + "src": "526:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "595:22:46", + "nodeType": "YulBlock", + "src": "595:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "597:16:46", + "nodeType": "YulIdentifier", + "src": "597:16:46" + }, + "nativeSrc": "597:18:46", + "nodeType": "YulFunctionCall", + "src": "597:18:46" + }, + "nativeSrc": "597:18:46", + "nodeType": "YulExpressionStatement", + "src": "597:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "567:6:46", + "nodeType": "YulIdentifier", + "src": "567:6:46" + }, + { + "kind": "number", + "nativeSrc": "575:18:46", + "nodeType": "YulLiteral", + "src": "575:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "564:2:46", + "nodeType": "YulIdentifier", + "src": "564:2:46" + }, + "nativeSrc": "564:30:46", + "nodeType": "YulFunctionCall", + "src": "564:30:46" + }, + "nativeSrc": "561:56:46", + "nodeType": "YulIf", + "src": "561:56:46" + }, + { + "nativeSrc": "626:24:46", + "nodeType": "YulVariableDeclaration", + "src": "626:24:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "640:1:46", + "nodeType": "YulLiteral", + "src": "640:1:46", + "type": "", + "value": "5" + }, + { + "name": "length", + "nativeSrc": "643:6:46", + "nodeType": "YulIdentifier", + "src": "643:6:46" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "636:3:46", + "nodeType": "YulIdentifier", + "src": "636:3:46" + }, + "nativeSrc": "636:14:46", + "nodeType": "YulFunctionCall", + "src": "636:14:46" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "630:2:46", + "nodeType": "YulTypedName", + "src": "630:2:46", + "type": "" + } + ] + }, + { + "nativeSrc": "659:23:46", + "nodeType": "YulVariableDeclaration", + "src": "659:23:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "679:2:46", + "nodeType": "YulLiteral", + "src": "679:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "673:5:46", + "nodeType": "YulIdentifier", + "src": "673:5:46" + }, + "nativeSrc": "673:9:46", + "nodeType": "YulFunctionCall", + "src": "673:9:46" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "663:6:46", + "nodeType": "YulTypedName", + "src": "663:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "691:56:46", + "nodeType": "YulVariableDeclaration", + "src": "691:56:46", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "713:6:46", + "nodeType": "YulIdentifier", + "src": "713:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_2", + "nativeSrc": "729:2:46", + "nodeType": "YulIdentifier", + "src": "729:2:46" + }, + { + "kind": "number", + "nativeSrc": "733:2:46", + "nodeType": "YulLiteral", + "src": "733:2:46", + "type": "", + "value": "63" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "725:3:46", + "nodeType": "YulIdentifier", + "src": "725:3:46" + }, + "nativeSrc": "725:11:46", + "nodeType": "YulFunctionCall", + "src": "725:11:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "742:2:46", + "nodeType": "YulLiteral", + "src": "742:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "738:3:46", + "nodeType": "YulIdentifier", + "src": "738:3:46" + }, + "nativeSrc": "738:7:46", + "nodeType": "YulFunctionCall", + "src": "738:7:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "721:3:46", + "nodeType": "YulIdentifier", + "src": "721:3:46" + }, + "nativeSrc": "721:25:46", + "nodeType": "YulFunctionCall", + "src": "721:25:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "709:3:46", + "nodeType": "YulIdentifier", + "src": "709:3:46" + }, + "nativeSrc": "709:38:46", + "nodeType": "YulFunctionCall", + "src": "709:38:46" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "695:10:46", + "nodeType": "YulTypedName", + "src": "695:10:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "822:22:46", + "nodeType": "YulBlock", + "src": "822:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "824:16:46", + "nodeType": "YulIdentifier", + "src": "824:16:46" + }, + "nativeSrc": "824:18:46", + "nodeType": "YulFunctionCall", + "src": "824:18:46" + }, + "nativeSrc": "824:18:46", + "nodeType": "YulExpressionStatement", + "src": "824:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "765:10:46", + "nodeType": "YulIdentifier", + "src": "765:10:46" + }, + { + "kind": "number", + "nativeSrc": "777:18:46", + "nodeType": "YulLiteral", + "src": "777:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "762:2:46", + "nodeType": "YulIdentifier", + "src": "762:2:46" + }, + "nativeSrc": "762:34:46", + "nodeType": "YulFunctionCall", + "src": "762:34:46" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "801:10:46", + "nodeType": "YulIdentifier", + "src": "801:10:46" + }, + { + "name": "memPtr", + "nativeSrc": "813:6:46", + "nodeType": "YulIdentifier", + "src": "813:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "798:2:46", + "nodeType": "YulIdentifier", + "src": "798:2:46" + }, + "nativeSrc": "798:22:46", + "nodeType": "YulFunctionCall", + "src": "798:22:46" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "759:2:46", + "nodeType": "YulIdentifier", + "src": "759:2:46" + }, + "nativeSrc": "759:62:46", + "nodeType": "YulFunctionCall", + "src": "759:62:46" + }, + "nativeSrc": "756:88:46", + "nodeType": "YulIf", + "src": "756:88:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "860:2:46", + "nodeType": "YulLiteral", + "src": "860:2:46", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "864:10:46", + "nodeType": "YulIdentifier", + "src": "864:10:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "853:6:46", + "nodeType": "YulIdentifier", + "src": "853:6:46" + }, + "nativeSrc": "853:22:46", + "nodeType": "YulFunctionCall", + "src": "853:22:46" + }, + "nativeSrc": "853:22:46", + "nodeType": "YulExpressionStatement", + "src": "853:22:46" + }, + { + "nativeSrc": "884:17:46", + "nodeType": "YulVariableDeclaration", + "src": "884:17:46", + "value": { + "name": "memPtr", + "nativeSrc": "895:6:46", + "nodeType": "YulIdentifier", + "src": "895:6:46" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "888:3:46", + "nodeType": "YulTypedName", + "src": "888:3:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "917:6:46", + "nodeType": "YulIdentifier", + "src": "917:6:46" + }, + { + "name": "length", + "nativeSrc": "925:6:46", + "nodeType": "YulIdentifier", + "src": "925:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "910:6:46", + "nodeType": "YulIdentifier", + "src": "910:6:46" + }, + "nativeSrc": "910:22:46", + "nodeType": "YulFunctionCall", + "src": "910:22:46" + }, + "nativeSrc": "910:22:46", + "nodeType": "YulExpressionStatement", + "src": "910:22:46" + }, + { + "nativeSrc": "941:22:46", + "nodeType": "YulAssignment", + "src": "941:22:46", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "952:6:46", + "nodeType": "YulIdentifier", + "src": "952:6:46" + }, + { + "kind": "number", + "nativeSrc": "960:2:46", + "nodeType": "YulLiteral", + "src": "960:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "948:3:46", + "nodeType": "YulIdentifier", + "src": "948:3:46" + }, + "nativeSrc": "948:15:46", + "nodeType": "YulFunctionCall", + "src": "948:15:46" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "941:3:46", + "nodeType": "YulIdentifier", + "src": "941:3:46" + } + ] + }, + { + "nativeSrc": "972:34:46", + "nodeType": "YulVariableDeclaration", + "src": "972:34:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "994:2:46", + "nodeType": "YulIdentifier", + "src": "994:2:46" + }, + { + "name": "_2", + "nativeSrc": "998:2:46", + "nodeType": "YulIdentifier", + "src": "998:2:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "990:3:46", + "nodeType": "YulIdentifier", + "src": "990:3:46" + }, + "nativeSrc": "990:11:46", + "nodeType": "YulFunctionCall", + "src": "990:11:46" + }, + { + "kind": "number", + "nativeSrc": "1003:2:46", + "nodeType": "YulLiteral", + "src": "1003:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "986:3:46", + "nodeType": "YulIdentifier", + "src": "986:3:46" + }, + "nativeSrc": "986:20:46", + "nodeType": "YulFunctionCall", + "src": "986:20:46" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "976:6:46", + "nodeType": "YulTypedName", + "src": "976:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1038:16:46", + "nodeType": "YulBlock", + "src": "1038:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1047:1:46", + "nodeType": "YulLiteral", + "src": "1047:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1050:1:46", + "nodeType": "YulLiteral", + "src": "1050:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1040:6:46", + "nodeType": "YulIdentifier", + "src": "1040:6:46" + }, + "nativeSrc": "1040:12:46", + "nodeType": "YulFunctionCall", + "src": "1040:12:46" + }, + "nativeSrc": "1040:12:46", + "nodeType": "YulExpressionStatement", + "src": "1040:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "1021:6:46", + "nodeType": "YulIdentifier", + "src": "1021:6:46" + }, + { + "name": "dataEnd", + "nativeSrc": "1029:7:46", + "nodeType": "YulIdentifier", + "src": "1029:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1018:2:46", + "nodeType": "YulIdentifier", + "src": "1018:2:46" + }, + "nativeSrc": "1018:19:46", + "nodeType": "YulFunctionCall", + "src": "1018:19:46" + }, + "nativeSrc": "1015:39:46", + "nodeType": "YulIf", + "src": "1015:39:46" + }, + { + "nativeSrc": "1063:22:46", + "nodeType": "YulVariableDeclaration", + "src": "1063:22:46", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "1078:2:46", + "nodeType": "YulIdentifier", + "src": "1078:2:46" + }, + { + "kind": "number", + "nativeSrc": "1082:2:46", + "nodeType": "YulLiteral", + "src": "1082:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1074:3:46", + "nodeType": "YulIdentifier", + "src": "1074:3:46" + }, + "nativeSrc": "1074:11:46", + "nodeType": "YulFunctionCall", + "src": "1074:11:46" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "1067:3:46", + "nodeType": "YulTypedName", + "src": "1067:3:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1150:140:46", + "nodeType": "YulBlock", + "src": "1150:140:46", + "statements": [ + { + "nativeSrc": "1164:14:46", + "nodeType": "YulVariableDeclaration", + "src": "1164:14:46", + "value": { + "kind": "number", + "nativeSrc": "1177:1:46", + "nodeType": "YulLiteral", + "src": "1177:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "1168:5:46", + "nodeType": "YulTypedName", + "src": "1168:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "1191:26:46", + "nodeType": "YulAssignment", + "src": "1191:26:46", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "1213:3:46", + "nodeType": "YulIdentifier", + "src": "1213:3:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1200:12:46", + "nodeType": "YulIdentifier", + "src": "1200:12:46" + }, + "nativeSrc": "1200:17:46", + "nodeType": "YulFunctionCall", + "src": "1200:17:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "1191:5:46", + "nodeType": "YulIdentifier", + "src": "1191:5:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1237:3:46", + "nodeType": "YulIdentifier", + "src": "1237:3:46" + }, + { + "name": "value", + "nativeSrc": "1242:5:46", + "nodeType": "YulIdentifier", + "src": "1242:5:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1230:6:46", + "nodeType": "YulIdentifier", + "src": "1230:6:46" + }, + "nativeSrc": "1230:18:46", + "nodeType": "YulFunctionCall", + "src": "1230:18:46" + }, + "nativeSrc": "1230:18:46", + "nodeType": "YulExpressionStatement", + "src": "1230:18:46" + }, + { + "nativeSrc": "1261:19:46", + "nodeType": "YulAssignment", + "src": "1261:19:46", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "1272:3:46", + "nodeType": "YulIdentifier", + "src": "1272:3:46" + }, + { + "kind": "number", + "nativeSrc": "1277:2:46", + "nodeType": "YulLiteral", + "src": "1277:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1268:3:46", + "nodeType": "YulIdentifier", + "src": "1268:3:46" + }, + "nativeSrc": "1268:12:46", + "nodeType": "YulFunctionCall", + "src": "1268:12:46" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "1261:3:46", + "nodeType": "YulIdentifier", + "src": "1261:3:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "1105:3:46", + "nodeType": "YulIdentifier", + "src": "1105:3:46" + }, + { + "name": "srcEnd", + "nativeSrc": "1110:6:46", + "nodeType": "YulIdentifier", + "src": "1110:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1102:2:46", + "nodeType": "YulIdentifier", + "src": "1102:2:46" + }, + "nativeSrc": "1102:15:46", + "nodeType": "YulFunctionCall", + "src": "1102:15:46" + }, + "nativeSrc": "1094:196:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1118:23:46", + "nodeType": "YulBlock", + "src": "1118:23:46", + "statements": [ + { + "nativeSrc": "1120:19:46", + "nodeType": "YulAssignment", + "src": "1120:19:46", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "1131:3:46", + "nodeType": "YulIdentifier", + "src": "1131:3:46" + }, + { + "kind": "number", + "nativeSrc": "1136:2:46", + "nodeType": "YulLiteral", + "src": "1136:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1127:3:46", + "nodeType": "YulIdentifier", + "src": "1127:3:46" + }, + "nativeSrc": "1127:12:46", + "nodeType": "YulFunctionCall", + "src": "1127:12:46" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "1120:3:46", + "nodeType": "YulIdentifier", + "src": "1120:3:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1098:3:46", + "nodeType": "YulBlock", + "src": "1098:3:46", + "statements": [] + }, + "src": "1094:196:46" + }, + { + "nativeSrc": "1299:16:46", + "nodeType": "YulAssignment", + "src": "1299:16:46", + "value": { + "name": "memPtr", + "nativeSrc": "1309:6:46", + "nodeType": "YulIdentifier", + "src": "1309:6:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "1299:6:46", + "nodeType": "YulIdentifier", + "src": "1299:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr", + "nativeSrc": "146:1175:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "207:9:46", + "nodeType": "YulTypedName", + "src": "207:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "218:7:46", + "nodeType": "YulTypedName", + "src": "218:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "230:6:46", + "nodeType": "YulTypedName", + "src": "230:6:46", + "type": "" + } + ], + "src": "146:1175:46" + }, + { + "body": { + "nativeSrc": "1435:76:46", + "nodeType": "YulBlock", + "src": "1435:76:46", + "statements": [ + { + "nativeSrc": "1445:26:46", + "nodeType": "YulAssignment", + "src": "1445:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1457:9:46", + "nodeType": "YulIdentifier", + "src": "1457:9:46" + }, + { + "kind": "number", + "nativeSrc": "1468:2:46", + "nodeType": "YulLiteral", + "src": "1468:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1453:3:46", + "nodeType": "YulIdentifier", + "src": "1453:3:46" + }, + "nativeSrc": "1453:18:46", + "nodeType": "YulFunctionCall", + "src": "1453:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "1445:4:46", + "nodeType": "YulIdentifier", + "src": "1445:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1487:9:46", + "nodeType": "YulIdentifier", + "src": "1487:9:46" + }, + { + "name": "value0", + "nativeSrc": "1498:6:46", + "nodeType": "YulIdentifier", + "src": "1498:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1480:6:46", + "nodeType": "YulIdentifier", + "src": "1480:6:46" + }, + "nativeSrc": "1480:25:46", + "nodeType": "YulFunctionCall", + "src": "1480:25:46" + }, + "nativeSrc": "1480:25:46", + "nodeType": "YulExpressionStatement", + "src": "1480:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed", + "nativeSrc": "1326:185:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1404:9:46", + "nodeType": "YulTypedName", + "src": "1404:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1415:6:46", + "nodeType": "YulTypedName", + "src": "1415:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1426:4:46", + "nodeType": "YulTypedName", + "src": "1426:4:46", + "type": "" + } + ], + "src": "1326:185:46" + }, + { + "body": { + "nativeSrc": "1548:95:46", + "nodeType": "YulBlock", + "src": "1548:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1565:1:46", + "nodeType": "YulLiteral", + "src": "1565:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1572:3:46", + "nodeType": "YulLiteral", + "src": "1572:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "1577:10:46", + "nodeType": "YulLiteral", + "src": "1577:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1568:3:46", + "nodeType": "YulIdentifier", + "src": "1568:3:46" + }, + "nativeSrc": "1568:20:46", + "nodeType": "YulFunctionCall", + "src": "1568:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1558:6:46", + "nodeType": "YulIdentifier", + "src": "1558:6:46" + }, + "nativeSrc": "1558:31:46", + "nodeType": "YulFunctionCall", + "src": "1558:31:46" + }, + "nativeSrc": "1558:31:46", + "nodeType": "YulExpressionStatement", + "src": "1558:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1605:1:46", + "nodeType": "YulLiteral", + "src": "1605:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "1608:4:46", + "nodeType": "YulLiteral", + "src": "1608:4:46", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1598:6:46", + "nodeType": "YulIdentifier", + "src": "1598:6:46" + }, + "nativeSrc": "1598:15:46", + "nodeType": "YulFunctionCall", + "src": "1598:15:46" + }, + "nativeSrc": "1598:15:46", + "nodeType": "YulExpressionStatement", + "src": "1598:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1629:1:46", + "nodeType": "YulLiteral", + "src": "1629:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1632:4:46", + "nodeType": "YulLiteral", + "src": "1632:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1622:6:46", + "nodeType": "YulIdentifier", + "src": "1622:6:46" + }, + "nativeSrc": "1622:15:46", + "nodeType": "YulFunctionCall", + "src": "1622:15:46" + }, + "nativeSrc": "1622:15:46", + "nodeType": "YulExpressionStatement", + "src": "1622:15:46" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "1516:127:46", + "nodeType": "YulFunctionDefinition", + "src": "1516:127:46" + }, + { + "body": { + "nativeSrc": "1680:95:46", + "nodeType": "YulBlock", + "src": "1680:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1697:1:46", + "nodeType": "YulLiteral", + "src": "1697:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1704:3:46", + "nodeType": "YulLiteral", + "src": "1704:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "1709:10:46", + "nodeType": "YulLiteral", + "src": "1709:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "1700:3:46", + "nodeType": "YulIdentifier", + "src": "1700:3:46" + }, + "nativeSrc": "1700:20:46", + "nodeType": "YulFunctionCall", + "src": "1700:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1690:6:46", + "nodeType": "YulIdentifier", + "src": "1690:6:46" + }, + "nativeSrc": "1690:31:46", + "nodeType": "YulFunctionCall", + "src": "1690:31:46" + }, + "nativeSrc": "1690:31:46", + "nodeType": "YulExpressionStatement", + "src": "1690:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1737:1:46", + "nodeType": "YulLiteral", + "src": "1737:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "1740:4:46", + "nodeType": "YulLiteral", + "src": "1740:4:46", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1730:6:46", + "nodeType": "YulIdentifier", + "src": "1730:6:46" + }, + "nativeSrc": "1730:15:46", + "nodeType": "YulFunctionCall", + "src": "1730:15:46" + }, + "nativeSrc": "1730:15:46", + "nodeType": "YulExpressionStatement", + "src": "1730:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "1761:1:46", + "nodeType": "YulLiteral", + "src": "1761:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "1764:4:46", + "nodeType": "YulLiteral", + "src": "1764:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "1754:6:46", + "nodeType": "YulIdentifier", + "src": "1754:6:46" + }, + "nativeSrc": "1754:15:46", + "nodeType": "YulFunctionCall", + "src": "1754:15:46" + }, + "nativeSrc": "1754:15:46", + "nodeType": "YulExpressionStatement", + "src": "1754:15:46" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "1648:127:46", + "nodeType": "YulFunctionDefinition", + "src": "1648:127:46" + }, + { + "body": { + "nativeSrc": "1828:122:46", + "nodeType": "YulBlock", + "src": "1828:122:46", + "statements": [ + { + "nativeSrc": "1838:51:46", + "nodeType": "YulAssignment", + "src": "1838:51:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nativeSrc": "1854:1:46", + "nodeType": "YulIdentifier", + "src": "1854:1:46" + }, + { + "kind": "number", + "nativeSrc": "1857:10:46", + "nodeType": "YulLiteral", + "src": "1857:10:46", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1850:3:46", + "nodeType": "YulIdentifier", + "src": "1850:3:46" + }, + "nativeSrc": "1850:18:46", + "nodeType": "YulFunctionCall", + "src": "1850:18:46" + }, + { + "arguments": [ + { + "name": "y", + "nativeSrc": "1874:1:46", + "nodeType": "YulIdentifier", + "src": "1874:1:46" + }, + { + "kind": "number", + "nativeSrc": "1877:10:46", + "nodeType": "YulLiteral", + "src": "1877:10:46", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "1870:3:46", + "nodeType": "YulIdentifier", + "src": "1870:3:46" + }, + "nativeSrc": "1870:18:46", + "nodeType": "YulFunctionCall", + "src": "1870:18:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "1846:3:46", + "nodeType": "YulIdentifier", + "src": "1846:3:46" + }, + "nativeSrc": "1846:43:46", + "nodeType": "YulFunctionCall", + "src": "1846:43:46" + }, + "variableNames": [ + { + "name": "diff", + "nativeSrc": "1838:4:46", + "nodeType": "YulIdentifier", + "src": "1838:4:46" + } + ] + }, + { + "body": { + "nativeSrc": "1922:22:46", + "nodeType": "YulBlock", + "src": "1922:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "1924:16:46", + "nodeType": "YulIdentifier", + "src": "1924:16:46" + }, + "nativeSrc": "1924:18:46", + "nodeType": "YulFunctionCall", + "src": "1924:18:46" + }, + "nativeSrc": "1924:18:46", + "nodeType": "YulExpressionStatement", + "src": "1924:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nativeSrc": "1904:4:46", + "nodeType": "YulIdentifier", + "src": "1904:4:46" + }, + { + "kind": "number", + "nativeSrc": "1910:10:46", + "nodeType": "YulLiteral", + "src": "1910:10:46", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "1901:2:46", + "nodeType": "YulIdentifier", + "src": "1901:2:46" + }, + "nativeSrc": "1901:20:46", + "nodeType": "YulFunctionCall", + "src": "1901:20:46" + }, + "nativeSrc": "1898:46:46", + "nodeType": "YulIf", + "src": "1898:46:46" + } + ] + }, + "name": "checked_sub_t_uint32", + "nativeSrc": "1780:170:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "1810:1:46", + "nodeType": "YulTypedName", + "src": "1810:1:46", + "type": "" + }, + { + "name": "y", + "nativeSrc": "1813:1:46", + "nodeType": "YulTypedName", + "src": "1813:1:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nativeSrc": "1819:4:46", + "nodeType": "YulTypedName", + "src": "1819:4:46", + "type": "" + } + ], + "src": "1780:170:46" + }, + { + "body": { + "nativeSrc": "2110:325:46", + "nodeType": "YulBlock", + "src": "2110:325:46", + "statements": [ + { + "nativeSrc": "2120:27:46", + "nodeType": "YulAssignment", + "src": "2120:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2132:9:46", + "nodeType": "YulIdentifier", + "src": "2132:9:46" + }, + { + "kind": "number", + "nativeSrc": "2143:3:46", + "nodeType": "YulLiteral", + "src": "2143:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2128:3:46", + "nodeType": "YulIdentifier", + "src": "2128:3:46" + }, + "nativeSrc": "2128:19:46", + "nodeType": "YulFunctionCall", + "src": "2128:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2120:4:46", + "nodeType": "YulIdentifier", + "src": "2120:4:46" + } + ] + }, + { + "nativeSrc": "2156:20:46", + "nodeType": "YulVariableDeclaration", + "src": "2156:20:46", + "value": { + "name": "headStart", + "nativeSrc": "2167:9:46", + "nodeType": "YulIdentifier", + "src": "2167:9:46" + }, + "variables": [ + { + "name": "pos", + "nativeSrc": "2160:3:46", + "nodeType": "YulTypedName", + "src": "2160:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "2185:16:46", + "nodeType": "YulAssignment", + "src": "2185:16:46", + "value": { + "name": "headStart", + "nativeSrc": "2192:9:46", + "nodeType": "YulIdentifier", + "src": "2192:9:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "2185:3:46", + "nodeType": "YulIdentifier", + "src": "2185:3:46" + } + ] + }, + { + "nativeSrc": "2210:20:46", + "nodeType": "YulVariableDeclaration", + "src": "2210:20:46", + "value": { + "name": "value0", + "nativeSrc": "2224:6:46", + "nodeType": "YulIdentifier", + "src": "2224:6:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "2214:6:46", + "nodeType": "YulTypedName", + "src": "2214:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "2239:10:46", + "nodeType": "YulVariableDeclaration", + "src": "2239:10:46", + "value": { + "kind": "number", + "nativeSrc": "2248:1:46", + "nodeType": "YulLiteral", + "src": "2248:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "2243:1:46", + "nodeType": "YulTypedName", + "src": "2243:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2305:124:46", + "nodeType": "YulBlock", + "src": "2305:124:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2326:3:46", + "nodeType": "YulIdentifier", + "src": "2326:3:46" + }, + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "2337:6:46", + "nodeType": "YulIdentifier", + "src": "2337:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2331:5:46", + "nodeType": "YulIdentifier", + "src": "2331:5:46" + }, + "nativeSrc": "2331:13:46", + "nodeType": "YulFunctionCall", + "src": "2331:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2319:6:46", + "nodeType": "YulIdentifier", + "src": "2319:6:46" + }, + "nativeSrc": "2319:26:46", + "nodeType": "YulFunctionCall", + "src": "2319:26:46" + }, + "nativeSrc": "2319:26:46", + "nodeType": "YulExpressionStatement", + "src": "2319:26:46" + }, + { + "nativeSrc": "2358:21:46", + "nodeType": "YulAssignment", + "src": "2358:21:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2369:3:46", + "nodeType": "YulIdentifier", + "src": "2369:3:46" + }, + { + "kind": "number", + "nativeSrc": "2374:4:46", + "nodeType": "YulLiteral", + "src": "2374:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2365:3:46", + "nodeType": "YulIdentifier", + "src": "2365:3:46" + }, + "nativeSrc": "2365:14:46", + "nodeType": "YulFunctionCall", + "src": "2365:14:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "2358:3:46", + "nodeType": "YulIdentifier", + "src": "2358:3:46" + } + ] + }, + { + "nativeSrc": "2392:27:46", + "nodeType": "YulAssignment", + "src": "2392:27:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "2406:6:46", + "nodeType": "YulIdentifier", + "src": "2406:6:46" + }, + { + "kind": "number", + "nativeSrc": "2414:4:46", + "nodeType": "YulLiteral", + "src": "2414:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2402:3:46", + "nodeType": "YulIdentifier", + "src": "2402:3:46" + }, + "nativeSrc": "2402:17:46", + "nodeType": "YulFunctionCall", + "src": "2402:17:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "2392:6:46", + "nodeType": "YulIdentifier", + "src": "2392:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "2269:1:46", + "nodeType": "YulIdentifier", + "src": "2269:1:46" + }, + { + "kind": "number", + "nativeSrc": "2272:4:46", + "nodeType": "YulLiteral", + "src": "2272:4:46", + "type": "", + "value": "0x06" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "2266:2:46", + "nodeType": "YulIdentifier", + "src": "2266:2:46" + }, + "nativeSrc": "2266:11:46", + "nodeType": "YulFunctionCall", + "src": "2266:11:46" + }, + "nativeSrc": "2258:171:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "2278:18:46", + "nodeType": "YulBlock", + "src": "2278:18:46", + "statements": [ + { + "nativeSrc": "2280:14:46", + "nodeType": "YulAssignment", + "src": "2280:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "2289:1:46", + "nodeType": "YulIdentifier", + "src": "2289:1:46" + }, + { + "kind": "number", + "nativeSrc": "2292:1:46", + "nodeType": "YulLiteral", + "src": "2292:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2285:3:46", + "nodeType": "YulIdentifier", + "src": "2285:3:46" + }, + "nativeSrc": "2285:9:46", + "nodeType": "YulFunctionCall", + "src": "2285:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "2280:1:46", + "nodeType": "YulIdentifier", + "src": "2280:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "2262:3:46", + "nodeType": "YulBlock", + "src": "2262:3:46", + "statements": [] + }, + "src": "2258:171:46" + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$6_memory_ptr__to_t_array$_t_uint256_$6_memory_ptr__fromStack_library_reversed", + "nativeSrc": "1955:480:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2079:9:46", + "nodeType": "YulTypedName", + "src": "2079:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2090:6:46", + "nodeType": "YulTypedName", + "src": "2090:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2101:4:46", + "nodeType": "YulTypedName", + "src": "2101:4:46", + "type": "" + } + ], + "src": "1955:480:46" + }, + { + "body": { + "nativeSrc": "2521:103:46", + "nodeType": "YulBlock", + "src": "2521:103:46", + "statements": [ + { + "body": { + "nativeSrc": "2567:16:46", + "nodeType": "YulBlock", + "src": "2567:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2576:1:46", + "nodeType": "YulLiteral", + "src": "2576:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2579:1:46", + "nodeType": "YulLiteral", + "src": "2579:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2569:6:46", + "nodeType": "YulIdentifier", + "src": "2569:6:46" + }, + "nativeSrc": "2569:12:46", + "nodeType": "YulFunctionCall", + "src": "2569:12:46" + }, + "nativeSrc": "2569:12:46", + "nodeType": "YulExpressionStatement", + "src": "2569:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2542:7:46", + "nodeType": "YulIdentifier", + "src": "2542:7:46" + }, + { + "name": "headStart", + "nativeSrc": "2551:9:46", + "nodeType": "YulIdentifier", + "src": "2551:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2538:3:46", + "nodeType": "YulIdentifier", + "src": "2538:3:46" + }, + "nativeSrc": "2538:23:46", + "nodeType": "YulFunctionCall", + "src": "2538:23:46" + }, + { + "kind": "number", + "nativeSrc": "2563:2:46", + "nodeType": "YulLiteral", + "src": "2563:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2534:3:46", + "nodeType": "YulIdentifier", + "src": "2534:3:46" + }, + "nativeSrc": "2534:32:46", + "nodeType": "YulFunctionCall", + "src": "2534:32:46" + }, + "nativeSrc": "2531:52:46", + "nodeType": "YulIf", + "src": "2531:52:46" + }, + { + "nativeSrc": "2592:26:46", + "nodeType": "YulAssignment", + "src": "2592:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2608:9:46", + "nodeType": "YulIdentifier", + "src": "2608:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2602:5:46", + "nodeType": "YulIdentifier", + "src": "2602:5:46" + }, + "nativeSrc": "2602:16:46", + "nodeType": "YulFunctionCall", + "src": "2602:16:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2592:6:46", + "nodeType": "YulIdentifier", + "src": "2592:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nativeSrc": "2440:184:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2487:9:46", + "nodeType": "YulTypedName", + "src": "2487:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2498:7:46", + "nodeType": "YulTypedName", + "src": "2498:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2510:6:46", + "nodeType": "YulTypedName", + "src": "2510:6:46", + "type": "" + } + ], + "src": "2440:184:46" + }, + { + "body": { + "nativeSrc": "2675:142:46", + "nodeType": "YulBlock", + "src": "2675:142:46", + "statements": [ + { + "nativeSrc": "2685:37:46", + "nodeType": "YulVariableDeclaration", + "src": "2685:37:46", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "2704:5:46", + "nodeType": "YulIdentifier", + "src": "2704:5:46" + }, + { + "kind": "number", + "nativeSrc": "2711:10:46", + "nodeType": "YulLiteral", + "src": "2711:10:46", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2700:3:46", + "nodeType": "YulIdentifier", + "src": "2700:3:46" + }, + "nativeSrc": "2700:22:46", + "nodeType": "YulFunctionCall", + "src": "2700:22:46" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "2689:7:46", + "nodeType": "YulTypedName", + "src": "2689:7:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2758:22:46", + "nodeType": "YulBlock", + "src": "2758:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "2760:16:46", + "nodeType": "YulIdentifier", + "src": "2760:16:46" + }, + "nativeSrc": "2760:18:46", + "nodeType": "YulFunctionCall", + "src": "2760:18:46" + }, + "nativeSrc": "2760:18:46", + "nodeType": "YulExpressionStatement", + "src": "2760:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "2737:7:46", + "nodeType": "YulIdentifier", + "src": "2737:7:46" + }, + { + "kind": "number", + "nativeSrc": "2746:10:46", + "nodeType": "YulLiteral", + "src": "2746:10:46", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2734:2:46", + "nodeType": "YulIdentifier", + "src": "2734:2:46" + }, + "nativeSrc": "2734:23:46", + "nodeType": "YulFunctionCall", + "src": "2734:23:46" + }, + "nativeSrc": "2731:49:46", + "nodeType": "YulIf", + "src": "2731:49:46" + }, + { + "nativeSrc": "2789:22:46", + "nodeType": "YulAssignment", + "src": "2789:22:46", + "value": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "2800:7:46", + "nodeType": "YulIdentifier", + "src": "2800:7:46" + }, + { + "kind": "number", + "nativeSrc": "2809:1:46", + "nodeType": "YulLiteral", + "src": "2809:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2796:3:46", + "nodeType": "YulIdentifier", + "src": "2796:3:46" + }, + "nativeSrc": "2796:15:46", + "nodeType": "YulFunctionCall", + "src": "2796:15:46" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "2789:3:46", + "nodeType": "YulIdentifier", + "src": "2789:3:46" + } + ] + } + ] + }, + "name": "increment_t_uint32", + "nativeSrc": "2629:188:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2657:5:46", + "nodeType": "YulTypedName", + "src": "2657:5:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "2667:3:46", + "nodeType": "YulTypedName", + "src": "2667:3:46", + "type": "" + } + ], + "src": "2629:188:46" + } + ] + }, + "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 abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_1)\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n let _2 := shl(5, length)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(_2, 63), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n let dst := memPtr\n mstore(memPtr, length)\n dst := add(memPtr, 32)\n let srcEnd := add(add(_1, _2), 32)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(_1, 32)\n for { } lt(src, srcEnd) { src := add(src, 32) }\n {\n let value := 0\n value := calldataload(src)\n mstore(dst, value)\n dst := add(dst, 32)\n }\n value0 := memPtr\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, 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 checked_sub_t_uint32(x, y) -> diff\n {\n diff := sub(and(x, 0xffffffff), and(y, 0xffffffff))\n if gt(diff, 0xffffffff) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_array$_t_uint256_$6_memory_ptr__to_t_array$_t_uint256_$6_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 192)\n let pos := headStart\n pos := headStart\n let srcPtr := value0\n let i := 0\n for { } lt(i, 0x06) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, 0x20)\n srcPtr := add(srcPtr, 0x20)\n }\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function increment_t_uint32(value) -> ret\n {\n let value_1 := and(value, 0xffffffff)\n if eq(value_1, 0xffffffff) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": { + "@iden3/contracts/lib/Poseidon.sol": { + "PoseidonUnit6L": [ + { + "length": 20, + "start": 283 + }, + { + "length": 20, + "start": 535 + } + ] + } + }, + "object": "73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c806340ec6e491461003a575b600080fd5b61004d6100483660046102a2565b61005f565b60405190815260200160405180910390f35b6000806040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090506000806000805b86518163ffffffff1610156102015760019350868163ffffffff16815181106100c9576100c961036f565b6020026020010151858363ffffffff16600681106100e9576100e961036f565b60200201526100fa6001600661039b565b63ffffffff168263ffffffff16036101e157604051631eb694f160e31b815273__$037d0ef5096c0205b2ca530e7bc3ca349a$__9063f5b4a788906101439088906004016103bd565b602060405180830381865af4158015610160573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061018491906103ee565b9250600093506040518060c0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815250945082856000600681106101d3576101d361036f565b6020020152600191506101ef565b816101eb81610407565b9250505b806101f981610407565b91505061009e565b50821561028357604051631eb694f160e31b815273__$037d0ef5096c0205b2ca530e7bc3ca349a$__9063f5b4a7889061023f9087906004016103bd565b602060405180830381865af415801561025c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061028091906103ee565b91505b50949350505050565b634e487b7160e01b600052604160045260246000fd5b6000602082840312156102b457600080fd5b813567ffffffffffffffff8111156102cb57600080fd5b8201601f810184136102dc57600080fd5b803567ffffffffffffffff8111156102f6576102f661028c565b8060051b604051601f19603f830116810181811067ffffffffffffffff821117156103235761032361028c565b60405291825260208184018101929081018784111561034157600080fd5b6020850194505b8385101561036457843580825260209586019590935001610348565b509695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b63ffffffff82811682821603908111156103b7576103b7610385565b92915050565b60c08101818360005b60068110156103e55781518352602092830192909101906001016103c6565b50505092915050565b60006020828403121561040057600080fd5b5051919050565b600063ffffffff821663ffffffff810361042357610423610385565b6001019291505056fea2646970667358221220ed3a5ea1917eacc5d28378046a970d9eb5f88605860ee851159cfa4eacf95dd164736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x35 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x40EC6E49 EQ PUSH2 0x3A JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4D PUSH2 0x48 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A2 JUMP JUMPDEST PUSH2 0x5F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 JUMPDEST DUP7 MLOAD DUP2 PUSH4 0xFFFFFFFF AND LT ISZERO PUSH2 0x201 JUMPI PUSH1 0x1 SWAP4 POP DUP7 DUP2 PUSH4 0xFFFFFFFF AND DUP2 MLOAD DUP2 LT PUSH2 0xC9 JUMPI PUSH2 0xC9 PUSH2 0x36F JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP6 DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0x6 DUP2 LT PUSH2 0xE9 JUMPI PUSH2 0xE9 PUSH2 0x36F JUMP JUMPDEST PUSH1 0x20 MUL ADD MSTORE PUSH2 0xFA PUSH1 0x1 PUSH1 0x6 PUSH2 0x39B JUMP JUMPDEST PUSH4 0xFFFFFFFF AND DUP3 PUSH4 0xFFFFFFFF AND SUB PUSH2 0x1E1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1EB694F1 PUSH1 0xE3 SHL DUP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xF5B4A788 SWAP1 PUSH2 0x143 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x3BD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x160 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x184 SWAP2 SWAP1 PUSH2 0x3EE JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP4 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP5 POP DUP3 DUP6 PUSH1 0x0 PUSH1 0x6 DUP2 LT PUSH2 0x1D3 JUMPI PUSH2 0x1D3 PUSH2 0x36F JUMP JUMPDEST PUSH1 0x20 MUL ADD MSTORE PUSH1 0x1 SWAP2 POP PUSH2 0x1EF JUMP JUMPDEST DUP2 PUSH2 0x1EB DUP2 PUSH2 0x407 JUMP JUMPDEST SWAP3 POP POP JUMPDEST DUP1 PUSH2 0x1F9 DUP2 PUSH2 0x407 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x9E JUMP JUMPDEST POP DUP3 ISZERO PUSH2 0x283 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1EB694F1 PUSH1 0xE3 SHL DUP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xF5B4A788 SWAP1 PUSH2 0x23F SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x3BD JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x25C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x280 SWAP2 SWAP1 PUSH2 0x3EE JUMP JUMPDEST SWAP2 POP JUMPDEST POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2B4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2CB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0x2DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2F6 JUMPI PUSH2 0x2F6 PUSH2 0x28C JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x323 JUMPI PUSH2 0x323 PUSH2 0x28C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 DUP3 MSTORE PUSH1 0x20 DUP2 DUP5 ADD DUP2 ADD SWAP3 SWAP1 DUP2 ADD DUP8 DUP5 GT ISZERO PUSH2 0x341 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP6 ADD SWAP5 POP JUMPDEST DUP4 DUP6 LT ISZERO PUSH2 0x364 JUMPI DUP5 CALLDATALOAD DUP1 DUP3 MSTORE PUSH1 0x20 SWAP6 DUP7 ADD SWAP6 SWAP1 SWAP4 POP ADD PUSH2 0x348 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP 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 PUSH4 0xFFFFFFFF DUP3 DUP2 AND DUP3 DUP3 AND SUB SWAP1 DUP2 GT ISZERO PUSH2 0x3B7 JUMPI PUSH2 0x3B7 PUSH2 0x385 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD DUP2 DUP4 PUSH1 0x0 JUMPDEST PUSH1 0x6 DUP2 LT ISZERO PUSH2 0x3E5 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3C6 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x400 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH4 0xFFFFFFFF DUP3 AND PUSH4 0xFFFFFFFF DUP2 SUB PUSH2 0x423 JUMPI PUSH2 0x423 PUSH2 0x385 JUMP JUMPDEST PUSH1 0x1 ADD SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xED GASPRICE MCOPY LOG1 SWAP2 PUSH31 0xACC5D28378046A970D9EB5F88605860EE851159CFA4EACF95DD164736F6C63 NUMBER STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "685:929:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;760:852;;;;;;:::i;:::-;;:::i;:::-;;;1480:25:46;;;1468:2;1453:18;760:852:9;;;;;;;;820:7;839:32;:62;;;;;;;;883:1;839:62;;;;887:1;839:62;;;;890:1;839:62;;;;893:1;839:62;;;;896:1;839:62;;;;899:1;839:62;;;;;911:10;939:16;969:8;996;991:412;1014:6;:13;1010:1;:17;;;991:412;;;1056:4;1048:12;;1085:6;1092:1;1085:9;;;;;;;;;;:::i;:::-;;;;;;;1074:5;1080:1;1074:8;;;;;;;;;:::i;:::-;;;;:20;1117:14;1130:1;752;1117:14;:::i;:::-;1112:19;;:1;:19;;;1108:285;;1162:30;;-1:-1:-1;;;1162:30:9;;:14;;:23;;:30;;1186:5;;1162:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1151:41;;1218:5;1210:13;;1241:35;;;;;;;;1258:1;1241:35;;;;1262:1;1241:35;;;;1265:1;1241:35;;;;1268:1;1241:35;;;;1271:1;1241:35;;;;1274:1;1241:35;;;;;1305:8;1294:5;1300:1;1294:8;;;;;;;:::i;:::-;;;;:19;1335:1;;-1:-1:-1;1108:285:9;;;1375:3;;;;:::i;:::-;;;;1108:285;1029:3;;;;:::i;:::-;;;;991:412;;;;1416:5;1412:169;;;1540:30;;-1:-1:-1;;;1540:30:9;;:14;;:23;;:30;;1564:5;;1540:30;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1529:41;;1412:169;-1:-1:-1;1597:8:9;760:852;-1:-1:-1;;;;760:852:9:o;14:127:46:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:1175;230:6;283:2;271:9;262:7;258:23;254:32;251:52;;;299:1;296;289:12;251:52;339:9;326:23;372:18;364:6;361:30;358:50;;;404:1;401;394:12;358:50;427:22;;480:4;472:13;;468:27;-1:-1:-1;458:55:46;;509:1;506;499:12;458:55;549:2;536:16;575:18;567:6;564:30;561:56;;;597:18;;:::i;:::-;643:6;640:1;636:14;679:2;673:9;742:2;738:7;733:2;729;725:11;721:25;713:6;709:38;813:6;801:10;798:22;777:18;765:10;762:34;759:62;756:88;;;824:18;;:::i;:::-;860:2;853:22;910;;;960:2;990:11;;;986:20;;;910:22;948:15;;1018:19;;;1015:39;;;1050:1;1047;1040:12;1015:39;1082:2;1078;1074:11;1063:22;;1094:196;1110:6;1105:3;1102:15;1094:196;;;1200:17;;1230:18;;;1277:2;1127:12;;;;1200:17;;-1:-1:-1;1268:12:46;1094:196;;;-1:-1:-1;1309:6:46;146:1175;-1:-1:-1;;;;;;146:1175:46:o;1516:127::-;1577:10;1572:3;1568:20;1565:1;1558:31;1608:4;1605:1;1598:15;1632:4;1629:1;1622:15;1648:127;1709:10;1704:3;1700:20;1697:1;1690:31;1740:4;1737:1;1730:15;1764:4;1761:1;1754:15;1780:170;1877:10;1870:18;;;1850;;;1846:43;;1901:20;;1898:46;;;1924:18;;:::i;:::-;1780:170;;;;:::o;1955:480::-;2143:3;2128:19;;2132:9;2224:6;2101:4;2258:171;2272:4;2269:1;2266:11;2258:171;;;2331:13;;2319:26;;2374:4;2365:14;;;;2402:17;;;;2292:1;2285:9;2258:171;;;2262:3;;;1955:480;;;;:::o;2440:184::-;2510:6;2563:2;2551:9;2542:7;2538:23;2534:32;2531:52;;;2579:1;2576;2569:12;2531:52;-1:-1:-1;2602:16:46;;2440:184;-1:-1:-1;2440:184:46:o;2629:188::-;2667:3;2711:10;2704:5;2700:22;2746:10;2737:7;2734:23;2731:49;;2760:18;;:::i;:::-;2809:1;2796:15;;2629:188;-1:-1:-1;;2629:188:46:o" + }, + "methodIdentifiers": { + "hash(uint256[])": "40ec6e49" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"hash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/Poseidon.sol\":\"SpongePoseidon\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/lib/Poseidon.sol\":{\"keccak256\":\"0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539\",\"dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@iden3/contracts/lib/PrimitiveTypeUtils.sol": { + "PrimitiveTypeUtils": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a2164adc336cfce2118d5bc6942a4243dd413d1c25c300c9ebaa9df197aabb0964736f6c634300081b0033", + "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 LOG2 AND BLOBBASEFEE 0xDC CALLER PUSH13 0xFCE2118D5BC6942A4243DD413D SHR 0x25 0xC3 STOP 0xC9 0xEB 0xAA SWAP14 CALL SWAP8 0xAA 0xBB MULMOD PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "132:6383:10:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;132:6383:10;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a2164adc336cfce2118d5bc6942a4243dd413d1c25c300c9ebaa9df197aabb0964736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 LOG2 AND BLOBBASEFEE 0xDC CALLER PUSH13 0xFCE2118D5BC6942A4243DD413D SHR 0x25 0xC3 STOP 0xC9 0xEB 0xAA SWAP14 CALL SWAP8 0xAA 0xBB MULMOD PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "132:6383:10:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/PrimitiveTypeUtils.sol\":\"PrimitiveTypeUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/lib/PrimitiveTypeUtils.sol\":{\"keccak256\":\"0x3126dd4b236d36112a66f54ae70e791d153480248ab485373b4259b2498b7235\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f704ec7d5ee0bb109532a32f75d0457213c0852797a257392a95b64ed63b8b3a\",\"dweb:/ipfs/QmSAAH9gecdDxtrf52Pyq73g61GsKwPnBWYH1gzTiWUn3s\"]},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xf75784dfc94ea43668eb195d5690a1dde1b6eda62017e73a3899721583821d29\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://ca16cef8b94f3ac75d376489a668618f6c4595a906b939d674a883f4bf426014\",\"dweb:/ipfs/QmceGU7qhyFLSejaj6i4dEtMzXDCSF3aYDtW1UeKjXQaRn\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@iden3/contracts/lib/SmtLib.sol": { + "BinarySearchSmtRoots": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220eed719435ea2088f86deba6e60fa7bb4e7f3202fa033485475b651a4f1ea4f8664736f6c634300081b0033", + "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 0xEE 0xD7 NOT NUMBER MCOPY LOG2 ADDMOD DUP16 DUP7 0xDE 0xBA PUSH15 0x60FA7BB4E7F3202FA033485475B651 LOG4 CALL 0xEA 0x4F DUP7 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "21456:2583:11:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;21456:2583:11;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220eed719435ea2088f86deba6e60fa7bb4e7f3202fa033485475b651a4f1ea4f8664736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xEE 0xD7 NOT NUMBER MCOPY LOG2 ADDMOD DUP16 DUP7 0xDE 0xBA PUSH15 0x60FA7BB4E7F3202FA033485475B651 LOG4 CALL 0xEA 0x4F DUP7 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "21456:2583:11:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"A binary search for the sparse merkle tree root history\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/SmtLib.sol\":\"BinarySearchSmtRoots\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/lib/ArrayUtils.sol\":{\"keccak256\":\"0x7c5e3f9c56e8e80811db1f1336a1e37c657947f44687451e5a1d6bd12e9e6141\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c9497d8d8fe9fc2b2c9d61bbdfa5a4eb881ddf8948bbc099024e5026fadd6846\",\"dweb:/ipfs/Qmczkk8FLcxpM91ZAWpixowBEdq64YVLke3ZqVDt3NkYiT\"]},\"@iden3/contracts/lib/Poseidon.sol\":{\"keccak256\":\"0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539\",\"dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc\"]},\"@iden3/contracts/lib/SmtLib.sol\":{\"keccak256\":\"0x9c67be9b7d045ded48a63bd827a5bdc3f2255c68f9640bae41eef074640f1779\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f2b2452120f5b2b2c5589fcf58183f7d800d3f8a2c202ebdc3b69815bcfb2aa\",\"dweb:/ipfs/QmbnvLnfJaKL3eqt1CfXofsiLJ7G3nYTawUEqGpCazWbrQ\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + }, + "SmtLib": { + "abi": [ + { + "inputs": [], + "name": "MAX_DEPTH_HARD_CAP", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "ROOT_INFO_LIST_RETURN_LIMIT", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": { + "@iden3/contracts/lib/Poseidon.sol": { + "PoseidonUnit2L": [ + { + "length": 20, + "start": 6360 + } + ], + "PoseidonUnit3L": [ + { + "length": 20, + "start": 6182 + } + ] + } + }, + "object": "611dc1610039600b82828239805160001a607314602c57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106101405760003560e01c806379f97125116100c2578063a751be2411610086578063a751be24146102d5578063c1d29f01146102de578063dc9a7c8c146102fe578063dea7633a14610311578063e170cf6e14610324578063ec1451081461034457600080fd5b806379f9712514610244578063893f99f31461025757806391761b751461026c57806392f5b06c1461027f5780639e43b813146102b557600080fd5b806340a73d981161010957806340a73d98146101ed5780635db40cda146101f657806362e8f21514610209578063792a470f1461021e57806379c17a961461023157600080fd5b806278f030146101455780630912610a1461016b578063138271361461018d57806317c850f0146101ad57806321d60953146101cd575b600080fd5b6101586101533660046119b6565b61035c565b6040519081526020015b60405180910390f35b81801561017757600080fd5b5061018b6101863660046119b6565b610374565b005b6101a061019b3660046119d8565b61048d565b6040516101629190611a04565b6101c06101bb3660046119b6565b6104bb565b6040516101629190611ab5565b6101e06101db3660046119d8565b610526565b6040516101629190611af8565b6101586103e881565b6101a06102043660046119b6565b6105f2565b610158610217366004611b7b565b6001015490565b6101a061022c3660046119d8565b610608565b6101a061023f3660046119d8565b61061c565b610158610252366004611b7b565b610899565b610158610265366004611b7b565b6003015490565b6101e061027a366004611b94565b61092b565b6102a561028d3660046119b6565b60009081526002919091016020526040902054151590565b6040519015158152602001610162565b8180156102c157600080fd5b5061018b6102d03660046119b6565b610a56565b61015861010081565b8180156102ea57600080fd5b5061018b6102f93660046119d8565b610ad4565b6101c061030c3660046119b6565b610b85565b6101c061031f3660046119b6565b610be9565b6103376103323660046119b6565b610c77565b6040516101629190611bdc565b6102a5610352366004611b7b565b6004015460ff1690565b60008181526002830160205260409020545b92915050565b600081116103d55760405162461bcd60e51b815260206004820152602360248201527f4d6178206465707468206d7573742062652067726561746572207468616e207a60448201526265726f60e81b60648201526084015b60405180910390fd5b816003015481116104285760405162461bcd60e51b815260206004820152601f60248201527f4d61782064657074682063616e206f6e6c7920626520696e637265617365640060448201526064016103cc565b6101008111156104855760405162461bcd60e51b815260206004820152602260248201527f4d61782064657074682069732067726561746572207468616e20686172642063604482015261061760f41b60648201526084016103cc565b600390910155565b610495611907565b60006104a185846104bb565b90506104b28585836000015161061c565b95945050505050565b6104c3611950565b428211156105135760405162461bcd60e51b815260206004820152601c60248201527f4e6f206675747572652074696d657374616d707320616c6c6f7765640000000060448201526064016103cc565b61051f83836000610cf4565b9392505050565b6060600080610540866001018054905086866103e8610d2f565b909250905060006105518383611c49565b67ffffffffffffffff81111561056957610569611c5c565b6040519080825280602002602001820160405280156105a257816020015b61058f611950565b8152602001906001900390816105875790505b509050825b828110156105e7576105b98882610e3d565b826105c48684611c49565b815181106105d4576105d4611c72565b60209081029190910101526001016105a7565b509695505050505050565b6105fa611907565b61051f838361023f86610899565b610610611907565b60006104a18584610b85565b610624611907565b6000828152600285016020526040902054849083906106555760405162461bcd60e51b81526004016103cc90611c88565b6000866003015467ffffffffffffffff81111561067457610674611c5c565b60405190808252806020026020018201604052801561069d578160200160208202803683370190505b50905060005b87600301548110156106d65760008282815181106106c3576106c3611c72565b60209081029190910101526001016106a3565b506040805161010081018252868152600060208201819052918101839052606081018890526080810182905260a0810182905260c0810182905260e081019190915285610721611986565b60005b8a60030154811161088a576107398b84610c77565b915060008251600281111561075057610750611bc6565b1461088a5760018251600281111561076a5761076a611bc6565b036107bb57836060015182606001510361079457600160208501526080808301519085015261088a565b600160a0850152606082015160c08501526080808301805160e0870152519085015261088a565b6002825160028111156107d0576107d0611bc6565b0361083c57808460600151901c60011660010361081a578160400151925081602001518460400151828151811061080957610809611c72565b602002602001018181525050610878565b8160200151925081604001518460400151828151811061080957610809611c72565b60405162461bcd60e51b8152602060048201526011602482015270496e76616c6964206e6f6465207479706560781b60448201526064016103cc565b8061088281611cb5565b915050610724565b50919998505050505050505050565b6000816108aa816004015460ff1690565b6108ef5760405162461bcd60e51b815260206004820152601660248201527514db5d081a5cc81b9bdd081a5b9a5d1a585b1a5e995960521b60448201526064016103cc565b60018084018054909161090191611c49565b8154811061091157610911611c72565b906000526020600020906003020160000154915050919050565b60008381526002850160205260409020546060908590859061095f5760405162461bcd60e51b81526004016103cc90611c88565b60008681526002880160205260408120805490919081906109849089896103e8610d2f565b909250905060006109958383611c49565b67ffffffffffffffff8111156109ad576109ad611c5c565b6040519080825280602002602001820160405280156109e657816020015b6109d3611950565b8152602001906001900390816109cb5790505b509050825b82811015610a4757610a198c868381548110610a0957610a09611c72565b9060005260206000200154610e3d565b82610a248684611c49565b81518110610a3457610a34611c72565b60209081029190910101526001016109eb565b509a9950505050505050505050565b600482015460ff1615610aab5760405162461bcd60e51b815260206004820152601a60248201527f536d7420697320616c726561647920696e697469616c697a656400000000000060448201526064016103cc565b610ab58282610374565b610ac3826000806000610f80565b50600401805460ff19166001179055565b82610ae3816004015460ff1690565b610b285760405162461bcd60e51b815260206004820152601660248201527514db5d081a5cc81b9bdd081a5b9a5d1a585b1a5e995960521b60448201526064016103cc565b6040805160a08101825260018152600060208201819052918101829052606081018590526080810184905290610b5d86610899565b90506000610b6e8784846000611000565b9050610b7c87824243610f80565b50505050505050565b610b8d611950565b43821115610bdd5760405162461bcd60e51b815260206004820152601860248201527f4e6f2066757475726520626c6f636b7320616c6c6f776564000000000000000060448201526064016103cc565b61051f83836001610cf4565b610bf1611950565b600082815260028401602052604090205483908390610c225760405162461bcd60e51b81526004016103cc90611c88565b6000848152600286016020526040812080549091908290610c4590600190611c49565b81548110610c5557610c55611c72565b90600052602060002001549050610c6c8782610e3d565b979650505050505050565b610c7f611986565b60008281526020849052604090819020815160a081019092528054829060ff166002811115610cb057610cb0611bc6565b6002811115610cc157610cc1611bc6565b81526001820154602082015260028201546040820152600382015460608201526004909101546080909101529392505050565b610cfc611950565b600080610d0a86868661121a565b9150915080610d1b57610d1b611cce565b610d258683610e3d565b9695505050505050565b60008060008411610d825760405162461bcd60e51b815260206004820152601f60248201527f4c656e6774682073686f756c642062652067726561746572207468616e20300060448201526064016103cc565b82841115610dca5760405162461bcd60e51b815260206004820152601560248201527413195b99dd1a081b1a5b5a5d08195e18d959591959605a1b60448201526064016103cc565b858510610e195760405162461bcd60e51b815260206004820152601960248201527f537461727420696e646578206f7574206f6620626f756e64730000000000000060448201526064016103cc565b6000610e258587611ce4565b905086811115610e325750855b949694955050505050565b610e45611950565b600183810154600091610e5791611c49565b831490506000846001018481548110610e7257610e72611c72565b906000526020600020906003020190506040518060c001604052808260000154815260200183610ed45786600101866001610ead9190611ce4565b81548110610ebd57610ebd611c72565b906000526020600020906003020160000154610ed7565b60005b81526020018260010154815260200183610f235786600101866001610efc9190611ce4565b81548110610f0c57610f0c611c72565b906000526020600020906003020160010154610f26565b60005b81526020018260020154815260200183610f725786600101866001610f4b9190611ce4565b81548110610f5b57610f5b611c72565b906000526020600020906003020160020154610f75565b60005b905295945050505050565b6040805160608101825284815260208082018581528284018581526001808a018054808301825560008281528681209751600390920290970190815593518483015591516002938401558885529189019092529290912090549091610fe491611c49565b8154600181018355600092835260209092209091015550505050565b6000846003015482111561104a5760405162461bcd60e51b815260206004820152601160248201527013585e0819195c1d1a081c995858da1959607a1b60448201526064016103cc565b600083815260208690526040808220815160a081019092528054829060ff16600281111561107a5761107a611bc6565b600281111561108b5761108b611bc6565b8152600182015460208201526002820154604082015260038201546060820152600490910154608090910152905060008080835160028111156110d0576110d0611bc6565b036110e6576110df88886113f1565b905061120d565b6001835160028111156110fb576110fb611bc6565b0361112a5786606001518360600151146111205761111b8888858861156a565b6110df565b6110df88886113f1565b60028351600281111561113f5761113f611bc6565b0361120d5761114c611986565b858860600151901c6001166001036111b35761117a898986604001518960016111759190611ce4565b611000565b6040805160a0810190915290935080600281526020018560200151815260200184815260200160008152602001600081525090506111ff565b6111ca898986602001518960016111759190611ce4565b6040805160a0810190915290935080600281526020018481526020018560400151815260200160008152602001600081525090505b61120989826113f1565b9150505b925050505b949350505050565b600183015460009081908103611235575060009050806113e9565b600185810154600091829161124a9190611c49565b905060005b8183116113e05760026112628484611ce4565b61126c9190611cf7565b905060006112c589600101838154811061128857611288611c72565b906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820154815250508861171a565b905087810361138a575b6001898101546112df9190611c49565b82101561137b5760006113498a6001018460016112fc9190611ce4565b8154811061130c5761130c611c72565b906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820154815250508961171a565b9050888103611364578261135c81611cb5565b935050611375565b8260019650965050505050506113e9565b506112cf565b509350600192506113e9915050565b808811156113a45761139d826001611ce4565b93506113da565b80881080156113b35750600082115b156113ca576113c3600183611c49565b92506113da565b60008095509550505050506113e9565b5061124f565b50925060019150505b935093915050565b6000806113fd836117a2565b90506000808281526020869052604090205460ff16600281111561142357611423611bc6565b14611504578251600281111561143b5761143b611bc6565b60008281526020869052604090205460ff16600281111561145e5761145e611bc6565b1461146b5761146b611cce565b6020808401516000838152918690526040909120600101541461149057611490611cce565b604080840151600083815260208790529190912060020154146114b5576114b5611cce565b6060830151600082815260208690526040902060030154146114d9576114d9611cce565b6080830151600082815260208690526040902060040154146114fd576114fd611cce565b905061036e565b60008181526020859052604090208351815485929190829060ff1916600183600281111561153457611534611bc6565b02179055506020820151600182015560408201516002820155606082015160038201556080909101516004909101559392505050565b6000846003015482106115b35760405162461bcd60e51b815260206004820152601160248201527013585e0819195c1d1a081c995858da1959607a1b60448201526064016103cc565b6115bb611986565b60608086015190850151600191851c821682149190851c8116148082036116735760006115f48989896115ef8a6001611ce4565b61156a565b9050821561162f576040805160a08101909152806002815260200160008152602001828152602001600081526020016000815250935061165e565b6040805160a0810190915280600281526020018281526020016000815260200160008152602001600081525093505b61166889856113f1565b945050505050611212565b81156116bb576040805160a081019091528060028152602001611695886117a2565b81526020016116a3896117a2565b815260200160008152602001600081525092506116f9565b6040805160a0810190915280600281526020016116d7896117a2565b81526020016116e5886117a2565b815260200160008152602001600081525092505b61170388886113f1565b5061170e88846113f1565b98975050505050505050565b6000600182600181111561173057611730611bc6565b036117405750604082015161036e565b600082600181111561175457611754611bc6565b036117645750602082015161036e565b60405162461bcd60e51b8152602060048201526013602482015272496e76616c696420736561726368207479706560681b60448201526064016103cc565b6000806001835160028111156117ba576117ba611bc6565b0361185e57604080516060808201835285015181526080850151602082015260018183015290516304b98e1d60e31b815273__$03320550cd1b629da90608251571b2532e$__906325cc70e890611815908490600401611d19565b602060405180830381865af4158015611832573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118569190611d4a565b91505061036e565b60028351600281111561187357611873611bc6565b0361036e576040805180820182526020808601518252858301519082015290516314d2f97b60e11b815273__$ebe82a1924a894141c89e6680d3cbc7e88$__916329a5f2f6916118c69190600401611d63565b602060405180830381865af41580156118e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051f9190611d4a565b6040518061010001604052806000815260200160001515815260200160608152602001600081526020016000815260200160001515815260200160008152602001600081525090565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040805160a081019091528060008152602001600081526020016000815260200160008152602001600081525090565b600080604083850312156119c957600080fd5b50508035926020909101359150565b6000806000606084860312156119ed57600080fd5b505081359360208301359350604090920135919050565b6020815260006101208201835160208401526020840151151560408401526040840151610100606085015281815180845261014086019150602083019350600092505b80831015611a6a5783518252602082019150602084019350600183019250611a47565b5060608601516080860152608086015160a086015260a08601519250611a9460c086018415159052565b60c086015160e086015260e086015161010086015280935050505092915050565b60c0810161036e8284805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a08301525050565b602080825282518282018190526000918401906040840190835b81811015611b7057611b5a838551805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a08301525050565b6020939093019260c09290920191600101611b12565b509095945050505050565b600060208284031215611b8d57600080fd5b5035919050565b60008060008060808587031215611baa57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052602160045260246000fd5b815160a082019060038110611c0157634e487b7160e01b600052602160045260246000fd5b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561036e5761036e611c33565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b602080825260139082015272149bdbdd08191bd95cc81b9bdd08195e1a5cdd606a1b604082015260600190565b600060018201611cc757611cc7611c33565b5060010190565b634e487b7160e01b600052600160045260246000fd5b8082018082111561036e5761036e611c33565b600082611d1457634e487b7160e01b600052601260045260246000fd5b500490565b60608101818360005b6003811015611d41578151835260209283019290910190600101611d22565b50505092915050565b600060208284031215611d5c57600080fd5b5051919050565b60408101818360005b6002811015611d41578151835260209283019290910190600101611d6c56fea264697066735822122071bcc64c8a2a1640d7f892fc5f15aad8b6c4bd00ad037059279187506c93e5d064736f6c634300081b0033", + "opcodes": "PUSH2 0x1DC1 PUSH2 0x39 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2C 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 0x4 CALLDATASIZE LT PUSH2 0x140 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79F97125 GT PUSH2 0xC2 JUMPI DUP1 PUSH4 0xA751BE24 GT PUSH2 0x86 JUMPI DUP1 PUSH4 0xA751BE24 EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0xC1D29F01 EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0xDC9A7C8C EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xDEA7633A EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0xE170CF6E EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0xEC145108 EQ PUSH2 0x344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x79F97125 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x893F99F3 EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x91761B75 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0x92F5B06C EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0x9E43B813 EQ PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x40A73D98 GT PUSH2 0x109 JUMPI DUP1 PUSH4 0x40A73D98 EQ PUSH2 0x1ED JUMPI DUP1 PUSH4 0x5DB40CDA EQ PUSH2 0x1F6 JUMPI DUP1 PUSH4 0x62E8F215 EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x792A470F EQ PUSH2 0x21E JUMPI DUP1 PUSH4 0x79C17A96 EQ PUSH2 0x231 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x78F030 EQ PUSH2 0x145 JUMPI DUP1 PUSH4 0x912610A EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x13827136 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x17C850F0 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x21D60953 EQ PUSH2 0x1CD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x158 PUSH2 0x153 CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x186 CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0x374 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A0 PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x19D8 JUMP JUMPDEST PUSH2 0x48D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x1A04 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0x4BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x1AB5 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x1DB CALLDATASIZE PUSH1 0x4 PUSH2 0x19D8 JUMP JUMPDEST PUSH2 0x526 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x1AF8 JUMP JUMPDEST PUSH2 0x158 PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH2 0x1A0 PUSH2 0x204 CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0x5F2 JUMP JUMPDEST PUSH2 0x158 PUSH2 0x217 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B7B JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1A0 PUSH2 0x22C CALLDATASIZE PUSH1 0x4 PUSH2 0x19D8 JUMP JUMPDEST PUSH2 0x608 JUMP JUMPDEST PUSH2 0x1A0 PUSH2 0x23F CALLDATASIZE PUSH1 0x4 PUSH2 0x19D8 JUMP JUMPDEST PUSH2 0x61C JUMP JUMPDEST PUSH2 0x158 PUSH2 0x252 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B7B JUMP JUMPDEST PUSH2 0x899 JUMP JUMPDEST PUSH2 0x158 PUSH2 0x265 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B7B JUMP JUMPDEST PUSH1 0x3 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x27A CALLDATASIZE PUSH1 0x4 PUSH2 0x1B94 JUMP JUMPDEST PUSH2 0x92B JUMP JUMPDEST PUSH2 0x2A5 PUSH2 0x28D CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 SWAP2 SWAP1 SWAP2 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x162 JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x2C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x2D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0xA56 JUMP JUMPDEST PUSH2 0x158 PUSH2 0x100 DUP2 JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x2F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x19D8 JUMP JUMPDEST PUSH2 0xAD4 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x30C CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x31F CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0xBE9 JUMP JUMPDEST PUSH2 0x337 PUSH2 0x332 CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0xC77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x1BDC JUMP JUMPDEST PUSH2 0x2A5 PUSH2 0x352 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B7B JUMP JUMPDEST PUSH1 0x4 ADD SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x3D5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D6178206465707468206D7573742062652067726561746572207468616E207A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x65726F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x3 ADD SLOAD DUP2 GT PUSH2 0x428 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 0x4D61782064657074682063616E206F6E6C7920626520696E6372656173656400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH2 0x100 DUP2 GT ISZERO PUSH2 0x485 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D61782064657074682069732067726561746572207468616E20686172642063 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x617 PUSH1 0xF4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x3 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH2 0x495 PUSH2 0x1907 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A1 DUP6 DUP5 PUSH2 0x4BB JUMP JUMPDEST SWAP1 POP PUSH2 0x4B2 DUP6 DUP6 DUP4 PUSH1 0x0 ADD MLOAD PUSH2 0x61C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x4C3 PUSH2 0x1950 JUMP JUMPDEST TIMESTAMP DUP3 GT ISZERO PUSH2 0x513 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F206675747572652074696D657374616D707320616C6C6F77656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH2 0x51F DUP4 DUP4 PUSH1 0x0 PUSH2 0xCF4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH2 0x540 DUP7 PUSH1 0x1 ADD DUP1 SLOAD SWAP1 POP DUP7 DUP7 PUSH2 0x3E8 PUSH2 0xD2F JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 PUSH2 0x551 DUP4 DUP4 PUSH2 0x1C49 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x569 JUMPI PUSH2 0x569 PUSH2 0x1C5C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x5A2 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x58F PUSH2 0x1950 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x587 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5E7 JUMPI PUSH2 0x5B9 DUP9 DUP3 PUSH2 0xE3D JUMP JUMPDEST DUP3 PUSH2 0x5C4 DUP7 DUP5 PUSH2 0x1C49 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x5D4 JUMPI PUSH2 0x5D4 PUSH2 0x1C72 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x5A7 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5FA PUSH2 0x1907 JUMP JUMPDEST PUSH2 0x51F DUP4 DUP4 PUSH2 0x23F DUP7 PUSH2 0x899 JUMP JUMPDEST PUSH2 0x610 PUSH2 0x1907 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A1 DUP6 DUP5 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x624 PUSH2 0x1907 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 DUP6 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP5 SWAP1 DUP4 SWAP1 PUSH2 0x655 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CC SWAP1 PUSH2 0x1C88 JUMP JUMPDEST PUSH1 0x0 DUP7 PUSH1 0x3 ADD SLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x674 JUMPI PUSH2 0x674 PUSH2 0x1C5C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x69D JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP8 PUSH1 0x3 ADD SLOAD DUP2 LT ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x6C3 JUMPI PUSH2 0x6C3 PUSH2 0x1C72 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x6A3 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xE0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP6 PUSH2 0x721 PUSH2 0x1986 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP11 PUSH1 0x3 ADD SLOAD DUP2 GT PUSH2 0x88A JUMPI PUSH2 0x739 DUP12 DUP5 PUSH2 0xC77 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x750 JUMPI PUSH2 0x750 PUSH2 0x1BC6 JUMP JUMPDEST EQ PUSH2 0x88A JUMPI PUSH1 0x1 DUP3 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x76A JUMPI PUSH2 0x76A PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x7BB JUMPI DUP4 PUSH1 0x60 ADD MLOAD DUP3 PUSH1 0x60 ADD MLOAD SUB PUSH2 0x794 JUMPI PUSH1 0x1 PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MLOAD SWAP1 DUP6 ADD MSTORE PUSH2 0x88A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD DUP1 MLOAD PUSH1 0xE0 DUP8 ADD MSTORE MLOAD SWAP1 DUP6 ADD MSTORE PUSH2 0x88A JUMP JUMPDEST PUSH1 0x2 DUP3 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7D0 JUMPI PUSH2 0x7D0 PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x83C JUMPI DUP1 DUP5 PUSH1 0x60 ADD MLOAD SWAP1 SHR PUSH1 0x1 AND PUSH1 0x1 SUB PUSH2 0x81A JUMPI DUP2 PUSH1 0x40 ADD MLOAD SWAP3 POP DUP2 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x809 JUMPI PUSH2 0x809 PUSH2 0x1C72 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH2 0x878 JUMP JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD SWAP3 POP DUP2 PUSH1 0x40 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x809 JUMPI PUSH2 0x809 PUSH2 0x1C72 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x496E76616C6964206E6F64652074797065 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST DUP1 PUSH2 0x882 DUP2 PUSH2 0x1CB5 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x724 JUMP JUMPDEST POP SWAP2 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x8AA DUP2 PUSH1 0x4 ADD SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x8EF 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 0x14DB5D081A5CC81B9BDD081A5B9A5D1A585B1A5E9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x1 DUP1 DUP5 ADD DUP1 SLOAD SWAP1 SWAP2 PUSH2 0x901 SWAP2 PUSH2 0x1C49 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x911 JUMPI PUSH2 0x911 PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 ADD SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x2 DUP6 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x60 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x95F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CC SWAP1 PUSH2 0x1C88 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x2 DUP9 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x984 SWAP1 DUP10 DUP10 PUSH2 0x3E8 PUSH2 0xD2F JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 PUSH2 0x995 DUP4 DUP4 PUSH2 0x1C49 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9AD JUMPI PUSH2 0x9AD PUSH2 0x1C5C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x9E6 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x9D3 PUSH2 0x1950 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x9CB JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xA47 JUMPI PUSH2 0xA19 DUP13 DUP7 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0xA09 JUMPI PUSH2 0xA09 PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH2 0xE3D JUMP JUMPDEST DUP3 PUSH2 0xA24 DUP7 DUP5 PUSH2 0x1C49 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xA34 JUMPI PUSH2 0xA34 PUSH2 0x1C72 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x9EB JUMP JUMPDEST POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xAAB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536D7420697320616C726561647920696E697469616C697A6564000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH2 0xAB5 DUP3 DUP3 PUSH2 0x374 JUMP JUMPDEST PUSH2 0xAC3 DUP3 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xF80 JUMP JUMPDEST POP PUSH1 0x4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 PUSH2 0xAE3 DUP2 PUSH1 0x4 ADD SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0xB28 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 0x14DB5D081A5CC81B9BDD081A5B9A5D1A585B1A5E9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 PUSH2 0xB5D DUP7 PUSH2 0x899 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB6E DUP8 DUP5 DUP5 PUSH1 0x0 PUSH2 0x1000 JUMP JUMPDEST SWAP1 POP PUSH2 0xB7C DUP8 DUP3 TIMESTAMP NUMBER PUSH2 0xF80 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xB8D PUSH2 0x1950 JUMP JUMPDEST NUMBER DUP3 GT ISZERO PUSH2 0xBDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F2066757475726520626C6F636B7320616C6C6F7765640000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH2 0x51F DUP4 DUP4 PUSH1 0x1 PUSH2 0xCF4 JUMP JUMPDEST PUSH2 0xBF1 PUSH2 0x1950 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP4 SWAP1 DUP4 SWAP1 PUSH2 0xC22 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CC SWAP1 PUSH2 0x1C88 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 DUP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 SWAP1 DUP3 SWAP1 PUSH2 0xC45 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1C49 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0xC55 JUMPI PUSH2 0xC55 PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP PUSH2 0xC6C DUP8 DUP3 PUSH2 0xE3D JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC7F PUSH2 0x1986 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCB0 JUMPI PUSH2 0xCB0 PUSH2 0x1BC6 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCC1 JUMPI PUSH2 0xCC1 PUSH2 0x1BC6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x80 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xCFC PUSH2 0x1950 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD0A DUP7 DUP7 DUP7 PUSH2 0x121A JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 PUSH2 0xD1B JUMPI PUSH2 0xD1B PUSH2 0x1CCE JUMP JUMPDEST PUSH2 0xD25 DUP7 DUP4 PUSH2 0xE3D JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 GT PUSH2 0xD82 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 0x4C656E6774682073686F756C642062652067726561746572207468616E203000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST DUP3 DUP5 GT ISZERO PUSH2 0xDCA 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 0x13195B99DD1A081B1A5B5A5D08195E18D959591959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST DUP6 DUP6 LT PUSH2 0xE19 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537461727420696E646578206F7574206F6620626F756E647300000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE25 DUP6 DUP8 PUSH2 0x1CE4 JUMP JUMPDEST SWAP1 POP DUP7 DUP2 GT ISZERO PUSH2 0xE32 JUMPI POP DUP6 JUMPDEST SWAP5 SWAP7 SWAP5 SWAP6 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE45 PUSH2 0x1950 JUMP JUMPDEST PUSH1 0x1 DUP4 DUP2 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0xE57 SWAP2 PUSH2 0x1C49 JUMP JUMPDEST DUP4 EQ SWAP1 POP PUSH1 0x0 DUP5 PUSH1 0x1 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xE72 JUMPI PUSH2 0xE72 PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH2 0xED4 JUMPI DUP7 PUSH1 0x1 ADD DUP7 PUSH1 0x1 PUSH2 0xEAD SWAP2 SWAP1 PUSH2 0x1CE4 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0xEBD JUMPI PUSH2 0xEBD PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 ADD SLOAD PUSH2 0xED7 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH2 0xF23 JUMPI DUP7 PUSH1 0x1 ADD DUP7 PUSH1 0x1 PUSH2 0xEFC SWAP2 SWAP1 PUSH2 0x1CE4 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0xF0C JUMPI PUSH2 0xF0C PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x1 ADD SLOAD PUSH2 0xF26 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x2 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH2 0xF72 JUMPI DUP7 PUSH1 0x1 ADD DUP7 PUSH1 0x1 PUSH2 0xF4B SWAP2 SWAP1 PUSH2 0x1CE4 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0xF5B JUMPI PUSH2 0xF5B PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x2 ADD SLOAD PUSH2 0xF75 JUMP JUMPDEST PUSH1 0x0 JUMPDEST SWAP1 MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP6 DUP2 MSTORE DUP3 DUP5 ADD DUP6 DUP2 MSTORE PUSH1 0x1 DUP1 DUP11 ADD DUP1 SLOAD DUP1 DUP4 ADD DUP3 SSTORE PUSH1 0x0 DUP3 DUP2 MSTORE DUP7 DUP2 KECCAK256 SWAP8 MLOAD PUSH1 0x3 SWAP1 SWAP3 MUL SWAP1 SWAP8 ADD SWAP1 DUP2 SSTORE SWAP4 MLOAD DUP5 DUP4 ADD SSTORE SWAP2 MLOAD PUSH1 0x2 SWAP4 DUP5 ADD SSTORE DUP9 DUP6 MSTORE SWAP2 DUP10 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP1 SWAP2 KECCAK256 SWAP1 SLOAD SWAP1 SWAP2 PUSH2 0xFE4 SWAP2 PUSH2 0x1C49 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 ADD DUP4 SSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x20 SWAP1 SWAP3 KECCAK256 SWAP1 SWAP2 ADD SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x3 ADD SLOAD DUP3 GT ISZERO PUSH2 0x104A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x13585E0819195C1D1A081C995858DA1959 PUSH1 0x7A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP7 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x107A JUMPI PUSH2 0x107A PUSH2 0x1BC6 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x108B JUMPI PUSH2 0x108B PUSH2 0x1BC6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x80 SWAP1 SWAP2 ADD MSTORE SWAP1 POP PUSH1 0x0 DUP1 DUP1 DUP4 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x10D0 JUMPI PUSH2 0x10D0 PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x10E6 JUMPI PUSH2 0x10DF DUP9 DUP9 PUSH2 0x13F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x120D JUMP JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x10FB JUMPI PUSH2 0x10FB PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x112A JUMPI DUP7 PUSH1 0x60 ADD MLOAD DUP4 PUSH1 0x60 ADD MLOAD EQ PUSH2 0x1120 JUMPI PUSH2 0x111B DUP9 DUP9 DUP6 DUP9 PUSH2 0x156A JUMP JUMPDEST PUSH2 0x10DF JUMP JUMPDEST PUSH2 0x10DF DUP9 DUP9 PUSH2 0x13F1 JUMP JUMPDEST PUSH1 0x2 DUP4 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x113F JUMPI PUSH2 0x113F PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x120D JUMPI PUSH2 0x114C PUSH2 0x1986 JUMP JUMPDEST DUP6 DUP9 PUSH1 0x60 ADD MLOAD SWAP1 SHR PUSH1 0x1 AND PUSH1 0x1 SUB PUSH2 0x11B3 JUMPI PUSH2 0x117A DUP10 DUP10 DUP7 PUSH1 0x40 ADD MLOAD DUP10 PUSH1 0x1 PUSH2 0x1175 SWAP2 SWAP1 PUSH2 0x1CE4 JUMP JUMPDEST PUSH2 0x1000 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 SWAP4 POP DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP PUSH2 0x11FF JUMP JUMPDEST PUSH2 0x11CA DUP10 DUP10 DUP7 PUSH1 0x20 ADD MLOAD DUP10 PUSH1 0x1 PUSH2 0x1175 SWAP2 SWAP1 PUSH2 0x1CE4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 SWAP4 POP DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP JUMPDEST PUSH2 0x1209 DUP10 DUP3 PUSH2 0x13F1 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 SUB PUSH2 0x1235 JUMPI POP PUSH1 0x0 SWAP1 POP DUP1 PUSH2 0x13E9 JUMP JUMPDEST PUSH1 0x1 DUP6 DUP2 ADD SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH2 0x124A SWAP2 SWAP1 PUSH2 0x1C49 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP4 GT PUSH2 0x13E0 JUMPI PUSH1 0x2 PUSH2 0x1262 DUP5 DUP5 PUSH2 0x1CE4 JUMP JUMPDEST PUSH2 0x126C SWAP2 SWAP1 PUSH2 0x1CF7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x12C5 DUP10 PUSH1 0x1 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1288 JUMPI PUSH2 0x1288 PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE POP POP DUP9 PUSH2 0x171A JUMP JUMPDEST SWAP1 POP DUP8 DUP2 SUB PUSH2 0x138A JUMPI JUMPDEST PUSH1 0x1 DUP10 DUP2 ADD SLOAD PUSH2 0x12DF SWAP2 SWAP1 PUSH2 0x1C49 JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x137B JUMPI PUSH1 0x0 PUSH2 0x1349 DUP11 PUSH1 0x1 ADD DUP5 PUSH1 0x1 PUSH2 0x12FC SWAP2 SWAP1 PUSH2 0x1CE4 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x130C JUMPI PUSH2 0x130C PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE POP POP DUP10 PUSH2 0x171A JUMP JUMPDEST SWAP1 POP DUP9 DUP2 SUB PUSH2 0x1364 JUMPI DUP3 PUSH2 0x135C DUP2 PUSH2 0x1CB5 JUMP JUMPDEST SWAP4 POP POP PUSH2 0x1375 JUMP JUMPDEST DUP3 PUSH1 0x1 SWAP7 POP SWAP7 POP POP POP POP POP POP PUSH2 0x13E9 JUMP JUMPDEST POP PUSH2 0x12CF JUMP JUMPDEST POP SWAP4 POP PUSH1 0x1 SWAP3 POP PUSH2 0x13E9 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP9 GT ISZERO PUSH2 0x13A4 JUMPI PUSH2 0x139D DUP3 PUSH1 0x1 PUSH2 0x1CE4 JUMP JUMPDEST SWAP4 POP PUSH2 0x13DA JUMP JUMPDEST DUP1 DUP9 LT DUP1 ISZERO PUSH2 0x13B3 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST ISZERO PUSH2 0x13CA JUMPI PUSH2 0x13C3 PUSH1 0x1 DUP4 PUSH2 0x1C49 JUMP JUMPDEST SWAP3 POP PUSH2 0x13DA JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP6 POP SWAP6 POP POP POP POP POP PUSH2 0x13E9 JUMP JUMPDEST POP PUSH2 0x124F JUMP JUMPDEST POP SWAP3 POP PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x13FD DUP4 PUSH2 0x17A2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 DUP7 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1423 JUMPI PUSH2 0x1423 PUSH2 0x1BC6 JUMP JUMPDEST EQ PUSH2 0x1504 JUMPI DUP3 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x143B JUMPI PUSH2 0x143B PUSH2 0x1BC6 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP7 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x145E JUMPI PUSH2 0x145E PUSH2 0x1BC6 JUMP JUMPDEST EQ PUSH2 0x146B JUMPI PUSH2 0x146B PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP5 ADD MLOAD PUSH1 0x0 DUP4 DUP2 MSTORE SWAP2 DUP7 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 ADD SLOAD EQ PUSH2 0x1490 JUMPI PUSH2 0x1490 PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP8 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD EQ PUSH2 0x14B5 JUMPI PUSH2 0x14B5 PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP7 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD EQ PUSH2 0x14D9 JUMPI PUSH2 0x14D9 PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP7 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD EQ PUSH2 0x14FD JUMPI PUSH2 0x14FD PUSH2 0x1CCE JUMP JUMPDEST SWAP1 POP PUSH2 0x36E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP6 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP2 SLOAD DUP6 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1534 JUMPI PUSH2 0x1534 PUSH2 0x1BC6 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x3 DUP3 ADD SSTORE PUSH1 0x80 SWAP1 SWAP2 ADD MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x3 ADD SLOAD DUP3 LT PUSH2 0x15B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x13585E0819195C1D1A081C995858DA1959 PUSH1 0x7A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH2 0x15BB PUSH2 0x1986 JUMP JUMPDEST PUSH1 0x60 DUP1 DUP7 ADD MLOAD SWAP1 DUP6 ADD MLOAD PUSH1 0x1 SWAP2 DUP6 SHR DUP3 AND DUP3 EQ SWAP2 SWAP1 DUP6 SHR DUP2 AND EQ DUP1 DUP3 SUB PUSH2 0x1673 JUMPI PUSH1 0x0 PUSH2 0x15F4 DUP10 DUP10 DUP10 PUSH2 0x15EF DUP11 PUSH1 0x1 PUSH2 0x1CE4 JUMP JUMPDEST PUSH2 0x156A JUMP JUMPDEST SWAP1 POP DUP3 ISZERO PUSH2 0x162F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP4 POP PUSH2 0x165E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP4 POP JUMPDEST PUSH2 0x1668 DUP10 DUP6 PUSH2 0x13F1 JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH2 0x1212 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x16BB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1695 DUP9 PUSH2 0x17A2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16A3 DUP10 PUSH2 0x17A2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP3 POP PUSH2 0x16F9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16D7 DUP10 PUSH2 0x17A2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16E5 DUP9 PUSH2 0x17A2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP3 POP JUMPDEST PUSH2 0x1703 DUP9 DUP9 PUSH2 0x13F1 JUMP JUMPDEST POP PUSH2 0x170E DUP9 DUP5 PUSH2 0x13F1 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1730 JUMPI PUSH2 0x1730 PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x1740 JUMPI POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x36E JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1754 JUMPI PUSH2 0x1754 PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x1764 JUMPI POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x36E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x496E76616C6964207365617263682074797065 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 DUP4 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x17BA JUMPI PUSH2 0x17BA PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x185E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP1 DUP3 ADD DUP4 MSTORE DUP6 ADD MLOAD DUP2 MSTORE PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH4 0x4B98E1D PUSH1 0xE3 SHL DUP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x25CC70E8 SWAP1 PUSH2 0x1815 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x1D19 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1832 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1856 SWAP2 SWAP1 PUSH2 0x1D4A JUMP JUMPDEST SWAP2 POP POP PUSH2 0x36E JUMP JUMPDEST PUSH1 0x2 DUP4 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1873 JUMPI PUSH2 0x1873 PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x36E JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x20 DUP1 DUP7 ADD MLOAD DUP3 MSTORE DUP6 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP1 MLOAD PUSH4 0x14D2F97B PUSH1 0xE1 SHL DUP2 MSTORE PUSH20 0x0 SWAP2 PUSH4 0x29A5F2F6 SWAP2 PUSH2 0x18C6 SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x1D63 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x18E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x1D4A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x19C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x19ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x120 DUP3 ADD DUP4 MLOAD PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x20 DUP5 ADD MLOAD ISZERO ISZERO PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0x100 PUSH1 0x60 DUP6 ADD MSTORE DUP2 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x140 DUP7 ADD SWAP2 POP PUSH1 0x20 DUP4 ADD SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x1A6A JUMPI DUP4 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x1 DUP4 ADD SWAP3 POP PUSH2 0x1A47 JUMP JUMPDEST POP PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0x80 DUP7 ADD MLOAD PUSH1 0xA0 DUP7 ADD MSTORE PUSH1 0xA0 DUP7 ADD MLOAD SWAP3 POP PUSH2 0x1A94 PUSH1 0xC0 DUP7 ADD DUP5 ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST PUSH1 0xC0 DUP7 ADD MLOAD PUSH1 0xE0 DUP7 ADD MSTORE PUSH1 0xE0 DUP7 ADD MLOAD PUSH2 0x100 DUP7 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x36E DUP3 DUP5 DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 ADD SWAP1 PUSH1 0x40 DUP5 ADD SWAP1 DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1B70 JUMPI PUSH2 0x1B5A DUP4 DUP6 MLOAD DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0xC0 SWAP3 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1B12 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1BAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 CALLDATALOAD SWAP5 PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xA0 DUP3 ADD SWAP1 PUSH1 0x3 DUP2 LT PUSH2 0x1C01 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP4 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x36E JUMPI PUSH2 0x36E PUSH2 0x1C33 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x13 SWAP1 DUP3 ADD MSTORE PUSH19 0x149BDBDD08191BD95CC81B9BDD08195E1A5CDD PUSH1 0x6A SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1CC7 JUMPI PUSH2 0x1CC7 PUSH2 0x1C33 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x36E JUMPI PUSH2 0x36E PUSH2 0x1C33 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1D14 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD DUP2 DUP4 PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x1D41 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1D22 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD DUP2 DUP4 PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP2 LT ISZERO PUSH2 0x1D41 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1D6C JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH18 0xBCC64C8A2A1640D7F892FC5F15AAD8B6C4BD STOP 0xAD SUB PUSH17 0x59279187506C93E5D064736F6C63430008 SHL STOP CALLER ", + "sourceMap": "688:20641:11:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;688:20641:11;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@MAX_DEPTH_HARD_CAP_2931": { + "entryPoint": null, + "id": 2931, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@ROOT_INFO_LIST_RETURN_LIMIT_2927": { + "entryPoint": null, + "id": 2927, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_addEntry_4448": { + "entryPoint": 3968, + "id": 4448, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_addLeaf_4003": { + "entryPoint": 4096, + "id": 4003, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@_addNode_4244": { + "entryPoint": 5105, + "id": 4244, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_getNodeHash_4307": { + "entryPoint": 6050, + "id": 4307, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_getRootInfoByIndex_4376": { + "entryPoint": 3645, + "id": 4376, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_getRootInfoByTimestampOrBlock_4410": { + "entryPoint": 3316, + "id": 4410, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@_pushLeaf_4149": { + "entryPoint": 5482, + "id": 4149, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@addLeaf_3091": { + "entryPoint": 2772, + "id": 3091, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@binarySearchUint256_4599": { + "entryPoint": 4634, + "id": 4599, + "parameterSlots": 3, + "returnSlots": 2 + }, + "@calculateBounds_610": { + "entryPoint": 3375, + "id": 610, + "parameterSlots": 4, + "returnSlots": 2 + }, + "@fieldSelector_4635": { + "entryPoint": 5914, + "id": 4635, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getMaxDepth_3780": { + "entryPoint": null, + "id": 3780, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getNode_3192": { + "entryPoint": 3191, + "id": 3192, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getProofByBlock_3484": { + "entryPoint": 1544, + "id": 3484, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getProofByRoot_3424": { + "entryPoint": 1564, + "id": 3424, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getProofByTime_3454": { + "entryPoint": 1165, + "id": 3454, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getProof_3213": { + "entryPoint": 1522, + "id": 3213, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRootHistoryLength_3105": { + "entryPoint": null, + "id": 3105, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getRootHistory_3174": { + "entryPoint": 1318, + "id": 3174, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getRootInfoByBlock_3564": { + "entryPoint": 2949, + "id": 3564, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRootInfoByTime_3535": { + "entryPoint": 1211, + "id": 3535, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRootInfoListByRoot_3709": { + "entryPoint": 2347, + "id": 3709, + "parameterSlots": 4, + "returnSlots": 1 + }, + "@getRootInfoListLengthByRoot_3623": { + "entryPoint": 860, + "id": 3623, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRootInfo_3605": { + "entryPoint": 3049, + "id": 3605, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRoot_3506": { + "entryPoint": 2201, + "id": 3506, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@initialize_3816": { + "entryPoint": 2646, + "id": 3816, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@isInitialized_3842": { + "entryPoint": null, + "id": 3842, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@rootExists_3729": { + "entryPoint": null, + "id": 3729, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@setMaxDepth_3767": { + "entryPoint": 884, + "id": 3767, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_tuple_t_struct$_Data_$2960_storage_ptr": { + "entryPoint": 7035, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_Data_$2960_storage_ptrt_uint256": { + "entryPoint": 6582, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_struct$_Data_$2960_storage_ptrt_uint256t_uint256": { + "entryPoint": 6616, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_struct$_Data_$2960_storage_ptrt_uint256t_uint256t_uint256": { + "entryPoint": 7060, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 7498, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_bool": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_struct_RootEntryInfo": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr__fromStack_library_reversed": { + "entryPoint": 6904, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$2_memory_ptr__to_t_array$_t_uint256_$2_memory_ptr__fromStack_library_reversed": { + "entryPoint": 7523, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$3_memory_ptr__to_t_array$_t_uint256_$3_memory_ptr__fromStack_library_reversed": { + "entryPoint": 7449, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_1bf3850e5a3c6a77d2f1f122095086090857032f278d39145c3b095e1a8b6db1__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_34bc8bca45d4a31a6e4233f39a7def873d05862a78f6ec35ac6d77da37f9aea8__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_36f00609f1952b6d8e215a941a30218dcc45c2a338282e0aa639a69b27436235__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_43b57e13a6e36a7597dc186152e9451a8e2e96966b0b137fb7362d47da52fb0e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_6fabd1de3d4166fb77523c227388d19569e575c85e2f9f3fcf56540735e40935__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_7c161ae563d93d0a051be3b5891d7ee230c24127d59714e18bb10048ca6f9e84__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_7d4bcbad4eb3a77bbd93aeffb447dd4a40bb90d7f9bcb1e7b24196129dc65c2a__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_87c54ee2d38ee359efdefcd1894af2fd7fad037b45e2358dc82a62d9b12d91e3__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_ac1ebaa0462e13da16f18cbe900dae12201bb024c2854db23aa2ec21507908be__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_ad7ecf2adb23a091a9c01bdae7fb1b18a3a12c15e41cfafded464e944aa5faec__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 7304, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_bfd13f65fb38f208d39dd4db262f4a6b7e7be3bcdc9bf6b007847ef6e9e4f479__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_c366ba1cae47b1c1a5d6ce887a8bd1a8d2f3658dc55cd03d6e6687e140586e6f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_e68aa2945d9d826fe10860e3b76417578773840626355af3554acc1da6ab249f__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_f927d9ad01d6e6b5172536d51bb739dcbf594dbe3b2e483a8bff6b42ca949e30__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Node_$3014_memory_ptr__to_t_struct$_Node_$3014_memory_ptr__fromStack_library_reversed": { + "entryPoint": 7132, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr__fromStack_library_reversed": { + "entryPoint": 6660, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_RootEntryInfo_$3001_memory_ptr__to_t_struct$_RootEntryInfo_$3001_memory_ptr__fromStack_library_reversed": { + "entryPoint": 6837, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 7396, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_div_t_uint256": { + "entryPoint": 7415, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 7241, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "increment_t_uint256": { + "entryPoint": 7349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "panic_error_0x01": { + "entryPoint": 7374, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x11": { + "entryPoint": 7219, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x21": { + "entryPoint": 7110, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 7282, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 7260, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:12963:46", + "nodeType": "YulBlock", + "src": "0:12963:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "124:259:46", + "nodeType": "YulBlock", + "src": "124:259:46", + "statements": [ + { + "body": { + "nativeSrc": "170:16:46", + "nodeType": "YulBlock", + "src": "170:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "179:1:46", + "nodeType": "YulLiteral", + "src": "179:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "182:1:46", + "nodeType": "YulLiteral", + "src": "182:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "172:6:46", + "nodeType": "YulIdentifier", + "src": "172:6:46" + }, + "nativeSrc": "172:12:46", + "nodeType": "YulFunctionCall", + "src": "172:12:46" + }, + "nativeSrc": "172:12:46", + "nodeType": "YulExpressionStatement", + "src": "172:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "145:7:46", + "nodeType": "YulIdentifier", + "src": "145:7:46" + }, + { + "name": "headStart", + "nativeSrc": "154:9:46", + "nodeType": "YulIdentifier", + "src": "154:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "141:3:46", + "nodeType": "YulIdentifier", + "src": "141:3:46" + }, + "nativeSrc": "141:23:46", + "nodeType": "YulFunctionCall", + "src": "141:23:46" + }, + { + "kind": "number", + "nativeSrc": "166:2:46", + "nodeType": "YulLiteral", + "src": "166:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "137:3:46", + "nodeType": "YulIdentifier", + "src": "137:3:46" + }, + "nativeSrc": "137:32:46", + "nodeType": "YulFunctionCall", + "src": "137:32:46" + }, + "nativeSrc": "134:52:46", + "nodeType": "YulIf", + "src": "134:52:46" + }, + { + "nativeSrc": "195:14:46", + "nodeType": "YulVariableDeclaration", + "src": "195:14:46", + "value": { + "kind": "number", + "nativeSrc": "208:1:46", + "nodeType": "YulLiteral", + "src": "208:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "199:5:46", + "nodeType": "YulTypedName", + "src": "199:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "218:32:46", + "nodeType": "YulAssignment", + "src": "218:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "240:9:46", + "nodeType": "YulIdentifier", + "src": "240:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "227:12:46", + "nodeType": "YulIdentifier", + "src": "227:12:46" + }, + "nativeSrc": "227:23:46", + "nodeType": "YulFunctionCall", + "src": "227:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "218:5:46", + "nodeType": "YulIdentifier", + "src": "218:5:46" + } + ] + }, + { + "nativeSrc": "259:15:46", + "nodeType": "YulAssignment", + "src": "259:15:46", + "value": { + "name": "value", + "nativeSrc": "269:5:46", + "nodeType": "YulIdentifier", + "src": "269:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "259:6:46", + "nodeType": "YulIdentifier", + "src": "259:6:46" + } + ] + }, + { + "nativeSrc": "283:16:46", + "nodeType": "YulVariableDeclaration", + "src": "283:16:46", + "value": { + "kind": "number", + "nativeSrc": "298:1:46", + "nodeType": "YulLiteral", + "src": "298:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "287:7:46", + "nodeType": "YulTypedName", + "src": "287:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "308:43:46", + "nodeType": "YulAssignment", + "src": "308:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "336:9:46", + "nodeType": "YulIdentifier", + "src": "336:9:46" + }, + { + "kind": "number", + "nativeSrc": "347:2:46", + "nodeType": "YulLiteral", + "src": "347:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "332:3:46", + "nodeType": "YulIdentifier", + "src": "332:3:46" + }, + "nativeSrc": "332:18:46", + "nodeType": "YulFunctionCall", + "src": "332:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "319:12:46", + "nodeType": "YulIdentifier", + "src": "319:12:46" + }, + "nativeSrc": "319:32:46", + "nodeType": "YulFunctionCall", + "src": "319:32:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "308:7:46", + "nodeType": "YulIdentifier", + "src": "308:7:46" + } + ] + }, + { + "nativeSrc": "360:17:46", + "nodeType": "YulAssignment", + "src": "360:17:46", + "value": { + "name": "value_1", + "nativeSrc": "370:7:46", + "nodeType": "YulIdentifier", + "src": "370:7:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "360:6:46", + "nodeType": "YulIdentifier", + "src": "360:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Data_$2960_storage_ptrt_uint256", + "nativeSrc": "14:369:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "82:9:46", + "nodeType": "YulTypedName", + "src": "82:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "93:7:46", + "nodeType": "YulTypedName", + "src": "93:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "105:6:46", + "nodeType": "YulTypedName", + "src": "105:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "113:6:46", + "nodeType": "YulTypedName", + "src": "113:6:46", + "type": "" + } + ], + "src": "14:369:46" + }, + { + "body": { + "nativeSrc": "497:76:46", + "nodeType": "YulBlock", + "src": "497:76:46", + "statements": [ + { + "nativeSrc": "507:26:46", + "nodeType": "YulAssignment", + "src": "507:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "519:9:46", + "nodeType": "YulIdentifier", + "src": "519:9:46" + }, + { + "kind": "number", + "nativeSrc": "530:2:46", + "nodeType": "YulLiteral", + "src": "530:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "515:3:46", + "nodeType": "YulIdentifier", + "src": "515:3:46" + }, + "nativeSrc": "515:18:46", + "nodeType": "YulFunctionCall", + "src": "515:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "507:4:46", + "nodeType": "YulIdentifier", + "src": "507:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "549:9:46", + "nodeType": "YulIdentifier", + "src": "549:9:46" + }, + { + "name": "value0", + "nativeSrc": "560:6:46", + "nodeType": "YulIdentifier", + "src": "560:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "542:6:46", + "nodeType": "YulIdentifier", + "src": "542:6:46" + }, + "nativeSrc": "542:25:46", + "nodeType": "YulFunctionCall", + "src": "542:25:46" + }, + "nativeSrc": "542:25:46", + "nodeType": "YulExpressionStatement", + "src": "542:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed", + "nativeSrc": "388:185:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "466:9:46", + "nodeType": "YulTypedName", + "src": "466:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "477:6:46", + "nodeType": "YulTypedName", + "src": "477:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "488:4:46", + "nodeType": "YulTypedName", + "src": "488:4:46", + "type": "" + } + ], + "src": "388:185:46" + }, + { + "body": { + "nativeSrc": "705:362:46", + "nodeType": "YulBlock", + "src": "705:362:46", + "statements": [ + { + "body": { + "nativeSrc": "751:16:46", + "nodeType": "YulBlock", + "src": "751:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "760:1:46", + "nodeType": "YulLiteral", + "src": "760:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "763:1:46", + "nodeType": "YulLiteral", + "src": "763:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "753:6:46", + "nodeType": "YulIdentifier", + "src": "753:6:46" + }, + "nativeSrc": "753:12:46", + "nodeType": "YulFunctionCall", + "src": "753:12:46" + }, + "nativeSrc": "753:12:46", + "nodeType": "YulExpressionStatement", + "src": "753:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "726:7:46", + "nodeType": "YulIdentifier", + "src": "726:7:46" + }, + { + "name": "headStart", + "nativeSrc": "735:9:46", + "nodeType": "YulIdentifier", + "src": "735:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "722:3:46", + "nodeType": "YulIdentifier", + "src": "722:3:46" + }, + "nativeSrc": "722:23:46", + "nodeType": "YulFunctionCall", + "src": "722:23:46" + }, + { + "kind": "number", + "nativeSrc": "747:2:46", + "nodeType": "YulLiteral", + "src": "747:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "718:3:46", + "nodeType": "YulIdentifier", + "src": "718:3:46" + }, + "nativeSrc": "718:32:46", + "nodeType": "YulFunctionCall", + "src": "718:32:46" + }, + "nativeSrc": "715:52:46", + "nodeType": "YulIf", + "src": "715:52:46" + }, + { + "nativeSrc": "776:14:46", + "nodeType": "YulVariableDeclaration", + "src": "776:14:46", + "value": { + "kind": "number", + "nativeSrc": "789:1:46", + "nodeType": "YulLiteral", + "src": "789:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "780:5:46", + "nodeType": "YulTypedName", + "src": "780:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "799:32:46", + "nodeType": "YulAssignment", + "src": "799:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "821:9:46", + "nodeType": "YulIdentifier", + "src": "821:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "808:12:46", + "nodeType": "YulIdentifier", + "src": "808:12:46" + }, + "nativeSrc": "808:23:46", + "nodeType": "YulFunctionCall", + "src": "808:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "799:5:46", + "nodeType": "YulIdentifier", + "src": "799:5:46" + } + ] + }, + { + "nativeSrc": "840:15:46", + "nodeType": "YulAssignment", + "src": "840:15:46", + "value": { + "name": "value", + "nativeSrc": "850:5:46", + "nodeType": "YulIdentifier", + "src": "850:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "840:6:46", + "nodeType": "YulIdentifier", + "src": "840:6:46" + } + ] + }, + { + "nativeSrc": "864:16:46", + "nodeType": "YulVariableDeclaration", + "src": "864:16:46", + "value": { + "kind": "number", + "nativeSrc": "879:1:46", + "nodeType": "YulLiteral", + "src": "879:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "868:7:46", + "nodeType": "YulTypedName", + "src": "868:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "889:43:46", + "nodeType": "YulAssignment", + "src": "889:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "917:9:46", + "nodeType": "YulIdentifier", + "src": "917:9:46" + }, + { + "kind": "number", + "nativeSrc": "928:2:46", + "nodeType": "YulLiteral", + "src": "928:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "913:3:46", + "nodeType": "YulIdentifier", + "src": "913:3:46" + }, + "nativeSrc": "913:18:46", + "nodeType": "YulFunctionCall", + "src": "913:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "900:12:46", + "nodeType": "YulIdentifier", + "src": "900:12:46" + }, + "nativeSrc": "900:32:46", + "nodeType": "YulFunctionCall", + "src": "900:32:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "889:7:46", + "nodeType": "YulIdentifier", + "src": "889:7:46" + } + ] + }, + { + "nativeSrc": "941:17:46", + "nodeType": "YulAssignment", + "src": "941:17:46", + "value": { + "name": "value_1", + "nativeSrc": "951:7:46", + "nodeType": "YulIdentifier", + "src": "951:7:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "941:6:46", + "nodeType": "YulIdentifier", + "src": "941:6:46" + } + ] + }, + { + "nativeSrc": "967:16:46", + "nodeType": "YulVariableDeclaration", + "src": "967:16:46", + "value": { + "kind": "number", + "nativeSrc": "982:1:46", + "nodeType": "YulLiteral", + "src": "982:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "971:7:46", + "nodeType": "YulTypedName", + "src": "971:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "992:43:46", + "nodeType": "YulAssignment", + "src": "992:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1020:9:46", + "nodeType": "YulIdentifier", + "src": "1020:9:46" + }, + { + "kind": "number", + "nativeSrc": "1031:2:46", + "nodeType": "YulLiteral", + "src": "1031:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1016:3:46", + "nodeType": "YulIdentifier", + "src": "1016:3:46" + }, + "nativeSrc": "1016:18:46", + "nodeType": "YulFunctionCall", + "src": "1016:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "1003:12:46", + "nodeType": "YulIdentifier", + "src": "1003:12:46" + }, + "nativeSrc": "1003:32:46", + "nodeType": "YulFunctionCall", + "src": "1003:32:46" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "992:7:46", + "nodeType": "YulIdentifier", + "src": "992:7:46" + } + ] + }, + { + "nativeSrc": "1044:17:46", + "nodeType": "YulAssignment", + "src": "1044:17:46", + "value": { + "name": "value_2", + "nativeSrc": "1054:7:46", + "nodeType": "YulIdentifier", + "src": "1054:7:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "1044:6:46", + "nodeType": "YulIdentifier", + "src": "1044:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Data_$2960_storage_ptrt_uint256t_uint256", + "nativeSrc": "578:489:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "655:9:46", + "nodeType": "YulTypedName", + "src": "655:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "666:7:46", + "nodeType": "YulTypedName", + "src": "666:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "678:6:46", + "nodeType": "YulTypedName", + "src": "678:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "686:6:46", + "nodeType": "YulTypedName", + "src": "686:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "694:6:46", + "nodeType": "YulTypedName", + "src": "694:6:46", + "type": "" + } + ], + "src": "578:489:46" + }, + { + "body": { + "nativeSrc": "1113:50:46", + "nodeType": "YulBlock", + "src": "1113:50:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1130:3:46", + "nodeType": "YulIdentifier", + "src": "1130:3:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1149:5:46", + "nodeType": "YulIdentifier", + "src": "1149:5:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1142:6:46", + "nodeType": "YulIdentifier", + "src": "1142:6:46" + }, + "nativeSrc": "1142:13:46", + "nodeType": "YulFunctionCall", + "src": "1142:13:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1135:6:46", + "nodeType": "YulIdentifier", + "src": "1135:6:46" + }, + "nativeSrc": "1135:21:46", + "nodeType": "YulFunctionCall", + "src": "1135:21:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1123:6:46", + "nodeType": "YulIdentifier", + "src": "1123:6:46" + }, + "nativeSrc": "1123:34:46", + "nodeType": "YulFunctionCall", + "src": "1123:34:46" + }, + "nativeSrc": "1123:34:46", + "nodeType": "YulExpressionStatement", + "src": "1123:34:46" + } + ] + }, + "name": "abi_encode_bool", + "nativeSrc": "1072:91:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1097:5:46", + "nodeType": "YulTypedName", + "src": "1097:5:46", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1104:3:46", + "nodeType": "YulTypedName", + "src": "1104:3:46", + "type": "" + } + ], + "src": "1072:91:46" + }, + { + "body": { + "nativeSrc": "1323:1054:46", + "nodeType": "YulBlock", + "src": "1323:1054:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1340:9:46", + "nodeType": "YulIdentifier", + "src": "1340:9:46" + }, + { + "kind": "number", + "nativeSrc": "1351:2:46", + "nodeType": "YulLiteral", + "src": "1351:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1333:6:46", + "nodeType": "YulIdentifier", + "src": "1333:6:46" + }, + "nativeSrc": "1333:21:46", + "nodeType": "YulFunctionCall", + "src": "1333:21:46" + }, + "nativeSrc": "1333:21:46", + "nodeType": "YulExpressionStatement", + "src": "1333:21:46" + }, + { + "nativeSrc": "1363:33:46", + "nodeType": "YulVariableDeclaration", + "src": "1363:33:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1381:9:46", + "nodeType": "YulIdentifier", + "src": "1381:9:46" + }, + { + "kind": "number", + "nativeSrc": "1392:3:46", + "nodeType": "YulLiteral", + "src": "1392:3:46", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1377:3:46", + "nodeType": "YulIdentifier", + "src": "1377:3:46" + }, + "nativeSrc": "1377:19:46", + "nodeType": "YulFunctionCall", + "src": "1377:19:46" + }, + "variables": [ + { + "name": "tail_1", + "nativeSrc": "1367:6:46", + "nodeType": "YulTypedName", + "src": "1367:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1416:9:46", + "nodeType": "YulIdentifier", + "src": "1416:9:46" + }, + { + "kind": "number", + "nativeSrc": "1427:2:46", + "nodeType": "YulLiteral", + "src": "1427:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1412:3:46", + "nodeType": "YulIdentifier", + "src": "1412:3:46" + }, + "nativeSrc": "1412:18:46", + "nodeType": "YulFunctionCall", + "src": "1412:18:46" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1438:6:46", + "nodeType": "YulIdentifier", + "src": "1438:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1432:5:46", + "nodeType": "YulIdentifier", + "src": "1432:5:46" + }, + "nativeSrc": "1432:13:46", + "nodeType": "YulFunctionCall", + "src": "1432:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1405:6:46", + "nodeType": "YulIdentifier", + "src": "1405:6:46" + }, + "nativeSrc": "1405:41:46", + "nodeType": "YulFunctionCall", + "src": "1405:41:46" + }, + "nativeSrc": "1405:41:46", + "nodeType": "YulExpressionStatement", + "src": "1405:41:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1466:9:46", + "nodeType": "YulIdentifier", + "src": "1466:9:46" + }, + { + "kind": "number", + "nativeSrc": "1477:2:46", + "nodeType": "YulLiteral", + "src": "1477:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1462:3:46", + "nodeType": "YulIdentifier", + "src": "1462:3:46" + }, + "nativeSrc": "1462:18:46", + "nodeType": "YulFunctionCall", + "src": "1462:18:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1506:6:46", + "nodeType": "YulIdentifier", + "src": "1506:6:46" + }, + { + "kind": "number", + "nativeSrc": "1514:2:46", + "nodeType": "YulLiteral", + "src": "1514:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1502:3:46", + "nodeType": "YulIdentifier", + "src": "1502:3:46" + }, + "nativeSrc": "1502:15:46", + "nodeType": "YulFunctionCall", + "src": "1502:15:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1496:5:46", + "nodeType": "YulIdentifier", + "src": "1496:5:46" + }, + "nativeSrc": "1496:22:46", + "nodeType": "YulFunctionCall", + "src": "1496:22:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1489:6:46", + "nodeType": "YulIdentifier", + "src": "1489:6:46" + }, + "nativeSrc": "1489:30:46", + "nodeType": "YulFunctionCall", + "src": "1489:30:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1482:6:46", + "nodeType": "YulIdentifier", + "src": "1482:6:46" + }, + "nativeSrc": "1482:38:46", + "nodeType": "YulFunctionCall", + "src": "1482:38:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1455:6:46", + "nodeType": "YulIdentifier", + "src": "1455:6:46" + }, + "nativeSrc": "1455:66:46", + "nodeType": "YulFunctionCall", + "src": "1455:66:46" + }, + "nativeSrc": "1455:66:46", + "nodeType": "YulExpressionStatement", + "src": "1455:66:46" + }, + { + "nativeSrc": "1530:42:46", + "nodeType": "YulVariableDeclaration", + "src": "1530:42:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1560:6:46", + "nodeType": "YulIdentifier", + "src": "1560:6:46" + }, + { + "kind": "number", + "nativeSrc": "1568:2:46", + "nodeType": "YulLiteral", + "src": "1568:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1556:3:46", + "nodeType": "YulIdentifier", + "src": "1556:3:46" + }, + "nativeSrc": "1556:15:46", + "nodeType": "YulFunctionCall", + "src": "1556:15:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1550:5:46", + "nodeType": "YulIdentifier", + "src": "1550:5:46" + }, + "nativeSrc": "1550:22:46", + "nodeType": "YulFunctionCall", + "src": "1550:22:46" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "1534:12:46", + "nodeType": "YulTypedName", + "src": "1534:12:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1592:9:46", + "nodeType": "YulIdentifier", + "src": "1592:9:46" + }, + { + "kind": "number", + "nativeSrc": "1603:2:46", + "nodeType": "YulLiteral", + "src": "1603:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1588:3:46", + "nodeType": "YulIdentifier", + "src": "1588:3:46" + }, + "nativeSrc": "1588:18:46", + "nodeType": "YulFunctionCall", + "src": "1588:18:46" + }, + { + "kind": "number", + "nativeSrc": "1608:6:46", + "nodeType": "YulLiteral", + "src": "1608:6:46", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1581:6:46", + "nodeType": "YulIdentifier", + "src": "1581:6:46" + }, + "nativeSrc": "1581:34:46", + "nodeType": "YulFunctionCall", + "src": "1581:34:46" + }, + "nativeSrc": "1581:34:46", + "nodeType": "YulExpressionStatement", + "src": "1581:34:46" + }, + { + "nativeSrc": "1624:17:46", + "nodeType": "YulVariableDeclaration", + "src": "1624:17:46", + "value": { + "name": "tail_1", + "nativeSrc": "1635:6:46", + "nodeType": "YulIdentifier", + "src": "1635:6:46" + }, + "variables": [ + { + "name": "pos", + "nativeSrc": "1628:3:46", + "nodeType": "YulTypedName", + "src": "1628:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "1650:33:46", + "nodeType": "YulVariableDeclaration", + "src": "1650:33:46", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "1670:12:46", + "nodeType": "YulIdentifier", + "src": "1670:12:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1664:5:46", + "nodeType": "YulIdentifier", + "src": "1664:5:46" + }, + "nativeSrc": "1664:19:46", + "nodeType": "YulFunctionCall", + "src": "1664:19:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "1654:6:46", + "nodeType": "YulTypedName", + "src": "1654:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "tail_1", + "nativeSrc": "1699:6:46", + "nodeType": "YulIdentifier", + "src": "1699:6:46" + }, + { + "name": "length", + "nativeSrc": "1707:6:46", + "nodeType": "YulIdentifier", + "src": "1707:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1692:6:46", + "nodeType": "YulIdentifier", + "src": "1692:6:46" + }, + "nativeSrc": "1692:22:46", + "nodeType": "YulFunctionCall", + "src": "1692:22:46" + }, + "nativeSrc": "1692:22:46", + "nodeType": "YulExpressionStatement", + "src": "1692:22:46" + }, + { + "nativeSrc": "1723:26:46", + "nodeType": "YulAssignment", + "src": "1723:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1734:9:46", + "nodeType": "YulIdentifier", + "src": "1734:9:46" + }, + { + "kind": "number", + "nativeSrc": "1745:3:46", + "nodeType": "YulLiteral", + "src": "1745:3:46", + "type": "", + "value": "320" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1730:3:46", + "nodeType": "YulIdentifier", + "src": "1730:3:46" + }, + "nativeSrc": "1730:19:46", + "nodeType": "YulFunctionCall", + "src": "1730:19:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "1723:3:46", + "nodeType": "YulIdentifier", + "src": "1723:3:46" + } + ] + }, + { + "nativeSrc": "1758:35:46", + "nodeType": "YulVariableDeclaration", + "src": "1758:35:46", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "1776:12:46", + "nodeType": "YulIdentifier", + "src": "1776:12:46" + }, + { + "kind": "number", + "nativeSrc": "1790:2:46", + "nodeType": "YulLiteral", + "src": "1790:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1772:3:46", + "nodeType": "YulIdentifier", + "src": "1772:3:46" + }, + "nativeSrc": "1772:21:46", + "nodeType": "YulFunctionCall", + "src": "1772:21:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "1762:6:46", + "nodeType": "YulTypedName", + "src": "1762:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "1802:10:46", + "nodeType": "YulVariableDeclaration", + "src": "1802:10:46", + "value": { + "kind": "number", + "nativeSrc": "1811:1:46", + "nodeType": "YulLiteral", + "src": "1811:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "1806:1:46", + "nodeType": "YulTypedName", + "src": "1806:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1870:120:46", + "nodeType": "YulBlock", + "src": "1870:120:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1891:3:46", + "nodeType": "YulIdentifier", + "src": "1891:3:46" + }, + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "1902:6:46", + "nodeType": "YulIdentifier", + "src": "1902:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1896:5:46", + "nodeType": "YulIdentifier", + "src": "1896:5:46" + }, + "nativeSrc": "1896:13:46", + "nodeType": "YulFunctionCall", + "src": "1896:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1884:6:46", + "nodeType": "YulIdentifier", + "src": "1884:6:46" + }, + "nativeSrc": "1884:26:46", + "nodeType": "YulFunctionCall", + "src": "1884:26:46" + }, + "nativeSrc": "1884:26:46", + "nodeType": "YulExpressionStatement", + "src": "1884:26:46" + }, + { + "nativeSrc": "1923:19:46", + "nodeType": "YulAssignment", + "src": "1923:19:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1934:3:46", + "nodeType": "YulIdentifier", + "src": "1934:3:46" + }, + { + "kind": "number", + "nativeSrc": "1939:2:46", + "nodeType": "YulLiteral", + "src": "1939:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1930:3:46", + "nodeType": "YulIdentifier", + "src": "1930:3:46" + }, + "nativeSrc": "1930:12:46", + "nodeType": "YulFunctionCall", + "src": "1930:12:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "1923:3:46", + "nodeType": "YulIdentifier", + "src": "1923:3:46" + } + ] + }, + { + "nativeSrc": "1955:25:46", + "nodeType": "YulAssignment", + "src": "1955:25:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "1969:6:46", + "nodeType": "YulIdentifier", + "src": "1969:6:46" + }, + { + "kind": "number", + "nativeSrc": "1977:2:46", + "nodeType": "YulLiteral", + "src": "1977:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1965:3:46", + "nodeType": "YulIdentifier", + "src": "1965:3:46" + }, + "nativeSrc": "1965:15:46", + "nodeType": "YulFunctionCall", + "src": "1965:15:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "1955:6:46", + "nodeType": "YulIdentifier", + "src": "1955:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1832:1:46", + "nodeType": "YulIdentifier", + "src": "1832:1:46" + }, + { + "name": "length", + "nativeSrc": "1835:6:46", + "nodeType": "YulIdentifier", + "src": "1835:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "1829:2:46", + "nodeType": "YulIdentifier", + "src": "1829:2:46" + }, + "nativeSrc": "1829:13:46", + "nodeType": "YulFunctionCall", + "src": "1829:13:46" + }, + "nativeSrc": "1821:169:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "1843:18:46", + "nodeType": "YulBlock", + "src": "1843:18:46", + "statements": [ + { + "nativeSrc": "1845:14:46", + "nodeType": "YulAssignment", + "src": "1845:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1854:1:46", + "nodeType": "YulIdentifier", + "src": "1854:1:46" + }, + { + "kind": "number", + "nativeSrc": "1857:1:46", + "nodeType": "YulLiteral", + "src": "1857:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1850:3:46", + "nodeType": "YulIdentifier", + "src": "1850:3:46" + }, + "nativeSrc": "1850:9:46", + "nodeType": "YulFunctionCall", + "src": "1850:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "1845:1:46", + "nodeType": "YulIdentifier", + "src": "1845:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "1825:3:46", + "nodeType": "YulBlock", + "src": "1825:3:46", + "statements": [] + }, + "src": "1821:169:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2010:9:46", + "nodeType": "YulIdentifier", + "src": "2010:9:46" + }, + { + "kind": "number", + "nativeSrc": "2021:3:46", + "nodeType": "YulLiteral", + "src": "2021:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2006:3:46", + "nodeType": "YulIdentifier", + "src": "2006:3:46" + }, + "nativeSrc": "2006:19:46", + "nodeType": "YulFunctionCall", + "src": "2006:19:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2037:6:46", + "nodeType": "YulIdentifier", + "src": "2037:6:46" + }, + { + "kind": "number", + "nativeSrc": "2045:2:46", + "nodeType": "YulLiteral", + "src": "2045:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2033:3:46", + "nodeType": "YulIdentifier", + "src": "2033:3:46" + }, + "nativeSrc": "2033:15:46", + "nodeType": "YulFunctionCall", + "src": "2033:15:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2027:5:46", + "nodeType": "YulIdentifier", + "src": "2027:5:46" + }, + "nativeSrc": "2027:22:46", + "nodeType": "YulFunctionCall", + "src": "2027:22:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1999:6:46", + "nodeType": "YulIdentifier", + "src": "1999:6:46" + }, + "nativeSrc": "1999:51:46", + "nodeType": "YulFunctionCall", + "src": "1999:51:46" + }, + "nativeSrc": "1999:51:46", + "nodeType": "YulExpressionStatement", + "src": "1999:51:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2070:9:46", + "nodeType": "YulIdentifier", + "src": "2070:9:46" + }, + { + "kind": "number", + "nativeSrc": "2081:3:46", + "nodeType": "YulLiteral", + "src": "2081:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2066:3:46", + "nodeType": "YulIdentifier", + "src": "2066:3:46" + }, + "nativeSrc": "2066:19:46", + "nodeType": "YulFunctionCall", + "src": "2066:19:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2097:6:46", + "nodeType": "YulIdentifier", + "src": "2097:6:46" + }, + { + "kind": "number", + "nativeSrc": "2105:3:46", + "nodeType": "YulLiteral", + "src": "2105:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2093:3:46", + "nodeType": "YulIdentifier", + "src": "2093:3:46" + }, + "nativeSrc": "2093:16:46", + "nodeType": "YulFunctionCall", + "src": "2093:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2087:5:46", + "nodeType": "YulIdentifier", + "src": "2087:5:46" + }, + "nativeSrc": "2087:23:46", + "nodeType": "YulFunctionCall", + "src": "2087:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2059:6:46", + "nodeType": "YulIdentifier", + "src": "2059:6:46" + }, + "nativeSrc": "2059:52:46", + "nodeType": "YulFunctionCall", + "src": "2059:52:46" + }, + "nativeSrc": "2059:52:46", + "nodeType": "YulExpressionStatement", + "src": "2059:52:46" + }, + { + "nativeSrc": "2120:45:46", + "nodeType": "YulVariableDeclaration", + "src": "2120:45:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2152:6:46", + "nodeType": "YulIdentifier", + "src": "2152:6:46" + }, + { + "kind": "number", + "nativeSrc": "2160:3:46", + "nodeType": "YulLiteral", + "src": "2160:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2148:3:46", + "nodeType": "YulIdentifier", + "src": "2148:3:46" + }, + "nativeSrc": "2148:16:46", + "nodeType": "YulFunctionCall", + "src": "2148:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2142:5:46", + "nodeType": "YulIdentifier", + "src": "2142:5:46" + }, + "nativeSrc": "2142:23:46", + "nodeType": "YulFunctionCall", + "src": "2142:23:46" + }, + "variables": [ + { + "name": "memberValue0_1", + "nativeSrc": "2124:14:46", + "nodeType": "YulTypedName", + "src": "2124:14:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_1", + "nativeSrc": "2190:14:46", + "nodeType": "YulIdentifier", + "src": "2190:14:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2210:9:46", + "nodeType": "YulIdentifier", + "src": "2210:9:46" + }, + { + "kind": "number", + "nativeSrc": "2221:3:46", + "nodeType": "YulLiteral", + "src": "2221:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2206:3:46", + "nodeType": "YulIdentifier", + "src": "2206:3:46" + }, + "nativeSrc": "2206:19:46", + "nodeType": "YulFunctionCall", + "src": "2206:19:46" + } + ], + "functionName": { + "name": "abi_encode_bool", + "nativeSrc": "2174:15:46", + "nodeType": "YulIdentifier", + "src": "2174:15:46" + }, + "nativeSrc": "2174:52:46", + "nodeType": "YulFunctionCall", + "src": "2174:52:46" + }, + "nativeSrc": "2174:52:46", + "nodeType": "YulExpressionStatement", + "src": "2174:52:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2246:9:46", + "nodeType": "YulIdentifier", + "src": "2246:9:46" + }, + { + "kind": "number", + "nativeSrc": "2257:3:46", + "nodeType": "YulLiteral", + "src": "2257:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2242:3:46", + "nodeType": "YulIdentifier", + "src": "2242:3:46" + }, + "nativeSrc": "2242:19:46", + "nodeType": "YulFunctionCall", + "src": "2242:19:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2273:6:46", + "nodeType": "YulIdentifier", + "src": "2273:6:46" + }, + { + "kind": "number", + "nativeSrc": "2281:3:46", + "nodeType": "YulLiteral", + "src": "2281:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2269:3:46", + "nodeType": "YulIdentifier", + "src": "2269:3:46" + }, + "nativeSrc": "2269:16:46", + "nodeType": "YulFunctionCall", + "src": "2269:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2263:5:46", + "nodeType": "YulIdentifier", + "src": "2263:5:46" + }, + "nativeSrc": "2263:23:46", + "nodeType": "YulFunctionCall", + "src": "2263:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2235:6:46", + "nodeType": "YulIdentifier", + "src": "2235:6:46" + }, + "nativeSrc": "2235:52:46", + "nodeType": "YulFunctionCall", + "src": "2235:52:46" + }, + "nativeSrc": "2235:52:46", + "nodeType": "YulExpressionStatement", + "src": "2235:52:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2307:9:46", + "nodeType": "YulIdentifier", + "src": "2307:9:46" + }, + { + "kind": "number", + "nativeSrc": "2318:6:46", + "nodeType": "YulLiteral", + "src": "2318:6:46", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2303:3:46", + "nodeType": "YulIdentifier", + "src": "2303:3:46" + }, + "nativeSrc": "2303:22:46", + "nodeType": "YulFunctionCall", + "src": "2303:22:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2337:6:46", + "nodeType": "YulIdentifier", + "src": "2337:6:46" + }, + { + "kind": "number", + "nativeSrc": "2345:3:46", + "nodeType": "YulLiteral", + "src": "2345:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2333:3:46", + "nodeType": "YulIdentifier", + "src": "2333:3:46" + }, + "nativeSrc": "2333:16:46", + "nodeType": "YulFunctionCall", + "src": "2333:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2327:5:46", + "nodeType": "YulIdentifier", + "src": "2327:5:46" + }, + "nativeSrc": "2327:23:46", + "nodeType": "YulFunctionCall", + "src": "2327:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2296:6:46", + "nodeType": "YulIdentifier", + "src": "2296:6:46" + }, + "nativeSrc": "2296:55:46", + "nodeType": "YulFunctionCall", + "src": "2296:55:46" + }, + "nativeSrc": "2296:55:46", + "nodeType": "YulExpressionStatement", + "src": "2296:55:46" + }, + { + "nativeSrc": "2360:11:46", + "nodeType": "YulAssignment", + "src": "2360:11:46", + "value": { + "name": "pos", + "nativeSrc": "2368:3:46", + "nodeType": "YulIdentifier", + "src": "2368:3:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2360:4:46", + "nodeType": "YulIdentifier", + "src": "2360:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr__fromStack_library_reversed", + "nativeSrc": "1168:1209:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1292:9:46", + "nodeType": "YulTypedName", + "src": "1292:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1303:6:46", + "nodeType": "YulTypedName", + "src": "1303:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "1314:4:46", + "nodeType": "YulTypedName", + "src": "1314:4:46", + "type": "" + } + ], + "src": "1168:1209:46" + }, + { + "body": { + "nativeSrc": "2439:321:46", + "nodeType": "YulBlock", + "src": "2439:321:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2456:3:46", + "nodeType": "YulIdentifier", + "src": "2456:3:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2467:5:46", + "nodeType": "YulIdentifier", + "src": "2467:5:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2461:5:46", + "nodeType": "YulIdentifier", + "src": "2461:5:46" + }, + "nativeSrc": "2461:12:46", + "nodeType": "YulFunctionCall", + "src": "2461:12:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2449:6:46", + "nodeType": "YulIdentifier", + "src": "2449:6:46" + }, + "nativeSrc": "2449:25:46", + "nodeType": "YulFunctionCall", + "src": "2449:25:46" + }, + "nativeSrc": "2449:25:46", + "nodeType": "YulExpressionStatement", + "src": "2449:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2494:3:46", + "nodeType": "YulIdentifier", + "src": "2494:3:46" + }, + { + "kind": "number", + "nativeSrc": "2499:4:46", + "nodeType": "YulLiteral", + "src": "2499:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2490:3:46", + "nodeType": "YulIdentifier", + "src": "2490:3:46" + }, + "nativeSrc": "2490:14:46", + "nodeType": "YulFunctionCall", + "src": "2490:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2516:5:46", + "nodeType": "YulIdentifier", + "src": "2516:5:46" + }, + { + "kind": "number", + "nativeSrc": "2523:4:46", + "nodeType": "YulLiteral", + "src": "2523:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2512:3:46", + "nodeType": "YulIdentifier", + "src": "2512:3:46" + }, + "nativeSrc": "2512:16:46", + "nodeType": "YulFunctionCall", + "src": "2512:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2506:5:46", + "nodeType": "YulIdentifier", + "src": "2506:5:46" + }, + "nativeSrc": "2506:23:46", + "nodeType": "YulFunctionCall", + "src": "2506:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2483:6:46", + "nodeType": "YulIdentifier", + "src": "2483:6:46" + }, + "nativeSrc": "2483:47:46", + "nodeType": "YulFunctionCall", + "src": "2483:47:46" + }, + "nativeSrc": "2483:47:46", + "nodeType": "YulExpressionStatement", + "src": "2483:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2550:3:46", + "nodeType": "YulIdentifier", + "src": "2550:3:46" + }, + { + "kind": "number", + "nativeSrc": "2555:4:46", + "nodeType": "YulLiteral", + "src": "2555:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2546:3:46", + "nodeType": "YulIdentifier", + "src": "2546:3:46" + }, + "nativeSrc": "2546:14:46", + "nodeType": "YulFunctionCall", + "src": "2546:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2572:5:46", + "nodeType": "YulIdentifier", + "src": "2572:5:46" + }, + { + "kind": "number", + "nativeSrc": "2579:4:46", + "nodeType": "YulLiteral", + "src": "2579:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2568:3:46", + "nodeType": "YulIdentifier", + "src": "2568:3:46" + }, + "nativeSrc": "2568:16:46", + "nodeType": "YulFunctionCall", + "src": "2568:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2562:5:46", + "nodeType": "YulIdentifier", + "src": "2562:5:46" + }, + "nativeSrc": "2562:23:46", + "nodeType": "YulFunctionCall", + "src": "2562:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2539:6:46", + "nodeType": "YulIdentifier", + "src": "2539:6:46" + }, + "nativeSrc": "2539:47:46", + "nodeType": "YulFunctionCall", + "src": "2539:47:46" + }, + "nativeSrc": "2539:47:46", + "nodeType": "YulExpressionStatement", + "src": "2539:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2606:3:46", + "nodeType": "YulIdentifier", + "src": "2606:3:46" + }, + { + "kind": "number", + "nativeSrc": "2611:4:46", + "nodeType": "YulLiteral", + "src": "2611:4:46", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2602:3:46", + "nodeType": "YulIdentifier", + "src": "2602:3:46" + }, + "nativeSrc": "2602:14:46", + "nodeType": "YulFunctionCall", + "src": "2602:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2628:5:46", + "nodeType": "YulIdentifier", + "src": "2628:5:46" + }, + { + "kind": "number", + "nativeSrc": "2635:4:46", + "nodeType": "YulLiteral", + "src": "2635:4:46", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2624:3:46", + "nodeType": "YulIdentifier", + "src": "2624:3:46" + }, + "nativeSrc": "2624:16:46", + "nodeType": "YulFunctionCall", + "src": "2624:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2618:5:46", + "nodeType": "YulIdentifier", + "src": "2618:5:46" + }, + "nativeSrc": "2618:23:46", + "nodeType": "YulFunctionCall", + "src": "2618:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2595:6:46", + "nodeType": "YulIdentifier", + "src": "2595:6:46" + }, + "nativeSrc": "2595:47:46", + "nodeType": "YulFunctionCall", + "src": "2595:47:46" + }, + "nativeSrc": "2595:47:46", + "nodeType": "YulExpressionStatement", + "src": "2595:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2662:3:46", + "nodeType": "YulIdentifier", + "src": "2662:3:46" + }, + { + "kind": "number", + "nativeSrc": "2667:4:46", + "nodeType": "YulLiteral", + "src": "2667:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2658:3:46", + "nodeType": "YulIdentifier", + "src": "2658:3:46" + }, + "nativeSrc": "2658:14:46", + "nodeType": "YulFunctionCall", + "src": "2658:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2684:5:46", + "nodeType": "YulIdentifier", + "src": "2684:5:46" + }, + { + "kind": "number", + "nativeSrc": "2691:4:46", + "nodeType": "YulLiteral", + "src": "2691:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2680:3:46", + "nodeType": "YulIdentifier", + "src": "2680:3:46" + }, + "nativeSrc": "2680:16:46", + "nodeType": "YulFunctionCall", + "src": "2680:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2674:5:46", + "nodeType": "YulIdentifier", + "src": "2674:5:46" + }, + "nativeSrc": "2674:23:46", + "nodeType": "YulFunctionCall", + "src": "2674:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2651:6:46", + "nodeType": "YulIdentifier", + "src": "2651:6:46" + }, + "nativeSrc": "2651:47:46", + "nodeType": "YulFunctionCall", + "src": "2651:47:46" + }, + "nativeSrc": "2651:47:46", + "nodeType": "YulExpressionStatement", + "src": "2651:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "2718:3:46", + "nodeType": "YulIdentifier", + "src": "2718:3:46" + }, + { + "kind": "number", + "nativeSrc": "2723:4:46", + "nodeType": "YulLiteral", + "src": "2723:4:46", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2714:3:46", + "nodeType": "YulIdentifier", + "src": "2714:3:46" + }, + "nativeSrc": "2714:14:46", + "nodeType": "YulFunctionCall", + "src": "2714:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2740:5:46", + "nodeType": "YulIdentifier", + "src": "2740:5:46" + }, + { + "kind": "number", + "nativeSrc": "2747:4:46", + "nodeType": "YulLiteral", + "src": "2747:4:46", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2736:3:46", + "nodeType": "YulIdentifier", + "src": "2736:3:46" + }, + "nativeSrc": "2736:16:46", + "nodeType": "YulFunctionCall", + "src": "2736:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "2730:5:46", + "nodeType": "YulIdentifier", + "src": "2730:5:46" + }, + "nativeSrc": "2730:23:46", + "nodeType": "YulFunctionCall", + "src": "2730:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2707:6:46", + "nodeType": "YulIdentifier", + "src": "2707:6:46" + }, + "nativeSrc": "2707:47:46", + "nodeType": "YulFunctionCall", + "src": "2707:47:46" + }, + "nativeSrc": "2707:47:46", + "nodeType": "YulExpressionStatement", + "src": "2707:47:46" + } + ] + }, + "name": "abi_encode_struct_RootEntryInfo", + "nativeSrc": "2382:378:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2423:5:46", + "nodeType": "YulTypedName", + "src": "2423:5:46", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "2430:3:46", + "nodeType": "YulTypedName", + "src": "2430:3:46", + "type": "" + } + ], + "src": "2382:378:46" + }, + { + "body": { + "nativeSrc": "2936:102:46", + "nodeType": "YulBlock", + "src": "2936:102:46", + "statements": [ + { + "nativeSrc": "2946:27:46", + "nodeType": "YulAssignment", + "src": "2946:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2958:9:46", + "nodeType": "YulIdentifier", + "src": "2958:9:46" + }, + { + "kind": "number", + "nativeSrc": "2969:3:46", + "nodeType": "YulLiteral", + "src": "2969:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2954:3:46", + "nodeType": "YulIdentifier", + "src": "2954:3:46" + }, + "nativeSrc": "2954:19:46", + "nodeType": "YulFunctionCall", + "src": "2954:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2946:4:46", + "nodeType": "YulIdentifier", + "src": "2946:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3014:6:46", + "nodeType": "YulIdentifier", + "src": "3014:6:46" + }, + { + "name": "headStart", + "nativeSrc": "3022:9:46", + "nodeType": "YulIdentifier", + "src": "3022:9:46" + } + ], + "functionName": { + "name": "abi_encode_struct_RootEntryInfo", + "nativeSrc": "2982:31:46", + "nodeType": "YulIdentifier", + "src": "2982:31:46" + }, + "nativeSrc": "2982:50:46", + "nodeType": "YulFunctionCall", + "src": "2982:50:46" + }, + "nativeSrc": "2982:50:46", + "nodeType": "YulExpressionStatement", + "src": "2982:50:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_RootEntryInfo_$3001_memory_ptr__to_t_struct$_RootEntryInfo_$3001_memory_ptr__fromStack_library_reversed", + "nativeSrc": "2765:273:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2905:9:46", + "nodeType": "YulTypedName", + "src": "2905:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2916:6:46", + "nodeType": "YulTypedName", + "src": "2916:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2927:4:46", + "nodeType": "YulTypedName", + "src": "2927:4:46", + "type": "" + } + ], + "src": "2765:273:46" + }, + { + "body": { + "nativeSrc": "3264:487:46", + "nodeType": "YulBlock", + "src": "3264:487:46", + "statements": [ + { + "nativeSrc": "3274:32:46", + "nodeType": "YulVariableDeclaration", + "src": "3274:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3292:9:46", + "nodeType": "YulIdentifier", + "src": "3292:9:46" + }, + { + "kind": "number", + "nativeSrc": "3303:2:46", + "nodeType": "YulLiteral", + "src": "3303:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3288:3:46", + "nodeType": "YulIdentifier", + "src": "3288:3:46" + }, + "nativeSrc": "3288:18:46", + "nodeType": "YulFunctionCall", + "src": "3288:18:46" + }, + "variables": [ + { + "name": "tail_1", + "nativeSrc": "3278:6:46", + "nodeType": "YulTypedName", + "src": "3278:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3322:9:46", + "nodeType": "YulIdentifier", + "src": "3322:9:46" + }, + { + "kind": "number", + "nativeSrc": "3333:2:46", + "nodeType": "YulLiteral", + "src": "3333:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3315:6:46", + "nodeType": "YulIdentifier", + "src": "3315:6:46" + }, + "nativeSrc": "3315:21:46", + "nodeType": "YulFunctionCall", + "src": "3315:21:46" + }, + "nativeSrc": "3315:21:46", + "nodeType": "YulExpressionStatement", + "src": "3315:21:46" + }, + { + "nativeSrc": "3345:17:46", + "nodeType": "YulVariableDeclaration", + "src": "3345:17:46", + "value": { + "name": "tail_1", + "nativeSrc": "3356:6:46", + "nodeType": "YulIdentifier", + "src": "3356:6:46" + }, + "variables": [ + { + "name": "pos", + "nativeSrc": "3349:3:46", + "nodeType": "YulTypedName", + "src": "3349:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "3371:27:46", + "nodeType": "YulVariableDeclaration", + "src": "3371:27:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3391:6:46", + "nodeType": "YulIdentifier", + "src": "3391:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3385:5:46", + "nodeType": "YulIdentifier", + "src": "3385:5:46" + }, + "nativeSrc": "3385:13:46", + "nodeType": "YulFunctionCall", + "src": "3385:13:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "3375:6:46", + "nodeType": "YulTypedName", + "src": "3375:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "tail_1", + "nativeSrc": "3414:6:46", + "nodeType": "YulIdentifier", + "src": "3414:6:46" + }, + { + "name": "length", + "nativeSrc": "3422:6:46", + "nodeType": "YulIdentifier", + "src": "3422:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3407:6:46", + "nodeType": "YulIdentifier", + "src": "3407:6:46" + }, + "nativeSrc": "3407:22:46", + "nodeType": "YulFunctionCall", + "src": "3407:22:46" + }, + "nativeSrc": "3407:22:46", + "nodeType": "YulExpressionStatement", + "src": "3407:22:46" + }, + { + "nativeSrc": "3438:25:46", + "nodeType": "YulAssignment", + "src": "3438:25:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3449:9:46", + "nodeType": "YulIdentifier", + "src": "3449:9:46" + }, + { + "kind": "number", + "nativeSrc": "3460:2:46", + "nodeType": "YulLiteral", + "src": "3460:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3445:3:46", + "nodeType": "YulIdentifier", + "src": "3445:3:46" + }, + "nativeSrc": "3445:18:46", + "nodeType": "YulFunctionCall", + "src": "3445:18:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "3438:3:46", + "nodeType": "YulIdentifier", + "src": "3438:3:46" + } + ] + }, + { + "nativeSrc": "3472:29:46", + "nodeType": "YulVariableDeclaration", + "src": "3472:29:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3490:6:46", + "nodeType": "YulIdentifier", + "src": "3490:6:46" + }, + { + "kind": "number", + "nativeSrc": "3498:2:46", + "nodeType": "YulLiteral", + "src": "3498:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3486:3:46", + "nodeType": "YulIdentifier", + "src": "3486:3:46" + }, + "nativeSrc": "3486:15:46", + "nodeType": "YulFunctionCall", + "src": "3486:15:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "3476:6:46", + "nodeType": "YulTypedName", + "src": "3476:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "3510:10:46", + "nodeType": "YulVariableDeclaration", + "src": "3510:10:46", + "value": { + "kind": "number", + "nativeSrc": "3519:1:46", + "nodeType": "YulLiteral", + "src": "3519:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "3514:1:46", + "nodeType": "YulTypedName", + "src": "3514:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "3578:147:46", + "nodeType": "YulBlock", + "src": "3578:147:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "3630:6:46", + "nodeType": "YulIdentifier", + "src": "3630:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3624:5:46", + "nodeType": "YulIdentifier", + "src": "3624:5:46" + }, + "nativeSrc": "3624:13:46", + "nodeType": "YulFunctionCall", + "src": "3624:13:46" + }, + { + "name": "pos", + "nativeSrc": "3639:3:46", + "nodeType": "YulIdentifier", + "src": "3639:3:46" + } + ], + "functionName": { + "name": "abi_encode_struct_RootEntryInfo", + "nativeSrc": "3592:31:46", + "nodeType": "YulIdentifier", + "src": "3592:31:46" + }, + "nativeSrc": "3592:51:46", + "nodeType": "YulFunctionCall", + "src": "3592:51:46" + }, + "nativeSrc": "3592:51:46", + "nodeType": "YulExpressionStatement", + "src": "3592:51:46" + }, + { + "nativeSrc": "3656:21:46", + "nodeType": "YulAssignment", + "src": "3656:21:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "3667:3:46", + "nodeType": "YulIdentifier", + "src": "3667:3:46" + }, + { + "kind": "number", + "nativeSrc": "3672:4:46", + "nodeType": "YulLiteral", + "src": "3672:4:46", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3663:3:46", + "nodeType": "YulIdentifier", + "src": "3663:3:46" + }, + "nativeSrc": "3663:14:46", + "nodeType": "YulFunctionCall", + "src": "3663:14:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "3656:3:46", + "nodeType": "YulIdentifier", + "src": "3656:3:46" + } + ] + }, + { + "nativeSrc": "3690:25:46", + "nodeType": "YulAssignment", + "src": "3690:25:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "3704:6:46", + "nodeType": "YulIdentifier", + "src": "3704:6:46" + }, + { + "kind": "number", + "nativeSrc": "3712:2:46", + "nodeType": "YulLiteral", + "src": "3712:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3700:3:46", + "nodeType": "YulIdentifier", + "src": "3700:3:46" + }, + "nativeSrc": "3700:15:46", + "nodeType": "YulFunctionCall", + "src": "3700:15:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "3690:6:46", + "nodeType": "YulIdentifier", + "src": "3690:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "3540:1:46", + "nodeType": "YulIdentifier", + "src": "3540:1:46" + }, + { + "name": "length", + "nativeSrc": "3543:6:46", + "nodeType": "YulIdentifier", + "src": "3543:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "3537:2:46", + "nodeType": "YulIdentifier", + "src": "3537:2:46" + }, + "nativeSrc": "3537:13:46", + "nodeType": "YulFunctionCall", + "src": "3537:13:46" + }, + "nativeSrc": "3529:196:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "3551:18:46", + "nodeType": "YulBlock", + "src": "3551:18:46", + "statements": [ + { + "nativeSrc": "3553:14:46", + "nodeType": "YulAssignment", + "src": "3553:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "3562:1:46", + "nodeType": "YulIdentifier", + "src": "3562:1:46" + }, + { + "kind": "number", + "nativeSrc": "3565:1:46", + "nodeType": "YulLiteral", + "src": "3565:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3558:3:46", + "nodeType": "YulIdentifier", + "src": "3558:3:46" + }, + "nativeSrc": "3558:9:46", + "nodeType": "YulFunctionCall", + "src": "3558:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "3553:1:46", + "nodeType": "YulIdentifier", + "src": "3553:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "3533:3:46", + "nodeType": "YulBlock", + "src": "3533:3:46", + "statements": [] + }, + "src": "3529:196:46" + }, + { + "nativeSrc": "3734:11:46", + "nodeType": "YulAssignment", + "src": "3734:11:46", + "value": { + "name": "pos", + "nativeSrc": "3742:3:46", + "nodeType": "YulIdentifier", + "src": "3742:3:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3734:4:46", + "nodeType": "YulIdentifier", + "src": "3734:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr__fromStack_library_reversed", + "nativeSrc": "3043:708:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3233:9:46", + "nodeType": "YulTypedName", + "src": "3233:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3244:6:46", + "nodeType": "YulTypedName", + "src": "3244:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3255:4:46", + "nodeType": "YulTypedName", + "src": "3255:4:46", + "type": "" + } + ], + "src": "3043:708:46" + }, + { + "body": { + "nativeSrc": "3849:156:46", + "nodeType": "YulBlock", + "src": "3849:156:46", + "statements": [ + { + "body": { + "nativeSrc": "3895:16:46", + "nodeType": "YulBlock", + "src": "3895:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3904:1:46", + "nodeType": "YulLiteral", + "src": "3904:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3907:1:46", + "nodeType": "YulLiteral", + "src": "3907:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3897:6:46", + "nodeType": "YulIdentifier", + "src": "3897:6:46" + }, + "nativeSrc": "3897:12:46", + "nodeType": "YulFunctionCall", + "src": "3897:12:46" + }, + "nativeSrc": "3897:12:46", + "nodeType": "YulExpressionStatement", + "src": "3897:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3870:7:46", + "nodeType": "YulIdentifier", + "src": "3870:7:46" + }, + { + "name": "headStart", + "nativeSrc": "3879:9:46", + "nodeType": "YulIdentifier", + "src": "3879:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3866:3:46", + "nodeType": "YulIdentifier", + "src": "3866:3:46" + }, + "nativeSrc": "3866:23:46", + "nodeType": "YulFunctionCall", + "src": "3866:23:46" + }, + { + "kind": "number", + "nativeSrc": "3891:2:46", + "nodeType": "YulLiteral", + "src": "3891:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3862:3:46", + "nodeType": "YulIdentifier", + "src": "3862:3:46" + }, + "nativeSrc": "3862:32:46", + "nodeType": "YulFunctionCall", + "src": "3862:32:46" + }, + "nativeSrc": "3859:52:46", + "nodeType": "YulIf", + "src": "3859:52:46" + }, + { + "nativeSrc": "3920:14:46", + "nodeType": "YulVariableDeclaration", + "src": "3920:14:46", + "value": { + "kind": "number", + "nativeSrc": "3933:1:46", + "nodeType": "YulLiteral", + "src": "3933:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "3924:5:46", + "nodeType": "YulTypedName", + "src": "3924:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "3943:32:46", + "nodeType": "YulAssignment", + "src": "3943:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3965:9:46", + "nodeType": "YulIdentifier", + "src": "3965:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3952:12:46", + "nodeType": "YulIdentifier", + "src": "3952:12:46" + }, + "nativeSrc": "3952:23:46", + "nodeType": "YulFunctionCall", + "src": "3952:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3943:5:46", + "nodeType": "YulIdentifier", + "src": "3943:5:46" + } + ] + }, + { + "nativeSrc": "3984:15:46", + "nodeType": "YulAssignment", + "src": "3984:15:46", + "value": { + "name": "value", + "nativeSrc": "3994:5:46", + "nodeType": "YulIdentifier", + "src": "3994:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3984:6:46", + "nodeType": "YulIdentifier", + "src": "3984:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Data_$2960_storage_ptr", + "nativeSrc": "3756:249:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3815:9:46", + "nodeType": "YulTypedName", + "src": "3815:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3826:7:46", + "nodeType": "YulTypedName", + "src": "3826:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3838:6:46", + "nodeType": "YulTypedName", + "src": "3838:6:46", + "type": "" + } + ], + "src": "3756:249:46" + }, + { + "body": { + "nativeSrc": "4154:466:46", + "nodeType": "YulBlock", + "src": "4154:466:46", + "statements": [ + { + "body": { + "nativeSrc": "4201:16:46", + "nodeType": "YulBlock", + "src": "4201:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4210:1:46", + "nodeType": "YulLiteral", + "src": "4210:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4213:1:46", + "nodeType": "YulLiteral", + "src": "4213:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4203:6:46", + "nodeType": "YulIdentifier", + "src": "4203:6:46" + }, + "nativeSrc": "4203:12:46", + "nodeType": "YulFunctionCall", + "src": "4203:12:46" + }, + "nativeSrc": "4203:12:46", + "nodeType": "YulExpressionStatement", + "src": "4203:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4175:7:46", + "nodeType": "YulIdentifier", + "src": "4175:7:46" + }, + { + "name": "headStart", + "nativeSrc": "4184:9:46", + "nodeType": "YulIdentifier", + "src": "4184:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4171:3:46", + "nodeType": "YulIdentifier", + "src": "4171:3:46" + }, + "nativeSrc": "4171:23:46", + "nodeType": "YulFunctionCall", + "src": "4171:23:46" + }, + { + "kind": "number", + "nativeSrc": "4196:3:46", + "nodeType": "YulLiteral", + "src": "4196:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4167:3:46", + "nodeType": "YulIdentifier", + "src": "4167:3:46" + }, + "nativeSrc": "4167:33:46", + "nodeType": "YulFunctionCall", + "src": "4167:33:46" + }, + "nativeSrc": "4164:53:46", + "nodeType": "YulIf", + "src": "4164:53:46" + }, + { + "nativeSrc": "4226:14:46", + "nodeType": "YulVariableDeclaration", + "src": "4226:14:46", + "value": { + "kind": "number", + "nativeSrc": "4239:1:46", + "nodeType": "YulLiteral", + "src": "4239:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "4230:5:46", + "nodeType": "YulTypedName", + "src": "4230:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "4249:32:46", + "nodeType": "YulAssignment", + "src": "4249:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4271:9:46", + "nodeType": "YulIdentifier", + "src": "4271:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4258:12:46", + "nodeType": "YulIdentifier", + "src": "4258:12:46" + }, + "nativeSrc": "4258:23:46", + "nodeType": "YulFunctionCall", + "src": "4258:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4249:5:46", + "nodeType": "YulIdentifier", + "src": "4249:5:46" + } + ] + }, + { + "nativeSrc": "4290:15:46", + "nodeType": "YulAssignment", + "src": "4290:15:46", + "value": { + "name": "value", + "nativeSrc": "4300:5:46", + "nodeType": "YulIdentifier", + "src": "4300:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4290:6:46", + "nodeType": "YulIdentifier", + "src": "4290:6:46" + } + ] + }, + { + "nativeSrc": "4314:16:46", + "nodeType": "YulVariableDeclaration", + "src": "4314:16:46", + "value": { + "kind": "number", + "nativeSrc": "4329:1:46", + "nodeType": "YulLiteral", + "src": "4329:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "4318:7:46", + "nodeType": "YulTypedName", + "src": "4318:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "4339:43:46", + "nodeType": "YulAssignment", + "src": "4339:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4367:9:46", + "nodeType": "YulIdentifier", + "src": "4367:9:46" + }, + { + "kind": "number", + "nativeSrc": "4378:2:46", + "nodeType": "YulLiteral", + "src": "4378:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4363:3:46", + "nodeType": "YulIdentifier", + "src": "4363:3:46" + }, + "nativeSrc": "4363:18:46", + "nodeType": "YulFunctionCall", + "src": "4363:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4350:12:46", + "nodeType": "YulIdentifier", + "src": "4350:12:46" + }, + "nativeSrc": "4350:32:46", + "nodeType": "YulFunctionCall", + "src": "4350:32:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "4339:7:46", + "nodeType": "YulIdentifier", + "src": "4339:7:46" + } + ] + }, + { + "nativeSrc": "4391:17:46", + "nodeType": "YulAssignment", + "src": "4391:17:46", + "value": { + "name": "value_1", + "nativeSrc": "4401:7:46", + "nodeType": "YulIdentifier", + "src": "4401:7:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4391:6:46", + "nodeType": "YulIdentifier", + "src": "4391:6:46" + } + ] + }, + { + "nativeSrc": "4417:16:46", + "nodeType": "YulVariableDeclaration", + "src": "4417:16:46", + "value": { + "kind": "number", + "nativeSrc": "4432:1:46", + "nodeType": "YulLiteral", + "src": "4432:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "4421:7:46", + "nodeType": "YulTypedName", + "src": "4421:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "4442:43:46", + "nodeType": "YulAssignment", + "src": "4442:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4470:9:46", + "nodeType": "YulIdentifier", + "src": "4470:9:46" + }, + { + "kind": "number", + "nativeSrc": "4481:2:46", + "nodeType": "YulLiteral", + "src": "4481:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4466:3:46", + "nodeType": "YulIdentifier", + "src": "4466:3:46" + }, + "nativeSrc": "4466:18:46", + "nodeType": "YulFunctionCall", + "src": "4466:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4453:12:46", + "nodeType": "YulIdentifier", + "src": "4453:12:46" + }, + "nativeSrc": "4453:32:46", + "nodeType": "YulFunctionCall", + "src": "4453:32:46" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "4442:7:46", + "nodeType": "YulIdentifier", + "src": "4442:7:46" + } + ] + }, + { + "nativeSrc": "4494:17:46", + "nodeType": "YulAssignment", + "src": "4494:17:46", + "value": { + "name": "value_2", + "nativeSrc": "4504:7:46", + "nodeType": "YulIdentifier", + "src": "4504:7:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "4494:6:46", + "nodeType": "YulIdentifier", + "src": "4494:6:46" + } + ] + }, + { + "nativeSrc": "4520:16:46", + "nodeType": "YulVariableDeclaration", + "src": "4520:16:46", + "value": { + "kind": "number", + "nativeSrc": "4535:1:46", + "nodeType": "YulLiteral", + "src": "4535:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "4524:7:46", + "nodeType": "YulTypedName", + "src": "4524:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "4545:43:46", + "nodeType": "YulAssignment", + "src": "4545:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4573:9:46", + "nodeType": "YulIdentifier", + "src": "4573:9:46" + }, + { + "kind": "number", + "nativeSrc": "4584:2:46", + "nodeType": "YulLiteral", + "src": "4584:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4569:3:46", + "nodeType": "YulIdentifier", + "src": "4569:3:46" + }, + "nativeSrc": "4569:18:46", + "nodeType": "YulFunctionCall", + "src": "4569:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4556:12:46", + "nodeType": "YulIdentifier", + "src": "4556:12:46" + }, + "nativeSrc": "4556:32:46", + "nodeType": "YulFunctionCall", + "src": "4556:32:46" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "4545:7:46", + "nodeType": "YulIdentifier", + "src": "4545:7:46" + } + ] + }, + { + "nativeSrc": "4597:17:46", + "nodeType": "YulAssignment", + "src": "4597:17:46", + "value": { + "name": "value_3", + "nativeSrc": "4607:7:46", + "nodeType": "YulIdentifier", + "src": "4607:7:46" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "4597:6:46", + "nodeType": "YulIdentifier", + "src": "4597:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Data_$2960_storage_ptrt_uint256t_uint256t_uint256", + "nativeSrc": "4010:610:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4096:9:46", + "nodeType": "YulTypedName", + "src": "4096:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4107:7:46", + "nodeType": "YulTypedName", + "src": "4107:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4119:6:46", + "nodeType": "YulTypedName", + "src": "4119:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4127:6:46", + "nodeType": "YulTypedName", + "src": "4127:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "4135:6:46", + "nodeType": "YulTypedName", + "src": "4135:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "4143:6:46", + "nodeType": "YulTypedName", + "src": "4143:6:46", + "type": "" + } + ], + "src": "4010:610:46" + }, + { + "body": { + "nativeSrc": "4728:92:46", + "nodeType": "YulBlock", + "src": "4728:92:46", + "statements": [ + { + "nativeSrc": "4738:26:46", + "nodeType": "YulAssignment", + "src": "4738:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4750:9:46", + "nodeType": "YulIdentifier", + "src": "4750:9:46" + }, + { + "kind": "number", + "nativeSrc": "4761:2:46", + "nodeType": "YulLiteral", + "src": "4761:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4746:3:46", + "nodeType": "YulIdentifier", + "src": "4746:3:46" + }, + "nativeSrc": "4746:18:46", + "nodeType": "YulFunctionCall", + "src": "4746:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4738:4:46", + "nodeType": "YulIdentifier", + "src": "4738:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4780:9:46", + "nodeType": "YulIdentifier", + "src": "4780:9:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4805:6:46", + "nodeType": "YulIdentifier", + "src": "4805:6:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4798:6:46", + "nodeType": "YulIdentifier", + "src": "4798:6:46" + }, + "nativeSrc": "4798:14:46", + "nodeType": "YulFunctionCall", + "src": "4798:14:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4791:6:46", + "nodeType": "YulIdentifier", + "src": "4791:6:46" + }, + "nativeSrc": "4791:22:46", + "nodeType": "YulFunctionCall", + "src": "4791:22:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4773:6:46", + "nodeType": "YulIdentifier", + "src": "4773:6:46" + }, + "nativeSrc": "4773:41:46", + "nodeType": "YulFunctionCall", + "src": "4773:41:46" + }, + "nativeSrc": "4773:41:46", + "nodeType": "YulExpressionStatement", + "src": "4773:41:46" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_library_reversed", + "nativeSrc": "4625:195:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4697:9:46", + "nodeType": "YulTypedName", + "src": "4697:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4708:6:46", + "nodeType": "YulTypedName", + "src": "4708:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4719:4:46", + "nodeType": "YulTypedName", + "src": "4719:4:46", + "type": "" + } + ], + "src": "4625:195:46" + }, + { + "body": { + "nativeSrc": "4857:95:46", + "nodeType": "YulBlock", + "src": "4857:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4874:1:46", + "nodeType": "YulLiteral", + "src": "4874:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4881:3:46", + "nodeType": "YulLiteral", + "src": "4881:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "4886:10:46", + "nodeType": "YulLiteral", + "src": "4886:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4877:3:46", + "nodeType": "YulIdentifier", + "src": "4877:3:46" + }, + "nativeSrc": "4877:20:46", + "nodeType": "YulFunctionCall", + "src": "4877:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4867:6:46", + "nodeType": "YulIdentifier", + "src": "4867:6:46" + }, + "nativeSrc": "4867:31:46", + "nodeType": "YulFunctionCall", + "src": "4867:31:46" + }, + "nativeSrc": "4867:31:46", + "nodeType": "YulExpressionStatement", + "src": "4867:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4914:1:46", + "nodeType": "YulLiteral", + "src": "4914:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "4917:4:46", + "nodeType": "YulLiteral", + "src": "4917:4:46", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4907:6:46", + "nodeType": "YulIdentifier", + "src": "4907:6:46" + }, + "nativeSrc": "4907:15:46", + "nodeType": "YulFunctionCall", + "src": "4907:15:46" + }, + "nativeSrc": "4907:15:46", + "nodeType": "YulExpressionStatement", + "src": "4907:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4938:1:46", + "nodeType": "YulLiteral", + "src": "4938:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4941:4:46", + "nodeType": "YulLiteral", + "src": "4941:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4931:6:46", + "nodeType": "YulIdentifier", + "src": "4931:6:46" + }, + "nativeSrc": "4931:15:46", + "nodeType": "YulFunctionCall", + "src": "4931:15:46" + }, + "nativeSrc": "4931:15:46", + "nodeType": "YulExpressionStatement", + "src": "4931:15:46" + } + ] + }, + "name": "panic_error_0x21", + "nativeSrc": "4825:127:46", + "nodeType": "YulFunctionDefinition", + "src": "4825:127:46" + }, + { + "body": { + "nativeSrc": "5110:506:46", + "nodeType": "YulBlock", + "src": "5110:506:46", + "statements": [ + { + "nativeSrc": "5120:27:46", + "nodeType": "YulAssignment", + "src": "5120:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5132:9:46", + "nodeType": "YulIdentifier", + "src": "5132:9:46" + }, + { + "kind": "number", + "nativeSrc": "5143:3:46", + "nodeType": "YulLiteral", + "src": "5143:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5128:3:46", + "nodeType": "YulIdentifier", + "src": "5128:3:46" + }, + "nativeSrc": "5128:19:46", + "nodeType": "YulFunctionCall", + "src": "5128:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5120:4:46", + "nodeType": "YulIdentifier", + "src": "5120:4:46" + } + ] + }, + { + "nativeSrc": "5156:23:46", + "nodeType": "YulVariableDeclaration", + "src": "5156:23:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5172:6:46", + "nodeType": "YulIdentifier", + "src": "5172:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5166:5:46", + "nodeType": "YulIdentifier", + "src": "5166:5:46" + }, + "nativeSrc": "5166:13:46", + "nodeType": "YulFunctionCall", + "src": "5166:13:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "5160:2:46", + "nodeType": "YulTypedName", + "src": "5160:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5217:111:46", + "nodeType": "YulBlock", + "src": "5217:111:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5238:1:46", + "nodeType": "YulLiteral", + "src": "5238:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5245:3:46", + "nodeType": "YulLiteral", + "src": "5245:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "5250:10:46", + "nodeType": "YulLiteral", + "src": "5250:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "5241:3:46", + "nodeType": "YulIdentifier", + "src": "5241:3:46" + }, + "nativeSrc": "5241:20:46", + "nodeType": "YulFunctionCall", + "src": "5241:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5231:6:46", + "nodeType": "YulIdentifier", + "src": "5231:6:46" + }, + "nativeSrc": "5231:31:46", + "nodeType": "YulFunctionCall", + "src": "5231:31:46" + }, + "nativeSrc": "5231:31:46", + "nodeType": "YulExpressionStatement", + "src": "5231:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5282:1:46", + "nodeType": "YulLiteral", + "src": "5282:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "5285:4:46", + "nodeType": "YulLiteral", + "src": "5285:4:46", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5275:6:46", + "nodeType": "YulIdentifier", + "src": "5275:6:46" + }, + "nativeSrc": "5275:15:46", + "nodeType": "YulFunctionCall", + "src": "5275:15:46" + }, + "nativeSrc": "5275:15:46", + "nodeType": "YulExpressionStatement", + "src": "5275:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5310:1:46", + "nodeType": "YulLiteral", + "src": "5310:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5313:4:46", + "nodeType": "YulLiteral", + "src": "5313:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5303:6:46", + "nodeType": "YulIdentifier", + "src": "5303:6:46" + }, + "nativeSrc": "5303:15:46", + "nodeType": "YulFunctionCall", + "src": "5303:15:46" + }, + "nativeSrc": "5303:15:46", + "nodeType": "YulExpressionStatement", + "src": "5303:15:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "5201:2:46", + "nodeType": "YulIdentifier", + "src": "5201:2:46" + }, + { + "kind": "number", + "nativeSrc": "5205:1:46", + "nodeType": "YulLiteral", + "src": "5205:1:46", + "type": "", + "value": "3" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5198:2:46", + "nodeType": "YulIdentifier", + "src": "5198:2:46" + }, + "nativeSrc": "5198:9:46", + "nodeType": "YulFunctionCall", + "src": "5198:9:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5191:6:46", + "nodeType": "YulIdentifier", + "src": "5191:6:46" + }, + "nativeSrc": "5191:17:46", + "nodeType": "YulFunctionCall", + "src": "5191:17:46" + }, + "nativeSrc": "5188:140:46", + "nodeType": "YulIf", + "src": "5188:140:46" + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5344:9:46", + "nodeType": "YulIdentifier", + "src": "5344:9:46" + }, + { + "name": "_1", + "nativeSrc": "5355:2:46", + "nodeType": "YulIdentifier", + "src": "5355:2:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5337:6:46", + "nodeType": "YulIdentifier", + "src": "5337:6:46" + }, + "nativeSrc": "5337:21:46", + "nodeType": "YulFunctionCall", + "src": "5337:21:46" + }, + "nativeSrc": "5337:21:46", + "nodeType": "YulExpressionStatement", + "src": "5337:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5378:9:46", + "nodeType": "YulIdentifier", + "src": "5378:9:46" + }, + { + "kind": "number", + "nativeSrc": "5389:4:46", + "nodeType": "YulLiteral", + "src": "5389:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5374:3:46", + "nodeType": "YulIdentifier", + "src": "5374:3:46" + }, + "nativeSrc": "5374:20:46", + "nodeType": "YulFunctionCall", + "src": "5374:20:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5406:6:46", + "nodeType": "YulIdentifier", + "src": "5406:6:46" + }, + { + "kind": "number", + "nativeSrc": "5414:4:46", + "nodeType": "YulLiteral", + "src": "5414:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5402:3:46", + "nodeType": "YulIdentifier", + "src": "5402:3:46" + }, + "nativeSrc": "5402:17:46", + "nodeType": "YulFunctionCall", + "src": "5402:17:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5396:5:46", + "nodeType": "YulIdentifier", + "src": "5396:5:46" + }, + "nativeSrc": "5396:24:46", + "nodeType": "YulFunctionCall", + "src": "5396:24:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5367:6:46", + "nodeType": "YulIdentifier", + "src": "5367:6:46" + }, + "nativeSrc": "5367:54:46", + "nodeType": "YulFunctionCall", + "src": "5367:54:46" + }, + "nativeSrc": "5367:54:46", + "nodeType": "YulExpressionStatement", + "src": "5367:54:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5441:9:46", + "nodeType": "YulIdentifier", + "src": "5441:9:46" + }, + { + "kind": "number", + "nativeSrc": "5452:4:46", + "nodeType": "YulLiteral", + "src": "5452:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5437:3:46", + "nodeType": "YulIdentifier", + "src": "5437:3:46" + }, + "nativeSrc": "5437:20:46", + "nodeType": "YulFunctionCall", + "src": "5437:20:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5469:6:46", + "nodeType": "YulIdentifier", + "src": "5469:6:46" + }, + { + "kind": "number", + "nativeSrc": "5477:4:46", + "nodeType": "YulLiteral", + "src": "5477:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5465:3:46", + "nodeType": "YulIdentifier", + "src": "5465:3:46" + }, + "nativeSrc": "5465:17:46", + "nodeType": "YulFunctionCall", + "src": "5465:17:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5459:5:46", + "nodeType": "YulIdentifier", + "src": "5459:5:46" + }, + "nativeSrc": "5459:24:46", + "nodeType": "YulFunctionCall", + "src": "5459:24:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5430:6:46", + "nodeType": "YulIdentifier", + "src": "5430:6:46" + }, + "nativeSrc": "5430:54:46", + "nodeType": "YulFunctionCall", + "src": "5430:54:46" + }, + "nativeSrc": "5430:54:46", + "nodeType": "YulExpressionStatement", + "src": "5430:54:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5504:9:46", + "nodeType": "YulIdentifier", + "src": "5504:9:46" + }, + { + "kind": "number", + "nativeSrc": "5515:4:46", + "nodeType": "YulLiteral", + "src": "5515:4:46", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5500:3:46", + "nodeType": "YulIdentifier", + "src": "5500:3:46" + }, + "nativeSrc": "5500:20:46", + "nodeType": "YulFunctionCall", + "src": "5500:20:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5532:6:46", + "nodeType": "YulIdentifier", + "src": "5532:6:46" + }, + { + "kind": "number", + "nativeSrc": "5540:4:46", + "nodeType": "YulLiteral", + "src": "5540:4:46", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5528:3:46", + "nodeType": "YulIdentifier", + "src": "5528:3:46" + }, + "nativeSrc": "5528:17:46", + "nodeType": "YulFunctionCall", + "src": "5528:17:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5522:5:46", + "nodeType": "YulIdentifier", + "src": "5522:5:46" + }, + "nativeSrc": "5522:24:46", + "nodeType": "YulFunctionCall", + "src": "5522:24:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5493:6:46", + "nodeType": "YulIdentifier", + "src": "5493:6:46" + }, + "nativeSrc": "5493:54:46", + "nodeType": "YulFunctionCall", + "src": "5493:54:46" + }, + "nativeSrc": "5493:54:46", + "nodeType": "YulExpressionStatement", + "src": "5493:54:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5567:9:46", + "nodeType": "YulIdentifier", + "src": "5567:9:46" + }, + { + "kind": "number", + "nativeSrc": "5578:4:46", + "nodeType": "YulLiteral", + "src": "5578:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5563:3:46", + "nodeType": "YulIdentifier", + "src": "5563:3:46" + }, + "nativeSrc": "5563:20:46", + "nodeType": "YulFunctionCall", + "src": "5563:20:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5595:6:46", + "nodeType": "YulIdentifier", + "src": "5595:6:46" + }, + { + "kind": "number", + "nativeSrc": "5603:4:46", + "nodeType": "YulLiteral", + "src": "5603:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5591:3:46", + "nodeType": "YulIdentifier", + "src": "5591:3:46" + }, + "nativeSrc": "5591:17:46", + "nodeType": "YulFunctionCall", + "src": "5591:17:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5585:5:46", + "nodeType": "YulIdentifier", + "src": "5585:5:46" + }, + "nativeSrc": "5585:24:46", + "nodeType": "YulFunctionCall", + "src": "5585:24:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5556:6:46", + "nodeType": "YulIdentifier", + "src": "5556:6:46" + }, + "nativeSrc": "5556:54:46", + "nodeType": "YulFunctionCall", + "src": "5556:54:46" + }, + "nativeSrc": "5556:54:46", + "nodeType": "YulExpressionStatement", + "src": "5556:54:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Node_$3014_memory_ptr__to_t_struct$_Node_$3014_memory_ptr__fromStack_library_reversed", + "nativeSrc": "4957:659:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5079:9:46", + "nodeType": "YulTypedName", + "src": "5079:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "5090:6:46", + "nodeType": "YulTypedName", + "src": "5090:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5101:4:46", + "nodeType": "YulTypedName", + "src": "5101:4:46", + "type": "" + } + ], + "src": "4957:659:46" + }, + { + "body": { + "nativeSrc": "5795:225:46", + "nodeType": "YulBlock", + "src": "5795:225:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5812:9:46", + "nodeType": "YulIdentifier", + "src": "5812:9:46" + }, + { + "kind": "number", + "nativeSrc": "5823:2:46", + "nodeType": "YulLiteral", + "src": "5823:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5805:6:46", + "nodeType": "YulIdentifier", + "src": "5805:6:46" + }, + "nativeSrc": "5805:21:46", + "nodeType": "YulFunctionCall", + "src": "5805:21:46" + }, + "nativeSrc": "5805:21:46", + "nodeType": "YulExpressionStatement", + "src": "5805:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5846:9:46", + "nodeType": "YulIdentifier", + "src": "5846:9:46" + }, + { + "kind": "number", + "nativeSrc": "5857:2:46", + "nodeType": "YulLiteral", + "src": "5857:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5842:3:46", + "nodeType": "YulIdentifier", + "src": "5842:3:46" + }, + "nativeSrc": "5842:18:46", + "nodeType": "YulFunctionCall", + "src": "5842:18:46" + }, + { + "kind": "number", + "nativeSrc": "5862:2:46", + "nodeType": "YulLiteral", + "src": "5862:2:46", + "type": "", + "value": "35" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5835:6:46", + "nodeType": "YulIdentifier", + "src": "5835:6:46" + }, + "nativeSrc": "5835:30:46", + "nodeType": "YulFunctionCall", + "src": "5835:30:46" + }, + "nativeSrc": "5835:30:46", + "nodeType": "YulExpressionStatement", + "src": "5835:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5885:9:46", + "nodeType": "YulIdentifier", + "src": "5885:9:46" + }, + { + "kind": "number", + "nativeSrc": "5896:2:46", + "nodeType": "YulLiteral", + "src": "5896:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5881:3:46", + "nodeType": "YulIdentifier", + "src": "5881:3:46" + }, + "nativeSrc": "5881:18:46", + "nodeType": "YulFunctionCall", + "src": "5881:18:46" + }, + { + "hexValue": "4d6178206465707468206d7573742062652067726561746572207468616e207a", + "kind": "string", + "nativeSrc": "5901:34:46", + "nodeType": "YulLiteral", + "src": "5901:34:46", + "type": "", + "value": "Max depth must be greater than z" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5874:6:46", + "nodeType": "YulIdentifier", + "src": "5874:6:46" + }, + "nativeSrc": "5874:62:46", + "nodeType": "YulFunctionCall", + "src": "5874:62:46" + }, + "nativeSrc": "5874:62:46", + "nodeType": "YulExpressionStatement", + "src": "5874:62:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5956:9:46", + "nodeType": "YulIdentifier", + "src": "5956:9:46" + }, + { + "kind": "number", + "nativeSrc": "5967:2:46", + "nodeType": "YulLiteral", + "src": "5967:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5952:3:46", + "nodeType": "YulIdentifier", + "src": "5952:3:46" + }, + "nativeSrc": "5952:18:46", + "nodeType": "YulFunctionCall", + "src": "5952:18:46" + }, + { + "hexValue": "65726f", + "kind": "string", + "nativeSrc": "5972:5:46", + "nodeType": "YulLiteral", + "src": "5972:5:46", + "type": "", + "value": "ero" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5945:6:46", + "nodeType": "YulIdentifier", + "src": "5945:6:46" + }, + "nativeSrc": "5945:33:46", + "nodeType": "YulFunctionCall", + "src": "5945:33:46" + }, + "nativeSrc": "5945:33:46", + "nodeType": "YulExpressionStatement", + "src": "5945:33:46" + }, + { + "nativeSrc": "5987:27:46", + "nodeType": "YulAssignment", + "src": "5987:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5999:9:46", + "nodeType": "YulIdentifier", + "src": "5999:9:46" + }, + { + "kind": "number", + "nativeSrc": "6010:3:46", + "nodeType": "YulLiteral", + "src": "6010:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5995:3:46", + "nodeType": "YulIdentifier", + "src": "5995:3:46" + }, + "nativeSrc": "5995:19:46", + "nodeType": "YulFunctionCall", + "src": "5995:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5987:4:46", + "nodeType": "YulIdentifier", + "src": "5987:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f927d9ad01d6e6b5172536d51bb739dcbf594dbe3b2e483a8bff6b42ca949e30__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "5621:399:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5772:9:46", + "nodeType": "YulTypedName", + "src": "5772:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "5786:4:46", + "nodeType": "YulTypedName", + "src": "5786:4:46", + "type": "" + } + ], + "src": "5621:399:46" + }, + { + "body": { + "nativeSrc": "6199:181:46", + "nodeType": "YulBlock", + "src": "6199:181:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6216:9:46", + "nodeType": "YulIdentifier", + "src": "6216:9:46" + }, + { + "kind": "number", + "nativeSrc": "6227:2:46", + "nodeType": "YulLiteral", + "src": "6227:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6209:6:46", + "nodeType": "YulIdentifier", + "src": "6209:6:46" + }, + "nativeSrc": "6209:21:46", + "nodeType": "YulFunctionCall", + "src": "6209:21:46" + }, + "nativeSrc": "6209:21:46", + "nodeType": "YulExpressionStatement", + "src": "6209:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6250:9:46", + "nodeType": "YulIdentifier", + "src": "6250:9:46" + }, + { + "kind": "number", + "nativeSrc": "6261:2:46", + "nodeType": "YulLiteral", + "src": "6261:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6246:3:46", + "nodeType": "YulIdentifier", + "src": "6246:3:46" + }, + "nativeSrc": "6246:18:46", + "nodeType": "YulFunctionCall", + "src": "6246:18:46" + }, + { + "kind": "number", + "nativeSrc": "6266:2:46", + "nodeType": "YulLiteral", + "src": "6266:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6239:6:46", + "nodeType": "YulIdentifier", + "src": "6239:6:46" + }, + "nativeSrc": "6239:30:46", + "nodeType": "YulFunctionCall", + "src": "6239:30:46" + }, + "nativeSrc": "6239:30:46", + "nodeType": "YulExpressionStatement", + "src": "6239:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6289:9:46", + "nodeType": "YulIdentifier", + "src": "6289:9:46" + }, + { + "kind": "number", + "nativeSrc": "6300:2:46", + "nodeType": "YulLiteral", + "src": "6300:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6285:3:46", + "nodeType": "YulIdentifier", + "src": "6285:3:46" + }, + "nativeSrc": "6285:18:46", + "nodeType": "YulFunctionCall", + "src": "6285:18:46" + }, + { + "hexValue": "4d61782064657074682063616e206f6e6c7920626520696e63726561736564", + "kind": "string", + "nativeSrc": "6305:33:46", + "nodeType": "YulLiteral", + "src": "6305:33:46", + "type": "", + "value": "Max depth can only be increased" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6278:6:46", + "nodeType": "YulIdentifier", + "src": "6278:6:46" + }, + "nativeSrc": "6278:61:46", + "nodeType": "YulFunctionCall", + "src": "6278:61:46" + }, + "nativeSrc": "6278:61:46", + "nodeType": "YulExpressionStatement", + "src": "6278:61:46" + }, + { + "nativeSrc": "6348:26:46", + "nodeType": "YulAssignment", + "src": "6348:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6360:9:46", + "nodeType": "YulIdentifier", + "src": "6360:9:46" + }, + { + "kind": "number", + "nativeSrc": "6371:2:46", + "nodeType": "YulLiteral", + "src": "6371:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6356:3:46", + "nodeType": "YulIdentifier", + "src": "6356:3:46" + }, + "nativeSrc": "6356:18:46", + "nodeType": "YulFunctionCall", + "src": "6356:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6348:4:46", + "nodeType": "YulIdentifier", + "src": "6348:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_36f00609f1952b6d8e215a941a30218dcc45c2a338282e0aa639a69b27436235__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "6025:355:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6176:9:46", + "nodeType": "YulTypedName", + "src": "6176:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6190:4:46", + "nodeType": "YulTypedName", + "src": "6190:4:46", + "type": "" + } + ], + "src": "6025:355:46" + }, + { + "body": { + "nativeSrc": "6559:224:46", + "nodeType": "YulBlock", + "src": "6559:224:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6576:9:46", + "nodeType": "YulIdentifier", + "src": "6576:9:46" + }, + { + "kind": "number", + "nativeSrc": "6587:2:46", + "nodeType": "YulLiteral", + "src": "6587:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6569:6:46", + "nodeType": "YulIdentifier", + "src": "6569:6:46" + }, + "nativeSrc": "6569:21:46", + "nodeType": "YulFunctionCall", + "src": "6569:21:46" + }, + "nativeSrc": "6569:21:46", + "nodeType": "YulExpressionStatement", + "src": "6569:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6610:9:46", + "nodeType": "YulIdentifier", + "src": "6610:9:46" + }, + { + "kind": "number", + "nativeSrc": "6621:2:46", + "nodeType": "YulLiteral", + "src": "6621:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6606:3:46", + "nodeType": "YulIdentifier", + "src": "6606:3:46" + }, + "nativeSrc": "6606:18:46", + "nodeType": "YulFunctionCall", + "src": "6606:18:46" + }, + { + "kind": "number", + "nativeSrc": "6626:2:46", + "nodeType": "YulLiteral", + "src": "6626:2:46", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6599:6:46", + "nodeType": "YulIdentifier", + "src": "6599:6:46" + }, + "nativeSrc": "6599:30:46", + "nodeType": "YulFunctionCall", + "src": "6599:30:46" + }, + "nativeSrc": "6599:30:46", + "nodeType": "YulExpressionStatement", + "src": "6599:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6649:9:46", + "nodeType": "YulIdentifier", + "src": "6649:9:46" + }, + { + "kind": "number", + "nativeSrc": "6660:2:46", + "nodeType": "YulLiteral", + "src": "6660:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6645:3:46", + "nodeType": "YulIdentifier", + "src": "6645:3:46" + }, + "nativeSrc": "6645:18:46", + "nodeType": "YulFunctionCall", + "src": "6645:18:46" + }, + { + "hexValue": "4d61782064657074682069732067726561746572207468616e20686172642063", + "kind": "string", + "nativeSrc": "6665:34:46", + "nodeType": "YulLiteral", + "src": "6665:34:46", + "type": "", + "value": "Max depth is greater than hard c" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6638:6:46", + "nodeType": "YulIdentifier", + "src": "6638:6:46" + }, + "nativeSrc": "6638:62:46", + "nodeType": "YulFunctionCall", + "src": "6638:62:46" + }, + "nativeSrc": "6638:62:46", + "nodeType": "YulExpressionStatement", + "src": "6638:62:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6720:9:46", + "nodeType": "YulIdentifier", + "src": "6720:9:46" + }, + { + "kind": "number", + "nativeSrc": "6731:2:46", + "nodeType": "YulLiteral", + "src": "6731:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6716:3:46", + "nodeType": "YulIdentifier", + "src": "6716:3:46" + }, + "nativeSrc": "6716:18:46", + "nodeType": "YulFunctionCall", + "src": "6716:18:46" + }, + { + "hexValue": "6170", + "kind": "string", + "nativeSrc": "6736:4:46", + "nodeType": "YulLiteral", + "src": "6736:4:46", + "type": "", + "value": "ap" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6709:6:46", + "nodeType": "YulIdentifier", + "src": "6709:6:46" + }, + "nativeSrc": "6709:32:46", + "nodeType": "YulFunctionCall", + "src": "6709:32:46" + }, + "nativeSrc": "6709:32:46", + "nodeType": "YulExpressionStatement", + "src": "6709:32:46" + }, + { + "nativeSrc": "6750:27:46", + "nodeType": "YulAssignment", + "src": "6750:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6762:9:46", + "nodeType": "YulIdentifier", + "src": "6762:9:46" + }, + { + "kind": "number", + "nativeSrc": "6773:3:46", + "nodeType": "YulLiteral", + "src": "6773:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6758:3:46", + "nodeType": "YulIdentifier", + "src": "6758:3:46" + }, + "nativeSrc": "6758:19:46", + "nodeType": "YulFunctionCall", + "src": "6758:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "6750:4:46", + "nodeType": "YulIdentifier", + "src": "6750:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_87c54ee2d38ee359efdefcd1894af2fd7fad037b45e2358dc82a62d9b12d91e3__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "6385:398:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6536:9:46", + "nodeType": "YulTypedName", + "src": "6536:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6550:4:46", + "nodeType": "YulTypedName", + "src": "6550:4:46", + "type": "" + } + ], + "src": "6385:398:46" + }, + { + "body": { + "nativeSrc": "6962:178:46", + "nodeType": "YulBlock", + "src": "6962:178:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6979:9:46", + "nodeType": "YulIdentifier", + "src": "6979:9:46" + }, + { + "kind": "number", + "nativeSrc": "6990:2:46", + "nodeType": "YulLiteral", + "src": "6990:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6972:6:46", + "nodeType": "YulIdentifier", + "src": "6972:6:46" + }, + "nativeSrc": "6972:21:46", + "nodeType": "YulFunctionCall", + "src": "6972:21:46" + }, + "nativeSrc": "6972:21:46", + "nodeType": "YulExpressionStatement", + "src": "6972:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7013:9:46", + "nodeType": "YulIdentifier", + "src": "7013:9:46" + }, + { + "kind": "number", + "nativeSrc": "7024:2:46", + "nodeType": "YulLiteral", + "src": "7024:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7009:3:46", + "nodeType": "YulIdentifier", + "src": "7009:3:46" + }, + "nativeSrc": "7009:18:46", + "nodeType": "YulFunctionCall", + "src": "7009:18:46" + }, + { + "kind": "number", + "nativeSrc": "7029:2:46", + "nodeType": "YulLiteral", + "src": "7029:2:46", + "type": "", + "value": "28" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7002:6:46", + "nodeType": "YulIdentifier", + "src": "7002:6:46" + }, + "nativeSrc": "7002:30:46", + "nodeType": "YulFunctionCall", + "src": "7002:30:46" + }, + "nativeSrc": "7002:30:46", + "nodeType": "YulExpressionStatement", + "src": "7002:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7052:9:46", + "nodeType": "YulIdentifier", + "src": "7052:9:46" + }, + { + "kind": "number", + "nativeSrc": "7063:2:46", + "nodeType": "YulLiteral", + "src": "7063:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7048:3:46", + "nodeType": "YulIdentifier", + "src": "7048:3:46" + }, + "nativeSrc": "7048:18:46", + "nodeType": "YulFunctionCall", + "src": "7048:18:46" + }, + { + "hexValue": "4e6f206675747572652074696d657374616d707320616c6c6f776564", + "kind": "string", + "nativeSrc": "7068:30:46", + "nodeType": "YulLiteral", + "src": "7068:30:46", + "type": "", + "value": "No future timestamps allowed" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7041:6:46", + "nodeType": "YulIdentifier", + "src": "7041:6:46" + }, + "nativeSrc": "7041:58:46", + "nodeType": "YulFunctionCall", + "src": "7041:58:46" + }, + "nativeSrc": "7041:58:46", + "nodeType": "YulExpressionStatement", + "src": "7041:58:46" + }, + { + "nativeSrc": "7108:26:46", + "nodeType": "YulAssignment", + "src": "7108:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7120:9:46", + "nodeType": "YulIdentifier", + "src": "7120:9:46" + }, + { + "kind": "number", + "nativeSrc": "7131:2:46", + "nodeType": "YulLiteral", + "src": "7131:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7116:3:46", + "nodeType": "YulIdentifier", + "src": "7116:3:46" + }, + "nativeSrc": "7116:18:46", + "nodeType": "YulFunctionCall", + "src": "7116:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7108:4:46", + "nodeType": "YulIdentifier", + "src": "7108:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1bf3850e5a3c6a77d2f1f122095086090857032f278d39145c3b095e1a8b6db1__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "6788:352:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6939:9:46", + "nodeType": "YulTypedName", + "src": "6939:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "6953:4:46", + "nodeType": "YulTypedName", + "src": "6953:4:46", + "type": "" + } + ], + "src": "6788:352:46" + }, + { + "body": { + "nativeSrc": "7177:95:46", + "nodeType": "YulBlock", + "src": "7177:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7194:1:46", + "nodeType": "YulLiteral", + "src": "7194:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7201:3:46", + "nodeType": "YulLiteral", + "src": "7201:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "7206:10:46", + "nodeType": "YulLiteral", + "src": "7206:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "7197:3:46", + "nodeType": "YulIdentifier", + "src": "7197:3:46" + }, + "nativeSrc": "7197:20:46", + "nodeType": "YulFunctionCall", + "src": "7197:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7187:6:46", + "nodeType": "YulIdentifier", + "src": "7187:6:46" + }, + "nativeSrc": "7187:31:46", + "nodeType": "YulFunctionCall", + "src": "7187:31:46" + }, + "nativeSrc": "7187:31:46", + "nodeType": "YulExpressionStatement", + "src": "7187:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7234:1:46", + "nodeType": "YulLiteral", + "src": "7234:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "7237:4:46", + "nodeType": "YulLiteral", + "src": "7237:4:46", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7227:6:46", + "nodeType": "YulIdentifier", + "src": "7227:6:46" + }, + "nativeSrc": "7227:15:46", + "nodeType": "YulFunctionCall", + "src": "7227:15:46" + }, + "nativeSrc": "7227:15:46", + "nodeType": "YulExpressionStatement", + "src": "7227:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7258:1:46", + "nodeType": "YulLiteral", + "src": "7258:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7261:4:46", + "nodeType": "YulLiteral", + "src": "7261:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7251:6:46", + "nodeType": "YulIdentifier", + "src": "7251:6:46" + }, + "nativeSrc": "7251:15:46", + "nodeType": "YulFunctionCall", + "src": "7251:15:46" + }, + "nativeSrc": "7251:15:46", + "nodeType": "YulExpressionStatement", + "src": "7251:15:46" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "7145:127:46", + "nodeType": "YulFunctionDefinition", + "src": "7145:127:46" + }, + { + "body": { + "nativeSrc": "7326:79:46", + "nodeType": "YulBlock", + "src": "7326:79:46", + "statements": [ + { + "nativeSrc": "7336:17:46", + "nodeType": "YulAssignment", + "src": "7336:17:46", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "7348:1:46", + "nodeType": "YulIdentifier", + "src": "7348:1:46" + }, + { + "name": "y", + "nativeSrc": "7351:1:46", + "nodeType": "YulIdentifier", + "src": "7351:1:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "7344:3:46", + "nodeType": "YulIdentifier", + "src": "7344:3:46" + }, + "nativeSrc": "7344:9:46", + "nodeType": "YulFunctionCall", + "src": "7344:9:46" + }, + "variableNames": [ + { + "name": "diff", + "nativeSrc": "7336:4:46", + "nodeType": "YulIdentifier", + "src": "7336:4:46" + } + ] + }, + { + "body": { + "nativeSrc": "7377:22:46", + "nodeType": "YulBlock", + "src": "7377:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "7379:16:46", + "nodeType": "YulIdentifier", + "src": "7379:16:46" + }, + "nativeSrc": "7379:18:46", + "nodeType": "YulFunctionCall", + "src": "7379:18:46" + }, + "nativeSrc": "7379:18:46", + "nodeType": "YulExpressionStatement", + "src": "7379:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nativeSrc": "7368:4:46", + "nodeType": "YulIdentifier", + "src": "7368:4:46" + }, + { + "name": "x", + "nativeSrc": "7374:1:46", + "nodeType": "YulIdentifier", + "src": "7374:1:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7365:2:46", + "nodeType": "YulIdentifier", + "src": "7365:2:46" + }, + "nativeSrc": "7365:11:46", + "nodeType": "YulFunctionCall", + "src": "7365:11:46" + }, + "nativeSrc": "7362:37:46", + "nodeType": "YulIf", + "src": "7362:37:46" + } + ] + }, + "name": "checked_sub_t_uint256", + "nativeSrc": "7277:128:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "7308:1:46", + "nodeType": "YulTypedName", + "src": "7308:1:46", + "type": "" + }, + { + "name": "y", + "nativeSrc": "7311:1:46", + "nodeType": "YulTypedName", + "src": "7311:1:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nativeSrc": "7317:4:46", + "nodeType": "YulTypedName", + "src": "7317:4:46", + "type": "" + } + ], + "src": "7277:128:46" + }, + { + "body": { + "nativeSrc": "7442:95:46", + "nodeType": "YulBlock", + "src": "7442:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7459:1:46", + "nodeType": "YulLiteral", + "src": "7459:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7466:3:46", + "nodeType": "YulLiteral", + "src": "7466:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "7471:10:46", + "nodeType": "YulLiteral", + "src": "7471:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "7462:3:46", + "nodeType": "YulIdentifier", + "src": "7462:3:46" + }, + "nativeSrc": "7462:20:46", + "nodeType": "YulFunctionCall", + "src": "7462:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7452:6:46", + "nodeType": "YulIdentifier", + "src": "7452:6:46" + }, + "nativeSrc": "7452:31:46", + "nodeType": "YulFunctionCall", + "src": "7452:31:46" + }, + "nativeSrc": "7452:31:46", + "nodeType": "YulExpressionStatement", + "src": "7452:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7499:1:46", + "nodeType": "YulLiteral", + "src": "7499:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "7502:4:46", + "nodeType": "YulLiteral", + "src": "7502:4:46", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7492:6:46", + "nodeType": "YulIdentifier", + "src": "7492:6:46" + }, + "nativeSrc": "7492:15:46", + "nodeType": "YulFunctionCall", + "src": "7492:15:46" + }, + "nativeSrc": "7492:15:46", + "nodeType": "YulExpressionStatement", + "src": "7492:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7523:1:46", + "nodeType": "YulLiteral", + "src": "7523:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7526:4:46", + "nodeType": "YulLiteral", + "src": "7526:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7516:6:46", + "nodeType": "YulIdentifier", + "src": "7516:6:46" + }, + "nativeSrc": "7516:15:46", + "nodeType": "YulFunctionCall", + "src": "7516:15:46" + }, + "nativeSrc": "7516:15:46", + "nodeType": "YulExpressionStatement", + "src": "7516:15:46" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "7410:127:46", + "nodeType": "YulFunctionDefinition", + "src": "7410:127:46" + }, + { + "body": { + "nativeSrc": "7574:95:46", + "nodeType": "YulBlock", + "src": "7574:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7591:1:46", + "nodeType": "YulLiteral", + "src": "7591:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7598:3:46", + "nodeType": "YulLiteral", + "src": "7598:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "7603:10:46", + "nodeType": "YulLiteral", + "src": "7603:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "7594:3:46", + "nodeType": "YulIdentifier", + "src": "7594:3:46" + }, + "nativeSrc": "7594:20:46", + "nodeType": "YulFunctionCall", + "src": "7594:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7584:6:46", + "nodeType": "YulIdentifier", + "src": "7584:6:46" + }, + "nativeSrc": "7584:31:46", + "nodeType": "YulFunctionCall", + "src": "7584:31:46" + }, + "nativeSrc": "7584:31:46", + "nodeType": "YulExpressionStatement", + "src": "7584:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7631:1:46", + "nodeType": "YulLiteral", + "src": "7631:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "7634:4:46", + "nodeType": "YulLiteral", + "src": "7634:4:46", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7624:6:46", + "nodeType": "YulIdentifier", + "src": "7624:6:46" + }, + "nativeSrc": "7624:15:46", + "nodeType": "YulFunctionCall", + "src": "7624:15:46" + }, + "nativeSrc": "7624:15:46", + "nodeType": "YulExpressionStatement", + "src": "7624:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7655:1:46", + "nodeType": "YulLiteral", + "src": "7655:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7658:4:46", + "nodeType": "YulLiteral", + "src": "7658:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7648:6:46", + "nodeType": "YulIdentifier", + "src": "7648:6:46" + }, + "nativeSrc": "7648:15:46", + "nodeType": "YulFunctionCall", + "src": "7648:15:46" + }, + "nativeSrc": "7648:15:46", + "nodeType": "YulExpressionStatement", + "src": "7648:15:46" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "7542:127:46", + "nodeType": "YulFunctionDefinition", + "src": "7542:127:46" + }, + { + "body": { + "nativeSrc": "7848:169:46", + "nodeType": "YulBlock", + "src": "7848:169:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7865:9:46", + "nodeType": "YulIdentifier", + "src": "7865:9:46" + }, + { + "kind": "number", + "nativeSrc": "7876:2:46", + "nodeType": "YulLiteral", + "src": "7876:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7858:6:46", + "nodeType": "YulIdentifier", + "src": "7858:6:46" + }, + "nativeSrc": "7858:21:46", + "nodeType": "YulFunctionCall", + "src": "7858:21:46" + }, + "nativeSrc": "7858:21:46", + "nodeType": "YulExpressionStatement", + "src": "7858:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7899:9:46", + "nodeType": "YulIdentifier", + "src": "7899:9:46" + }, + { + "kind": "number", + "nativeSrc": "7910:2:46", + "nodeType": "YulLiteral", + "src": "7910:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7895:3:46", + "nodeType": "YulIdentifier", + "src": "7895:3:46" + }, + "nativeSrc": "7895:18:46", + "nodeType": "YulFunctionCall", + "src": "7895:18:46" + }, + { + "kind": "number", + "nativeSrc": "7915:2:46", + "nodeType": "YulLiteral", + "src": "7915:2:46", + "type": "", + "value": "19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7888:6:46", + "nodeType": "YulIdentifier", + "src": "7888:6:46" + }, + "nativeSrc": "7888:30:46", + "nodeType": "YulFunctionCall", + "src": "7888:30:46" + }, + "nativeSrc": "7888:30:46", + "nodeType": "YulExpressionStatement", + "src": "7888:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7938:9:46", + "nodeType": "YulIdentifier", + "src": "7938:9:46" + }, + { + "kind": "number", + "nativeSrc": "7949:2:46", + "nodeType": "YulLiteral", + "src": "7949:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7934:3:46", + "nodeType": "YulIdentifier", + "src": "7934:3:46" + }, + "nativeSrc": "7934:18:46", + "nodeType": "YulFunctionCall", + "src": "7934:18:46" + }, + { + "hexValue": "526f6f7420646f6573206e6f74206578697374", + "kind": "string", + "nativeSrc": "7954:21:46", + "nodeType": "YulLiteral", + "src": "7954:21:46", + "type": "", + "value": "Root does not exist" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7927:6:46", + "nodeType": "YulIdentifier", + "src": "7927:6:46" + }, + "nativeSrc": "7927:49:46", + "nodeType": "YulFunctionCall", + "src": "7927:49:46" + }, + "nativeSrc": "7927:49:46", + "nodeType": "YulExpressionStatement", + "src": "7927:49:46" + }, + { + "nativeSrc": "7985:26:46", + "nodeType": "YulAssignment", + "src": "7985:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "7997:9:46", + "nodeType": "YulIdentifier", + "src": "7997:9:46" + }, + { + "kind": "number", + "nativeSrc": "8008:2:46", + "nodeType": "YulLiteral", + "src": "8008:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7993:3:46", + "nodeType": "YulIdentifier", + "src": "7993:3:46" + }, + "nativeSrc": "7993:18:46", + "nodeType": "YulFunctionCall", + "src": "7993:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "7985:4:46", + "nodeType": "YulIdentifier", + "src": "7985:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ad7ecf2adb23a091a9c01bdae7fb1b18a3a12c15e41cfafded464e944aa5faec__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "7674:343:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7825:9:46", + "nodeType": "YulTypedName", + "src": "7825:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "7839:4:46", + "nodeType": "YulTypedName", + "src": "7839:4:46", + "type": "" + } + ], + "src": "7674:343:46" + }, + { + "body": { + "nativeSrc": "8196:167:46", + "nodeType": "YulBlock", + "src": "8196:167:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8213:9:46", + "nodeType": "YulIdentifier", + "src": "8213:9:46" + }, + { + "kind": "number", + "nativeSrc": "8224:2:46", + "nodeType": "YulLiteral", + "src": "8224:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8206:6:46", + "nodeType": "YulIdentifier", + "src": "8206:6:46" + }, + "nativeSrc": "8206:21:46", + "nodeType": "YulFunctionCall", + "src": "8206:21:46" + }, + "nativeSrc": "8206:21:46", + "nodeType": "YulExpressionStatement", + "src": "8206:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8247:9:46", + "nodeType": "YulIdentifier", + "src": "8247:9:46" + }, + { + "kind": "number", + "nativeSrc": "8258:2:46", + "nodeType": "YulLiteral", + "src": "8258:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8243:3:46", + "nodeType": "YulIdentifier", + "src": "8243:3:46" + }, + "nativeSrc": "8243:18:46", + "nodeType": "YulFunctionCall", + "src": "8243:18:46" + }, + { + "kind": "number", + "nativeSrc": "8263:2:46", + "nodeType": "YulLiteral", + "src": "8263:2:46", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8236:6:46", + "nodeType": "YulIdentifier", + "src": "8236:6:46" + }, + "nativeSrc": "8236:30:46", + "nodeType": "YulFunctionCall", + "src": "8236:30:46" + }, + "nativeSrc": "8236:30:46", + "nodeType": "YulExpressionStatement", + "src": "8236:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8286:9:46", + "nodeType": "YulIdentifier", + "src": "8286:9:46" + }, + { + "kind": "number", + "nativeSrc": "8297:2:46", + "nodeType": "YulLiteral", + "src": "8297:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8282:3:46", + "nodeType": "YulIdentifier", + "src": "8282:3:46" + }, + "nativeSrc": "8282:18:46", + "nodeType": "YulFunctionCall", + "src": "8282:18:46" + }, + { + "hexValue": "496e76616c6964206e6f64652074797065", + "kind": "string", + "nativeSrc": "8302:19:46", + "nodeType": "YulLiteral", + "src": "8302:19:46", + "type": "", + "value": "Invalid node type" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8275:6:46", + "nodeType": "YulIdentifier", + "src": "8275:6:46" + }, + "nativeSrc": "8275:47:46", + "nodeType": "YulFunctionCall", + "src": "8275:47:46" + }, + "nativeSrc": "8275:47:46", + "nodeType": "YulExpressionStatement", + "src": "8275:47:46" + }, + { + "nativeSrc": "8331:26:46", + "nodeType": "YulAssignment", + "src": "8331:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8343:9:46", + "nodeType": "YulIdentifier", + "src": "8343:9:46" + }, + { + "kind": "number", + "nativeSrc": "8354:2:46", + "nodeType": "YulLiteral", + "src": "8354:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8339:3:46", + "nodeType": "YulIdentifier", + "src": "8339:3:46" + }, + "nativeSrc": "8339:18:46", + "nodeType": "YulFunctionCall", + "src": "8339:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8331:4:46", + "nodeType": "YulIdentifier", + "src": "8331:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_43b57e13a6e36a7597dc186152e9451a8e2e96966b0b137fb7362d47da52fb0e__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "8022:341:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8173:9:46", + "nodeType": "YulTypedName", + "src": "8173:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8187:4:46", + "nodeType": "YulTypedName", + "src": "8187:4:46", + "type": "" + } + ], + "src": "8022:341:46" + }, + { + "body": { + "nativeSrc": "8415:88:46", + "nodeType": "YulBlock", + "src": "8415:88:46", + "statements": [ + { + "body": { + "nativeSrc": "8446:22:46", + "nodeType": "YulBlock", + "src": "8446:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "8448:16:46", + "nodeType": "YulIdentifier", + "src": "8448:16:46" + }, + "nativeSrc": "8448:18:46", + "nodeType": "YulFunctionCall", + "src": "8448:18:46" + }, + "nativeSrc": "8448:18:46", + "nodeType": "YulExpressionStatement", + "src": "8448:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8431:5:46", + "nodeType": "YulIdentifier", + "src": "8431:5:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8442:1:46", + "nodeType": "YulLiteral", + "src": "8442:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "8438:3:46", + "nodeType": "YulIdentifier", + "src": "8438:3:46" + }, + "nativeSrc": "8438:6:46", + "nodeType": "YulFunctionCall", + "src": "8438:6:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "8428:2:46", + "nodeType": "YulIdentifier", + "src": "8428:2:46" + }, + "nativeSrc": "8428:17:46", + "nodeType": "YulFunctionCall", + "src": "8428:17:46" + }, + "nativeSrc": "8425:43:46", + "nodeType": "YulIf", + "src": "8425:43:46" + }, + { + "nativeSrc": "8477:20:46", + "nodeType": "YulAssignment", + "src": "8477:20:46", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8488:5:46", + "nodeType": "YulIdentifier", + "src": "8488:5:46" + }, + { + "kind": "number", + "nativeSrc": "8495:1:46", + "nodeType": "YulLiteral", + "src": "8495:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8484:3:46", + "nodeType": "YulIdentifier", + "src": "8484:3:46" + }, + "nativeSrc": "8484:13:46", + "nodeType": "YulFunctionCall", + "src": "8484:13:46" + }, + "variableNames": [ + { + "name": "ret", + "nativeSrc": "8477:3:46", + "nodeType": "YulIdentifier", + "src": "8477:3:46" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nativeSrc": "8368:135:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8397:5:46", + "nodeType": "YulTypedName", + "src": "8397:5:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nativeSrc": "8407:3:46", + "nodeType": "YulTypedName", + "src": "8407:3:46", + "type": "" + } + ], + "src": "8368:135:46" + }, + { + "body": { + "nativeSrc": "8682:172:46", + "nodeType": "YulBlock", + "src": "8682:172:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8699:9:46", + "nodeType": "YulIdentifier", + "src": "8699:9:46" + }, + { + "kind": "number", + "nativeSrc": "8710:2:46", + "nodeType": "YulLiteral", + "src": "8710:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8692:6:46", + "nodeType": "YulIdentifier", + "src": "8692:6:46" + }, + "nativeSrc": "8692:21:46", + "nodeType": "YulFunctionCall", + "src": "8692:21:46" + }, + "nativeSrc": "8692:21:46", + "nodeType": "YulExpressionStatement", + "src": "8692:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8733:9:46", + "nodeType": "YulIdentifier", + "src": "8733:9:46" + }, + { + "kind": "number", + "nativeSrc": "8744:2:46", + "nodeType": "YulLiteral", + "src": "8744:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8729:3:46", + "nodeType": "YulIdentifier", + "src": "8729:3:46" + }, + "nativeSrc": "8729:18:46", + "nodeType": "YulFunctionCall", + "src": "8729:18:46" + }, + { + "kind": "number", + "nativeSrc": "8749:2:46", + "nodeType": "YulLiteral", + "src": "8749:2:46", + "type": "", + "value": "22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8722:6:46", + "nodeType": "YulIdentifier", + "src": "8722:6:46" + }, + "nativeSrc": "8722:30:46", + "nodeType": "YulFunctionCall", + "src": "8722:30:46" + }, + "nativeSrc": "8722:30:46", + "nodeType": "YulExpressionStatement", + "src": "8722:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8772:9:46", + "nodeType": "YulIdentifier", + "src": "8772:9:46" + }, + { + "kind": "number", + "nativeSrc": "8783:2:46", + "nodeType": "YulLiteral", + "src": "8783:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8768:3:46", + "nodeType": "YulIdentifier", + "src": "8768:3:46" + }, + "nativeSrc": "8768:18:46", + "nodeType": "YulFunctionCall", + "src": "8768:18:46" + }, + { + "hexValue": "536d74206973206e6f7420696e697469616c697a6564", + "kind": "string", + "nativeSrc": "8788:24:46", + "nodeType": "YulLiteral", + "src": "8788:24:46", + "type": "", + "value": "Smt is not initialized" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8761:6:46", + "nodeType": "YulIdentifier", + "src": "8761:6:46" + }, + "nativeSrc": "8761:52:46", + "nodeType": "YulFunctionCall", + "src": "8761:52:46" + }, + "nativeSrc": "8761:52:46", + "nodeType": "YulExpressionStatement", + "src": "8761:52:46" + }, + { + "nativeSrc": "8822:26:46", + "nodeType": "YulAssignment", + "src": "8822:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8834:9:46", + "nodeType": "YulIdentifier", + "src": "8834:9:46" + }, + { + "kind": "number", + "nativeSrc": "8845:2:46", + "nodeType": "YulLiteral", + "src": "8845:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8830:3:46", + "nodeType": "YulIdentifier", + "src": "8830:3:46" + }, + "nativeSrc": "8830:18:46", + "nodeType": "YulFunctionCall", + "src": "8830:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "8822:4:46", + "nodeType": "YulIdentifier", + "src": "8822:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ac1ebaa0462e13da16f18cbe900dae12201bb024c2854db23aa2ec21507908be__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "8508:346:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8659:9:46", + "nodeType": "YulTypedName", + "src": "8659:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "8673:4:46", + "nodeType": "YulTypedName", + "src": "8673:4:46", + "type": "" + } + ], + "src": "8508:346:46" + }, + { + "body": { + "nativeSrc": "9033:176:46", + "nodeType": "YulBlock", + "src": "9033:176:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9050:9:46", + "nodeType": "YulIdentifier", + "src": "9050:9:46" + }, + { + "kind": "number", + "nativeSrc": "9061:2:46", + "nodeType": "YulLiteral", + "src": "9061:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9043:6:46", + "nodeType": "YulIdentifier", + "src": "9043:6:46" + }, + "nativeSrc": "9043:21:46", + "nodeType": "YulFunctionCall", + "src": "9043:21:46" + }, + "nativeSrc": "9043:21:46", + "nodeType": "YulExpressionStatement", + "src": "9043:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9084:9:46", + "nodeType": "YulIdentifier", + "src": "9084:9:46" + }, + { + "kind": "number", + "nativeSrc": "9095:2:46", + "nodeType": "YulLiteral", + "src": "9095:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9080:3:46", + "nodeType": "YulIdentifier", + "src": "9080:3:46" + }, + "nativeSrc": "9080:18:46", + "nodeType": "YulFunctionCall", + "src": "9080:18:46" + }, + { + "kind": "number", + "nativeSrc": "9100:2:46", + "nodeType": "YulLiteral", + "src": "9100:2:46", + "type": "", + "value": "26" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9073:6:46", + "nodeType": "YulIdentifier", + "src": "9073:6:46" + }, + "nativeSrc": "9073:30:46", + "nodeType": "YulFunctionCall", + "src": "9073:30:46" + }, + "nativeSrc": "9073:30:46", + "nodeType": "YulExpressionStatement", + "src": "9073:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9123:9:46", + "nodeType": "YulIdentifier", + "src": "9123:9:46" + }, + { + "kind": "number", + "nativeSrc": "9134:2:46", + "nodeType": "YulLiteral", + "src": "9134:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9119:3:46", + "nodeType": "YulIdentifier", + "src": "9119:3:46" + }, + "nativeSrc": "9119:18:46", + "nodeType": "YulFunctionCall", + "src": "9119:18:46" + }, + { + "hexValue": "536d7420697320616c726561647920696e697469616c697a6564", + "kind": "string", + "nativeSrc": "9139:28:46", + "nodeType": "YulLiteral", + "src": "9139:28:46", + "type": "", + "value": "Smt is already initialized" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9112:6:46", + "nodeType": "YulIdentifier", + "src": "9112:6:46" + }, + "nativeSrc": "9112:56:46", + "nodeType": "YulFunctionCall", + "src": "9112:56:46" + }, + "nativeSrc": "9112:56:46", + "nodeType": "YulExpressionStatement", + "src": "9112:56:46" + }, + { + "nativeSrc": "9177:26:46", + "nodeType": "YulAssignment", + "src": "9177:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9189:9:46", + "nodeType": "YulIdentifier", + "src": "9189:9:46" + }, + { + "kind": "number", + "nativeSrc": "9200:2:46", + "nodeType": "YulLiteral", + "src": "9200:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9185:3:46", + "nodeType": "YulIdentifier", + "src": "9185:3:46" + }, + "nativeSrc": "9185:18:46", + "nodeType": "YulFunctionCall", + "src": "9185:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9177:4:46", + "nodeType": "YulIdentifier", + "src": "9177:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_34bc8bca45d4a31a6e4233f39a7def873d05862a78f6ec35ac6d77da37f9aea8__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "8859:350:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9010:9:46", + "nodeType": "YulTypedName", + "src": "9010:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9024:4:46", + "nodeType": "YulTypedName", + "src": "9024:4:46", + "type": "" + } + ], + "src": "8859:350:46" + }, + { + "body": { + "nativeSrc": "9388:174:46", + "nodeType": "YulBlock", + "src": "9388:174:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9405:9:46", + "nodeType": "YulIdentifier", + "src": "9405:9:46" + }, + { + "kind": "number", + "nativeSrc": "9416:2:46", + "nodeType": "YulLiteral", + "src": "9416:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9398:6:46", + "nodeType": "YulIdentifier", + "src": "9398:6:46" + }, + "nativeSrc": "9398:21:46", + "nodeType": "YulFunctionCall", + "src": "9398:21:46" + }, + "nativeSrc": "9398:21:46", + "nodeType": "YulExpressionStatement", + "src": "9398:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9439:9:46", + "nodeType": "YulIdentifier", + "src": "9439:9:46" + }, + { + "kind": "number", + "nativeSrc": "9450:2:46", + "nodeType": "YulLiteral", + "src": "9450:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9435:3:46", + "nodeType": "YulIdentifier", + "src": "9435:3:46" + }, + "nativeSrc": "9435:18:46", + "nodeType": "YulFunctionCall", + "src": "9435:18:46" + }, + { + "kind": "number", + "nativeSrc": "9455:2:46", + "nodeType": "YulLiteral", + "src": "9455:2:46", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9428:6:46", + "nodeType": "YulIdentifier", + "src": "9428:6:46" + }, + "nativeSrc": "9428:30:46", + "nodeType": "YulFunctionCall", + "src": "9428:30:46" + }, + "nativeSrc": "9428:30:46", + "nodeType": "YulExpressionStatement", + "src": "9428:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9478:9:46", + "nodeType": "YulIdentifier", + "src": "9478:9:46" + }, + { + "kind": "number", + "nativeSrc": "9489:2:46", + "nodeType": "YulLiteral", + "src": "9489:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9474:3:46", + "nodeType": "YulIdentifier", + "src": "9474:3:46" + }, + "nativeSrc": "9474:18:46", + "nodeType": "YulFunctionCall", + "src": "9474:18:46" + }, + { + "hexValue": "4e6f2066757475726520626c6f636b7320616c6c6f776564", + "kind": "string", + "nativeSrc": "9494:26:46", + "nodeType": "YulLiteral", + "src": "9494:26:46", + "type": "", + "value": "No future blocks allowed" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9467:6:46", + "nodeType": "YulIdentifier", + "src": "9467:6:46" + }, + "nativeSrc": "9467:54:46", + "nodeType": "YulFunctionCall", + "src": "9467:54:46" + }, + "nativeSrc": "9467:54:46", + "nodeType": "YulExpressionStatement", + "src": "9467:54:46" + }, + { + "nativeSrc": "9530:26:46", + "nodeType": "YulAssignment", + "src": "9530:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9542:9:46", + "nodeType": "YulIdentifier", + "src": "9542:9:46" + }, + { + "kind": "number", + "nativeSrc": "9553:2:46", + "nodeType": "YulLiteral", + "src": "9553:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9538:3:46", + "nodeType": "YulIdentifier", + "src": "9538:3:46" + }, + "nativeSrc": "9538:18:46", + "nodeType": "YulFunctionCall", + "src": "9538:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "9530:4:46", + "nodeType": "YulIdentifier", + "src": "9530:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_c366ba1cae47b1c1a5d6ce887a8bd1a8d2f3658dc55cd03d6e6687e140586e6f__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "9214:348:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9365:9:46", + "nodeType": "YulTypedName", + "src": "9365:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9379:4:46", + "nodeType": "YulTypedName", + "src": "9379:4:46", + "type": "" + } + ], + "src": "9214:348:46" + }, + { + "body": { + "nativeSrc": "9599:95:46", + "nodeType": "YulBlock", + "src": "9599:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9616:1:46", + "nodeType": "YulLiteral", + "src": "9616:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9623:3:46", + "nodeType": "YulLiteral", + "src": "9623:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "9628:10:46", + "nodeType": "YulLiteral", + "src": "9628:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "9619:3:46", + "nodeType": "YulIdentifier", + "src": "9619:3:46" + }, + "nativeSrc": "9619:20:46", + "nodeType": "YulFunctionCall", + "src": "9619:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9609:6:46", + "nodeType": "YulIdentifier", + "src": "9609:6:46" + }, + "nativeSrc": "9609:31:46", + "nodeType": "YulFunctionCall", + "src": "9609:31:46" + }, + "nativeSrc": "9609:31:46", + "nodeType": "YulExpressionStatement", + "src": "9609:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9656:1:46", + "nodeType": "YulLiteral", + "src": "9656:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "9659:4:46", + "nodeType": "YulLiteral", + "src": "9659:4:46", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9649:6:46", + "nodeType": "YulIdentifier", + "src": "9649:6:46" + }, + "nativeSrc": "9649:15:46", + "nodeType": "YulFunctionCall", + "src": "9649:15:46" + }, + "nativeSrc": "9649:15:46", + "nodeType": "YulExpressionStatement", + "src": "9649:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9680:1:46", + "nodeType": "YulLiteral", + "src": "9680:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9683:4:46", + "nodeType": "YulLiteral", + "src": "9683:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9673:6:46", + "nodeType": "YulIdentifier", + "src": "9673:6:46" + }, + "nativeSrc": "9673:15:46", + "nodeType": "YulFunctionCall", + "src": "9673:15:46" + }, + "nativeSrc": "9673:15:46", + "nodeType": "YulExpressionStatement", + "src": "9673:15:46" + } + ] + }, + "name": "panic_error_0x01", + "nativeSrc": "9567:127:46", + "nodeType": "YulFunctionDefinition", + "src": "9567:127:46" + }, + { + "body": { + "nativeSrc": "9873:181:46", + "nodeType": "YulBlock", + "src": "9873:181:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9890:9:46", + "nodeType": "YulIdentifier", + "src": "9890:9:46" + }, + { + "kind": "number", + "nativeSrc": "9901:2:46", + "nodeType": "YulLiteral", + "src": "9901:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9883:6:46", + "nodeType": "YulIdentifier", + "src": "9883:6:46" + }, + "nativeSrc": "9883:21:46", + "nodeType": "YulFunctionCall", + "src": "9883:21:46" + }, + "nativeSrc": "9883:21:46", + "nodeType": "YulExpressionStatement", + "src": "9883:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9924:9:46", + "nodeType": "YulIdentifier", + "src": "9924:9:46" + }, + { + "kind": "number", + "nativeSrc": "9935:2:46", + "nodeType": "YulLiteral", + "src": "9935:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9920:3:46", + "nodeType": "YulIdentifier", + "src": "9920:3:46" + }, + "nativeSrc": "9920:18:46", + "nodeType": "YulFunctionCall", + "src": "9920:18:46" + }, + { + "kind": "number", + "nativeSrc": "9940:2:46", + "nodeType": "YulLiteral", + "src": "9940:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9913:6:46", + "nodeType": "YulIdentifier", + "src": "9913:6:46" + }, + "nativeSrc": "9913:30:46", + "nodeType": "YulFunctionCall", + "src": "9913:30:46" + }, + "nativeSrc": "9913:30:46", + "nodeType": "YulExpressionStatement", + "src": "9913:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9963:9:46", + "nodeType": "YulIdentifier", + "src": "9963:9:46" + }, + { + "kind": "number", + "nativeSrc": "9974:2:46", + "nodeType": "YulLiteral", + "src": "9974:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9959:3:46", + "nodeType": "YulIdentifier", + "src": "9959:3:46" + }, + "nativeSrc": "9959:18:46", + "nodeType": "YulFunctionCall", + "src": "9959:18:46" + }, + { + "hexValue": "4c656e6774682073686f756c642062652067726561746572207468616e2030", + "kind": "string", + "nativeSrc": "9979:33:46", + "nodeType": "YulLiteral", + "src": "9979:33:46", + "type": "", + "value": "Length should be greater than 0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9952:6:46", + "nodeType": "YulIdentifier", + "src": "9952:6:46" + }, + "nativeSrc": "9952:61:46", + "nodeType": "YulFunctionCall", + "src": "9952:61:46" + }, + "nativeSrc": "9952:61:46", + "nodeType": "YulExpressionStatement", + "src": "9952:61:46" + }, + { + "nativeSrc": "10022:26:46", + "nodeType": "YulAssignment", + "src": "10022:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10034:9:46", + "nodeType": "YulIdentifier", + "src": "10034:9:46" + }, + { + "kind": "number", + "nativeSrc": "10045:2:46", + "nodeType": "YulLiteral", + "src": "10045:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10030:3:46", + "nodeType": "YulIdentifier", + "src": "10030:3:46" + }, + "nativeSrc": "10030:18:46", + "nodeType": "YulFunctionCall", + "src": "10030:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10022:4:46", + "nodeType": "YulIdentifier", + "src": "10022:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7d4bcbad4eb3a77bbd93aeffb447dd4a40bb90d7f9bcb1e7b24196129dc65c2a__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "9699:355:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9850:9:46", + "nodeType": "YulTypedName", + "src": "9850:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9864:4:46", + "nodeType": "YulTypedName", + "src": "9864:4:46", + "type": "" + } + ], + "src": "9699:355:46" + }, + { + "body": { + "nativeSrc": "10233:171:46", + "nodeType": "YulBlock", + "src": "10233:171:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10250:9:46", + "nodeType": "YulIdentifier", + "src": "10250:9:46" + }, + { + "kind": "number", + "nativeSrc": "10261:2:46", + "nodeType": "YulLiteral", + "src": "10261:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10243:6:46", + "nodeType": "YulIdentifier", + "src": "10243:6:46" + }, + "nativeSrc": "10243:21:46", + "nodeType": "YulFunctionCall", + "src": "10243:21:46" + }, + "nativeSrc": "10243:21:46", + "nodeType": "YulExpressionStatement", + "src": "10243:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10284:9:46", + "nodeType": "YulIdentifier", + "src": "10284:9:46" + }, + { + "kind": "number", + "nativeSrc": "10295:2:46", + "nodeType": "YulLiteral", + "src": "10295:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10280:3:46", + "nodeType": "YulIdentifier", + "src": "10280:3:46" + }, + "nativeSrc": "10280:18:46", + "nodeType": "YulFunctionCall", + "src": "10280:18:46" + }, + { + "kind": "number", + "nativeSrc": "10300:2:46", + "nodeType": "YulLiteral", + "src": "10300:2:46", + "type": "", + "value": "21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10273:6:46", + "nodeType": "YulIdentifier", + "src": "10273:6:46" + }, + "nativeSrc": "10273:30:46", + "nodeType": "YulFunctionCall", + "src": "10273:30:46" + }, + "nativeSrc": "10273:30:46", + "nodeType": "YulExpressionStatement", + "src": "10273:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10323:9:46", + "nodeType": "YulIdentifier", + "src": "10323:9:46" + }, + { + "kind": "number", + "nativeSrc": "10334:2:46", + "nodeType": "YulLiteral", + "src": "10334:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10319:3:46", + "nodeType": "YulIdentifier", + "src": "10319:3:46" + }, + "nativeSrc": "10319:18:46", + "nodeType": "YulFunctionCall", + "src": "10319:18:46" + }, + { + "hexValue": "4c656e677468206c696d6974206578636565646564", + "kind": "string", + "nativeSrc": "10339:23:46", + "nodeType": "YulLiteral", + "src": "10339:23:46", + "type": "", + "value": "Length limit exceeded" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10312:6:46", + "nodeType": "YulIdentifier", + "src": "10312:6:46" + }, + "nativeSrc": "10312:51:46", + "nodeType": "YulFunctionCall", + "src": "10312:51:46" + }, + "nativeSrc": "10312:51:46", + "nodeType": "YulExpressionStatement", + "src": "10312:51:46" + }, + { + "nativeSrc": "10372:26:46", + "nodeType": "YulAssignment", + "src": "10372:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10384:9:46", + "nodeType": "YulIdentifier", + "src": "10384:9:46" + }, + { + "kind": "number", + "nativeSrc": "10395:2:46", + "nodeType": "YulLiteral", + "src": "10395:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10380:3:46", + "nodeType": "YulIdentifier", + "src": "10380:3:46" + }, + "nativeSrc": "10380:18:46", + "nodeType": "YulFunctionCall", + "src": "10380:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10372:4:46", + "nodeType": "YulIdentifier", + "src": "10372:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7c161ae563d93d0a051be3b5891d7ee230c24127d59714e18bb10048ca6f9e84__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "10059:345:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10210:9:46", + "nodeType": "YulTypedName", + "src": "10210:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10224:4:46", + "nodeType": "YulTypedName", + "src": "10224:4:46", + "type": "" + } + ], + "src": "10059:345:46" + }, + { + "body": { + "nativeSrc": "10583:175:46", + "nodeType": "YulBlock", + "src": "10583:175:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10600:9:46", + "nodeType": "YulIdentifier", + "src": "10600:9:46" + }, + { + "kind": "number", + "nativeSrc": "10611:2:46", + "nodeType": "YulLiteral", + "src": "10611:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10593:6:46", + "nodeType": "YulIdentifier", + "src": "10593:6:46" + }, + "nativeSrc": "10593:21:46", + "nodeType": "YulFunctionCall", + "src": "10593:21:46" + }, + "nativeSrc": "10593:21:46", + "nodeType": "YulExpressionStatement", + "src": "10593:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10634:9:46", + "nodeType": "YulIdentifier", + "src": "10634:9:46" + }, + { + "kind": "number", + "nativeSrc": "10645:2:46", + "nodeType": "YulLiteral", + "src": "10645:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10630:3:46", + "nodeType": "YulIdentifier", + "src": "10630:3:46" + }, + "nativeSrc": "10630:18:46", + "nodeType": "YulFunctionCall", + "src": "10630:18:46" + }, + { + "kind": "number", + "nativeSrc": "10650:2:46", + "nodeType": "YulLiteral", + "src": "10650:2:46", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10623:6:46", + "nodeType": "YulIdentifier", + "src": "10623:6:46" + }, + "nativeSrc": "10623:30:46", + "nodeType": "YulFunctionCall", + "src": "10623:30:46" + }, + "nativeSrc": "10623:30:46", + "nodeType": "YulExpressionStatement", + "src": "10623:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10673:9:46", + "nodeType": "YulIdentifier", + "src": "10673:9:46" + }, + { + "kind": "number", + "nativeSrc": "10684:2:46", + "nodeType": "YulLiteral", + "src": "10684:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10669:3:46", + "nodeType": "YulIdentifier", + "src": "10669:3:46" + }, + "nativeSrc": "10669:18:46", + "nodeType": "YulFunctionCall", + "src": "10669:18:46" + }, + { + "hexValue": "537461727420696e646578206f7574206f6620626f756e6473", + "kind": "string", + "nativeSrc": "10689:27:46", + "nodeType": "YulLiteral", + "src": "10689:27:46", + "type": "", + "value": "Start index out of bounds" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10662:6:46", + "nodeType": "YulIdentifier", + "src": "10662:6:46" + }, + "nativeSrc": "10662:55:46", + "nodeType": "YulFunctionCall", + "src": "10662:55:46" + }, + "nativeSrc": "10662:55:46", + "nodeType": "YulExpressionStatement", + "src": "10662:55:46" + }, + { + "nativeSrc": "10726:26:46", + "nodeType": "YulAssignment", + "src": "10726:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10738:9:46", + "nodeType": "YulIdentifier", + "src": "10738:9:46" + }, + { + "kind": "number", + "nativeSrc": "10749:2:46", + "nodeType": "YulLiteral", + "src": "10749:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10734:3:46", + "nodeType": "YulIdentifier", + "src": "10734:3:46" + }, + "nativeSrc": "10734:18:46", + "nodeType": "YulFunctionCall", + "src": "10734:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10726:4:46", + "nodeType": "YulIdentifier", + "src": "10726:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e68aa2945d9d826fe10860e3b76417578773840626355af3554acc1da6ab249f__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "10409:349:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10560:9:46", + "nodeType": "YulTypedName", + "src": "10560:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10574:4:46", + "nodeType": "YulTypedName", + "src": "10574:4:46", + "type": "" + } + ], + "src": "10409:349:46" + }, + { + "body": { + "nativeSrc": "10811:77:46", + "nodeType": "YulBlock", + "src": "10811:77:46", + "statements": [ + { + "nativeSrc": "10821:16:46", + "nodeType": "YulAssignment", + "src": "10821:16:46", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "10832:1:46", + "nodeType": "YulIdentifier", + "src": "10832:1:46" + }, + { + "name": "y", + "nativeSrc": "10835:1:46", + "nodeType": "YulIdentifier", + "src": "10835:1:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10828:3:46", + "nodeType": "YulIdentifier", + "src": "10828:3:46" + }, + "nativeSrc": "10828:9:46", + "nodeType": "YulFunctionCall", + "src": "10828:9:46" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "10821:3:46", + "nodeType": "YulIdentifier", + "src": "10821:3:46" + } + ] + }, + { + "body": { + "nativeSrc": "10860:22:46", + "nodeType": "YulBlock", + "src": "10860:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "10862:16:46", + "nodeType": "YulIdentifier", + "src": "10862:16:46" + }, + "nativeSrc": "10862:18:46", + "nodeType": "YulFunctionCall", + "src": "10862:18:46" + }, + "nativeSrc": "10862:18:46", + "nodeType": "YulExpressionStatement", + "src": "10862:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "10852:1:46", + "nodeType": "YulIdentifier", + "src": "10852:1:46" + }, + { + "name": "sum", + "nativeSrc": "10855:3:46", + "nodeType": "YulIdentifier", + "src": "10855:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10849:2:46", + "nodeType": "YulIdentifier", + "src": "10849:2:46" + }, + "nativeSrc": "10849:10:46", + "nodeType": "YulFunctionCall", + "src": "10849:10:46" + }, + "nativeSrc": "10846:36:46", + "nodeType": "YulIf", + "src": "10846:36:46" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "10763:125:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "10794:1:46", + "nodeType": "YulTypedName", + "src": "10794:1:46", + "type": "" + }, + { + "name": "y", + "nativeSrc": "10797:1:46", + "nodeType": "YulTypedName", + "src": "10797:1:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "10803:3:46", + "nodeType": "YulTypedName", + "src": "10803:3:46", + "type": "" + } + ], + "src": "10763:125:46" + }, + { + "body": { + "nativeSrc": "11067:167:46", + "nodeType": "YulBlock", + "src": "11067:167:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11084:9:46", + "nodeType": "YulIdentifier", + "src": "11084:9:46" + }, + { + "kind": "number", + "nativeSrc": "11095:2:46", + "nodeType": "YulLiteral", + "src": "11095:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11077:6:46", + "nodeType": "YulIdentifier", + "src": "11077:6:46" + }, + "nativeSrc": "11077:21:46", + "nodeType": "YulFunctionCall", + "src": "11077:21:46" + }, + "nativeSrc": "11077:21:46", + "nodeType": "YulExpressionStatement", + "src": "11077:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11118:9:46", + "nodeType": "YulIdentifier", + "src": "11118:9:46" + }, + { + "kind": "number", + "nativeSrc": "11129:2:46", + "nodeType": "YulLiteral", + "src": "11129:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11114:3:46", + "nodeType": "YulIdentifier", + "src": "11114:3:46" + }, + "nativeSrc": "11114:18:46", + "nodeType": "YulFunctionCall", + "src": "11114:18:46" + }, + { + "kind": "number", + "nativeSrc": "11134:2:46", + "nodeType": "YulLiteral", + "src": "11134:2:46", + "type": "", + "value": "17" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11107:6:46", + "nodeType": "YulIdentifier", + "src": "11107:6:46" + }, + "nativeSrc": "11107:30:46", + "nodeType": "YulFunctionCall", + "src": "11107:30:46" + }, + "nativeSrc": "11107:30:46", + "nodeType": "YulExpressionStatement", + "src": "11107:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11157:9:46", + "nodeType": "YulIdentifier", + "src": "11157:9:46" + }, + { + "kind": "number", + "nativeSrc": "11168:2:46", + "nodeType": "YulLiteral", + "src": "11168:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11153:3:46", + "nodeType": "YulIdentifier", + "src": "11153:3:46" + }, + "nativeSrc": "11153:18:46", + "nodeType": "YulFunctionCall", + "src": "11153:18:46" + }, + { + "hexValue": "4d61782064657074682072656163686564", + "kind": "string", + "nativeSrc": "11173:19:46", + "nodeType": "YulLiteral", + "src": "11173:19:46", + "type": "", + "value": "Max depth reached" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11146:6:46", + "nodeType": "YulIdentifier", + "src": "11146:6:46" + }, + "nativeSrc": "11146:47:46", + "nodeType": "YulFunctionCall", + "src": "11146:47:46" + }, + "nativeSrc": "11146:47:46", + "nodeType": "YulExpressionStatement", + "src": "11146:47:46" + }, + { + "nativeSrc": "11202:26:46", + "nodeType": "YulAssignment", + "src": "11202:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11214:9:46", + "nodeType": "YulIdentifier", + "src": "11214:9:46" + }, + { + "kind": "number", + "nativeSrc": "11225:2:46", + "nodeType": "YulLiteral", + "src": "11225:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11210:3:46", + "nodeType": "YulIdentifier", + "src": "11210:3:46" + }, + "nativeSrc": "11210:18:46", + "nodeType": "YulFunctionCall", + "src": "11210:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11202:4:46", + "nodeType": "YulIdentifier", + "src": "11202:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_bfd13f65fb38f208d39dd4db262f4a6b7e7be3bcdc9bf6b007847ef6e9e4f479__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "10893:341:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11044:9:46", + "nodeType": "YulTypedName", + "src": "11044:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11058:4:46", + "nodeType": "YulTypedName", + "src": "11058:4:46", + "type": "" + } + ], + "src": "10893:341:46" + }, + { + "body": { + "nativeSrc": "11285:171:46", + "nodeType": "YulBlock", + "src": "11285:171:46", + "statements": [ + { + "body": { + "nativeSrc": "11316:111:46", + "nodeType": "YulBlock", + "src": "11316:111:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11337:1:46", + "nodeType": "YulLiteral", + "src": "11337:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11344:3:46", + "nodeType": "YulLiteral", + "src": "11344:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "11349:10:46", + "nodeType": "YulLiteral", + "src": "11349:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "11340:3:46", + "nodeType": "YulIdentifier", + "src": "11340:3:46" + }, + "nativeSrc": "11340:20:46", + "nodeType": "YulFunctionCall", + "src": "11340:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11330:6:46", + "nodeType": "YulIdentifier", + "src": "11330:6:46" + }, + "nativeSrc": "11330:31:46", + "nodeType": "YulFunctionCall", + "src": "11330:31:46" + }, + "nativeSrc": "11330:31:46", + "nodeType": "YulExpressionStatement", + "src": "11330:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11381:1:46", + "nodeType": "YulLiteral", + "src": "11381:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "11384:4:46", + "nodeType": "YulLiteral", + "src": "11384:4:46", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11374:6:46", + "nodeType": "YulIdentifier", + "src": "11374:6:46" + }, + "nativeSrc": "11374:15:46", + "nodeType": "YulFunctionCall", + "src": "11374:15:46" + }, + "nativeSrc": "11374:15:46", + "nodeType": "YulExpressionStatement", + "src": "11374:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11409:1:46", + "nodeType": "YulLiteral", + "src": "11409:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11412:4:46", + "nodeType": "YulLiteral", + "src": "11412:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11402:6:46", + "nodeType": "YulIdentifier", + "src": "11402:6:46" + }, + "nativeSrc": "11402:15:46", + "nodeType": "YulFunctionCall", + "src": "11402:15:46" + }, + "nativeSrc": "11402:15:46", + "nodeType": "YulExpressionStatement", + "src": "11402:15:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nativeSrc": "11305:1:46", + "nodeType": "YulIdentifier", + "src": "11305:1:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "11298:6:46", + "nodeType": "YulIdentifier", + "src": "11298:6:46" + }, + "nativeSrc": "11298:9:46", + "nodeType": "YulFunctionCall", + "src": "11298:9:46" + }, + "nativeSrc": "11295:132:46", + "nodeType": "YulIf", + "src": "11295:132:46" + }, + { + "nativeSrc": "11436:14:46", + "nodeType": "YulAssignment", + "src": "11436:14:46", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "11445:1:46", + "nodeType": "YulIdentifier", + "src": "11445:1:46" + }, + { + "name": "y", + "nativeSrc": "11448:1:46", + "nodeType": "YulIdentifier", + "src": "11448:1:46" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "11441:3:46", + "nodeType": "YulIdentifier", + "src": "11441:3:46" + }, + "nativeSrc": "11441:9:46", + "nodeType": "YulFunctionCall", + "src": "11441:9:46" + }, + "variableNames": [ + { + "name": "r", + "nativeSrc": "11436:1:46", + "nodeType": "YulIdentifier", + "src": "11436:1:46" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nativeSrc": "11239:217:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "11270:1:46", + "nodeType": "YulTypedName", + "src": "11270:1:46", + "type": "" + }, + { + "name": "y", + "nativeSrc": "11273:1:46", + "nodeType": "YulTypedName", + "src": "11273:1:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nativeSrc": "11279:1:46", + "nodeType": "YulTypedName", + "src": "11279:1:46", + "type": "" + } + ], + "src": "11239:217:46" + }, + { + "body": { + "nativeSrc": "11635:169:46", + "nodeType": "YulBlock", + "src": "11635:169:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11652:9:46", + "nodeType": "YulIdentifier", + "src": "11652:9:46" + }, + { + "kind": "number", + "nativeSrc": "11663:2:46", + "nodeType": "YulLiteral", + "src": "11663:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11645:6:46", + "nodeType": "YulIdentifier", + "src": "11645:6:46" + }, + "nativeSrc": "11645:21:46", + "nodeType": "YulFunctionCall", + "src": "11645:21:46" + }, + "nativeSrc": "11645:21:46", + "nodeType": "YulExpressionStatement", + "src": "11645:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11686:9:46", + "nodeType": "YulIdentifier", + "src": "11686:9:46" + }, + { + "kind": "number", + "nativeSrc": "11697:2:46", + "nodeType": "YulLiteral", + "src": "11697:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11682:3:46", + "nodeType": "YulIdentifier", + "src": "11682:3:46" + }, + "nativeSrc": "11682:18:46", + "nodeType": "YulFunctionCall", + "src": "11682:18:46" + }, + { + "kind": "number", + "nativeSrc": "11702:2:46", + "nodeType": "YulLiteral", + "src": "11702:2:46", + "type": "", + "value": "19" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11675:6:46", + "nodeType": "YulIdentifier", + "src": "11675:6:46" + }, + "nativeSrc": "11675:30:46", + "nodeType": "YulFunctionCall", + "src": "11675:30:46" + }, + "nativeSrc": "11675:30:46", + "nodeType": "YulExpressionStatement", + "src": "11675:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11725:9:46", + "nodeType": "YulIdentifier", + "src": "11725:9:46" + }, + { + "kind": "number", + "nativeSrc": "11736:2:46", + "nodeType": "YulLiteral", + "src": "11736:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11721:3:46", + "nodeType": "YulIdentifier", + "src": "11721:3:46" + }, + "nativeSrc": "11721:18:46", + "nodeType": "YulFunctionCall", + "src": "11721:18:46" + }, + { + "hexValue": "496e76616c6964207365617263682074797065", + "kind": "string", + "nativeSrc": "11741:21:46", + "nodeType": "YulLiteral", + "src": "11741:21:46", + "type": "", + "value": "Invalid search type" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11714:6:46", + "nodeType": "YulIdentifier", + "src": "11714:6:46" + }, + "nativeSrc": "11714:49:46", + "nodeType": "YulFunctionCall", + "src": "11714:49:46" + }, + "nativeSrc": "11714:49:46", + "nodeType": "YulExpressionStatement", + "src": "11714:49:46" + }, + { + "nativeSrc": "11772:26:46", + "nodeType": "YulAssignment", + "src": "11772:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11784:9:46", + "nodeType": "YulIdentifier", + "src": "11784:9:46" + }, + { + "kind": "number", + "nativeSrc": "11795:2:46", + "nodeType": "YulLiteral", + "src": "11795:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11780:3:46", + "nodeType": "YulIdentifier", + "src": "11780:3:46" + }, + "nativeSrc": "11780:18:46", + "nodeType": "YulFunctionCall", + "src": "11780:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11772:4:46", + "nodeType": "YulIdentifier", + "src": "11772:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_6fabd1de3d4166fb77523c227388d19569e575c85e2f9f3fcf56540735e40935__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "11461:343:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11612:9:46", + "nodeType": "YulTypedName", + "src": "11612:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11626:4:46", + "nodeType": "YulTypedName", + "src": "11626:4:46", + "type": "" + } + ], + "src": "11461:343:46" + }, + { + "body": { + "nativeSrc": "11964:324:46", + "nodeType": "YulBlock", + "src": "11964:324:46", + "statements": [ + { + "nativeSrc": "11974:26:46", + "nodeType": "YulAssignment", + "src": "11974:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11986:9:46", + "nodeType": "YulIdentifier", + "src": "11986:9:46" + }, + { + "kind": "number", + "nativeSrc": "11997:2:46", + "nodeType": "YulLiteral", + "src": "11997:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11982:3:46", + "nodeType": "YulIdentifier", + "src": "11982:3:46" + }, + "nativeSrc": "11982:18:46", + "nodeType": "YulFunctionCall", + "src": "11982:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11974:4:46", + "nodeType": "YulIdentifier", + "src": "11974:4:46" + } + ] + }, + { + "nativeSrc": "12009:20:46", + "nodeType": "YulVariableDeclaration", + "src": "12009:20:46", + "value": { + "name": "headStart", + "nativeSrc": "12020:9:46", + "nodeType": "YulIdentifier", + "src": "12020:9:46" + }, + "variables": [ + { + "name": "pos", + "nativeSrc": "12013:3:46", + "nodeType": "YulTypedName", + "src": "12013:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "12038:16:46", + "nodeType": "YulAssignment", + "src": "12038:16:46", + "value": { + "name": "headStart", + "nativeSrc": "12045:9:46", + "nodeType": "YulIdentifier", + "src": "12045:9:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "12038:3:46", + "nodeType": "YulIdentifier", + "src": "12038:3:46" + } + ] + }, + { + "nativeSrc": "12063:20:46", + "nodeType": "YulVariableDeclaration", + "src": "12063:20:46", + "value": { + "name": "value0", + "nativeSrc": "12077:6:46", + "nodeType": "YulIdentifier", + "src": "12077:6:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "12067:6:46", + "nodeType": "YulTypedName", + "src": "12067:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "12092:10:46", + "nodeType": "YulVariableDeclaration", + "src": "12092:10:46", + "value": { + "kind": "number", + "nativeSrc": "12101:1:46", + "nodeType": "YulLiteral", + "src": "12101:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "12096:1:46", + "nodeType": "YulTypedName", + "src": "12096:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12158:124:46", + "nodeType": "YulBlock", + "src": "12158:124:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12179:3:46", + "nodeType": "YulIdentifier", + "src": "12179:3:46" + }, + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "12190:6:46", + "nodeType": "YulIdentifier", + "src": "12190:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "12184:5:46", + "nodeType": "YulIdentifier", + "src": "12184:5:46" + }, + "nativeSrc": "12184:13:46", + "nodeType": "YulFunctionCall", + "src": "12184:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12172:6:46", + "nodeType": "YulIdentifier", + "src": "12172:6:46" + }, + "nativeSrc": "12172:26:46", + "nodeType": "YulFunctionCall", + "src": "12172:26:46" + }, + "nativeSrc": "12172:26:46", + "nodeType": "YulExpressionStatement", + "src": "12172:26:46" + }, + { + "nativeSrc": "12211:21:46", + "nodeType": "YulAssignment", + "src": "12211:21:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12222:3:46", + "nodeType": "YulIdentifier", + "src": "12222:3:46" + }, + { + "kind": "number", + "nativeSrc": "12227:4:46", + "nodeType": "YulLiteral", + "src": "12227:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12218:3:46", + "nodeType": "YulIdentifier", + "src": "12218:3:46" + }, + "nativeSrc": "12218:14:46", + "nodeType": "YulFunctionCall", + "src": "12218:14:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "12211:3:46", + "nodeType": "YulIdentifier", + "src": "12211:3:46" + } + ] + }, + { + "nativeSrc": "12245:27:46", + "nodeType": "YulAssignment", + "src": "12245:27:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "12259:6:46", + "nodeType": "YulIdentifier", + "src": "12259:6:46" + }, + { + "kind": "number", + "nativeSrc": "12267:4:46", + "nodeType": "YulLiteral", + "src": "12267:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12255:3:46", + "nodeType": "YulIdentifier", + "src": "12255:3:46" + }, + "nativeSrc": "12255:17:46", + "nodeType": "YulFunctionCall", + "src": "12255:17:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "12245:6:46", + "nodeType": "YulIdentifier", + "src": "12245:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "12122:1:46", + "nodeType": "YulIdentifier", + "src": "12122:1:46" + }, + { + "kind": "number", + "nativeSrc": "12125:4:46", + "nodeType": "YulLiteral", + "src": "12125:4:46", + "type": "", + "value": "0x03" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "12119:2:46", + "nodeType": "YulIdentifier", + "src": "12119:2:46" + }, + "nativeSrc": "12119:11:46", + "nodeType": "YulFunctionCall", + "src": "12119:11:46" + }, + "nativeSrc": "12111:171:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "12131:18:46", + "nodeType": "YulBlock", + "src": "12131:18:46", + "statements": [ + { + "nativeSrc": "12133:14:46", + "nodeType": "YulAssignment", + "src": "12133:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "12142:1:46", + "nodeType": "YulIdentifier", + "src": "12142:1:46" + }, + { + "kind": "number", + "nativeSrc": "12145:1:46", + "nodeType": "YulLiteral", + "src": "12145:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12138:3:46", + "nodeType": "YulIdentifier", + "src": "12138:3:46" + }, + "nativeSrc": "12138:9:46", + "nodeType": "YulFunctionCall", + "src": "12138:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "12133:1:46", + "nodeType": "YulIdentifier", + "src": "12133:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "12115:3:46", + "nodeType": "YulBlock", + "src": "12115:3:46", + "statements": [] + }, + "src": "12111:171:46" + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$3_memory_ptr__to_t_array$_t_uint256_$3_memory_ptr__fromStack_library_reversed", + "nativeSrc": "11809:479:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11933:9:46", + "nodeType": "YulTypedName", + "src": "11933:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "11944:6:46", + "nodeType": "YulTypedName", + "src": "11944:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11955:4:46", + "nodeType": "YulTypedName", + "src": "11955:4:46", + "type": "" + } + ], + "src": "11809:479:46" + }, + { + "body": { + "nativeSrc": "12374:103:46", + "nodeType": "YulBlock", + "src": "12374:103:46", + "statements": [ + { + "body": { + "nativeSrc": "12420:16:46", + "nodeType": "YulBlock", + "src": "12420:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12429:1:46", + "nodeType": "YulLiteral", + "src": "12429:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12432:1:46", + "nodeType": "YulLiteral", + "src": "12432:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12422:6:46", + "nodeType": "YulIdentifier", + "src": "12422:6:46" + }, + "nativeSrc": "12422:12:46", + "nodeType": "YulFunctionCall", + "src": "12422:12:46" + }, + "nativeSrc": "12422:12:46", + "nodeType": "YulExpressionStatement", + "src": "12422:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "12395:7:46", + "nodeType": "YulIdentifier", + "src": "12395:7:46" + }, + { + "name": "headStart", + "nativeSrc": "12404:9:46", + "nodeType": "YulIdentifier", + "src": "12404:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12391:3:46", + "nodeType": "YulIdentifier", + "src": "12391:3:46" + }, + "nativeSrc": "12391:23:46", + "nodeType": "YulFunctionCall", + "src": "12391:23:46" + }, + { + "kind": "number", + "nativeSrc": "12416:2:46", + "nodeType": "YulLiteral", + "src": "12416:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "12387:3:46", + "nodeType": "YulIdentifier", + "src": "12387:3:46" + }, + "nativeSrc": "12387:32:46", + "nodeType": "YulFunctionCall", + "src": "12387:32:46" + }, + "nativeSrc": "12384:52:46", + "nodeType": "YulIf", + "src": "12384:52:46" + }, + { + "nativeSrc": "12445:26:46", + "nodeType": "YulAssignment", + "src": "12445:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12461:9:46", + "nodeType": "YulIdentifier", + "src": "12461:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "12455:5:46", + "nodeType": "YulIdentifier", + "src": "12455:5:46" + }, + "nativeSrc": "12455:16:46", + "nodeType": "YulFunctionCall", + "src": "12455:16:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "12445:6:46", + "nodeType": "YulIdentifier", + "src": "12445:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nativeSrc": "12293:184:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12340:9:46", + "nodeType": "YulTypedName", + "src": "12340:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "12351:7:46", + "nodeType": "YulTypedName", + "src": "12351:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "12363:6:46", + "nodeType": "YulTypedName", + "src": "12363:6:46", + "type": "" + } + ], + "src": "12293:184:46" + }, + { + "body": { + "nativeSrc": "12637:324:46", + "nodeType": "YulBlock", + "src": "12637:324:46", + "statements": [ + { + "nativeSrc": "12647:26:46", + "nodeType": "YulAssignment", + "src": "12647:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12659:9:46", + "nodeType": "YulIdentifier", + "src": "12659:9:46" + }, + { + "kind": "number", + "nativeSrc": "12670:2:46", + "nodeType": "YulLiteral", + "src": "12670:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12655:3:46", + "nodeType": "YulIdentifier", + "src": "12655:3:46" + }, + "nativeSrc": "12655:18:46", + "nodeType": "YulFunctionCall", + "src": "12655:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "12647:4:46", + "nodeType": "YulIdentifier", + "src": "12647:4:46" + } + ] + }, + { + "nativeSrc": "12682:20:46", + "nodeType": "YulVariableDeclaration", + "src": "12682:20:46", + "value": { + "name": "headStart", + "nativeSrc": "12693:9:46", + "nodeType": "YulIdentifier", + "src": "12693:9:46" + }, + "variables": [ + { + "name": "pos", + "nativeSrc": "12686:3:46", + "nodeType": "YulTypedName", + "src": "12686:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "12711:16:46", + "nodeType": "YulAssignment", + "src": "12711:16:46", + "value": { + "name": "headStart", + "nativeSrc": "12718:9:46", + "nodeType": "YulIdentifier", + "src": "12718:9:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "12711:3:46", + "nodeType": "YulIdentifier", + "src": "12711:3:46" + } + ] + }, + { + "nativeSrc": "12736:20:46", + "nodeType": "YulVariableDeclaration", + "src": "12736:20:46", + "value": { + "name": "value0", + "nativeSrc": "12750:6:46", + "nodeType": "YulIdentifier", + "src": "12750:6:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "12740:6:46", + "nodeType": "YulTypedName", + "src": "12740:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "12765:10:46", + "nodeType": "YulVariableDeclaration", + "src": "12765:10:46", + "value": { + "kind": "number", + "nativeSrc": "12774:1:46", + "nodeType": "YulLiteral", + "src": "12774:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "12769:1:46", + "nodeType": "YulTypedName", + "src": "12769:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12831:124:46", + "nodeType": "YulBlock", + "src": "12831:124:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12852:3:46", + "nodeType": "YulIdentifier", + "src": "12852:3:46" + }, + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "12863:6:46", + "nodeType": "YulIdentifier", + "src": "12863:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "12857:5:46", + "nodeType": "YulIdentifier", + "src": "12857:5:46" + }, + "nativeSrc": "12857:13:46", + "nodeType": "YulFunctionCall", + "src": "12857:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12845:6:46", + "nodeType": "YulIdentifier", + "src": "12845:6:46" + }, + "nativeSrc": "12845:26:46", + "nodeType": "YulFunctionCall", + "src": "12845:26:46" + }, + "nativeSrc": "12845:26:46", + "nodeType": "YulExpressionStatement", + "src": "12845:26:46" + }, + { + "nativeSrc": "12884:21:46", + "nodeType": "YulAssignment", + "src": "12884:21:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "12895:3:46", + "nodeType": "YulIdentifier", + "src": "12895:3:46" + }, + { + "kind": "number", + "nativeSrc": "12900:4:46", + "nodeType": "YulLiteral", + "src": "12900:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12891:3:46", + "nodeType": "YulIdentifier", + "src": "12891:3:46" + }, + "nativeSrc": "12891:14:46", + "nodeType": "YulFunctionCall", + "src": "12891:14:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "12884:3:46", + "nodeType": "YulIdentifier", + "src": "12884:3:46" + } + ] + }, + { + "nativeSrc": "12918:27:46", + "nodeType": "YulAssignment", + "src": "12918:27:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "12932:6:46", + "nodeType": "YulIdentifier", + "src": "12932:6:46" + }, + { + "kind": "number", + "nativeSrc": "12940:4:46", + "nodeType": "YulLiteral", + "src": "12940:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12928:3:46", + "nodeType": "YulIdentifier", + "src": "12928:3:46" + }, + "nativeSrc": "12928:17:46", + "nodeType": "YulFunctionCall", + "src": "12928:17:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "12918:6:46", + "nodeType": "YulIdentifier", + "src": "12918:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "12795:1:46", + "nodeType": "YulIdentifier", + "src": "12795:1:46" + }, + { + "kind": "number", + "nativeSrc": "12798:4:46", + "nodeType": "YulLiteral", + "src": "12798:4:46", + "type": "", + "value": "0x02" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "12792:2:46", + "nodeType": "YulIdentifier", + "src": "12792:2:46" + }, + "nativeSrc": "12792:11:46", + "nodeType": "YulFunctionCall", + "src": "12792:11:46" + }, + "nativeSrc": "12784:171:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "12804:18:46", + "nodeType": "YulBlock", + "src": "12804:18:46", + "statements": [ + { + "nativeSrc": "12806:14:46", + "nodeType": "YulAssignment", + "src": "12806:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "12815:1:46", + "nodeType": "YulIdentifier", + "src": "12815:1:46" + }, + { + "kind": "number", + "nativeSrc": "12818:1:46", + "nodeType": "YulLiteral", + "src": "12818:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12811:3:46", + "nodeType": "YulIdentifier", + "src": "12811:3:46" + }, + "nativeSrc": "12811:9:46", + "nodeType": "YulFunctionCall", + "src": "12811:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "12806:1:46", + "nodeType": "YulIdentifier", + "src": "12806:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "12788:3:46", + "nodeType": "YulBlock", + "src": "12788:3:46", + "statements": [] + }, + "src": "12784:171:46" + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$2_memory_ptr__to_t_array$_t_uint256_$2_memory_ptr__fromStack_library_reversed", + "nativeSrc": "12482:479:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12606:9:46", + "nodeType": "YulTypedName", + "src": "12606:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "12617:6:46", + "nodeType": "YulTypedName", + "src": "12617:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12628:4:46", + "nodeType": "YulTypedName", + "src": "12628:4:46", + "type": "" + } + ], + "src": "12482:479:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_tuple_t_struct$_Data_$2960_storage_ptrt_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_struct$_Data_$2960_storage_ptrt_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n let value_2 := 0\n value_2 := calldataload(add(headStart, 64))\n value2 := value_2\n }\n function abi_encode_bool(value, pos)\n {\n mstore(pos, iszero(iszero(value)))\n }\n function abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let tail_1 := add(headStart, 288)\n mstore(add(headStart, 32), mload(value0))\n mstore(add(headStart, 64), iszero(iszero(mload(add(value0, 32)))))\n let memberValue0 := mload(add(value0, 64))\n mstore(add(headStart, 96), 0x0100)\n let pos := tail_1\n let length := mload(memberValue0)\n mstore(tail_1, length)\n pos := add(headStart, 320)\n let srcPtr := add(memberValue0, 32)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, 32)\n srcPtr := add(srcPtr, 32)\n }\n mstore(add(headStart, 128), mload(add(value0, 96)))\n mstore(add(headStart, 160), mload(add(value0, 128)))\n let memberValue0_1 := mload(add(value0, 160))\n abi_encode_bool(memberValue0_1, add(headStart, 192))\n mstore(add(headStart, 224), mload(add(value0, 192)))\n mstore(add(headStart, 0x0100), mload(add(value0, 224)))\n tail := pos\n }\n function abi_encode_struct_RootEntryInfo(value, pos)\n {\n mstore(pos, mload(value))\n mstore(add(pos, 0x20), mload(add(value, 0x20)))\n mstore(add(pos, 0x40), mload(add(value, 0x40)))\n mstore(add(pos, 0x60), mload(add(value, 0x60)))\n mstore(add(pos, 0x80), mload(add(value, 0x80)))\n mstore(add(pos, 0xa0), mload(add(value, 0xa0)))\n }\n function abi_encode_tuple_t_struct$_RootEntryInfo_$3001_memory_ptr__to_t_struct$_RootEntryInfo_$3001_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 192)\n abi_encode_struct_RootEntryInfo(value0, headStart)\n }\n function abi_encode_tuple_t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr__to_t_array$_t_struct$_RootEntryInfo_$3001_memory_ptr_$dyn_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n let tail_1 := add(headStart, 32)\n mstore(headStart, 32)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, 32)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n abi_encode_struct_RootEntryInfo(mload(srcPtr), pos)\n pos := add(pos, 0xc0)\n srcPtr := add(srcPtr, 32)\n }\n tail := pos\n }\n function abi_decode_tuple_t_struct$_Data_$2960_storage_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n }\n function abi_decode_tuple_t_struct$_Data_$2960_storage_ptrt_uint256t_uint256t_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n let value_2 := 0\n value_2 := calldataload(add(headStart, 64))\n value2 := value_2\n let value_3 := 0\n value_3 := calldataload(add(headStart, 96))\n value3 := value_3\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_struct$_Node_$3014_memory_ptr__to_t_struct$_Node_$3014_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 160)\n let _1 := mload(value0)\n if iszero(lt(_1, 3))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(headStart, _1)\n mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n mstore(add(headStart, 0x60), mload(add(value0, 0x60)))\n mstore(add(headStart, 0x80), mload(add(value0, 0x80)))\n }\n function abi_encode_tuple_t_stringliteral_f927d9ad01d6e6b5172536d51bb739dcbf594dbe3b2e483a8bff6b42ca949e30__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"Max depth must be greater than z\")\n mstore(add(headStart, 96), \"ero\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_36f00609f1952b6d8e215a941a30218dcc45c2a338282e0aa639a69b27436235__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), \"Max depth can only be increased\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_87c54ee2d38ee359efdefcd1894af2fd7fad037b45e2358dc82a62d9b12d91e3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"Max depth is greater than hard c\")\n mstore(add(headStart, 96), \"ap\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_1bf3850e5a3c6a77d2f1f122095086090857032f278d39145c3b095e1a8b6db1__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 28)\n mstore(add(headStart, 64), \"No future timestamps allowed\")\n tail := add(headStart, 96)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_ad7ecf2adb23a091a9c01bdae7fb1b18a3a12c15e41cfafded464e944aa5faec__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Root does not exist\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_43b57e13a6e36a7597dc186152e9451a8e2e96966b0b137fb7362d47da52fb0e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 17)\n mstore(add(headStart, 64), \"Invalid node type\")\n tail := add(headStart, 96)\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 abi_encode_tuple_t_stringliteral_ac1ebaa0462e13da16f18cbe900dae12201bb024c2854db23aa2ec21507908be__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), \"Smt is not initialized\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_34bc8bca45d4a31a6e4233f39a7def873d05862a78f6ec35ac6d77da37f9aea8__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"Smt is already initialized\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_c366ba1cae47b1c1a5d6ce887a8bd1a8d2f3658dc55cd03d6e6687e140586e6f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"No future blocks allowed\")\n tail := add(headStart, 96)\n }\n function panic_error_0x01()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x01)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_7d4bcbad4eb3a77bbd93aeffb447dd4a40bb90d7f9bcb1e7b24196129dc65c2a__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), \"Length should be greater than 0\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_7c161ae563d93d0a051be3b5891d7ee230c24127d59714e18bb10048ca6f9e84__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), \"Length limit exceeded\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_e68aa2945d9d826fe10860e3b76417578773840626355af3554acc1da6ab249f__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"Start index out of bounds\")\n tail := add(headStart, 96)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_stringliteral_bfd13f65fb38f208d39dd4db262f4a6b7e7be3bcdc9bf6b007847ef6e9e4f479__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 17)\n mstore(add(headStart, 64), \"Max depth reached\")\n tail := add(headStart, 96)\n }\n function checked_div_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 := div(x, y)\n }\n function abi_encode_tuple_t_stringliteral_6fabd1de3d4166fb77523c227388d19569e575c85e2f9f3fcf56540735e40935__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Invalid search type\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_array$_t_uint256_$3_memory_ptr__to_t_array$_t_uint256_$3_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 96)\n let pos := headStart\n pos := headStart\n let srcPtr := value0\n let i := 0\n for { } lt(i, 0x03) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, 0x20)\n srcPtr := add(srcPtr, 0x20)\n }\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function abi_encode_tuple_t_array$_t_uint256_$2_memory_ptr__to_t_array$_t_uint256_$2_memory_ptr__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 64)\n let pos := headStart\n pos := headStart\n let srcPtr := value0\n let i := 0\n for { } lt(i, 0x02) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, 0x20)\n srcPtr := add(srcPtr, 0x20)\n }\n }\n}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": { + "@iden3/contracts/lib/Poseidon.sol": { + "PoseidonUnit2L": [ + { + "length": 20, + "start": 6303 + } + ], + "PoseidonUnit3L": [ + { + "length": 20, + "start": 6125 + } + ] + } + }, + "object": "73000000000000000000000000000000000000000030146080604052600436106101405760003560e01c806379f97125116100c2578063a751be2411610086578063a751be24146102d5578063c1d29f01146102de578063dc9a7c8c146102fe578063dea7633a14610311578063e170cf6e14610324578063ec1451081461034457600080fd5b806379f9712514610244578063893f99f31461025757806391761b751461026c57806392f5b06c1461027f5780639e43b813146102b557600080fd5b806340a73d981161010957806340a73d98146101ed5780635db40cda146101f657806362e8f21514610209578063792a470f1461021e57806379c17a961461023157600080fd5b806278f030146101455780630912610a1461016b578063138271361461018d57806317c850f0146101ad57806321d60953146101cd575b600080fd5b6101586101533660046119b6565b61035c565b6040519081526020015b60405180910390f35b81801561017757600080fd5b5061018b6101863660046119b6565b610374565b005b6101a061019b3660046119d8565b61048d565b6040516101629190611a04565b6101c06101bb3660046119b6565b6104bb565b6040516101629190611ab5565b6101e06101db3660046119d8565b610526565b6040516101629190611af8565b6101586103e881565b6101a06102043660046119b6565b6105f2565b610158610217366004611b7b565b6001015490565b6101a061022c3660046119d8565b610608565b6101a061023f3660046119d8565b61061c565b610158610252366004611b7b565b610899565b610158610265366004611b7b565b6003015490565b6101e061027a366004611b94565b61092b565b6102a561028d3660046119b6565b60009081526002919091016020526040902054151590565b6040519015158152602001610162565b8180156102c157600080fd5b5061018b6102d03660046119b6565b610a56565b61015861010081565b8180156102ea57600080fd5b5061018b6102f93660046119d8565b610ad4565b6101c061030c3660046119b6565b610b85565b6101c061031f3660046119b6565b610be9565b6103376103323660046119b6565b610c77565b6040516101629190611bdc565b6102a5610352366004611b7b565b6004015460ff1690565b60008181526002830160205260409020545b92915050565b600081116103d55760405162461bcd60e51b815260206004820152602360248201527f4d6178206465707468206d7573742062652067726561746572207468616e207a60448201526265726f60e81b60648201526084015b60405180910390fd5b816003015481116104285760405162461bcd60e51b815260206004820152601f60248201527f4d61782064657074682063616e206f6e6c7920626520696e637265617365640060448201526064016103cc565b6101008111156104855760405162461bcd60e51b815260206004820152602260248201527f4d61782064657074682069732067726561746572207468616e20686172642063604482015261061760f41b60648201526084016103cc565b600390910155565b610495611907565b60006104a185846104bb565b90506104b28585836000015161061c565b95945050505050565b6104c3611950565b428211156105135760405162461bcd60e51b815260206004820152601c60248201527f4e6f206675747572652074696d657374616d707320616c6c6f7765640000000060448201526064016103cc565b61051f83836000610cf4565b9392505050565b6060600080610540866001018054905086866103e8610d2f565b909250905060006105518383611c49565b67ffffffffffffffff81111561056957610569611c5c565b6040519080825280602002602001820160405280156105a257816020015b61058f611950565b8152602001906001900390816105875790505b509050825b828110156105e7576105b98882610e3d565b826105c48684611c49565b815181106105d4576105d4611c72565b60209081029190910101526001016105a7565b509695505050505050565b6105fa611907565b61051f838361023f86610899565b610610611907565b60006104a18584610b85565b610624611907565b6000828152600285016020526040902054849083906106555760405162461bcd60e51b81526004016103cc90611c88565b6000866003015467ffffffffffffffff81111561067457610674611c5c565b60405190808252806020026020018201604052801561069d578160200160208202803683370190505b50905060005b87600301548110156106d65760008282815181106106c3576106c3611c72565b60209081029190910101526001016106a3565b506040805161010081018252868152600060208201819052918101839052606081018890526080810182905260a0810182905260c0810182905260e081019190915285610721611986565b60005b8a60030154811161088a576107398b84610c77565b915060008251600281111561075057610750611bc6565b1461088a5760018251600281111561076a5761076a611bc6565b036107bb57836060015182606001510361079457600160208501526080808301519085015261088a565b600160a0850152606082015160c08501526080808301805160e0870152519085015261088a565b6002825160028111156107d0576107d0611bc6565b0361083c57808460600151901c60011660010361081a578160400151925081602001518460400151828151811061080957610809611c72565b602002602001018181525050610878565b8160200151925081604001518460400151828151811061080957610809611c72565b60405162461bcd60e51b8152602060048201526011602482015270496e76616c6964206e6f6465207479706560781b60448201526064016103cc565b8061088281611cb5565b915050610724565b50919998505050505050505050565b6000816108aa816004015460ff1690565b6108ef5760405162461bcd60e51b815260206004820152601660248201527514db5d081a5cc81b9bdd081a5b9a5d1a585b1a5e995960521b60448201526064016103cc565b60018084018054909161090191611c49565b8154811061091157610911611c72565b906000526020600020906003020160000154915050919050565b60008381526002850160205260409020546060908590859061095f5760405162461bcd60e51b81526004016103cc90611c88565b60008681526002880160205260408120805490919081906109849089896103e8610d2f565b909250905060006109958383611c49565b67ffffffffffffffff8111156109ad576109ad611c5c565b6040519080825280602002602001820160405280156109e657816020015b6109d3611950565b8152602001906001900390816109cb5790505b509050825b82811015610a4757610a198c868381548110610a0957610a09611c72565b9060005260206000200154610e3d565b82610a248684611c49565b81518110610a3457610a34611c72565b60209081029190910101526001016109eb565b509a9950505050505050505050565b600482015460ff1615610aab5760405162461bcd60e51b815260206004820152601a60248201527f536d7420697320616c726561647920696e697469616c697a656400000000000060448201526064016103cc565b610ab58282610374565b610ac3826000806000610f80565b50600401805460ff19166001179055565b82610ae3816004015460ff1690565b610b285760405162461bcd60e51b815260206004820152601660248201527514db5d081a5cc81b9bdd081a5b9a5d1a585b1a5e995960521b60448201526064016103cc565b6040805160a08101825260018152600060208201819052918101829052606081018590526080810184905290610b5d86610899565b90506000610b6e8784846000611000565b9050610b7c87824243610f80565b50505050505050565b610b8d611950565b43821115610bdd5760405162461bcd60e51b815260206004820152601860248201527f4e6f2066757475726520626c6f636b7320616c6c6f776564000000000000000060448201526064016103cc565b61051f83836001610cf4565b610bf1611950565b600082815260028401602052604090205483908390610c225760405162461bcd60e51b81526004016103cc90611c88565b6000848152600286016020526040812080549091908290610c4590600190611c49565b81548110610c5557610c55611c72565b90600052602060002001549050610c6c8782610e3d565b979650505050505050565b610c7f611986565b60008281526020849052604090819020815160a081019092528054829060ff166002811115610cb057610cb0611bc6565b6002811115610cc157610cc1611bc6565b81526001820154602082015260028201546040820152600382015460608201526004909101546080909101529392505050565b610cfc611950565b600080610d0a86868661121a565b9150915080610d1b57610d1b611cce565b610d258683610e3d565b9695505050505050565b60008060008411610d825760405162461bcd60e51b815260206004820152601f60248201527f4c656e6774682073686f756c642062652067726561746572207468616e20300060448201526064016103cc565b82841115610dca5760405162461bcd60e51b815260206004820152601560248201527413195b99dd1a081b1a5b5a5d08195e18d959591959605a1b60448201526064016103cc565b858510610e195760405162461bcd60e51b815260206004820152601960248201527f537461727420696e646578206f7574206f6620626f756e64730000000000000060448201526064016103cc565b6000610e258587611ce4565b905086811115610e325750855b949694955050505050565b610e45611950565b600183810154600091610e5791611c49565b831490506000846001018481548110610e7257610e72611c72565b906000526020600020906003020190506040518060c001604052808260000154815260200183610ed45786600101866001610ead9190611ce4565b81548110610ebd57610ebd611c72565b906000526020600020906003020160000154610ed7565b60005b81526020018260010154815260200183610f235786600101866001610efc9190611ce4565b81548110610f0c57610f0c611c72565b906000526020600020906003020160010154610f26565b60005b81526020018260020154815260200183610f725786600101866001610f4b9190611ce4565b81548110610f5b57610f5b611c72565b906000526020600020906003020160020154610f75565b60005b905295945050505050565b6040805160608101825284815260208082018581528284018581526001808a018054808301825560008281528681209751600390920290970190815593518483015591516002938401558885529189019092529290912090549091610fe491611c49565b8154600181018355600092835260209092209091015550505050565b6000846003015482111561104a5760405162461bcd60e51b815260206004820152601160248201527013585e0819195c1d1a081c995858da1959607a1b60448201526064016103cc565b600083815260208690526040808220815160a081019092528054829060ff16600281111561107a5761107a611bc6565b600281111561108b5761108b611bc6565b8152600182015460208201526002820154604082015260038201546060820152600490910154608090910152905060008080835160028111156110d0576110d0611bc6565b036110e6576110df88886113f1565b905061120d565b6001835160028111156110fb576110fb611bc6565b0361112a5786606001518360600151146111205761111b8888858861156a565b6110df565b6110df88886113f1565b60028351600281111561113f5761113f611bc6565b0361120d5761114c611986565b858860600151901c6001166001036111b35761117a898986604001518960016111759190611ce4565b611000565b6040805160a0810190915290935080600281526020018560200151815260200184815260200160008152602001600081525090506111ff565b6111ca898986602001518960016111759190611ce4565b6040805160a0810190915290935080600281526020018481526020018560400151815260200160008152602001600081525090505b61120989826113f1565b9150505b925050505b949350505050565b600183015460009081908103611235575060009050806113e9565b600185810154600091829161124a9190611c49565b905060005b8183116113e05760026112628484611ce4565b61126c9190611cf7565b905060006112c589600101838154811061128857611288611c72565b906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820154815250508861171a565b905087810361138a575b6001898101546112df9190611c49565b82101561137b5760006113498a6001018460016112fc9190611ce4565b8154811061130c5761130c611c72565b906000526020600020906003020160405180606001604052908160008201548152602001600182015481526020016002820154815250508961171a565b9050888103611364578261135c81611cb5565b935050611375565b8260019650965050505050506113e9565b506112cf565b509350600192506113e9915050565b808811156113a45761139d826001611ce4565b93506113da565b80881080156113b35750600082115b156113ca576113c3600183611c49565b92506113da565b60008095509550505050506113e9565b5061124f565b50925060019150505b935093915050565b6000806113fd836117a2565b90506000808281526020869052604090205460ff16600281111561142357611423611bc6565b14611504578251600281111561143b5761143b611bc6565b60008281526020869052604090205460ff16600281111561145e5761145e611bc6565b1461146b5761146b611cce565b6020808401516000838152918690526040909120600101541461149057611490611cce565b604080840151600083815260208790529190912060020154146114b5576114b5611cce565b6060830151600082815260208690526040902060030154146114d9576114d9611cce565b6080830151600082815260208690526040902060040154146114fd576114fd611cce565b905061036e565b60008181526020859052604090208351815485929190829060ff1916600183600281111561153457611534611bc6565b02179055506020820151600182015560408201516002820155606082015160038201556080909101516004909101559392505050565b6000846003015482106115b35760405162461bcd60e51b815260206004820152601160248201527013585e0819195c1d1a081c995858da1959607a1b60448201526064016103cc565b6115bb611986565b60608086015190850151600191851c821682149190851c8116148082036116735760006115f48989896115ef8a6001611ce4565b61156a565b9050821561162f576040805160a08101909152806002815260200160008152602001828152602001600081526020016000815250935061165e565b6040805160a0810190915280600281526020018281526020016000815260200160008152602001600081525093505b61166889856113f1565b945050505050611212565b81156116bb576040805160a081019091528060028152602001611695886117a2565b81526020016116a3896117a2565b815260200160008152602001600081525092506116f9565b6040805160a0810190915280600281526020016116d7896117a2565b81526020016116e5886117a2565b815260200160008152602001600081525092505b61170388886113f1565b5061170e88846113f1565b98975050505050505050565b6000600182600181111561173057611730611bc6565b036117405750604082015161036e565b600082600181111561175457611754611bc6565b036117645750602082015161036e565b60405162461bcd60e51b8152602060048201526013602482015272496e76616c696420736561726368207479706560681b60448201526064016103cc565b6000806001835160028111156117ba576117ba611bc6565b0361185e57604080516060808201835285015181526080850151602082015260018183015290516304b98e1d60e31b815273__$03320550cd1b629da90608251571b2532e$__906325cc70e890611815908490600401611d19565b602060405180830381865af4158015611832573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118569190611d4a565b91505061036e565b60028351600281111561187357611873611bc6565b0361036e576040805180820182526020808601518252858301519082015290516314d2f97b60e11b815273__$ebe82a1924a894141c89e6680d3cbc7e88$__916329a5f2f6916118c69190600401611d63565b602060405180830381865af41580156118e3573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061051f9190611d4a565b6040518061010001604052806000815260200160001515815260200160608152602001600081526020016000815260200160001515815260200160008152602001600081525090565b6040518060c001604052806000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6040805160a081019091528060008152602001600081526020016000815260200160008152602001600081525090565b600080604083850312156119c957600080fd5b50508035926020909101359150565b6000806000606084860312156119ed57600080fd5b505081359360208301359350604090920135919050565b6020815260006101208201835160208401526020840151151560408401526040840151610100606085015281815180845261014086019150602083019350600092505b80831015611a6a5783518252602082019150602084019350600183019250611a47565b5060608601516080860152608086015160a086015260a08601519250611a9460c086018415159052565b60c086015160e086015260e086015161010086015280935050505092915050565b60c0810161036e8284805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a08301525050565b602080825282518282018190526000918401906040840190835b81811015611b7057611b5a838551805182526020810151602083015260408101516040830152606081015160608301526080810151608083015260a081015160a08301525050565b6020939093019260c09290920191600101611b12565b509095945050505050565b600060208284031215611b8d57600080fd5b5035919050565b60008060008060808587031215611baa57600080fd5b5050823594602084013594506040840135936060013592509050565b634e487b7160e01b600052602160045260246000fd5b815160a082019060038110611c0157634e487b7160e01b600052602160045260246000fd5b808352506020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561036e5761036e611c33565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b602080825260139082015272149bdbdd08191bd95cc81b9bdd08195e1a5cdd606a1b604082015260600190565b600060018201611cc757611cc7611c33565b5060010190565b634e487b7160e01b600052600160045260246000fd5b8082018082111561036e5761036e611c33565b600082611d1457634e487b7160e01b600052601260045260246000fd5b500490565b60608101818360005b6003811015611d41578151835260209283019290910190600101611d22565b50505092915050565b600060208284031215611d5c57600080fd5b5051919050565b60408101818360005b6002811015611d41578151835260209283019290910190600101611d6c56fea264697066735822122071bcc64c8a2a1640d7f892fc5f15aad8b6c4bd00ad037059279187506c93e5d064736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x140 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x79F97125 GT PUSH2 0xC2 JUMPI DUP1 PUSH4 0xA751BE24 GT PUSH2 0x86 JUMPI DUP1 PUSH4 0xA751BE24 EQ PUSH2 0x2D5 JUMPI DUP1 PUSH4 0xC1D29F01 EQ PUSH2 0x2DE JUMPI DUP1 PUSH4 0xDC9A7C8C EQ PUSH2 0x2FE JUMPI DUP1 PUSH4 0xDEA7633A EQ PUSH2 0x311 JUMPI DUP1 PUSH4 0xE170CF6E EQ PUSH2 0x324 JUMPI DUP1 PUSH4 0xEC145108 EQ PUSH2 0x344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x79F97125 EQ PUSH2 0x244 JUMPI DUP1 PUSH4 0x893F99F3 EQ PUSH2 0x257 JUMPI DUP1 PUSH4 0x91761B75 EQ PUSH2 0x26C JUMPI DUP1 PUSH4 0x92F5B06C EQ PUSH2 0x27F JUMPI DUP1 PUSH4 0x9E43B813 EQ PUSH2 0x2B5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x40A73D98 GT PUSH2 0x109 JUMPI DUP1 PUSH4 0x40A73D98 EQ PUSH2 0x1ED JUMPI DUP1 PUSH4 0x5DB40CDA EQ PUSH2 0x1F6 JUMPI DUP1 PUSH4 0x62E8F215 EQ PUSH2 0x209 JUMPI DUP1 PUSH4 0x792A470F EQ PUSH2 0x21E JUMPI DUP1 PUSH4 0x79C17A96 EQ PUSH2 0x231 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x78F030 EQ PUSH2 0x145 JUMPI DUP1 PUSH4 0x912610A EQ PUSH2 0x16B JUMPI DUP1 PUSH4 0x13827136 EQ PUSH2 0x18D JUMPI DUP1 PUSH4 0x17C850F0 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x21D60953 EQ PUSH2 0x1CD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x158 PUSH2 0x153 CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0x35C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x177 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x186 CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0x374 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x1A0 PUSH2 0x19B CALLDATASIZE PUSH1 0x4 PUSH2 0x19D8 JUMP JUMPDEST PUSH2 0x48D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x1A04 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x1BB CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0x4BB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x1AB5 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x1DB CALLDATASIZE PUSH1 0x4 PUSH2 0x19D8 JUMP JUMPDEST PUSH2 0x526 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x1AF8 JUMP JUMPDEST PUSH2 0x158 PUSH2 0x3E8 DUP2 JUMP JUMPDEST PUSH2 0x1A0 PUSH2 0x204 CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0x5F2 JUMP JUMPDEST PUSH2 0x158 PUSH2 0x217 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B7B JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1A0 PUSH2 0x22C CALLDATASIZE PUSH1 0x4 PUSH2 0x19D8 JUMP JUMPDEST PUSH2 0x608 JUMP JUMPDEST PUSH2 0x1A0 PUSH2 0x23F CALLDATASIZE PUSH1 0x4 PUSH2 0x19D8 JUMP JUMPDEST PUSH2 0x61C JUMP JUMPDEST PUSH2 0x158 PUSH2 0x252 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B7B JUMP JUMPDEST PUSH2 0x899 JUMP JUMPDEST PUSH2 0x158 PUSH2 0x265 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B7B JUMP JUMPDEST PUSH1 0x3 ADD SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x1E0 PUSH2 0x27A CALLDATASIZE PUSH1 0x4 PUSH2 0x1B94 JUMP JUMPDEST PUSH2 0x92B JUMP JUMPDEST PUSH2 0x2A5 PUSH2 0x28D CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 SWAP2 SWAP1 SWAP2 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x162 JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x2C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x2D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0xA56 JUMP JUMPDEST PUSH2 0x158 PUSH2 0x100 DUP2 JUMP JUMPDEST DUP2 DUP1 ISZERO PUSH2 0x2EA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x18B PUSH2 0x2F9 CALLDATASIZE PUSH1 0x4 PUSH2 0x19D8 JUMP JUMPDEST PUSH2 0xAD4 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x30C CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x1C0 PUSH2 0x31F CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0xBE9 JUMP JUMPDEST PUSH2 0x337 PUSH2 0x332 CALLDATASIZE PUSH1 0x4 PUSH2 0x19B6 JUMP JUMPDEST PUSH2 0xC77 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x162 SWAP2 SWAP1 PUSH2 0x1BDC JUMP JUMPDEST PUSH2 0x2A5 PUSH2 0x352 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B7B JUMP JUMPDEST PUSH1 0x4 ADD SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x2 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 GT PUSH2 0x3D5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x23 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D6178206465707468206D7573742062652067726561746572207468616E207A PUSH1 0x44 DUP3 ADD MSTORE PUSH3 0x65726F PUSH1 0xE8 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH1 0x3 ADD SLOAD DUP2 GT PUSH2 0x428 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 0x4D61782064657074682063616E206F6E6C7920626520696E6372656173656400 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH2 0x100 DUP2 GT ISZERO PUSH2 0x485 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x22 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4D61782064657074682069732067726561746572207468616E20686172642063 PUSH1 0x44 DUP3 ADD MSTORE PUSH2 0x617 PUSH1 0xF4 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x3 SWAP1 SWAP2 ADD SSTORE JUMP JUMPDEST PUSH2 0x495 PUSH2 0x1907 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A1 DUP6 DUP5 PUSH2 0x4BB JUMP JUMPDEST SWAP1 POP PUSH2 0x4B2 DUP6 DUP6 DUP4 PUSH1 0x0 ADD MLOAD PUSH2 0x61C JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x4C3 PUSH2 0x1950 JUMP JUMPDEST TIMESTAMP DUP3 GT ISZERO PUSH2 0x513 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1C PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F206675747572652074696D657374616D707320616C6C6F77656400000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH2 0x51F DUP4 DUP4 PUSH1 0x0 PUSH2 0xCF4 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 PUSH2 0x540 DUP7 PUSH1 0x1 ADD DUP1 SLOAD SWAP1 POP DUP7 DUP7 PUSH2 0x3E8 PUSH2 0xD2F JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 PUSH2 0x551 DUP4 DUP4 PUSH2 0x1C49 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x569 JUMPI PUSH2 0x569 PUSH2 0x1C5C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x5A2 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x58F PUSH2 0x1950 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x587 JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x5E7 JUMPI PUSH2 0x5B9 DUP9 DUP3 PUSH2 0xE3D JUMP JUMPDEST DUP3 PUSH2 0x5C4 DUP7 DUP5 PUSH2 0x1C49 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0x5D4 JUMPI PUSH2 0x5D4 PUSH2 0x1C72 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x5A7 JUMP JUMPDEST POP SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5FA PUSH2 0x1907 JUMP JUMPDEST PUSH2 0x51F DUP4 DUP4 PUSH2 0x23F DUP7 PUSH2 0x899 JUMP JUMPDEST PUSH2 0x610 PUSH2 0x1907 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4A1 DUP6 DUP5 PUSH2 0xB85 JUMP JUMPDEST PUSH2 0x624 PUSH2 0x1907 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 DUP6 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP5 SWAP1 DUP4 SWAP1 PUSH2 0x655 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CC SWAP1 PUSH2 0x1C88 JUMP JUMPDEST PUSH1 0x0 DUP7 PUSH1 0x3 ADD SLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x674 JUMPI PUSH2 0x674 PUSH2 0x1C5C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x69D JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP PUSH1 0x0 JUMPDEST DUP8 PUSH1 0x3 ADD SLOAD DUP2 LT ISZERO PUSH2 0x6D6 JUMPI PUSH1 0x0 DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x6C3 JUMPI PUSH2 0x6C3 PUSH2 0x1C72 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x6A3 JUMP JUMPDEST POP PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP9 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xA0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xC0 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0xE0 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP6 PUSH2 0x721 PUSH2 0x1986 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP11 PUSH1 0x3 ADD SLOAD DUP2 GT PUSH2 0x88A JUMPI PUSH2 0x739 DUP12 DUP5 PUSH2 0xC77 JUMP JUMPDEST SWAP2 POP PUSH1 0x0 DUP3 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x750 JUMPI PUSH2 0x750 PUSH2 0x1BC6 JUMP JUMPDEST EQ PUSH2 0x88A JUMPI PUSH1 0x1 DUP3 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x76A JUMPI PUSH2 0x76A PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x7BB JUMPI DUP4 PUSH1 0x60 ADD MLOAD DUP3 PUSH1 0x60 ADD MLOAD SUB PUSH2 0x794 JUMPI PUSH1 0x1 PUSH1 0x20 DUP6 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MLOAD SWAP1 DUP6 ADD MSTORE PUSH2 0x88A JUMP JUMPDEST PUSH1 0x1 PUSH1 0xA0 DUP6 ADD MSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0xC0 DUP6 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD DUP1 MLOAD PUSH1 0xE0 DUP8 ADD MSTORE MLOAD SWAP1 DUP6 ADD MSTORE PUSH2 0x88A JUMP JUMPDEST PUSH1 0x2 DUP3 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x7D0 JUMPI PUSH2 0x7D0 PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x83C JUMPI DUP1 DUP5 PUSH1 0x60 ADD MLOAD SWAP1 SHR PUSH1 0x1 AND PUSH1 0x1 SUB PUSH2 0x81A JUMPI DUP2 PUSH1 0x40 ADD MLOAD SWAP3 POP DUP2 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x809 JUMPI PUSH2 0x809 PUSH2 0x1C72 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD DUP2 DUP2 MSTORE POP POP PUSH2 0x878 JUMP JUMPDEST DUP2 PUSH1 0x20 ADD MLOAD SWAP3 POP DUP2 PUSH1 0x40 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP3 DUP2 MLOAD DUP2 LT PUSH2 0x809 JUMPI PUSH2 0x809 PUSH2 0x1C72 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x496E76616C6964206E6F64652074797065 PUSH1 0x78 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST DUP1 PUSH2 0x882 DUP2 PUSH2 0x1CB5 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x724 JUMP JUMPDEST POP SWAP2 SWAP10 SWAP9 POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0x8AA DUP2 PUSH1 0x4 ADD SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x8EF 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 0x14DB5D081A5CC81B9BDD081A5B9A5D1A585B1A5E9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x1 DUP1 DUP5 ADD DUP1 SLOAD SWAP1 SWAP2 PUSH2 0x901 SWAP2 PUSH2 0x1C49 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x911 JUMPI PUSH2 0x911 PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 ADD SLOAD SWAP2 POP POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x2 DUP6 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x60 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH2 0x95F JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CC SWAP1 PUSH2 0x1C88 JUMP JUMPDEST PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x2 DUP9 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 SWAP1 DUP2 SWAP1 PUSH2 0x984 SWAP1 DUP10 DUP10 PUSH2 0x3E8 PUSH2 0xD2F JUMP JUMPDEST SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 PUSH2 0x995 DUP4 DUP4 PUSH2 0x1C49 JUMP JUMPDEST PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x9AD JUMPI PUSH2 0x9AD PUSH2 0x1C5C JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x9E6 JUMPI DUP2 PUSH1 0x20 ADD JUMPDEST PUSH2 0x9D3 PUSH2 0x1950 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 SWAP1 SUB SWAP1 DUP2 PUSH2 0x9CB JUMPI SWAP1 POP JUMPDEST POP SWAP1 POP DUP3 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0xA47 JUMPI PUSH2 0xA19 DUP13 DUP7 DUP4 DUP2 SLOAD DUP2 LT PUSH2 0xA09 JUMPI PUSH2 0xA09 PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD PUSH2 0xE3D JUMP JUMPDEST DUP3 PUSH2 0xA24 DUP7 DUP5 PUSH2 0x1C49 JUMP JUMPDEST DUP2 MLOAD DUP2 LT PUSH2 0xA34 JUMPI PUSH2 0xA34 PUSH2 0x1C72 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP2 SWAP1 SWAP2 ADD ADD MSTORE PUSH1 0x1 ADD PUSH2 0x9EB JUMP JUMPDEST POP SWAP11 SWAP10 POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x4 DUP3 ADD SLOAD PUSH1 0xFF AND ISZERO PUSH2 0xAAB JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x1A PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x536D7420697320616C726561647920696E697469616C697A6564000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH2 0xAB5 DUP3 DUP3 PUSH2 0x374 JUMP JUMPDEST PUSH2 0xAC3 DUP3 PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0xF80 JUMP JUMPDEST POP PUSH1 0x4 ADD DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST DUP3 PUSH2 0xAE3 DUP2 PUSH1 0x4 ADD SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0xB28 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 0x14DB5D081A5CC81B9BDD081A5B9A5D1A585B1A5E9959 PUSH1 0x52 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD DUP3 MSTORE PUSH1 0x1 DUP2 MSTORE PUSH1 0x0 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE SWAP2 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x60 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 PUSH2 0xB5D DUP7 PUSH2 0x899 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0xB6E DUP8 DUP5 DUP5 PUSH1 0x0 PUSH2 0x1000 JUMP JUMPDEST SWAP1 POP PUSH2 0xB7C DUP8 DUP3 TIMESTAMP NUMBER PUSH2 0xF80 JUMP JUMPDEST POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xB8D PUSH2 0x1950 JUMP JUMPDEST NUMBER DUP3 GT ISZERO PUSH2 0xBDD JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x18 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x4E6F2066757475726520626C6F636B7320616C6C6F7765640000000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH2 0x51F DUP4 DUP4 PUSH1 0x1 PUSH2 0xCF4 JUMP JUMPDEST PUSH2 0xBF1 PUSH2 0x1950 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x2 DUP5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP4 SWAP1 DUP4 SWAP1 PUSH2 0xC22 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x3CC SWAP1 PUSH2 0x1C88 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x2 DUP7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP1 SWAP2 SWAP1 DUP3 SWAP1 PUSH2 0xC45 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x1C49 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0xC55 JUMPI PUSH2 0xC55 PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP PUSH2 0xC6C DUP8 DUP3 PUSH2 0xE3D JUMP JUMPDEST SWAP8 SWAP7 POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xC7F PUSH2 0x1986 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP5 SWAP1 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCB0 JUMPI PUSH2 0xCB0 PUSH2 0x1BC6 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0xCC1 JUMPI PUSH2 0xCC1 PUSH2 0x1BC6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x80 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xCFC PUSH2 0x1950 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xD0A DUP7 DUP7 DUP7 PUSH2 0x121A JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP1 PUSH2 0xD1B JUMPI PUSH2 0xD1B PUSH2 0x1CCE JUMP JUMPDEST PUSH2 0xD25 DUP7 DUP4 PUSH2 0xE3D JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP5 GT PUSH2 0xD82 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 0x4C656E6774682073686F756C642062652067726561746572207468616E203000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST DUP3 DUP5 GT ISZERO PUSH2 0xDCA 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 0x13195B99DD1A081B1A5B5A5D08195E18D959591959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST DUP6 DUP6 LT PUSH2 0xE19 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x19 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x537461727420696E646578206F7574206F6620626F756E647300000000000000 PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE25 DUP6 DUP8 PUSH2 0x1CE4 JUMP JUMPDEST SWAP1 POP DUP7 DUP2 GT ISZERO PUSH2 0xE32 JUMPI POP DUP6 JUMPDEST SWAP5 SWAP7 SWAP5 SWAP6 POP POP POP POP POP JUMP JUMPDEST PUSH2 0xE45 PUSH2 0x1950 JUMP JUMPDEST PUSH1 0x1 DUP4 DUP2 ADD SLOAD PUSH1 0x0 SWAP2 PUSH2 0xE57 SWAP2 PUSH2 0x1C49 JUMP JUMPDEST DUP4 EQ SWAP1 POP PUSH1 0x0 DUP5 PUSH1 0x1 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0xE72 JUMPI PUSH2 0xE72 PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD SWAP1 POP PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 DUP3 PUSH1 0x0 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH2 0xED4 JUMPI DUP7 PUSH1 0x1 ADD DUP7 PUSH1 0x1 PUSH2 0xEAD SWAP2 SWAP1 PUSH2 0x1CE4 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0xEBD JUMPI PUSH2 0xEBD PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x0 ADD SLOAD PUSH2 0xED7 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x1 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH2 0xF23 JUMPI DUP7 PUSH1 0x1 ADD DUP7 PUSH1 0x1 PUSH2 0xEFC SWAP2 SWAP1 PUSH2 0x1CE4 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0xF0C JUMPI PUSH2 0xF0C PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x1 ADD SLOAD PUSH2 0xF26 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD DUP3 PUSH1 0x2 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH2 0xF72 JUMPI DUP7 PUSH1 0x1 ADD DUP7 PUSH1 0x1 PUSH2 0xF4B SWAP2 SWAP1 PUSH2 0x1CE4 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0xF5B JUMPI PUSH2 0xF5B PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x2 ADD SLOAD PUSH2 0xF75 JUMP JUMPDEST PUSH1 0x0 JUMPDEST SWAP1 MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP2 ADD DUP3 MSTORE DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 ADD DUP6 DUP2 MSTORE DUP3 DUP5 ADD DUP6 DUP2 MSTORE PUSH1 0x1 DUP1 DUP11 ADD DUP1 SLOAD DUP1 DUP4 ADD DUP3 SSTORE PUSH1 0x0 DUP3 DUP2 MSTORE DUP7 DUP2 KECCAK256 SWAP8 MLOAD PUSH1 0x3 SWAP1 SWAP3 MUL SWAP1 SWAP8 ADD SWAP1 DUP2 SSTORE SWAP4 MLOAD DUP5 DUP4 ADD SSTORE SWAP2 MLOAD PUSH1 0x2 SWAP4 DUP5 ADD SSTORE DUP9 DUP6 MSTORE SWAP2 DUP10 ADD SWAP1 SWAP3 MSTORE SWAP3 SWAP1 SWAP2 KECCAK256 SWAP1 SLOAD SWAP1 SWAP2 PUSH2 0xFE4 SWAP2 PUSH2 0x1C49 JUMP JUMPDEST DUP2 SLOAD PUSH1 0x1 DUP2 ADD DUP4 SSTORE PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x20 SWAP1 SWAP3 KECCAK256 SWAP1 SWAP2 ADD SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x3 ADD SLOAD DUP3 GT ISZERO PUSH2 0x104A JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x13585E0819195C1D1A081C995858DA1959 PUSH1 0x7A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP7 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP2 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP3 MSTORE DUP1 SLOAD DUP3 SWAP1 PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x107A JUMPI PUSH2 0x107A PUSH2 0x1BC6 JUMP JUMPDEST PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x108B JUMPI PUSH2 0x108B PUSH2 0x1BC6 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x1 DUP3 ADD SLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x2 DUP3 ADD SLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x3 DUP3 ADD SLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x4 SWAP1 SWAP2 ADD SLOAD PUSH1 0x80 SWAP1 SWAP2 ADD MSTORE SWAP1 POP PUSH1 0x0 DUP1 DUP1 DUP4 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x10D0 JUMPI PUSH2 0x10D0 PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x10E6 JUMPI PUSH2 0x10DF DUP9 DUP9 PUSH2 0x13F1 JUMP JUMPDEST SWAP1 POP PUSH2 0x120D JUMP JUMPDEST PUSH1 0x1 DUP4 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x10FB JUMPI PUSH2 0x10FB PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x112A JUMPI DUP7 PUSH1 0x60 ADD MLOAD DUP4 PUSH1 0x60 ADD MLOAD EQ PUSH2 0x1120 JUMPI PUSH2 0x111B DUP9 DUP9 DUP6 DUP9 PUSH2 0x156A JUMP JUMPDEST PUSH2 0x10DF JUMP JUMPDEST PUSH2 0x10DF DUP9 DUP9 PUSH2 0x13F1 JUMP JUMPDEST PUSH1 0x2 DUP4 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x113F JUMPI PUSH2 0x113F PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x120D JUMPI PUSH2 0x114C PUSH2 0x1986 JUMP JUMPDEST DUP6 DUP9 PUSH1 0x60 ADD MLOAD SWAP1 SHR PUSH1 0x1 AND PUSH1 0x1 SUB PUSH2 0x11B3 JUMPI PUSH2 0x117A DUP10 DUP10 DUP7 PUSH1 0x40 ADD MLOAD DUP10 PUSH1 0x1 PUSH2 0x1175 SWAP2 SWAP1 PUSH2 0x1CE4 JUMP JUMPDEST PUSH2 0x1000 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 SWAP4 POP DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH1 0x20 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP PUSH2 0x11FF JUMP JUMPDEST PUSH2 0x11CA DUP10 DUP10 DUP7 PUSH1 0x20 ADD MLOAD DUP10 PUSH1 0x1 PUSH2 0x1175 SWAP2 SWAP1 PUSH2 0x1CE4 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE SWAP1 SWAP4 POP DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP6 PUSH1 0x40 ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 POP JUMPDEST PUSH2 0x1209 DUP10 DUP3 PUSH2 0x13F1 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP3 POP POP POP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP4 ADD SLOAD PUSH1 0x0 SWAP1 DUP2 SWAP1 DUP2 SUB PUSH2 0x1235 JUMPI POP PUSH1 0x0 SWAP1 POP DUP1 PUSH2 0x13E9 JUMP JUMPDEST PUSH1 0x1 DUP6 DUP2 ADD SLOAD PUSH1 0x0 SWAP2 DUP3 SWAP2 PUSH2 0x124A SWAP2 SWAP1 PUSH2 0x1C49 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP2 DUP4 GT PUSH2 0x13E0 JUMPI PUSH1 0x2 PUSH2 0x1262 DUP5 DUP5 PUSH2 0x1CE4 JUMP JUMPDEST PUSH2 0x126C SWAP2 SWAP1 PUSH2 0x1CF7 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x12C5 DUP10 PUSH1 0x1 ADD DUP4 DUP2 SLOAD DUP2 LT PUSH2 0x1288 JUMPI PUSH2 0x1288 PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE POP POP DUP9 PUSH2 0x171A JUMP JUMPDEST SWAP1 POP DUP8 DUP2 SUB PUSH2 0x138A JUMPI JUMPDEST PUSH1 0x1 DUP10 DUP2 ADD SLOAD PUSH2 0x12DF SWAP2 SWAP1 PUSH2 0x1C49 JUMP JUMPDEST DUP3 LT ISZERO PUSH2 0x137B JUMPI PUSH1 0x0 PUSH2 0x1349 DUP11 PUSH1 0x1 ADD DUP5 PUSH1 0x1 PUSH2 0x12FC SWAP2 SWAP1 PUSH2 0x1CE4 JUMP JUMPDEST DUP2 SLOAD DUP2 LT PUSH2 0x130C JUMPI PUSH2 0x130C PUSH2 0x1C72 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x3 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x2 DUP3 ADD SLOAD DUP2 MSTORE POP POP DUP10 PUSH2 0x171A JUMP JUMPDEST SWAP1 POP DUP9 DUP2 SUB PUSH2 0x1364 JUMPI DUP3 PUSH2 0x135C DUP2 PUSH2 0x1CB5 JUMP JUMPDEST SWAP4 POP POP PUSH2 0x1375 JUMP JUMPDEST DUP3 PUSH1 0x1 SWAP7 POP SWAP7 POP POP POP POP POP POP PUSH2 0x13E9 JUMP JUMPDEST POP PUSH2 0x12CF JUMP JUMPDEST POP SWAP4 POP PUSH1 0x1 SWAP3 POP PUSH2 0x13E9 SWAP2 POP POP JUMP JUMPDEST DUP1 DUP9 GT ISZERO PUSH2 0x13A4 JUMPI PUSH2 0x139D DUP3 PUSH1 0x1 PUSH2 0x1CE4 JUMP JUMPDEST SWAP4 POP PUSH2 0x13DA JUMP JUMPDEST DUP1 DUP9 LT DUP1 ISZERO PUSH2 0x13B3 JUMPI POP PUSH1 0x0 DUP3 GT JUMPDEST ISZERO PUSH2 0x13CA JUMPI PUSH2 0x13C3 PUSH1 0x1 DUP4 PUSH2 0x1C49 JUMP JUMPDEST SWAP3 POP PUSH2 0x13DA JUMP JUMPDEST PUSH1 0x0 DUP1 SWAP6 POP SWAP6 POP POP POP POP POP PUSH2 0x13E9 JUMP JUMPDEST POP PUSH2 0x124F JUMP JUMPDEST POP SWAP3 POP PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP4 POP SWAP4 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x13FD DUP4 PUSH2 0x17A2 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 DUP3 DUP2 MSTORE PUSH1 0x20 DUP7 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1423 JUMPI PUSH2 0x1423 PUSH2 0x1BC6 JUMP JUMPDEST EQ PUSH2 0x1504 JUMPI DUP3 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x143B JUMPI PUSH2 0x143B PUSH2 0x1BC6 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP7 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x145E JUMPI PUSH2 0x145E PUSH2 0x1BC6 JUMP JUMPDEST EQ PUSH2 0x146B JUMPI PUSH2 0x146B PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x20 DUP1 DUP5 ADD MLOAD PUSH1 0x0 DUP4 DUP2 MSTORE SWAP2 DUP7 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 PUSH1 0x1 ADD SLOAD EQ PUSH2 0x1490 JUMPI PUSH2 0x1490 PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x40 DUP1 DUP5 ADD MLOAD PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x20 DUP8 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 PUSH1 0x2 ADD SLOAD EQ PUSH2 0x14B5 JUMPI PUSH2 0x14B5 PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP7 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x3 ADD SLOAD EQ PUSH2 0x14D9 JUMPI PUSH2 0x14D9 PUSH2 0x1CCE JUMP JUMPDEST PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x0 DUP3 DUP2 MSTORE PUSH1 0x20 DUP7 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 PUSH1 0x4 ADD SLOAD EQ PUSH2 0x14FD JUMPI PUSH2 0x14FD PUSH2 0x1CCE JUMP JUMPDEST SWAP1 POP PUSH2 0x36E JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP6 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 MLOAD DUP2 SLOAD DUP6 SWAP3 SWAP2 SWAP1 DUP3 SWAP1 PUSH1 0xFF NOT AND PUSH1 0x1 DUP4 PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1534 JUMPI PUSH2 0x1534 PUSH2 0x1BC6 JUMP JUMPDEST MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x1 DUP3 ADD SSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x2 DUP3 ADD SSTORE PUSH1 0x60 DUP3 ADD MLOAD PUSH1 0x3 DUP3 ADD SSTORE PUSH1 0x80 SWAP1 SWAP2 ADD MLOAD PUSH1 0x4 SWAP1 SWAP2 ADD SSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP5 PUSH1 0x3 ADD SLOAD DUP3 LT PUSH2 0x15B3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x11 PUSH1 0x24 DUP3 ADD MSTORE PUSH17 0x13585E0819195C1D1A081C995858DA1959 PUSH1 0x7A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH2 0x15BB PUSH2 0x1986 JUMP JUMPDEST PUSH1 0x60 DUP1 DUP7 ADD MLOAD SWAP1 DUP6 ADD MLOAD PUSH1 0x1 SWAP2 DUP6 SHR DUP3 AND DUP3 EQ SWAP2 SWAP1 DUP6 SHR DUP2 AND EQ DUP1 DUP3 SUB PUSH2 0x1673 JUMPI PUSH1 0x0 PUSH2 0x15F4 DUP10 DUP10 DUP10 PUSH2 0x15EF DUP11 PUSH1 0x1 PUSH2 0x1CE4 JUMP JUMPDEST PUSH2 0x156A JUMP JUMPDEST SWAP1 POP DUP3 ISZERO PUSH2 0x162F JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP4 POP PUSH2 0x165E JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP4 POP JUMPDEST PUSH2 0x1668 DUP10 DUP6 PUSH2 0x13F1 JUMP JUMPDEST SWAP5 POP POP POP POP POP PUSH2 0x1212 JUMP JUMPDEST DUP2 ISZERO PUSH2 0x16BB JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x1695 DUP9 PUSH2 0x17A2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16A3 DUP10 PUSH2 0x17A2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP3 POP PUSH2 0x16F9 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x2 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16D7 DUP10 PUSH2 0x17A2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x16E5 DUP9 PUSH2 0x17A2 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP3 POP JUMPDEST PUSH2 0x1703 DUP9 DUP9 PUSH2 0x13F1 JUMP JUMPDEST POP PUSH2 0x170E DUP9 DUP5 PUSH2 0x13F1 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1730 JUMPI PUSH2 0x1730 PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x1740 JUMPI POP PUSH1 0x40 DUP3 ADD MLOAD PUSH2 0x36E JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1 DUP2 GT ISZERO PUSH2 0x1754 JUMPI PUSH2 0x1754 PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x1764 JUMPI POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x36E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x13 PUSH1 0x24 DUP3 ADD MSTORE PUSH19 0x496E76616C6964207365617263682074797065 PUSH1 0x68 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x3CC JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x1 DUP4 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x17BA JUMPI PUSH2 0x17BA PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x185E JUMPI PUSH1 0x40 DUP1 MLOAD PUSH1 0x60 DUP1 DUP3 ADD DUP4 MSTORE DUP6 ADD MLOAD DUP2 MSTORE PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1 DUP2 DUP4 ADD MSTORE SWAP1 MLOAD PUSH4 0x4B98E1D PUSH1 0xE3 SHL DUP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x25CC70E8 SWAP1 PUSH2 0x1815 SWAP1 DUP5 SWAP1 PUSH1 0x4 ADD PUSH2 0x1D19 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1832 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1856 SWAP2 SWAP1 PUSH2 0x1D4A JUMP JUMPDEST SWAP2 POP POP PUSH2 0x36E JUMP JUMPDEST PUSH1 0x2 DUP4 MLOAD PUSH1 0x2 DUP2 GT ISZERO PUSH2 0x1873 JUMPI PUSH2 0x1873 PUSH2 0x1BC6 JUMP JUMPDEST SUB PUSH2 0x36E JUMPI PUSH1 0x40 DUP1 MLOAD DUP1 DUP3 ADD DUP3 MSTORE PUSH1 0x20 DUP1 DUP7 ADD MLOAD DUP3 MSTORE DUP6 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP1 MLOAD PUSH4 0x14D2F97B PUSH1 0xE1 SHL DUP2 MSTORE PUSH20 0x0 SWAP2 PUSH4 0x29A5F2F6 SWAP2 PUSH2 0x18C6 SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x1D63 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x18E3 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x51F SWAP2 SWAP1 PUSH2 0x1D4A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0xC0 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0xA0 DUP2 ADD SWAP1 SWAP2 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x19C9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x19ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP2 CALLDATALOAD SWAP4 PUSH1 0x20 DUP4 ADD CALLDATALOAD SWAP4 POP PUSH1 0x40 SWAP1 SWAP3 ADD CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x120 DUP3 ADD DUP4 MLOAD PUSH1 0x20 DUP5 ADD MSTORE PUSH1 0x20 DUP5 ADD MLOAD ISZERO ISZERO PUSH1 0x40 DUP5 ADD MSTORE PUSH1 0x40 DUP5 ADD MLOAD PUSH2 0x100 PUSH1 0x60 DUP6 ADD MSTORE DUP2 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x140 DUP7 ADD SWAP2 POP PUSH1 0x20 DUP4 ADD SWAP4 POP PUSH1 0x0 SWAP3 POP JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x1A6A JUMPI DUP4 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x1 DUP4 ADD SWAP3 POP PUSH2 0x1A47 JUMP JUMPDEST POP PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x80 DUP7 ADD MSTORE PUSH1 0x80 DUP7 ADD MLOAD PUSH1 0xA0 DUP7 ADD MSTORE PUSH1 0xA0 DUP7 ADD MLOAD SWAP3 POP PUSH2 0x1A94 PUSH1 0xC0 DUP7 ADD DUP5 ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST PUSH1 0xC0 DUP7 ADD MLOAD PUSH1 0xE0 DUP7 ADD MSTORE PUSH1 0xE0 DUP7 ADD MLOAD PUSH2 0x100 DUP7 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xC0 DUP2 ADD PUSH2 0x36E DUP3 DUP5 DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 ADD SWAP1 PUSH1 0x40 DUP5 ADD SWAP1 DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1B70 JUMPI PUSH2 0x1B5A DUP4 DUP6 MLOAD DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP2 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 DUP2 ADD MLOAD PUSH1 0xA0 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD SWAP3 PUSH1 0xC0 SWAP3 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x1B12 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1B8D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x1BAA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 CALLDATALOAD SWAP5 PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP5 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP4 PUSH1 0x60 ADD CALLDATALOAD SWAP3 POP SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 MLOAD PUSH1 0xA0 DUP3 ADD SWAP1 PUSH1 0x3 DUP2 LT PUSH2 0x1C01 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP4 MSTORE POP PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP4 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP4 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE PUSH1 0x80 DUP4 ADD MLOAD PUSH1 0x80 DUP4 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x36E JUMPI PUSH2 0x36E PUSH2 0x1C33 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x13 SWAP1 DUP3 ADD MSTORE PUSH19 0x149BDBDD08191BD95CC81B9BDD08195E1A5CDD PUSH1 0x6A SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x1CC7 JUMPI PUSH2 0x1CC7 PUSH2 0x1C33 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x1 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x36E JUMPI PUSH2 0x36E PUSH2 0x1C33 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH2 0x1D14 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP DIV SWAP1 JUMP JUMPDEST PUSH1 0x60 DUP2 ADD DUP2 DUP4 PUSH1 0x0 JUMPDEST PUSH1 0x3 DUP2 LT ISZERO PUSH2 0x1D41 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1D22 JUMP JUMPDEST POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1D5C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 ADD DUP2 DUP4 PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP2 LT ISZERO PUSH2 0x1D41 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1D6C JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH18 0xBCC64C8A2A1640D7F892FC5F15AAD8B6C4BD STOP 0xAD SUB PUSH17 0x59279187506C93E5D064736F6C63430008 SHL STOP CALLER ", + "sourceMap": "688:20641:11:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12175:175;;;;;;:::i;:::-;;:::i;:::-;;;542:25:46;;;530:2;515:18;12175:175:11;;;;;;;;13737:341;;;;;;;;;;-1:-1:-1;13737:341:11;;;;;:::i;:::-;;:::i;:::-;;9419:284;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;10616:398::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5796:581::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;791:58::-;;845:4;791:58;;6813:155;;;;;;:::i;:::-;;:::i;5483:128::-;;;;;;:::i;:::-;5581:16;;:23;;5483:128;9975:292;;;;;;:::i;:::-;;:::i;7239:1916::-;;;;;;:::i;:::-;;:::i;10273:162::-;;;;;;:::i;:::-;;:::i;14162:109::-;;;;;;:::i;:::-;14251:13;;;;14162:109;12696:697;;;;;;:::i;:::-;;:::i;13507:137::-;;;;;;:::i;:::-;13581:4;13604:22;;;:16;;;;;:22;;;;;:29;:33;;;13507:137;;;;4798:14:46;;4791:22;4773:41;;4761:2;4746:18;13507:137:11;4625:195:46;14413:246:11;;;;;;;;;;-1:-1:-1;14413:246:11;;;;;:::i;:::-;;:::i;1003:48::-;;1048:3;1003:48;;4942:445;;;;;;;;;;-1:-1:-1;4942:445:11;;;;;:::i;:::-;;:::i;11198:305::-;;;;;;:::i;:::-;;:::i;11619:325::-;;;;;;:::i;:::-;;:::i;6503:132::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;14797:109::-;;;;;;:::i;:::-;14883:16;;;;;;14797:109;12175:175;12288:7;12314:22;;;:16;;;:22;;;;;:29;12175:175;;;;;:::o;13737:341::-;13831:1;13820:8;:12;13812:60;;;;-1:-1:-1;;;13812:60:11;;5823:2:46;13812:60:11;;;5805:21:46;5862:2;5842:18;;;5835:30;5901:34;5881:18;;;5874:62;-1:-1:-1;;;5952:18:46;;;5945:33;5995:19;;13812:60:11;;;;;;;;;13901:4;:13;;;13890:8;:24;13882:68;;;;-1:-1:-1;;;13882:68:11;;6227:2:46;13882:68:11;;;6209:21:46;6266:2;6246:18;;;6239:30;6305:33;6285:18;;;6278:61;6356:18;;13882:68:11;6025:355:46;13882:68:11;1048:3;13968:8;:30;;13960:77;;;;-1:-1:-1;;;13960:77:11;;6587:2:46;13960:77:11;;;6569:21:46;6626:2;6606:18;;;6599:30;6665:34;6645:18;;;6638:62;-1:-1:-1;;;6716:18:46;;;6709:32;6758:19;;13960:77:11;6385:398:46;13960:77:11;14047:13;;;;:24;13737:341::o;9419:284::-;9547:12;;:::i;:::-;9571:29;9603:34;9621:4;9627:9;9603:17;:34::i;:::-;9571:66;;9654:42;9669:4;9675:5;9682:8;:13;;;9654:14;:42::i;:::-;9647:49;9419:284;-1:-1:-1;;;;;9419:284:11:o;10616:398::-;10724:20;;:::i;:::-;10777:15;10764:9;:28;;10756:69;;;;-1:-1:-1;;;10756:69:11;;6990:2:46;10756:69:11;;;6972:21:46;7029:2;7009:18;;;7002:30;7068;7048:18;;;7041:58;7116:18;;10756:69:11;6788:352:46;10756:69:11;10855:152;10903:4;10925:9;10952:41;10855:30;:152::i;:::-;10836:171;10616:398;-1:-1:-1;;;10616:398:11:o;5796:581::-;5928:22;5963:13;5978:11;5993:158;6033:4;:16;;:23;;;;6070:10;6094:6;845:4;5993:26;:158::i;:::-;5962:189;;-1:-1:-1;5962:189:11;-1:-1:-1;6162:29:11;6214:11;5962:189;;6214:11;:::i;:::-;6194:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;6162:64:11;-1:-1:-1;6254:5:11;6237:111;6265:3;6261:1;:7;6237:111;;;6309:28;6329:4;6335:1;6309:19;:28::i;:::-;6289:6;6296:9;6300:5;6296:1;:9;:::i;:::-;6289:17;;;;;;;;:::i;:::-;;;;;;;;;;:48;6270:3;;6237:111;;;-1:-1:-1;6364:6:11;5796:581;-1:-1:-1;;;;;;5796:581:11:o;6813:155::-;6888:12;;:::i;:::-;6919:42;6934:4;6940:5;6947:13;6955:4;6947:7;:13::i;9975:292::-;10108:12;;:::i;:::-;10132:29;10164:37;10183:4;10189:11;10164:18;:37::i;7239:1916::-;7411:12;;:::i;:::-;13581:4;13604:22;;;:16;;;:22;;;;;:29;7380:4;;7386:14;;4750:54;;;;-1:-1:-1;;;4750:54:11;;;;;;;:::i;:::-;7435:25:::1;7477:4;:13;;;7463:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;7463:28:11::1;;7435:56;;7577:9;7572:84;7596:4;:13;;;7592:1;:17;7572:84;;;7644:1;7630:8;7639:1;7630:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:15;7611:3:::1;;7572:84;;;-1:-1:-1::0;7687:244:11::1;::::0;;::::1;::::0;::::1;::::0;;;;;7666:18:::1;7687:244;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7713:14;7989:16:::1;;:::i;:::-;8021:9;8016:1111;8041:4;:13;;;8036:1;:18;8016:1111;;8082:27;8090:4;8096:12;8082:7;:27::i;:::-;8075:34:::0;-1:-1:-1;8144:14:11::1;8127:13:::0;;:31:::1;::::0;::::1;;;;;;:::i;:::-;8123:994:::0;8178:5:::1;8123:994;8225:13;8208::::0;;:30:::1;::::0;::::1;;;;;;:::i;:::-;::::0;8204:913:::1;;8276:5;:11;;;8262:4;:10;;;:25:::0;8258:410:::1;;8329:4;8311:15;::::0;::::1;:22:::0;8369:10:::1;::::0;;::::1;::::0;8355:11;;::::1;:24:::0;8401:5:::1;;8258:410;8474:4;8453:18;::::0;::::1;:25:::0;8517:10:::1;::::0;::::1;::::0;8500:14:::1;::::0;::::1;:27:::0;8566:10:::1;::::0;;::::1;::::0;;8549:14:::1;::::0;::::1;:27:::0;8612:10;8598:11;;::::1;:24:::0;8644:5:::1;;8204:913;8709:15;8692:13:::0;;:32:::1;::::0;::::1;;;;;;:::i;:::-;::::0;8688:429:::1;;8764:1;8749:5;:11;;;:16;;8769:1;8748:22;8774:1;8748:27:::0;8744:293:::1;;8814:4;:15;;;8799:30;;8871:4;:14;;;8851:5;:14;;;8866:1;8851:17;;;;;;;;:::i;:::-;;;;;;:34;;;::::0;::::1;8688:429;;8744:293;8947:4;:14;;;8932:29;;9003:4;:15;;;8983:5;:14;;;8998:1;8983:17;;;;;;;;:::i;8688:429::-;9075:27;::::0;-1:-1:-1;;;9075:27:11;;8224:2:46;9075:27:11::1;::::0;::::1;8206:21:46::0;8263:2;8243:18;;;8236:30;-1:-1:-1;;;8282:18:46;;;8275:47;8339:18;;9075:27:11::1;8022:341:46::0;8688:429:11::1;8056:3:::0;::::1;::::0;::::1;:::i;:::-;;;;8016:1111;;;-1:-1:-1::0;9143:5:11;;7239:1916;-1:-1:-1;;;;;;;;;7239:1916:11:o;10273:162::-;10352:7;10337:4;14727:19;14741:4;14883:16;;;;;;14797:109;14727:19;14719:54;;;;-1:-1:-1;;;14719:54:11;;8710:2:46;14719:54:11;;;8692:21:46;8749:2;8729:18;;;8722:30;-1:-1:-1;;;8768:18:46;;;8761:52;8830:18;;14719:54:11;8508:346:46;14719:54:11;10378:16:::1;::::0;;::::1;10395:23:::0;;10378:16;;10395:27:::1;::::0;::::1;:::i;:::-;10378:45;;;;;;;;:::i;:::-;;;;;;;;;;;:50;;;10371:57;;10273:162:::0;;;;:::o;12696:697::-;13581:4;13604:22;;;:16;;;:22;;;;;:29;12884:22;;12863:4;;12869;;4750:54;;;;-1:-1:-1;;;4750:54:11;;;;;;;:::i;:::-;12918:25:::1;12946:22:::0;;;:16:::1;::::0;::::1;:22;::::0;;;;13049:14;;12946:22;;12918:25;;;13009:149:::1;::::0;13077:10;13101:6;845:4:::1;13009:26;:149::i;:::-;12978:180:::0;;-1:-1:-1;12978:180:11;-1:-1:-1;13169:29:11::1;13221:11;12978:180:::0;;13221:11:::1;:::i;:::-;13201:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1::0;13169:64:11;-1:-1:-1;13260:5:11;13243:120:::1;13271:3;13267:1;:7;13243:120;;;13315:37;13335:4;13341:7;13349:1;13341:10;;;;;;;;:::i;:::-;;;;;;;;;13315:19;:37::i;:::-;13295:6:::0;13302:9:::1;13306:5:::0;13302:1;:9:::1;:::i;:::-;13295:17;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;:57;13276:3:::1;;13243:120;;;-1:-1:-1::0;13380:6:11;12696:697;-1:-1:-1;;;;;;;;;;12696:697:11:o;14413:246::-;14883:16;;;;;;14497:20;14489:59;;;;-1:-1:-1;;;14489:59:11;;9061:2:46;14489:59:11;;;9043:21:46;9100:2;9080:18;;;9073:30;9139:28;9119:18;;;9112:56;9185:18;;14489:59:11;8859:350:46;14489:59:11;14558:27;14570:4;14576:8;14558:11;:27::i;:::-;14595:24;14605:4;14611:1;14614;14617;14595:9;:24::i;:::-;-1:-1:-1;14629:16:11;;:23;;-1:-1:-1;;14629:23:11;14648:4;14629:23;;;14413:246::o;4942:445::-;5025:4;14727:19;14741:4;14883:16;;;;;;14797:109;14727:19;14719:54;;;;-1:-1:-1;;;14719:54:11;;8710:2:46;14719:54:11;;;8692:21:46;8749:2;8729:18;;;8722:30;-1:-1:-1;;;8768:18:46;;;8761:52;8830:18;;14719:54:11;8508:346:46;14719:54:11;5060:150:::1;::::0;;::::1;::::0;::::1;::::0;;5089:13:::1;5060:150:::0;;-1:-1:-1;5060:150:11::1;::::0;::::1;::::0;;;;;;;;;;;;;;;;;;;;;;5240:13:::1;5248:4:::0;5240:7:::1;:13::i;:::-;5221:32;;5263:15;5281:33;5290:4;5296;5302:8;5312:1;5281:8;:33::i;:::-;5263:51;;5325:55;5335:4;5341:7;5350:15;5367:12;5325:9;:55::i;:::-;5031:356;;;4942:445:::0;;;;:::o;11198:305::-;11304:20;;:::i;:::-;11354:12;11344:6;:22;;11336:59;;;;-1:-1:-1;;;11336:59:11;;9416:2:46;11336:59:11;;;9398:21:46;9455:2;9435:18;;;9428:30;9494:26;9474:18;;;9467:54;9538:18;;11336:59:11;9214:348:46;11336:59:11;11413:83;11444:4;11450:6;11458:37;11413:30;:83::i;11619:325::-;11745:20;;:::i;:::-;13581:4;13604:22;;;:16;;;:22;;;;;:29;11724:4;;11730;;4750:54;;;;-1:-1:-1;;;4750:54:11;;;;;;;:::i;:::-;11777:25:::1;11805:22:::0;;;:16:::1;::::0;::::1;:22;::::0;;;;11865:14;;11805:22;;11777:25;11805:22;;11865:18:::1;::::0;11882:1:::1;::::0;11865:18:::1;:::i;:::-;11857:27;;;;;;;;:::i;:::-;;;;;;;;;11837:47;;11901:36;11921:4;11927:9;11901:19;:36::i;:::-;11894:43:::0;11619:325;-1:-1:-1;;;;;;;11619:325:11:o;6503:132::-;6578:11;;:::i;:::-;6608:10;:20;;;;;;;;;;;;6601:27;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6503:132;-1:-1:-1;;;6503:132:11:o;20513:465::-;20695:20;;:::i;:::-;20728:13;;20757:54;:4;20782:16;20800:10;20757:24;:54::i;:::-;20727:84;;;;20915:5;20908:13;;;;:::i;:::-;20939:32;20959:4;20965:5;20939:19;:32::i;:::-;20932:39;20513:465;-1:-1:-1;;;;;;20513:465:11:o;420:503:5:-;571:7;580;616:1;607:6;:10;599:54;;;;-1:-1:-1;;;599:54:5;;9901:2:46;599:54:5;;;9883:21:46;9940:2;9920:18;;;9913:30;9979:33;9959:18;;;9952:61;10030:18;;599:54:5;9699:355:46;599:54:5;681:5;671:6;:15;;663:49;;;;-1:-1:-1;;;663:49:5;;10261:2:46;663:49:5;;;10243:21:46;10300:2;10280:18;;;10273:30;-1:-1:-1;;;10319:18:46;;;10312:51;10380:18;;663:49:5;10059:345:46;663:49:5;738:9;730:5;:17;722:55;;;;-1:-1:-1;;;722:55:5;;10611:2:46;722:55:5;;;10593:21:46;10650:2;10630:18;;;10623:30;10689:27;10669:18;;;10662:55;10734:18;;722:55:5;10409:349:46;722:55:5;788:11;802:14;810:6;802:5;:14;:::i;:::-;788:28;;836:9;830:3;:15;826:61;;;-1:-1:-1;867:9:5;826:61;905:5;;912:3;;-1:-1:-1;;;;;420:503:5:o;19703:804:11:-;19811:20;;:::i;:::-;19896:1;19870:16;;;:23;19843:15;;19870:27;;;:::i;:::-;19861:5;:36;19843:54;;19907:27;19937:4;:16;;19954:5;19937:23;;;;;;;;:::i;:::-;;;;;;;;;;;19907:53;;19990:510;;;;;;;;20028:9;:14;;;19990:510;;;;20076:10;:49;;20093:4;:16;;20110:5;20118:1;20110:9;;;;:::i;:::-;20093:27;;;;;;;;:::i;:::-;;;;;;;;;;;:32;;;20076:49;;;20089:1;20076:49;19990:510;;;;20163:9;:28;;;19990:510;;;;20230:10;:103;;20287:4;:16;;20304:5;20312:1;20304:9;;;;:::i;:::-;20287:27;;;;;;;;:::i;:::-;;;;;;;;;;;:46;;;20230:103;;;20263:1;20230:103;19990:510;;;;20367:9;:24;;;19990:510;;;;20426:10;:59;;20443:4;:16;;20460:5;20468:1;20460:9;;;;:::i;:::-;20443:27;;;;;;;;:::i;:::-;;;;;;;;;;;:42;;;20426:59;;;20439:1;20426:59;19990:510;;19971:529;19703:804;-1:-1:-1;;;;;19703:804:11:o;20984:343::-;21164:79;;;;;;;;;;;;;;;;;;;;;;;;21129:16;;;;:124;;;;;;;-1:-1:-1;21129:124:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21264:22;;;:16;;;:22;;;;;;;21292:23;;21264:22;;21292:27;;;:::i;:::-;21264:56;;;;;;;-1:-1:-1;21264:56:11;;;;;;;;;;;-1:-1:-1;;;;20984:343:11:o;14912:1620::-;15059:7;15090:4;:13;;;15082:5;:21;15078:79;;;15119:27;;-1:-1:-1;;;15119:27:11;;11095:2:46;15119:27:11;;;11077:21:46;11134:2;11114:18;;;11107:30;-1:-1:-1;;;11153:18:46;;;11146:47;11210:18;;15119:27:11;10893:341:46;15078:79:11;15167:16;15186:20;;;;;;;;;;;15167:39;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;15281:13:11;;:31;;;;;;;;:::i;:::-;;15277:1223;;15339:23;15348:4;15354:7;15339:8;:23::i;:::-;15328:34;;15277:1223;;;15400:13;15383;;:30;;;;;;;;:::i;:::-;;15379:1121;;15454:7;:13;;;15440:4;:10;;;:27;:125;;15528:37;15538:4;15544:7;15553:4;15559:5;15528:9;:37::i;:::-;15440:125;;;15486:23;15495:4;15501:7;15486:8;:23::i;15379:1121::-;15603:15;15586:13;;:32;;;;;;;;:::i;:::-;;15582:918;;15634:25;;:::i;:::-;15696:5;15679:7;:13;;;:22;;15705:1;15678:28;15710:1;15678:33;15674:761;;15746:51;15755:4;15761:7;15770:4;:15;;;15787:5;15795:1;15787:9;;;;:::i;:::-;15746:8;:51::i;:::-;15832:224;;;;;;;;;15731:66;;-1:-1:-1;15832:224:11;15869:15;15832:224;;;;15917:4;:14;;;15832:224;;;;15965:12;15832:224;;;;16006:1;15832:224;;;;16036:1;15832:224;;;15816:240;;15674:761;;;16110:50;16119:4;16125:7;16134:4;:14;;;16150:5;16158:1;16150:9;;;;:::i;16110:50::-;16195:225;;;;;;;;;16095:65;;-1:-1:-1;16195:225:11;16232:15;16195:225;;;;16280:12;16195:225;;;;16326:4;:15;;;16195:225;;;;16370:1;16195:225;;;;16400:1;16195:225;;;16179:241;;15674:761;16460:29;16469:4;16475:13;16460:8;:29::i;:::-;16449:40;;15620:880;15582:918;16517:8;-1:-1:-1;;;14912:1620:11;;;;;;;:::o;21912:1528::-;22087:16;;;:23;22058:7;;;;22087:28;;22083:76;;-1:-1:-1;22139:1:11;;-1:-1:-1;22139:1:11;22131:17;;22083:76;22234:1;22208:16;;;:23;22169:11;;;;22208:27;;22234:1;22208:27;:::i;:::-;22194:41;;22245:11;22267:928;22281:3;22274;:10;22267:928;;22320:1;22307:9;22313:3;22307;:9;:::i;:::-;22306:15;;;;:::i;:::-;22300:21;;22336:16;22355:48;22369:4;:16;;22386:3;22369:21;;;;;;;;:::i;:::-;;;;;;;;;;;22355:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22392:10;22355:13;:48::i;:::-;22336:67;;22433:5;22421:8;:17;22417:768;;22458:327;22497:1;22471:16;;;:23;:27;;22497:1;22471:27;:::i;:::-;22465:3;:33;22458:327;;;22522:17;22542:52;22556:4;:16;;22573:3;22579:1;22573:7;;;;:::i;:::-;22556:25;;;;;;;;:::i;:::-;;;;;;;;;;;22542:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22583:10;22542:13;:52::i;:::-;22522:72;;22633:5;22620:9;:18;22616:151;;22666:5;;;;:::i;:::-;;;;22616:151;;;22734:3;22739:4;22726:18;;;;;;;;;;;22616:151;22500:285;22458:327;;;-1:-1:-1;22810:3:11;-1:-1:-1;22815:4:11;;-1:-1:-1;22802:18:11;;-1:-1:-1;;22802:18:11;22417:768;22853:8;22845:5;:16;22841:344;;;22887:7;:3;22893:1;22887:7;:::i;:::-;22881:13;;22841:344;;;22927:8;22919:5;:16;:27;;;;;22945:1;22939:3;:7;22919:27;22915:270;;;23021:7;23027:1;23021:3;:7;:::i;:::-;23015:13;;22915:270;;;23161:1;23164:5;23153:17;;;;;;;;;;22915:270;22286:909;22267:928;;;-1:-1:-1;23423:3:11;-1:-1:-1;23428:4:11;;-1:-1:-1;;21912:1528:11;;;;;;;:::o;18284:867::-;18357:7;18376:16;18395:18;18408:4;18395:12;:18::i;:::-;18376:37;-1:-1:-1;18692:14:11;18659:10;:20;;;;;;;;;;:29;;;:47;;;;;;;;:::i;:::-;;18655:427;;18762:13;;18729:46;;;;;;;;:::i;:::-;:10;:20;;;;;;;;;;:29;;;:46;;;;;;;;:::i;:::-;;18722:54;;;;:::i;:::-;18831:14;;;;;18797:10;:20;;;;;;;;;;;:30;;;:48;18790:56;;;;:::i;:::-;18902:15;;;;;18867:10;:20;;;;;;;;;;;:31;;;:50;18860:58;;;;:::i;:::-;18969:10;;;;18939;:20;;;;;;;;;;:26;;;:40;18932:48;;;;:::i;:::-;19031:10;;;;19001;:20;;;;;;;;;;:26;;;:40;18994:48;;;;:::i;:::-;19063:8;-1:-1:-1;19056:15:11;;18655:427;19092:10;:20;;;;;;;;;;:27;;;;19115:4;;19092:20;:27;:20;;-1:-1:-1;;19092:27:11;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;19092:27:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19136:8;18284:867;-1:-1:-1;;;18284:867:11:o;16538:1740::-;16689:7;16849:4;:13;;;16840:5;:22;16836:80;;16878:27;;-1:-1:-1;;;16878:27:11;;11095:2:46;16878:27:11;;;11077:21:46;11134:2;11114:18;;;11107:30;-1:-1:-1;;;11153:18:46;;;11146:47;11210:18;;16878:27:11;10893:341:46;16836:80:11;16926:25;;:::i;:::-;16987:13;;;;;17055;;;;17013:1;16987:22;;;16986:28;;:33;;;17055:22;;;17054:28;;:33;17173:38;;;17169:470;;17227:20;17250:44;17260:4;17266:7;17275;17284:9;:5;17292:1;17284:9;:::i;:::-;17250;:44::i;:::-;17227:67;;17313:17;17309:270;;;17394:44;;;;;;;;;;17399:15;17394:44;;;;17416:1;17394:44;;;;17419:12;17394:44;;;;17433:1;17394:44;;;;17436:1;17394:44;;;17378:60;;17309:270;;;17520:44;;;;;;;;;;17525:15;17520:44;;;;17542:12;17520:44;;;;17556:1;17520:44;;;;17559:1;17520:44;;;;17562:1;17520:44;;;17504:60;;17309:270;17599:29;17608:4;17614:13;17599:8;:29::i;:::-;17592:36;;;;;;;;17169:470;17653:17;17649:543;;;17702:216;;;;;;;;;;17735:15;17702:216;;;;17779:21;17792:7;17779:12;:21::i;:::-;17702:216;;;;17830:21;17843:7;17830:12;:21::i;:::-;17702:216;;;;17876:1;17702:216;;;;17902:1;17702:216;;;17686:232;;17649:543;;;17965:216;;;;;;;;;;17998:15;17965:216;;;;18042:21;18055:7;18042:12;:21::i;:::-;17965:216;;;;18093:21;18106:7;18093:12;:21::i;:::-;17965:216;;;;18139:1;17965:216;;;;18165:1;17965:216;;;17949:232;;17649:543;18202:23;18211:4;18217:7;18202:8;:23::i;:::-;;18242:29;18251:4;18257:13;18242:8;:29::i;:::-;18235:36;16538:1740;-1:-1:-1;;;;;;;;16538:1740:11:o;23670:367::-;23782:7;23811:16;23805:2;:22;;;;;;;;:::i;:::-;;23801:230;;-1:-1:-1;23850:18:11;;;;23843:25;;23801:230;23895:20;23889:2;:26;;;;;;;;:::i;:::-;;23885:146;;-1:-1:-1;23938:22:11;;;;23931:29;;23885:146;23991:29;;-1:-1:-1;;;23991:29:11;;11663:2:46;23991:29:11;;;11645:21:46;11702:2;11682:18;;;11675:30;-1:-1:-1;;;11721:18:46;;;11714:49;11780:18;;23991:29:11;11461:343:46;19157:540:11;19220:7;;19290:13;19273;;:30;;;;;;;;:::i;:::-;;19269:318;;19319:63;;;;;;;;;19347:10;;;19319:63;;19359:10;;;;19319:63;;;;19379:1;19319:63;;;;19407:31;;-1:-1:-1;;;19407:31:11;;:14;;:23;;:31;;19319:63;;19407:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19396:42;;19305:144;19269:318;;;19476:15;19459:13;;:32;;;;;;;;:::i;:::-;;19455:132;;19518:58;;;;;;;;19543:14;;;;;19518:58;;19559:15;;;;19518:58;;;;;;-1:-1:-1;;;19518:58:11;;:14;;:23;;:58;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:369:46:-;105:6;113;166:2;154:9;145:7;141:23;137:32;134:52;;;182:1;179;172:12;134:52;-1:-1:-1;;227:23:46;;;347:2;332:18;;;319:32;;-1:-1:-1;14:369:46:o;578:489::-;678:6;686;694;747:2;735:9;726:7;722:23;718:32;715:52;;;763:1;760;753:12;715:52;-1:-1:-1;;808:23:46;;;928:2;913:18;;900:32;;-1:-1:-1;1031:2:46;1016:18;;;1003:32;;578:489;-1:-1:-1;578:489:46:o;1168:1209::-;1351:2;1340:9;1333:21;1314:4;1392:3;1381:9;1377:19;1438:6;1432:13;1427:2;1416:9;1412:18;1405:41;1514:2;1506:6;1502:15;1496:22;1489:30;1482:38;1477:2;1466:9;1462:18;1455:66;1568:2;1560:6;1556:15;1550:22;1608:6;1603:2;1592:9;1588:18;1581:34;1635:6;1670:12;1664:19;1707:6;1699;1692:22;1745:3;1734:9;1730:19;1723:26;;1790:2;1776:12;1772:21;1758:35;;1811:1;1802:10;;1821:169;1835:6;1832:1;1829:13;1821:169;;;1902:6;1896:13;1891:3;1884:26;1939:2;1934:3;1930:12;1923:19;;1977:2;1969:6;1965:15;1955:25;;1857:1;1854;1850:9;1845:14;;1821:169;;;1825:3;2045:2;2037:6;2033:15;2027:22;2021:3;2010:9;2006:19;1999:51;2105:3;2097:6;2093:16;2087:23;2081:3;2070:9;2066:19;2059:52;2160:3;2152:6;2148:16;2142:23;2120:45;;2174:52;2221:3;2210:9;2206:19;2190:14;1142:13;1135:21;1123:34;;1072:91;2174:52;2281:3;2273:6;2269:16;2263:23;2257:3;2246:9;2242:19;2235:52;2345:3;2337:6;2333:16;2327:23;2318:6;2307:9;2303:22;2296:55;2368:3;2360:11;;;;;1168:1209;;;;:::o;2765:273::-;2969:3;2954:19;;2982:50;2958:9;3014:6;2467:5;2461:12;2456:3;2449:25;2523:4;2516:5;2512:16;2506:23;2499:4;2494:3;2490:14;2483:47;2579:4;2572:5;2568:16;2562:23;2555:4;2550:3;2546:14;2539:47;2635:4;2628:5;2624:16;2618:23;2611:4;2606:3;2602:14;2595:47;2691:4;2684:5;2680:16;2674:23;2667:4;2662:3;2658:14;2651:47;2747:4;2740:5;2736:16;2730:23;2723:4;2718:3;2714:14;2707:47;;;2382:378;3043:708;3303:2;3315:21;;;3385:13;;3288:18;;;3407:22;;;3255:4;;3486:15;;;3460:2;3445:18;;;3255:4;3529:196;3543:6;3540:1;3537:13;3529:196;;;3592:51;3639:3;3630:6;3624:13;2467:5;2461:12;2456:3;2449:25;2523:4;2516:5;2512:16;2506:23;2499:4;2494:3;2490:14;2483:47;2579:4;2572:5;2568:16;2562:23;2555:4;2550:3;2546:14;2539:47;2635:4;2628:5;2624:16;2618:23;2611:4;2606:3;2602:14;2595:47;2691:4;2684:5;2680:16;2674:23;2667:4;2662:3;2658:14;2651:47;2747:4;2740:5;2736:16;2730:23;2723:4;2718:3;2714:14;2707:47;;;2382:378;3592:51;3712:2;3700:15;;;;;3672:4;3663:14;;;;;3565:1;3558:9;3529:196;;;-1:-1:-1;3742:3:46;;3043:708;-1:-1:-1;;;;;3043:708:46:o;3756:249::-;3838:6;3891:2;3879:9;3870:7;3866:23;3862:32;3859:52;;;3907:1;3904;3897:12;3859:52;-1:-1:-1;3952:23:46;;3756:249;-1:-1:-1;3756:249:46:o;4010:610::-;4119:6;4127;4135;4143;4196:3;4184:9;4175:7;4171:23;4167:33;4164:53;;;4213:1;4210;4203:12;4164:53;-1:-1:-1;;4258:23:46;;;4378:2;4363:18;;4350:32;;-1:-1:-1;4481:2:46;4466:18;;4453:32;;4584:2;4569:18;4556:32;;-1:-1:-1;4010:610:46;-1:-1:-1;4010:610:46:o;4825:127::-;4886:10;4881:3;4877:20;4874:1;4867:31;4917:4;4914:1;4907:15;4941:4;4938:1;4931:15;4957:659;5166:13;;5143:3;5128:19;;;5205:1;5198:9;;5188:140;;5250:10;5245:3;5241:20;5238:1;5231:31;5285:4;5282:1;5275:15;5313:4;5310:1;5303:15;5188:140;5355:2;5344:9;5337:21;;5414:4;5406:6;5402:17;5396:24;5389:4;5378:9;5374:20;5367:54;5477:4;5469:6;5465:17;5459:24;5452:4;5441:9;5437:20;5430:54;5540:4;5532:6;5528:17;5522:24;5515:4;5504:9;5500:20;5493:54;5603:4;5595:6;5591:17;5585:24;5578:4;5567:9;5563:20;5556:54;4957:659;;;;:::o;7145:127::-;7206:10;7201:3;7197:20;7194:1;7187:31;7237:4;7234:1;7227:15;7261:4;7258:1;7251:15;7277:128;7344:9;;;7365:11;;;7362:37;;;7379:18;;:::i;7410:127::-;7471:10;7466:3;7462:20;7459:1;7452:31;7502:4;7499:1;7492:15;7526:4;7523:1;7516:15;7542:127;7603:10;7598:3;7594:20;7591:1;7584:31;7634:4;7631:1;7624:15;7658:4;7655:1;7648:15;7674:343;7876:2;7858:21;;;7915:2;7895:18;;;7888:30;-1:-1:-1;;;7949:2:46;7934:18;;7927:49;8008:2;7993:18;;7674:343::o;8368:135::-;8407:3;8428:17;;;8425:43;;8448:18;;:::i;:::-;-1:-1:-1;8495:1:46;8484:13;;8368:135::o;9567:127::-;9628:10;9623:3;9619:20;9616:1;9609:31;9659:4;9656:1;9649:15;9683:4;9680:1;9673:15;10763:125;10828:9;;;10849:10;;;10846:36;;;10862:18;;:::i;11239:217::-;11279:1;11305;11295:132;;11349:10;11344:3;11340:20;11337:1;11330:31;11384:4;11381:1;11374:15;11412:4;11409:1;11402:15;11295:132;-1:-1:-1;11441:9:46;;11239:217::o;11809:479::-;11997:2;11982:18;;11986:9;12077:6;11955:4;12111:171;12125:4;12122:1;12119:11;12111:171;;;12184:13;;12172:26;;12227:4;12218:14;;;;12255:17;;;;12145:1;12138:9;12111:171;;;12115:3;;;11809:479;;;;:::o;12293:184::-;12363:6;12416:2;12404:9;12395:7;12391:23;12387:32;12384:52;;;12432:1;12429;12422:12;12384:52;-1:-1:-1;12455:16:46;;12293:184;-1:-1:-1;12293:184:46:o;12482:479::-;12670:2;12655:18;;12659:9;12750:6;12628:4;12784:171;12798:4;12795:1;12792:11;12784:171;;;12857:13;;12845:26;;12900:4;12891:14;;;;12928:17;;;;12818:1;12811:9;12784:171;" + }, + "methodIdentifiers": { + "MAX_DEPTH_HARD_CAP()": "a751be24", + "ROOT_INFO_LIST_RETURN_LIMIT()": "40a73d98", + "addLeaf(SmtLib.Data storage,uint256,uint256)": "c1d29f01", + "getMaxDepth(SmtLib.Data storage)": "893f99f3", + "getNode(SmtLib.Data storage,uint256)": "e170cf6e", + "getProof(SmtLib.Data storage,uint256)": "5db40cda", + "getProofByBlock(SmtLib.Data storage,uint256,uint256)": "792a470f", + "getProofByRoot(SmtLib.Data storage,uint256,uint256)": "79c17a96", + "getProofByTime(SmtLib.Data storage,uint256,uint256)": "13827136", + "getRoot(SmtLib.Data storage)": "79f97125", + "getRootHistory(SmtLib.Data storage,uint256,uint256)": "21d60953", + "getRootHistoryLength(SmtLib.Data storage)": "62e8f215", + "getRootInfo(SmtLib.Data storage,uint256)": "dea7633a", + "getRootInfoByBlock(SmtLib.Data storage,uint256)": "dc9a7c8c", + "getRootInfoByTime(SmtLib.Data storage,uint256)": "17c850f0", + "getRootInfoListByRoot(SmtLib.Data storage,uint256,uint256,uint256)": "91761b75", + "getRootInfoListLengthByRoot(SmtLib.Data storage,uint256)": "0078f030", + "initialize(SmtLib.Data storage,uint256)": "9e43b813", + "isInitialized(SmtLib.Data storage)": "ec145108", + "rootExists(SmtLib.Data storage,uint256)": "92f5b06c", + "setMaxDepth(SmtLib.Data storage,uint256)": "0912610a" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MAX_DEPTH_HARD_CAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ROOT_INFO_LIST_RETURN_LIMIT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addLeaf(SmtLib.Data storage,uint256,uint256)\":{\"details\":\"Add a leaf to the SMT\",\"params\":{\"i\":\"Index of a leaf\",\"v\":\"Value of a leaf\"}},\"getMaxDepth(SmtLib.Data storage)\":{\"details\":\"Gets max depth of the SMT return max depth\"},\"getNode(SmtLib.Data storage,uint256)\":{\"details\":\"Get the SMT node by hash\",\"params\":{\"nodeHash\":\"Hash of a node\"},\"returns\":{\"_0\":\"A node struct\"}},\"getProof(SmtLib.Data storage,uint256)\":{\"details\":\"Get the proof if a node with specific index exists or not exists in the SMT.\",\"params\":{\"index\":\"A node index.\"},\"returns\":{\"_0\":\"SMT proof struct.\"}},\"getProofByBlock(SmtLib.Data storage,uint256,uint256)\":{\"details\":\"Get the proof if a node with specific index exists or not exists in the SMT by some historical block number.\",\"params\":{\"blockNumber\":\"The latest block number to get proof for.\",\"index\":\"Node index.\"},\"returns\":{\"_0\":\"Proof struct.\"}},\"getProofByRoot(SmtLib.Data storage,uint256,uint256)\":{\"details\":\"Get the proof if a node with specific index exists or not exists in the SMT for some historical tree state.\",\"params\":{\"historicalRoot\":\"Historical SMT roof to get proof for.\",\"index\":\"A node index\"},\"returns\":{\"_0\":\"Proof struct.\"}},\"getProofByTime(SmtLib.Data storage,uint256,uint256)\":{\"details\":\"Get the proof if a node with specific index exists or not exists in the SMT by some historical timestamp.\",\"params\":{\"index\":\"Node index.\",\"timestamp\":\"The latest timestamp to get proof for.\"},\"returns\":{\"_0\":\"Proof struct.\"}},\"getRootHistory(SmtLib.Data storage,uint256,uint256)\":{\"details\":\"Get SMT root history\",\"params\":{\"length\":\"history length\",\"startIndex\":\"start index of history\"},\"returns\":{\"_0\":\"array of RootEntryInfo structs\"}},\"getRootHistoryLength(SmtLib.Data storage)\":{\"details\":\"Get SMT root history length\",\"returns\":{\"_0\":\"SMT history length\"}},\"getRootInfo(SmtLib.Data storage,uint256)\":{\"details\":\"Returns root info by root\",\"params\":{\"root\":\"root\"},\"returns\":{\"_0\":\"Root info struct\"}},\"getRootInfoByBlock(SmtLib.Data storage,uint256)\":{\"details\":\"Get root info by some historical block number.\",\"params\":{\"blockN\":\"The latest block number to get the root info for.\"},\"returns\":{\"_0\":\"Root info struct\"}},\"getRootInfoByTime(SmtLib.Data storage,uint256)\":{\"details\":\"Get root info by some historical timestamp.\",\"params\":{\"timestamp\":\"The latest timestamp to get the root info for.\"},\"returns\":{\"_0\":\"Root info struct\"}},\"getRootInfoListByRoot(SmtLib.Data storage,uint256,uint256,uint256)\":{\"details\":\"Retrieve root infos list of duplicated root by id and state. If the root repeats more that once, the length list may be greater than 1.\",\"params\":{\"length\":\"The length of the list.\",\"root\":\"A root.\",\"startIndex\":\"The index to start the list.\"},\"returns\":{\"_0\":\"Root Root entries quantity.\"}},\"getRootInfoListLengthByRoot(SmtLib.Data storage,uint256)\":{\"details\":\"Retrieve duplicate root quantity by id and state. If the root repeats more that once, the length may be greater than 1.\",\"params\":{\"root\":\"A root.\"},\"returns\":{\"_0\":\"Root root entries quantity.\"}},\"initialize(SmtLib.Data storage,uint256)\":{\"details\":\"Initialize SMT with max depth and root entry of an empty tree.\",\"params\":{\"maxDepth\":\"Max depth of the SMT.\"}},\"rootExists(SmtLib.Data storage,uint256)\":{\"details\":\"Checks if root exists\",\"params\":{\"root\":\"root return true if root exists\"}},\"setMaxDepth(SmtLib.Data storage,uint256)\":{\"details\":\"Sets max depth of the SMT\",\"params\":{\"maxDepth\":\"max depth\"}}},\"stateVariables\":{\"MAX_DEPTH_HARD_CAP\":{\"details\":\"Max depth hard cap for SMT We can't use depth > 256 because of bits number limitation in the uint256 data type.\"},\"ROOT_INFO_LIST_RETURN_LIMIT\":{\"details\":\"Max return array length for SMT root history requests\"}},\"title\":\"A sparse merkle tree implementation, which keeps tree history.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@iden3/contracts/lib/SmtLib.sol\":\"SmtLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/lib/ArrayUtils.sol\":{\"keccak256\":\"0x7c5e3f9c56e8e80811db1f1336a1e37c657947f44687451e5a1d6bd12e9e6141\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c9497d8d8fe9fc2b2c9d61bbdfa5a4eb881ddf8948bbc099024e5026fadd6846\",\"dweb:/ipfs/Qmczkk8FLcxpM91ZAWpixowBEdq64YVLke3ZqVDt3NkYiT\"]},\"@iden3/contracts/lib/Poseidon.sol\":{\"keccak256\":\"0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539\",\"dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc\"]},\"@iden3/contracts/lib/SmtLib.sol\":{\"keccak256\":\"0x9c67be9b7d045ded48a63bd827a5bdc3f2255c68f9640bae41eef074640f1779\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f2b2452120f5b2b2c5589fcf58183f7d800d3f8a2c202ebdc3b69815bcfb2aa\",\"dweb:/ipfs/QmbnvLnfJaKL3eqt1CfXofsiLJ7G3nYTawUEqGpCazWbrQ\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol": { + "Ownable2StepUpgradeable": { + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferStarted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "acceptOwnership()": "79ba5097", + "owner()": "8da5cb5b", + "pendingOwner()": "e30c3978", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. This extension of the {Ownable} contract includes a two-step mechanism to transfer ownership, where the new owner must call {acceptOwnership} in order to replace the old one. This can help prevent common mistakes, such as transfers of ownership to incorrect accounts, or to contracts that are unable to interact with the permission system. The initial owner is specified at deployment time in the constructor for `Ownable`. This can later be changed with {transferOwnership} and {acceptOwnership}. This module is used through inheritance. It will make available all functions from parent (Ownable).\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":\"Ownable2StepUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol": { + "OwnableUpgradeable": { + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "owner()": "8da5cb5b", + "renounceOwnership()": "715018a6", + "transferOwnership(address)": "f2fde38b" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. The initial owner is set to the address provided by the deployer. This can later be changed with {transferOwnership}. This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":\"OwnableUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol": { + "Initializable": { + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"details\":\"This is a base contract to aid in writing upgradeable contracts, or any kind of contract that will be deployed behind a proxy. Since proxied contracts do not make use of a constructor, it's common to move constructor logic to an external initializer function, usually called `initialize`. It then becomes necessary to protect this initializer function so it can only be called once. The {initializer} modifier provided by this contract will have this effect. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` TIP: To avoid leaving the proxy in an uninitialized state, the initializer function should be called as early as possible by providing the encoded function call as the `_data` argument to {ERC1967Proxy-constructor}. CAUTION: When used with inheritance, manual care must be taken to not invoke a parent initializer twice, or to ensure that all initializers are idempotent. This is not verified automatically as constructors are by Solidity. [CAUTION] ==== Avoid leaving a contract uninitialized. An uninitialized contract can be taken over by an attacker. This applies to both a proxy and its implementation contract, which may impact the proxy. To prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol": { + "ContextUpgradeable": { + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Provides information about the current execution context, including the sender of the transaction and its data. While these are generally available via msg.sender and msg.data, they should not be accessed in such a direct manner, since when dealing with meta-transactions the account sending and paying for execution may not be the actual sender (as far as an application is concerned). This contract is only required for intermediate, library-like contracts.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":\"ContextUpgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol": { + "EIP712Upgradeable": { + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "eip712Domain()": "84b0196e" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"https://eips.ethereum.org/EIPS/eip-712[EIP-712] is a standard for hashing and signing of typed structured data. The encoding scheme specified in the EIP requires a domain separator and a hash of the typed structured data, whose encoding is very generic and therefore its implementation in Solidity is not feasible, thus this contract does not implement the encoding itself. Protocols need to implement the type-specific encoding they need in order to produce the hash of their typed data using a combination of `abi.encode` and `keccak256`. This contract implements the EIP-712 domain separator ({_domainSeparatorV4}) that is used as part of the encoding scheme, and the final step of the encoding to obtain the message digest that is then signed via ECDSA ({_hashTypedDataV4}). The implementation of the domain separator was designed to be as efficient as possible while still properly updating the chain id to protect against replay attacks on an eventual fork of the chain. NOTE: This contract implements the version of the encoding known as \\\"v4\\\", as implemented by the JSON RPC method https://docs.metamask.io/guide/signing-data.html[`eth_signTypedDataV4` in MetaMask]. NOTE: In the upgradeable version of this contract, the cached values will correspond to the address, and the domain separator of the implementation contract. This will cause the {_domainSeparatorV4} function to always rebuild the separator from the immutable values, which is cheaper than accessing a cached version in cold storage.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol\":\"EIP712Upgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0xd45a5b1d0e451376b08e1bc7e332426c24382053300acf0ac667be1b8abb6cc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://824eb0b8c71db8b95b707218d8540c2046a2fefc642e74b343ae90e5c72e2b52\",\"dweb:/ipfs/QmdQTZTomqxRrySDNdv1FEyh3ZWibxwC9FRdcV3DCuASpx\"]},\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/interfaces/IERC5267.sol": { + "IERC5267": { + "abi": [ + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "eip712Domain()": "84b0196e" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"}},\"kind\":\"dev\",\"methods\":{\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/IERC5267.sol\":\"IERC5267\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/Arrays.sol": { + "Arrays": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cfca1b81126439eac8e679148546247fb522df578861cd2357684021b82247f964736f6c634300081b0033", + "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 0xCF 0xCA SHL DUP2 SLT PUSH5 0x39EAC8E679 EQ DUP6 CHAINID 0x24 PUSH32 0xB522DF578861CD2357684021B82247F964736F6C634300081B00330000000000 ", + "sourceMap": "459:17878:18:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;459:17878:18;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cfca1b81126439eac8e679148546247fb522df578861cd2357684021b82247f964736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCF 0xCA SHL DUP2 SLT PUSH5 0x39EAC8E679 EQ DUP6 CHAINID 0x24 PUSH32 0xB522DF578861CD2357684021B82247F964736F6C634300081B00330000000000 ", + "sourceMap": "459:17878:18:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to array types.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Arrays.sol\":\"Arrays\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x55a4fdb408e3db950b48f4a6131e538980be8c5f48ee59829d92d66477140cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e1ad251e692822ce1494135a4ecb5b97c19b90aa82418fd2959ce32017953fd\",\"dweb:/ipfs/QmT6N7mf6heZYhY2BAQ5kwZp9o3SXzGVdkMqUszx67WRDN\"]},\"@openzeppelin/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/Comparators.sol": { + "Comparators": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122030d32b487b64e7bb940925acbe0cec2abaab0fe21db482dd0bf179158ee42b2264736f6c634300081b0033", + "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 ADDRESS 0xD3 0x2B BASEFEE PUSH28 0x64E7BB940925ACBE0CEC2ABAAB0FE21DB482DD0BF179158EE42B2264 PUSH20 0x6F6C634300081B00330000000000000000000000 ", + "sourceMap": "224:218:19:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;224:218:19;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122030d32b487b64e7bb940925acbe0cec2abaab0fe21db482dd0bf179158ee42b2264736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ADDRESS 0xD3 0x2B BASEFEE PUSH28 0x64E7BB940925ACBE0CEC2ABAAB0FE21DB482DD0BF179158EE42B2264 PUSH20 0x6F6C634300081B00330000000000000000000000 ", + "sourceMap": "224:218:19:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Provides a set of functions to compare values. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Comparators.sol\":\"Comparators\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/Panic.sol": { + "Panic": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cebe40d49468f4eea75f3ed3b43bd0a1573e3acdb9858c097754b7173807b75364736f6c634300081b0033", + "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 0xCE 0xBE BLOCKHASH 0xD4 SWAP5 PUSH9 0xF4EEA75F3ED3B43BD0 LOG1 JUMPI RETURNDATACOPY GASPRICE 0xCD 0xB9 DUP6 DUP13 MULMOD PUSH24 0x54B7173807B75364736F6C634300081B0033000000000000 ", + "sourceMap": "657:1315:20:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;657:1315:20;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cebe40d49468f4eea75f3ed3b43bd0a1573e3acdb9858c097754b7173807b75364736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCE 0xBE BLOCKHASH 0xD4 SWAP5 PUSH9 0xF4EEA75F3ED3B43BD0 LOG1 JUMPI RETURNDATACOPY GASPRICE 0xCD 0xB9 DUP6 DUP13 MULMOD PUSH24 0x54B7173807B75364736F6C634300081B0033000000000000 ", + "sourceMap": "657:1315:20:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Helper library for emitting standardized panic codes. ```solidity contract Example { using Panic for uint256; // Use any of the declared internal constants function foo() { Panic.GENERIC.panic(); } // Alternatively function foo() { Panic.panic(Panic.GENERIC); } } ``` Follows the list from https://github.com/ethereum/solidity/blob/v0.8.24/libsolutil/ErrorCodes.h[libsolutil]. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"stateVariables\":{\"ARRAY_OUT_OF_BOUNDS\":{\"details\":\"array out of bounds access\"},\"ASSERT\":{\"details\":\"used by the assert() builtin\"},\"DIVISION_BY_ZERO\":{\"details\":\"division or modulo by zero\"},\"EMPTY_ARRAY_POP\":{\"details\":\"empty array pop\"},\"ENUM_CONVERSION_ERROR\":{\"details\":\"enum conversion error\"},\"GENERIC\":{\"details\":\"generic / unspecified error\"},\"INVALID_INTERNAL_FUNCTION\":{\"details\":\"calling invalid internal function\"},\"RESOURCE_ERROR\":{\"details\":\"resource error (too large allocation or too large array)\"},\"STORAGE_ENCODING_ERROR\":{\"details\":\"invalid encoding in storage\"},\"UNDER_OVERFLOW\":{\"details\":\"arithmetic underflow or overflow\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Panic.sol\":\"Panic\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/SlotDerivation.sol": { + "SlotDerivation": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cc3b563bce080e73bd6a1e9b10922264765dfc0ef12e0e298363cf853c78405964736f6c634300081b0033", + "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 0xCC EXTCODESIZE JUMP EXTCODESIZE 0xCE ADDMOD 0xE PUSH20 0xBD6A1E9B10922264765DFC0EF12E0E298363CF85 EXTCODECOPY PUSH25 0x405964736F6C634300081B0033000000000000000000000000 ", + "sourceMap": "1599:3723:21:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1599:3723:21;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cc3b563bce080e73bd6a1e9b10922264765dfc0ef12e0e298363cf853c78405964736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xCC EXTCODESIZE JUMP EXTCODESIZE 0xCE ADDMOD 0xE PUSH20 0xBD6A1E9B10922264765DFC0EF12E0E298363CF85 EXTCODECOPY PUSH25 0x405964736F6C634300081B0033000000000000000000000000 ", + "sourceMap": "1599:3723:21:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for computing storage (and transient storage) locations from namespaces and deriving slots corresponding to standard patterns. The derivation method for array and mapping matches the storage layout used by the solidity language / compiler. See https://docs.soliditylang.org/en/v0.8.20/internals/layout_in_storage.html#mappings-and-dynamic-arrays[Solidity docs for mappings and dynamic arrays.]. Example usage: ```solidity contract Example { // Add the library methods using StorageSlot for bytes32; using SlotDerivation for bytes32; // Declare a namespace string private constant _NAMESPACE = \\\"\\\"; // eg. OpenZeppelin.Slot function setValueInNamespace(uint256 key, address newValue) internal { _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value = newValue; } function getValueInNamespace(uint256 key) internal view returns (address) { return _NAMESPACE.erc7201Slot().deriveMapping(key).getAddressSlot().value; } } ``` TIP: Consider using this library along with {StorageSlot}. NOTE: This library provides a way to manipulate storage locations in a non-standard way. Tooling for checking upgrade safety will ignore the slots accessed through this library. _Available since v5.1._\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/SlotDerivation.sol\":\"SlotDerivation\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/StorageSlot.sol": { + "StorageSlot": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220368110306dfd3194be728c797e3185da226c927b9abd70c13127604e8065fd3c64736f6c634300081b0033", + "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 CALLDATASIZE DUP2 LT ADDRESS PUSH14 0xFD3194BE728C797E3185DA226C92 PUSH28 0x9ABD70C13127604E8065FD3C64736F6C634300081B00330000000000 ", + "sourceMap": "1407:2774:22:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1407:2774:22;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220368110306dfd3194be728c797e3185da226c927b9abd70c13127604e8065fd3c64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATASIZE DUP2 LT ADDRESS PUSH14 0xFD3194BE728C797E3185DA226C92 PUSH28 0x9ABD70C13127604E8065FD3C64736F6C634300081B00330000000000 ", + "sourceMap": "1407:2774:22:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for reading and writing primitive types to specific storage slots. Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. This library helps with reading and writing to such slots without the need for inline assembly. The functions in this library return Slot structs that contain a `value` member that can be used to read or write. Example usage to set ERC-1967 implementation slot: ```solidity contract ERC1967 { // Define the slot. Alternatively, use the SlotDerivation library to derive the slot. bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; function _getImplementation() internal view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } function _setImplementation(address newImplementation) internal { require(newImplementation.code.length > 0); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; } } ``` TIP: Consider using this library along with {SlotDerivation}.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":\"StorageSlot\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/Strings.sol": { + "Strings": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "StringsInsufficientHexLength", + "type": "error" + }, + { + "inputs": [], + "name": "StringsInvalidAddressFormat", + "type": "error" + }, + { + "inputs": [], + "name": "StringsInvalidChar", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220446af116a2a91fe00e3554f614b4d6bff23d6e9e966ba802552d64d935409eac64736f6c634300081b0033", + "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 PREVRANDAO PUSH11 0xF116A2A91FE00E3554F614 0xB4 0xD6 0xBF CALLCODE RETURNDATASIZE PUSH15 0x9E966BA802552D64D935409EAC6473 PUSH16 0x6C634300081B00330000000000000000 ", + "sourceMap": "297:18980:23:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;297:18980:23;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220446af116a2a91fe00e3554f614b4d6bff23d6e9e966ba802552d64d935409eac64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PREVRANDAO PUSH11 0xF116A2A91FE00E3554F614 0xB4 0xD6 0xBF CALLCODE RETURNDATASIZE PUSH15 0x9E966BA802552D64D935409EAC6473 PUSH16 0x6C634300081B00330000000000000000 ", + "sourceMap": "297:18980:23:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StringsInvalidAddressFormat\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StringsInvalidChar\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}],\"StringsInvalidAddressFormat()\":[{\"details\":\"The string being parsed is not a properly formatted address.\"}],\"StringsInvalidChar()\":[{\"details\":\"The string being parsed contains characters that are not in scope of the given base.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { + "ECDSA": { + "abi": [ + { + "inputs": [], + "name": "ECDSAInvalidSignature", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "ECDSAInvalidSignatureLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "ECDSAInvalidSignatureS", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fa5d213308be9170a2a5c03b099eb0a230297de5999b9e398f39b758f8f9c44b64736f6c634300081b0033", + "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 STATICCALL TSTORE 0x21 CALLER ADDMOD 0xBE SWAP2 PUSH17 0xA2A5C03B099EB0A230297DE5999B9E398F CODECOPY 0xB7 PC 0xF8 0xF9 0xC4 0x4B PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "344:7470:24:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;344:7470:24;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fa5d213308be9170a2a5c03b099eb0a230297de5999b9e398f39b758f8f9c44b64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 STATICCALL TSTORE 0x21 CALLER ADDMOD 0xBE SWAP2 PUSH17 0xA2A5C03B099EB0A230297DE5999B9E398F CODECOPY 0xB7 PC 0xF8 0xF9 0xC4 0x4B PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "344:7470:24:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { + "MessageHashUtils": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220322c7821a4456fdd1359c7a5fee304836e03724757ed5ef21e641595df9a3f8264736f6c634300081b0033", + "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 ORIGIN 0x2C PUSH25 0x21A4456FDD1359C7A5FEE304836E03724757ED5EF21E641595 0xDF SWAP11 EXTCODEHASH DUP3 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "521:3729:25:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;521:3729:25;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220322c7821a4456fdd1359c7a5fee304836e03724757ed5ef21e641595df9a3f8264736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 ORIGIN 0x2C PUSH25 0x21A4456FDD1359C7A5FEE304836E03724757ED5EF21E641595 0xDF SWAP11 EXTCODEHASH DUP3 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "521:3729:25:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing. The library provides methods for generating a hash of a message that conforms to the https://eips.ethereum.org/EIPS/eip-191[ERC-191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712] specifications.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":\"MessageHashUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/introspection/ERC165.sol": { + "ERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts that want to implement ERC-165 should inherit from this contract and override {supportsInterface} to check for the additional interface id that will be supported. For example: ```solidity function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); } ```\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/introspection/IERC165.sol": { + "IERC165": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "supportsInterface(bytes4)": "01ffc9a7" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC-165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[ERC]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[ERC section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":\"IERC165\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/math/Math.sol": { + "Math": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e4a9e200f58e462698b794f3c614815691b6fe64de894b7ac9135e20f137282064736f6c634300081b0033", + "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 0xE4 0xA9 0xE2 STOP CREATE2 DUP15 CHAINID 0x26 SWAP9 0xB7 SWAP5 RETURN 0xC6 EQ DUP2 JUMP SWAP2 0xB6 INVALID PUSH5 0xDE894B7AC9 SGT MCOPY KECCAK256 CALL CALLDATACOPY 0x28 KECCAK256 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "281:31863:28:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;281:31863:28;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e4a9e200f58e462698b794f3c614815691b6fe64de894b7ac9135e20f137282064736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE4 0xA9 0xE2 STOP CREATE2 DUP15 CHAINID 0x26 SWAP9 0xB7 SWAP5 RETURN 0xC6 EQ DUP2 JUMP SWAP2 0xB6 INVALID PUSH5 0xDE894B7AC9 SGT MCOPY KECCAK256 CALL CALLDATACOPY 0x28 KECCAK256 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "281:31863:28:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/math/SafeCast.sol": { + "SafeCast": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint8", + "name": "bits", + "type": "uint8" + }, + { + "internalType": "int256", + "name": "value", + "type": "int256" + } + ], + "name": "SafeCastOverflowedIntDowncast", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "int256", + "name": "value", + "type": "int256" + } + ], + "name": "SafeCastOverflowedIntToUint", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "bits", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "SafeCastOverflowedUintDowncast", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "SafeCastOverflowedUintToInt", + "type": "error" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209cb9a6abeec825f6bbc58223d0da4f96cdc91cab8b22351cb03cad252044b50f64736f6c634300081b0033", + "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 SWAP13 0xB9 0xA6 0xAB 0xEE 0xC8 0x25 0xF6 0xBB 0xC5 DUP3 0x23 0xD0 0xDA 0x4F SWAP7 0xCD 0xC9 SHR 0xAB DUP12 0x22 CALLDATALOAD SHR 0xB0 EXTCODECOPY 0xAD 0x25 KECCAK256 PREVRANDAO 0xB5 0xF PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "769:34173:29:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;769:34173:29;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209cb9a6abeec825f6bbc58223d0da4f96cdc91cab8b22351cb03cad252044b50f64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP13 0xB9 0xA6 0xAB 0xEE 0xC8 0x25 0xF6 0xBB 0xC5 DUP3 0x23 0xD0 0xDA 0x4F SWAP7 0xCD 0xC9 SHR 0xAB DUP12 0x22 CALLDATALOAD SHR 0xB0 EXTCODECOPY 0xAD 0x25 KECCAK256 PREVRANDAO 0xB5 0xF PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "769:34173:29:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"int256\",\"name\":\"value\",\"type\":\"int256\"}],\"name\":\"SafeCastOverflowedIntToUint\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"bits\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintDowncast\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"SafeCastOverflowedUintToInt\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Wrappers over Solidity's uintXX/intXX/bool casting operators with added overflow checks. Downcasting from uint256/int256 in Solidity does not revert on overflow. This can easily result in undesired exploitation or bugs, since developers usually assume that overflows raise errors. `SafeCast` restores this intuition by reverting the transaction when such an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"errors\":{\"SafeCastOverflowedIntDowncast(uint8,int256)\":[{\"details\":\"Value doesn't fit in an int of `bits` size.\"}],\"SafeCastOverflowedIntToUint(int256)\":[{\"details\":\"An int value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintDowncast(uint8,uint256)\":[{\"details\":\"Value doesn't fit in an uint of `bits` size.\"}],\"SafeCastOverflowedUintToInt(uint256)\":[{\"details\":\"An uint value doesn't fit in an int of `bits` size.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":\"SafeCast\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/math/SignedMath.sol": { + "SignedMath": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220952ef2c9829c2ccbd088b94ccd73a4e7b142eb2845f109198feb363ea8df4f5564736f6c634300081b0033", + "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 SWAP6 0x2E CALLCODE 0xC9 DUP3 SWAP13 0x2C 0xCB 0xD0 DUP9 0xB9 0x4C 0xCD PUSH20 0xA4E7B142EB2845F109198FEB363EA8DF4F556473 PUSH16 0x6C634300081B00330000000000000000 ", + "sourceMap": "258:2354:30:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;258:2354:30;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220952ef2c9829c2ccbd088b94ccd73a4e7b142eb2845f109198feb363ea8df4f5564736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP6 0x2E CALLCODE 0xC9 DUP3 SWAP13 0x2C 0xCB 0xD0 DUP9 0xB9 0x4C 0xCD PUSH20 0xA4E7B142EB2845F109198FEB363EA8DF4F556473 PUSH16 0x6C634300081B00330000000000000000 ", + "sourceMap": "258:2354:30:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@openzeppelin/contracts/utils/structs/EnumerableSet.sol": { + "EnumerableSet": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208ad90b39ebca98905d64a36afb0ac2a169139c96a1ea2a8080cccc1b73cc096e64736f6c634300081b0033", + "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 DUP11 0xD9 SIGNEXTEND CODECOPY 0xEB 0xCA SWAP9 SWAP1 TSTORE PUSH5 0xA36AFB0AC2 LOG1 PUSH10 0x139C96A1EA2A8080CCCC SHL PUSH20 0xCC096E64736F6C634300081B0033000000000000 ", + "sourceMap": "1425:13298:31:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1425:13298:31;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208ad90b39ebca98905d64a36afb0ac2a169139c96a1ea2a8080cccc1b73cc096e64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 DUP11 0xD9 SIGNEXTEND CODECOPY 0xEB 0xCA SWAP9 SWAP1 TSTORE PUSH5 0xA36AFB0AC2 LOG1 PUSH10 0x139C96A1EA2A8080CCCC SHL PUSH20 0xCC096E64736F6C634300081B0033000000000000 ", + "sourceMap": "1425:13298:31:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. - Set can be cleared (all elements removed) in O(n). ```solidity contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported. [WARNING] ==== Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable. See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet. ====\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x55a4fdb408e3db950b48f4a6131e538980be8c5f48ee59829d92d66477140cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e1ad251e692822ce1494135a4ecb5b97c19b90aa82418fd2959ce32017953fd\",\"dweb:/ipfs/QmT6N7mf6heZYhY2BAQ5kwZp9o3SXzGVdkMqUszx67WRDN\"]},\"@openzeppelin/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xecd5f3c702f549fb88555e44e5f2415a4dfd6db09081aec7e98c26b6a3739c06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed40e907a6d80458a0556a609d0d3991d718c20f9f1f21475e5ec739af523231\",\"dweb:/ipfs/QmejkwADsZRxkusNU94sswMJfpLrbq8RkJTbNccUEQpc7Y\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "@quant-finance/solidity-datetime/contracts/DateTime.sol": { + "DateTime": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203c7a70730e9471338ccb1e02f917dd809e6ba1088e52445c84c3c075eb2ad14c64736f6c634300081b0033", + "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 EXTCODECOPY PUSH27 0x70730E9471338CCB1E02F917DD809E6BA1088E52445C84C3C075EB 0x2A 0xD1 0x4C PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "928:13273:32:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;928:13273:32;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203c7a70730e9471338ccb1e02f917dd809e6ba1088e52445c84c3c075eb2ad14c64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 EXTCODECOPY PUSH27 0x70730E9471338CCB1E02F917DD809E6BA1088E52445C84C3C075EB 0x2A 0xD1 0x4C PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "928:13273:32:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@quant-finance/solidity-datetime/contracts/DateTime.sol\":\"DateTime\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@quant-finance/solidity-datetime/contracts/DateTime.sol\":{\"keccak256\":\"0x3e6031d05cd13aa1ea1bcaf59d6a4b20054ddc18a86514e44e66cd4ed4dc4445\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ce88e00d8a888f45bcf3ef95df7bcf8b90b97e4465b0427ba3407e3d19dc931\",\"dweb:/ipfs/QmWwtMzN9fpxWF3RvhzsPFjQCsmiKhWV7LMKngKj5Xu3ne\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/constants/CircuitConstants.sol": { + "CircuitConstants": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203e3720b377a5acd05c160baeaf8c29f523856b9017c97534fd71a6fc870c691564736f6c634300081b0033", + "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 RETURNDATACOPY CALLDATACOPY KECCAK256 0xB3 PUSH24 0xA5ACD05C160BAEAF8C29F523856B9017C97534FD71A6FC87 0xC PUSH10 0x1564736F6C634300081B STOP CALLER ", + "sourceMap": "323:1422:33:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;323:1422:33;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203e3720b377a5acd05c160baeaf8c29f523856b9017c97534fd71a6fc870c691564736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 RETURNDATACOPY CALLDATACOPY KECCAK256 0xB3 PUSH24 0xA5ACD05C160BAEAF8C29F523856B9017C97534FD71A6FC87 0xC PUSH10 0x1564736F6C634300081B STOP CALLER ", + "sourceMap": "323:1422:33:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"These indices map directly to specific data fields in the corresponding circuits proofs.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"Circuit Constants Library\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This library defines constants representing indices used to access public signals of various circuits.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/constants/CircuitConstants.sol\":\"CircuitConstants\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/constants/CircuitConstants.sol\":{\"keccak256\":\"0x5bbc800b86d3fbdc49c1c623edc2c0d2ae78b39a4c73aa44151bc1e197ba2932\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d1f3eda9b0821649efd7ab5404bece757779ce38fd56ea7cd7d328bb64aaa98a\",\"dweb:/ipfs/QmdP5NBDHd3Q3eWW4thiT9UJmjjzr4QRXZ2pR3MRBL2mz6\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/interfaces/IAnonAadhaarCircuitVerifier.sol": { + "IAnonAadhaarCircuitVerifier": { + "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[12]", + "name": "pubSignals", + "type": "uint256[12]" + } + ], + "name": "verifyProof", + "outputs": [ + { + "internalType": "bool", + "name": "isValid", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[12])": "8cbac0fa" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"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[12]\",\"name\":\"pubSignals\",\"type\":\"uint256[12]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This interface defines the structure of an AnonAadhaar circuit proof and exposes a function to verify such proofs.\",\"kind\":\"dev\",\"methods\":{\"verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[12])\":{\"details\":\"This function checks the validity of the provided proof parameters.\",\"params\":{\"a\":\"The 'a' component of the proof.\",\"b\":\"The 'b' component of the proof.\",\"c\":\"The 'c' component of the proof.\",\"pubSignals\":\"The public signals associated with the proof.\"},\"returns\":{\"isValid\":\"A boolean value indicating whether the provided proof is valid (true) or not (false).\"}}},\"title\":\"IAnonAadhaarCircuitVerifier\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[12])\":{\"notice\":\"Verifies a given AnonAadhaar circuit proof.\"}},\"notice\":\"Interface for verifying AnonAadhaar circuit proofs.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IAnonAadhaarCircuitVerifier.sol\":\"IAnonAadhaarCircuitVerifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IAnonAadhaarCircuitVerifier.sol\":{\"keccak256\":\"0x1c070e9eaede49926900fa6a880f69f6be689a0e83a436384fb36dc61bd3baad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2db04d475a20ecb3157df8e78e5241076ca250e776c5f0adf1f3f7ce34b051bf\",\"dweb:/ipfs/QmWtz5THuYEd7kptfm3PZ4Lbr2jRLBpdhtckL7i6XRStAR\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/interfaces/IAttestationValidator.sol": { + "IAttestationValidator": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes", + "name": "attestation", + "type": "bytes" + } + ], + "name": "parseAttestation", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "tag", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "bytes", + "name": "protectedHeader", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "unprotectedHeader", + "type": "bytes" + }, + { + "components": [ + { + "internalType": "string", + "name": "moduleId", + "type": "string" + }, + { + "internalType": "string", + "name": "digest", + "type": "string" + }, + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + }, + { + "internalType": "bytes[]", + "name": "pcrs", + "type": "bytes[]" + }, + { + "internalType": "bytes", + "name": "certificate", + "type": "bytes" + }, + { + "internalType": "bytes[]", + "name": "cabundle", + "type": "bytes[]" + }, + { + "internalType": "bytes", + "name": "publicKey", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "userData", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "nonce", + "type": "bytes" + } + ], + "internalType": "struct IAttestationValidator.Payload", + "name": "payload", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "rawPayload", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "imageHash", + "type": "bytes32" + } + ], + "internalType": "struct IAttestationValidator.AttestationValue", + "name": "value", + "type": "tuple" + } + ], + "internalType": "struct IAttestationValidator.Attestation", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract ICertificatesValidator", + "name": "validator", + "type": "address" + } + ], + "name": "setCertificatesValidator", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "attestation", + "type": "bytes" + } + ], + "name": "validateAttestation", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "imageHash", + "type": "bytes32" + }, + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "parseAttestation(bytes)": "f3808b76", + "setCertificatesValidator(address)": "7a161959", + "validateAttestation(bytes)": "4cc3a4a5", + "version()": "54fd4d50" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"attestation\",\"type\":\"bytes\"}],\"name\":\"parseAttestation\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"tag\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bytes\",\"name\":\"protectedHeader\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"unprotectedHeader\",\"type\":\"bytes\"},{\"components\":[{\"internalType\":\"string\",\"name\":\"moduleId\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"digest\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"pcrs\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes\",\"name\":\"certificate\",\"type\":\"bytes\"},{\"internalType\":\"bytes[]\",\"name\":\"cabundle\",\"type\":\"bytes[]\"},{\"internalType\":\"bytes\",\"name\":\"publicKey\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"userData\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"nonce\",\"type\":\"bytes\"}],\"internalType\":\"struct IAttestationValidator.Payload\",\"name\":\"payload\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"rawPayload\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"imageHash\",\"type\":\"bytes32\"}],\"internalType\":\"struct IAttestationValidator.AttestationValue\",\"name\":\"value\",\"type\":\"tuple\"}],\"internalType\":\"struct IAttestationValidator.Attestation\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ICertificatesValidator\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"setCertificatesValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"attestation\",\"type\":\"bytes\"}],\"name\":\"validateAttestation\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"},{\"internalType\":\"bytes32\",\"name\":\"imageHash\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"IAttestationValidator. Interface for verification of attestations.\",\"kind\":\"dev\",\"methods\":{\"parseAttestation(bytes)\":{\"details\":\"Parse the attestation data and return the parsed data\",\"params\":{\"attestation\":\"The attestation bytes data\"}},\"setCertificatesValidator(address)\":{\"details\":\"Set certificates validator\",\"params\":{\"validator\":\"- certificates validator\"}},\"validateAttestation(bytes)\":{\"details\":\"Validates the attestation\",\"params\":{\"attestation\":\"bytes for the attestation\"},\"returns\":{\"_0\":\"User data fields and a boolean indicating if the attestation is valid\"}},\"version()\":{\"details\":\"Get version of the contract\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/IAttestationValidator.sol\":\"IAttestationValidator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/IAttestationValidator.sol\":{\"keccak256\":\"0xf40e9a3b6a82c21e8b25633bc3a72952a4b6d48fd0da32ae1ad0d32084434528\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9ac45a1dd1fa838f312a7f76cdabd4d38256cd493922f22db1887d96ba927153\",\"dweb:/ipfs/QmV7nEmQYTMRbKbhDWL37LGiKGd13Yt7zSgAD8KUzG3czg\"]},\"contracts/interfaces/ICertificatesValidator.sol\":{\"keccak256\":\"0x756669e7a268cb0c810e2149fe2d710e21936b0ffb2bc09121db10d647b0711e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://61ad0c55851ecabc69ab88577753a1124611400c22a128c0574b1060d531d107\",\"dweb:/ipfs/QmSRzY4Qg9JD8nagkpt5qn8ivyRewYqZhcmzV7AZ1njVKa\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/interfaces/ICertificatesValidator.sol": { + "ICertificatesValidator": { + "abi": [ + { + "inputs": [ + { + "internalType": "bytes", + "name": "subjectCertificate", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "issuerCertificate", + "type": "bytes" + } + ], + "name": "addCertificateVerification", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes[]", + "name": "certificates", + "type": "bytes[]" + } + ], + "name": "validateChainOfCertificates", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "version", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "addCertificateVerification(bytes,bytes)": "3d6584a6", + "validateChainOfCertificates(bytes[])": "8f084f19", + "version()": "54fd4d50" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"subjectCertificate\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"issuerCertificate\",\"type\":\"bytes\"}],\"name\":\"addCertificateVerification\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes[]\",\"name\":\"certificates\",\"type\":\"bytes[]\"}],\"name\":\"validateChainOfCertificates\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ICertificatesValidator. Interface for validation of certificates.\",\"kind\":\"dev\",\"methods\":{\"addCertificateVerification(bytes,bytes)\":{\"details\":\"Adds certificate verification to the contract\",\"params\":{\"issuerCertificate\":\"Certificate of the issuer.\",\"subjectCertificate\":\"Certificate to verify the signature with issuer public key.\"}},\"validateChainOfCertificates(bytes[])\":{\"details\":\"Validate the chain of certificates\",\"params\":{\"certificates\":\"Chain of certificates in PEM format sorted. Root certificate is latest.\"}},\"version()\":{\"details\":\"Get version of the contract\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ICertificatesValidator.sol\":\"ICertificatesValidator\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ICertificatesValidator.sol\":{\"keccak256\":\"0x756669e7a268cb0c810e2149fe2d710e21936b0ffb2bc09121db10d647b0711e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://61ad0c55851ecabc69ab88577753a1124611400c22a128c0574b1060d531d107\",\"dweb:/ipfs/QmSRzY4Qg9JD8nagkpt5qn8ivyRewYqZhcmzV7AZ1njVKa\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/interfaces/ICredentialCircuitVerifier.sol": { + "ICredentialCircuitVerifier": { + "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[8]", + "name": "pubSignals", + "type": "uint256[8]" + } + ], + "name": "verifyProof", + "outputs": [ + { + "internalType": "bool", + "name": "isValid", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "", + "opcodes": "", + "sourceMap": "" + }, + "methodIdentifiers": { + "verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[8])": "c9219a7a" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"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[8]\",\"name\":\"pubSignals\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isValid\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This interface defines the structure of a credential circuit proof and exposes a function to verify such proofs.\",\"kind\":\"dev\",\"methods\":{\"verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[8])\":{\"details\":\"This function checks the validity of the provided proof parameters.\",\"params\":{\"a\":\"The 'a' component of the proof.\",\"b\":\"The 'b' component of the proof.\",\"c\":\"The 'c' component of the proof.\",\"pubSignals\":\"The public signals associated with the proof.\"},\"returns\":{\"isValid\":\"A boolean value indicating whether the provided proof is valid (true) or not (false).\"}}},\"title\":\"ICredentialCircuitVerifier\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[8])\":{\"notice\":\"Verifies a given credential circuit proof.\"}},\"notice\":\"Interface for verifying credential circuit proofs.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/interfaces/ICredentialCircuitVerifier.sol\":\"ICredentialCircuitVerifier\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/interfaces/ICredentialCircuitVerifier.sol\":{\"keccak256\":\"0xb1a3df3c8a23f37950e5cc0d783dcf2e5a6ec0abd640f7ab835f659da618cf38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d2b1470d31938a8a60ccdeace9dae9d045070e5bec472210ace32d9c9f2a370\",\"dweb:/ipfs/QmXQpXPizwmMjXXTfLnX6K5CH4gXkPRJaLxUgiHsGgv6ad\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/verifiers/AnonAadhaarCredentialIssuer.sol": { + "AnonAadhaarCredentialIssuer": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "InvalidAnonAadhaarProof", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "expected", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "provided", + "type": "uint256" + } + ], + "name": "InvalidExpirationDate", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidHashIndex", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidHashValue", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidIssuerDidHash", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidNullifierSeed", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidPubKeyHash", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "revocationNonce", + "type": "uint64" + } + ], + "name": "InvalidRevocationNonce", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidStateContractAddress", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidTemplateRoot", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidVerifierAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "length1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length2", + "type": "uint256" + } + ], + "name": "LengthMismatch", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "circuitId", + "type": "string" + } + ], + "name": "NoAnonAadhaarCircuitIdFound", + "type": "error" + }, + { + "inputs": [], + "name": "NoVerifierSet", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [], + "name": "NullifierDoesNotExist", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "inputs": [], + "name": "ProofExpired", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "qrVersion", + "type": "uint256" + } + ], + "name": "UnsupportedQrVersion", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "circuitId", + "type": "string" + }, + { + "indexed": false, + "internalType": "address", + "name": "verifierAddress", + "type": "address" + } + ], + "name": "AnonAadhaarCircuitVerifierUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "nullifier", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "revocationNonce", + "type": "uint64" + } + ], + "name": "CredentialRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "issuerDidHash", + "type": "uint256" + } + ], + "name": "IssuerDidHashUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferStarted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "publicKeyHash", + "type": "uint256" + } + ], + "name": "PublicKeyHashAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "templateRoot", + "type": "uint256" + } + ], + "name": "TemplateRootUpdated", + "type": "event" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "publicKeyHash", + "type": "uint256" + } + ], + "name": "addPublicKeyHash", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "publicKeysHashes", + "type": "uint256[]" + } + ], + "name": "addPublicKeyHashesBatch", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "qrVersion", + "type": "uint256" + } + ], + "name": "addQrVersion", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256[]", + "name": "qrVersions", + "type": "uint256[]" + } + ], + "name": "addQrVersionBatch", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "circuitId", + "type": "string" + } + ], + "name": "anonAadhaarVerifiers", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "claimIndexHash", + "type": "uint256" + } + ], + "name": "getClaimProof", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "claimIndexHash", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + } + ], + "name": "getClaimProofByRoot", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "claimIndexHash", + "type": "uint256" + } + ], + "name": "getClaimProofWithStateInfo", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootsRoot", + "type": "uint256" + } + ], + "internalType": "struct IdentityLib.StateInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getClaimsTreeRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getExpirationTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getIsOldStateGenesis", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestPublishedClaimsRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestPublishedRevocationsRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestPublishedRootsRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestPublishedState", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getNullifierSeed", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "revocationNonce", + "type": "uint64" + } + ], + "name": "getRevocationProof", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "revocationNonce", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + } + ], + "name": "getRevocationProofByRoot", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "revocationNonce", + "type": "uint64" + } + ], + "name": "getRevocationProofWithStateInfo", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootsRoot", + "type": "uint256" + } + ], + "internalType": "struct IdentityLib.StateInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + } + ], + "name": "getRevocationStatus", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootOfRoots", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.IdentityStateRoots", + "name": "issuer", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.Proof", + "name": "mtp", + "type": "tuple" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.CredentialStatus", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + } + ], + "name": "getRevocationStatusByIdAndState", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootOfRoots", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.IdentityStateRoots", + "name": "issuer", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.Proof", + "name": "mtp", + "type": "tuple" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.CredentialStatus", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRevocationsTreeRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "rootsTreeRoot", + "type": "uint256" + } + ], + "name": "getRootProof", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "claimsTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + } + ], + "name": "getRootProofByRoot", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "rootsTreeRoot", + "type": "uint256" + } + ], + "name": "getRootProofWithStateInfo", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootsRoot", + "type": "uint256" + } + ], + "internalType": "struct IdentityLib.StateInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + } + ], + "name": "getRootsByState", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "claimsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootsRoot", + "type": "uint256" + } + ], + "internalType": "struct IdentityLib.Roots", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRootsTreeRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSmtDepth", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getTemplateRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_stateContractAddr", + "type": "address" + }, + { + "internalType": "bytes2", + "name": "idType", + "type": "bytes2" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "nullifierSeed", + "type": "uint256" + }, + { + "internalType": "uint256[]", + "name": "publicKeysHashes", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "qrVersions", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "expirationTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "templateRoot", + "type": "uint256" + }, + { + "internalType": "address", + "name": "anonAadhaarVerifier", + "type": "address" + }, + { + "components": [ + { + "internalType": "address", + "name": "stateAddress", + "type": "address" + }, + { + "internalType": "bytes2", + "name": "idType", + "type": "bytes2" + } + ], + "internalType": "struct AnonAadhaarCredentialIssuer.StateInfo", + "name": "stateInfo", + "type": "tuple" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "initializeIssuer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "nullifier", + "type": "uint256" + } + ], + "name": "nullifierExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "publicKeyHash", + "type": "uint256" + } + ], + "name": "publicKeyHashExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "qrVersion", + "type": "uint256" + } + ], + "name": "qrVersionSupported", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "publicKeyHash", + "type": "uint256" + } + ], + "name": "removePublicKeyHash", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "qrVersion", + "type": "uint256" + } + ], + "name": "removeQrVersion", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "nullifier", + "type": "uint256" + } + ], + "name": "revokeCredential", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "issuerDidHash", + "type": "uint256" + } + ], + "name": "setIssuerDidHash", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "nullifierSeed", + "type": "uint256" + } + ], + "name": "setNullifierSeed", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "templateRoot", + "type": "uint256" + } + ], + "name": "setTemplateRoot", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "circuitIds", + "type": "string[]" + }, + { + "internalType": "address[]", + "name": "verifierAddresses", + "type": "address[]" + } + ], + "name": "updateAnonAadhaarVerifiers", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "string", + "name": "circuitId", + "type": "string" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ], + "internalType": "struct AnonAadhaarCredentialIssuer.CredentialProof", + "name": "credentialProof", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "passportSignatureProof", + "type": "bytes" + } + ], + "name": "verifyAadhaar", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_14863": { + "entryPoint": null, + "id": 14863, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_disableInitializers_5190": { + "entryPoint": 26, + "id": 5190, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getInitializableStorage_5235": { + "entryPoint": null, + "id": 5235, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_initializableStorageSlot_5221": { + "entryPoint": null, + "id": 5221, + "parameterSlots": 0, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:216:46", + "nodeType": "YulBlock", + "src": "0:216:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "113:101:46", + "nodeType": "YulBlock", + "src": "113:101:46", + "statements": [ + { + "nativeSrc": "123:26:46", + "nodeType": "YulAssignment", + "src": "123:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "135:9:46", + "nodeType": "YulIdentifier", + "src": "135:9:46" + }, + { + "kind": "number", + "nativeSrc": "146:2:46", + "nodeType": "YulLiteral", + "src": "146:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "131:3:46", + "nodeType": "YulIdentifier", + "src": "131:3:46" + }, + "nativeSrc": "131:18:46", + "nodeType": "YulFunctionCall", + "src": "131:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "123:4:46", + "nodeType": "YulIdentifier", + "src": "123:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "165:9:46", + "nodeType": "YulIdentifier", + "src": "165:9:46" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "180:6:46", + "nodeType": "YulIdentifier", + "src": "180:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "196:2:46", + "nodeType": "YulLiteral", + "src": "196:2:46", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "200:1:46", + "nodeType": "YulLiteral", + "src": "200:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "192:3:46", + "nodeType": "YulIdentifier", + "src": "192:3:46" + }, + "nativeSrc": "192:10:46", + "nodeType": "YulFunctionCall", + "src": "192:10:46" + }, + { + "kind": "number", + "nativeSrc": "204:1:46", + "nodeType": "YulLiteral", + "src": "204:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "188:3:46", + "nodeType": "YulIdentifier", + "src": "188:3:46" + }, + "nativeSrc": "188:18:46", + "nodeType": "YulFunctionCall", + "src": "188:18:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "176:3:46", + "nodeType": "YulIdentifier", + "src": "176:3:46" + }, + "nativeSrc": "176:31:46", + "nodeType": "YulFunctionCall", + "src": "176:31:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "158:6:46", + "nodeType": "YulIdentifier", + "src": "158:6:46" + }, + "nativeSrc": "158:50:46", + "nodeType": "YulFunctionCall", + "src": "158:50:46" + }, + "nativeSrc": "158:50:46", + "nodeType": "YulExpressionStatement", + "src": "158:50:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", + "nativeSrc": "14:200:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "82:9:46", + "nodeType": "YulTypedName", + "src": "82:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "93:6:46", + "nodeType": "YulTypedName", + "src": "93:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "104:4:46", + "nodeType": "YulTypedName", + "src": "104:4:46", + "type": "" + } + ], + "src": "14:200:46" + } + ] + }, + "contents": "{\n { }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(64, 1), 1)))\n }\n}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": { + "@iden3/contracts/lib/IdentityLib.sol": { + "IdentityLib": [ + { + "length": 20, + "start": 1975 + }, + { + "length": 20, + "start": 2116 + }, + { + "length": 20, + "start": 2722 + }, + { + "length": 20, + "start": 2936 + }, + { + "length": 20, + "start": 3198 + }, + { + "length": 20, + "start": 3833 + }, + { + "length": 20, + "start": 3942 + }, + { + "length": 20, + "start": 4892 + }, + { + "length": 20, + "start": 5376 + }, + { + "length": 20, + "start": 5571 + }, + { + "length": 20, + "start": 6010 + }, + { + "length": 20, + "start": 6089 + }, + { + "length": 20, + "start": 6214 + }, + { + "length": 20, + "start": 6354 + }, + { + "length": 20, + "start": 6440 + }, + { + "length": 20, + "start": 6601 + }, + { + "length": 20, + "start": 7153 + }, + { + "length": 20, + "start": 7261 + }, + { + "length": 20, + "start": 8842 + }, + { + "length": 20, + "start": 9080 + }, + { + "length": 20, + "start": 9188 + } + ] + } + }, + "object": "6080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b613119806100d96000396000f3fe608060405234801561001057600080fd5b50600436106102d55760003560e01c80635d1ca63111610182578063c1e32733116100e9578063e30c3978116100a2578063f2fde38b1161007c578063f2fde38b1461061e578063f84c7c1e14610631578063f8ba8b3914610639578063ffa1ad741461064c57600080fd5b8063e30c3978146105f0578063efc8385a146105f8578063f221b8451461060b57600080fd5b8063c1e327331461059f578063c6365a3b146105b2578063da68a0b1146105ba578063dcdd17c4146105c2578063e23a845a146105d5578063e26ecb0b146105dd57600080fd5b8063ad5778c71161013b578063ad5778c71461050b578063b354c2d81461051e578063b37feda414610531578063b57a40cb14610544578063b5fff0ed14610557578063b8db68711461056a57600080fd5b80635d1ca631146104b8578063715018a6146104c057806379ba5097146104c85780638da5cb5b146104d05780639674cfa4146104f0578063aad72921146104f857600080fd5b80632e1e252f11610241578063406e8b4c116101fa5780634c240f34116101d45780634c240f3414610477578063523b81361461048a578063552c9b7e1461049257806358ada672146104a557600080fd5b8063406e8b4c1461043e57806343e5c52014610451578063443d75341461046457600080fd5b80632e1e252f146103ee578063310d0d5b14610401578063345f83ff146104145780633d59ec60146104275780633df432fc1461042f5780633f0c66481461043757600080fd5b806313e52ae71161029357806313e52ae7146103855780631b87278d1461038d57806326485063146103a05780632afab62f146103c05780632c1d3204146103d35780632d5c4f25146103db57600080fd5b806233058d146102da57806301c85c771461030457806301ffc9a71461031a578063035dfdfe1461033d578063110c96a71461035257806313364fc814610372575b600080fd5b6102ed6102e83660046124a9565b61067d565b6040516102fb929190612566565b60405180910390f35b61030c61074a565b6040519081526020016102fb565b61032d6103283660046125a9565b6107cf565b60405190151581526020016102fb565b61035061034b3660046125d3565b610806565b005b6103656103603660046125ec565b610874565b6040516102fb9190612618565b6103506103803660046125d3565b61089f565b61030c6108b8565b61035061039b3660046125d3565b6108c8565b6103b36103ae3660046124a9565b610993565b6040516102fb9190612665565b61032d6103ce3660046125d3565b610a2c565b61030c610a57565b6103b36103e9366004612678565b610a6a565b6103506103fc3660046125d3565b610b09565b6103b361040f366004612678565b610b70565b6103506104223660046126fc565b610bc7565b61030c610dec565b61030c610dff565b602861030c565b61035061044c3660046127e2565b610e42565b61035061045f366004612913565b610edf565b6102ed6104723660046125d3565b6111ea565b6103506104853660046125d3565b611265565b61030c6112b1565b6103506104a03660046129da565b6112c4565b61032d6104b33660046125d3565b6112da565b61030c6112fb565b610350611305565b610350611319565b6104d8611361565b6040516001600160a01b0390911681526020016102fb565b61030c611396565b610365610506366004612a1b565b6113a9565b6104d8610519366004612a50565b6115c2565b61035061052c3660046125d3565b6115fc565b6102ed61053f3660046125d3565b611648565b6103b36105523660046125d3565b6116c3565b6103506105653660046129da565b611711565b61057d6105783660046125d3565b611723565b60408051825181526020808401519082015291810151908201526060016102fb565b6103b36105ad3660046125d3565b6117cb565b61030c61181b565b61030c61182e565b6103506105d03660046125d3565b611871565b61030c6118a0565b6103b36105eb366004612a84565b6118b3565b6104d8611912565b61032d6106063660046125d3565b61193b565b6103506106193660046125d3565b61195c565b61035061062c366004612aae565b6119bb565b61032d611a40565b610350610647366004612ac9565b611a56565b61067060405180604001604052806005815260200164312e302e3360d81b81525081565b6040516102fb9190612b5c565b6106856123b8565b6106b06040518060800160405280600081526020016000815260200160008152602001600081525090565b6106b8611a70565b604051631f17004d60e31b815260048101919091526001600160401b038416602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__9063f8b80268906044015b600060405180830381865af4158015610719573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107419190810190612cbf565b91509150915091565b6000610754611a70565b60405163765c2c6160e01b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__9063765c2c61906024015b602060405180830381865af41580156107a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ca9190612d63565b905090565b60006001600160e01b03198216635d1ca63160e01b148061080057506301ffc9a760e01b6001600160e01b03198316145b92915050565b61080e611a94565b6000610818611ac6565b600083815260058201602052604090819020805460ff19166001179055519091507f192522987419be1c06ca88238df20a35b84c7a5025bbf1e244fac876d2d320ee906108689084815260200190565b60405180910390a15050565b61087c612401565b6000610886611a70565b6001015490506108978482856113a9565b949350505050565b6108a7611a94565b60006108b1611ac6565b9190915550565b60006108c2611ac6565b54919050565b6108d0611a94565b60006108da611ac6565b60008381526006820160205260408120549192506001600160401b039091169081900361091a576040516327522baf60e01b815260040160405180910390fd5b61092381611aea565b600083815260068301602052604090819020805467ffffffffffffffff19169055517f725d312746be14d750d0493aa7960a5aca3c30f98f74b0e07afc8f1a36b355c29061098690859084909182526001600160401b0316602082015260400190565b60405180910390a1505050565b61099b6123b8565b6109a3611a70565b604051637d0aba4f60e01b815260048101919091526001600160401b038316602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__90637d0aba4f906044015b600060405180830381865af4158015610a04573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108009190810190612d7c565b600080610a37611ac6565b6000938452600601602052505060409020546001600160401b0316151590565b6000610a61611ac6565b60020154905090565b610a726123b8565b610a7a611a70565b60405163d55da6a360e01b81526004810191909152602481018490526044810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063d55da6a3906064015b600060405180830381865af4158015610ada573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b029190810190612d7c565b9392505050565b610b11611a94565b6000610b1b611ac6565b600083815260078201602052604090205490915060ff16610b575760405163dbbaa55f60e01b8152600481018390526024015b60405180910390fd5b600091825260070160205260409020805460ff19169055565b610b786123b8565b610b80611a70565b604051636ac0c5c760e11b81526004810191909152602481018490526044810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063d5818b8e90606401610abd565b6000610bd1611bd4565b805490915060ff600160401b82041615906001600160401b0316600081158015610bf85750825b90506000826001600160401b03166001148015610c145750303b155b905081158015610c22575080155b15610c405760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c6a57845460ff60401b1916600160401b1785555b6001600160a01b038816610c915760405163043103a360e21b815260040160405180910390fd5b6000610ca06020890189612aae565b6001600160a01b031603610cc757604051637eb887b360e01b815260040160405180910390fd5b610ce7610cd76020890189612aae565b61044c60408a0160208b01612db0565b610cf086611bfd565b6000610cfa611ac6565b90508f81600001819055508a816001018190555089816002018190555088816004016040518060400160405280600f81526020016e616e6f6e5f616164686161725f763160881b815250604051610d519190612dcb565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055610d8a8f8f611c0e565b610d948d8d611cc4565b508315610ddb57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050505050565b6000610df6611a70565b60010154919050565b6000610e09611a70565b604051631b8bf99b60e21b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90636e2fe66c90602401610789565b610e4a611a70565b6040516359a6069160e01b815260048101919091526001600160a01b0383166024820152306044820152602860648201526001600160f01b03198216608482015273__$068aad146bf104111ba65c4a1de2cd0e23$__906359a606919060a4015b60006040518083038186803b158015610ec357600080fd5b505af4158015610ed7573d6000803e3d6000fd5b505050505050565b815151600003610f055781516040516302a47c2f60e31b8152610b4e9190600401612b5c565b6000806000808560200151806020019051810190610f239190612e39565b93509350935093506000604051806080016040528085815260200184815260200183815260200160405180610180016040528088600081518110610f6957610f69612ef3565b6020026020010151815260200188600181518110610f8957610f89612ef3565b6020026020010151815260200188600281518110610fa957610fa9612ef3565b6020026020010151815260200188600381518110610fc957610fc9612ef3565b6020026020010151815260200188600481518110610fe957610fe9612ef3565b602002602001015181526020018860058151811061100957611009612ef3565b602002602001015181526020018860068151811061102957611029612ef3565b602002602001015181526020018860078151811061104957611049612ef3565b602002602001015181526020018860088151811061106957611069612ef3565b602002602001015181526020018860098151811061108957611089612ef3565b6020026020010151815260200188600a815181106110a9576110a9612ef3565b6020026020010151815260200188600b815181106110c9576110c9612ef3565b6020026020010151815250815250905060006110e3611ac6565b905060008160040189600001516040516110fd9190612dcb565b908152604051908190036020019020546001600160a01b0316905080611136576040516301dcf1ab60e31b815260040160405180910390fd5b806001600160a01b0316638cbac0fa84600001518560200151866040015187606001516040518563ffffffff1660e01b81526004016111789493929190612f2c565b602060405180830381865afa158015611195573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b99190612fb1565b6111d65760405163b4b32e6f60e01b815260040160405180910390fd5b6111df83611d25565b505050505050505050565b6111f26123b8565b61121d6040518060800160405280600081526020016000815260200160008152602001600081525090565b611225611a70565b60405163a3018d7960e01b815260048101919091526024810184905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063a3018d79906044016106fc565b61126d611a94565b6000611277611ac6565b600381018390556040518381529091507fb69b4c35c29def0ac05e4ac2258986b58de5ae03feeea1802c95f4e0b5794cf190602001610868565b60006112bb611a70565b609a0154919050565b6112cc611a94565b6112d68282611c0e565b5050565b60006112e4611ac6565b600092835260050160205250604090205460ff1690565b60006108c2611a70565b61130d611a94565b6113176000611db2565b565b3380611323611912565b6001600160a01b0316146113555760405163118cdaa760e01b81526001600160a01b0382166004820152602401610b4e565b61135e81611db2565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60006113a0611a70565b609b0154919050565b6113b1612401565b6113b9611a70565b5484146113ff5760405162461bcd60e51b8152602060048201526014602482015273092c8cadce8d2e8f240d2c840dad2e6dac2e8c6d60631b6044820152606401610b4e565b6000611409611a70565b604051630b1a9cd360e01b815260048101919091526024810185905273__$068aad146bf104111ba65c4a1de2cd0e23$__90630b1a9cd390604401606060405180830381865af4158015611461573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114859190612fcc565b6040805160808101825286815282516020808301919091528301518183015290820151606082015290915060006114ba611a70565b6020840151604051630b2bcd1b60e11b815260048101929092526001600160401b0387166024830152604482015273__$068aad146bf104111ba65c4a1de2cd0e23$__906316579a3690606401600060405180830381865af4158015611524573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261154c9190810190612d7c565b6040805161010081018252825181526020808401511515818301528284015182840152606080850151908301526080808501519083015260a08085015115159083015260c0808501519083015260e093840151938201939093528151808301909252938152908101929092525095945050505050565b60006115cc611ac6565b600401826040516115dd9190612dcb565b908152604051908190036020019020546001600160a01b031692915050565b611604611a94565b600061160e611ac6565b600281018390556040518381529091507ff007a02ba428e63fa98b65269e70f9a9db847e0a839049a2f31f06928226773490602001610868565b6116506123b8565b61167b6040518060800160405280600081526020016000815260200160008152602001600081525090565b611683611a70565b604051636ad1d8a760e11b815260048101919091526024810184905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063d5a3b14e906044016106fc565b6116cb6123b8565b6116d3611a70565b604051620cf08960e41b815260048101919091526024810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__9062cf0890906044016109e7565b611719611a94565b6112d68282611cc4565b61174760405180606001604052806000815260200160008152602001600081525090565b61174f611a70565b604051630b1a9cd360e01b815260048101919091526024810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__90630b1a9cd390604401606060405180830381865af41580156117a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108009190612fcc565b6117d36123b8565b6117db611a70565b6040516397ac539160e01b815260048101919091526024810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__906397ac5391906044016109e7565b6000611825611a70565b609c0154919050565b6000611838611a70565b604051631e75e7f360e01b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90631e75e7f390602401610789565b611879611a94565b6000611883611ac6565b60009283526007016020525060409020805460ff19166001179055565b60006118aa611ac6565b60010154905090565b6118bb6123b8565b6118c3611a70565b604051630b2bcd1b60e11b815260048101919091526001600160401b03841660248201526044810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__906316579a3690606401610abd565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00611386565b6000611945611ac6565b600092835260070160205250604090205460ff1690565b611964611a94565b600061196e611ac6565b600083815260058201602052604090205490915060ff166119a2576040516356b6133160e11b815260040160405180910390fd5b600091825260050160205260409020805460ff19169055565b6119c3611a94565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b0383169081178255611a07611361565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6000611a4a611a70565b6002015460ff16919050565b611a5e611a94565b611a6a84848484611dea565b50505050565b7f3018a310c36c4f8228f09bf3b1822685cf0971daa8265a58ca807c4a4daba40090565b33611a9d611361565b6001600160a01b0316146113175760405163118cdaa760e01b8152336004820152602401610b4e565b7f45045675f3efe2ec0ccfad8aa4c678179d3e20b95a34ad9d981fab6f95ba1e0090565b611af2611a70565b604051638ad7195d60e01b815260048101919091526001600160401b038216602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__90638ad7195d9060440160006040518083038186803b158015611b4d57600080fd5b505af4158015611b61573d6000803e3d6000fd5b50505050611b6d611a70565b60405163175ba3e960e11b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90632eb747d29060240160006040518083038186803b158015611bb957600080fd5b505af4158015611bcd573d6000803e3d6000fd5b5050505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610800565b611c05611f42565b61135e81611f67565b6000611c18611ac6565b905060005b82811015611a6a576001826005016000868685818110611c3f57611c3f612ef3565b90506020020135815260200190815260200160002060006101000a81548160ff0219169083151502179055507f192522987419be1c06ca88238df20a35b84c7a5025bbf1e244fac876d2d320ee848483818110611c9e57611c9e612ef3565b90506020020135604051611cb491815260200190565b60405180910390a1600101611c1d565b6000611cce611ac6565b905060005b82811015611a6a576001826007016000868685818110611cf557611cf5612ef3565b60209081029290920135835250810191909152604001600020805460ff1916911515919091179055600101611cd3565b60608181015180516020820151604083015193830151608084015160a085015160c086015160e08701516101008801516101208901516101408a0151610160909a0151989a97999798969795969495939492939192909190611d8f8a8a8d8f898d8d8a8a8f611f99565b611d998b82612121565b611da38a8a612272565b50505050505050505050505050565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556112d68261232d565b6000611df4611ac6565b9050838214611e20576040516355c5b3e360e11b81526004810185905260248101839052604401610b4e565b60005b84811015610ed757838382818110611e3d57611e3d612ef3565b9050602002016020810190611e529190612aae565b82600401878784818110611e6857611e68612ef3565b9050602002810190611e7a919061302b565b604051611e88929190613071565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790557f3f04312ecef010d1cb9901bb8602db84b7b52fddcef458e04bd8e83a7fc035a4868683818110611eea57611eea612ef3565b9050602002810190611efc919061302b565b868685818110611f0e57611f0e612ef3565b9050602002016020810190611f239190612aae565b604051611f3293929190613081565b60405180910390a1600101611e23565b611f4a61239e565b61131757604051631afcd79f60e31b815260040160405180910390fd5b611f6f611f42565b6001600160a01b03811661135557604051631e4fbdf760e01b815260006004820152602401610b4e565b6000611fa3611ac6565b90508a600003611fc657604051634978c15760e11b815260040160405180910390fd5b89600003611fe757604051639d34ba4f60e01b815260040160405180910390fd5b805487146120085760405163d2cee05560e01b815260040160405180910390fd5b8060020154841461202c576040516381d6039360e01b815260040160405180910390fd5b806003015483146120505760405163fe0c887b60e01b815260040160405180910390fd5b600081600101548761206291906130c2565b905080861461208e57604051633abb8c7960e11b81526004810182905260248101879052604401610b4e565b4286116120ae5760405163b67a771360e01b815260040160405180910390fd5b600089815260058301602052604090205460ff166120df576040516356b6133160e11b815260040160405180910390fd5b600083815260078301602052604090205460ff166121135760405163dbbaa55f60e01b815260048101849052602401610b4e565b505050505050505050505050565b806001600160401b0316600003612156576040516337f969b360e11b81526001600160401b0382166004820152602401610b4e565b6000612160611ac6565b60008481526006820160205260409020549091506001600160401b031680156122415761218b611a70565b604051638ad7195d60e01b815260048101919091526001600160401b038216602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__90638ad7195d9060440160006040518083038186803b1580156121e657600080fd5b505af41580156121fa573d6000803e3d6000fd5b5050604080518781526001600160401b03851660208201527f725d312746be14d750d0493aa7960a5aca3c30f98f74b0e07afc8f1a36b355c2935001905060405180910390a15b5060009283526006016020526040909120805467ffffffffffffffff19166001600160401b03909216919091179055565b61227a611a70565b6040516306fb157560e01b81526004810191909152602481018390526044810182905273__$068aad146bf104111ba65c4a1de2cd0e23$__906306fb15759060640160006040518083038186803b1580156122d457600080fd5b505af41580156122e8573d6000803e3d6000fd5b505050506122f4611a70565b60405163175ba3e960e11b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90632eb747d290602401610eab565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006123a8611bd4565b54600160401b900460ff16919050565b6040518061010001604052806000815260200160001515815260200160608152602001600081526020016000815260200160001515815260200160008152602001600081525090565b60405180604001604052806124376040518060800160405280600081526020016000815260200160008152602001600081525090565b81526020016124886040518061010001604052806000815260200160001515815260200160608152602001600081526020016000815260200160001515815260200160008152602001600081525090565b905290565b80356001600160401b03811681146124a457600080fd5b919050565b6000602082840312156124bb57600080fd5b610b028261248d565b805182526020808201511515818401526040808301516101009185018290528051918501829052600092019082906101208601905b8083101561251c57835182526020820191506020840193506001830192506124f9565b50606085015160608701526080850151608087015260a0850151925061254660a087018415159052565b60c085015160c087015260e085015160e087015280935050505092915050565b60a08152600061257960a08301856124c4565b9050610b026020830184805182526020810151602083015260408101516040830152606081015160608301525050565b6000602082840312156125bb57600080fd5b81356001600160e01b031981168114610b0257600080fd5b6000602082840312156125e557600080fd5b5035919050565b600080604083850312156125ff57600080fd5b8235915061260f6020840161248d565b90509250929050565b6020815261264b602082018351805182526020810151602083015260408101516040830152606081015160608301525050565b6000602083015160a08084015261089760c08401826124c4565b602081526000610b0260208301846124c4565b6000806040838503121561268b57600080fd5b50508035926020909101359150565b60008083601f8401126126ac57600080fd5b5081356001600160401b038111156126c357600080fd5b6020830191508360208260051b85010111156126de57600080fd5b9250929050565b80356001600160a01b03811681146124a457600080fd5b6000806000806000806000806000808a8c0361012081121561271d57600080fd5b8b359a5060208c01356001600160401b0381111561273a57600080fd5b6127468e828f0161269a565b909b5099505060408c01356001600160401b0381111561276557600080fd5b6127718e828f0161269a565b90995097505060608c0135955060808c0135945061279160a08d016126e5565b9350604060bf19820112156127a557600080fd5b5060c08b0191506127b96101008c016126e5565b90509295989b9194979a5092959850565b80356001600160f01b0319811681146124a457600080fd5b600080604083850312156127f557600080fd5b6127fe836126e5565b915061260f602084016127ca565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156128445761284461280c565b60405290565b60405161010081016001600160401b03811182821017156128445761284461280c565b604051601f8201601f191681016001600160401b03811182821017156128955761289561280c565b604052919050565b600082601f8301126128ae57600080fd5b8135602083016000806001600160401b038411156128ce576128ce61280c565b50601f8301601f19166020016128e38161286d565b9150508281528583830111156128f857600080fd5b82826020830137600092810160200192909252509392505050565b6000806040838503121561292657600080fd5b82356001600160401b0381111561293c57600080fd5b83016040818603121561294e57600080fd5b612956612822565b81356001600160401b0381111561296c57600080fd5b6129788782850161289d565b82525060208201356001600160401b0381111561299457600080fd5b6129a08782850161289d565b602083015250809350505060208301356001600160401b038111156129c457600080fd5b6129d08582860161289d565b9150509250929050565b600080602083850312156129ed57600080fd5b82356001600160401b03811115612a0357600080fd5b612a0f8582860161269a565b90969095509350505050565b600080600060608486031215612a3057600080fd5b8335925060208401359150612a476040850161248d565b90509250925092565b600060208284031215612a6257600080fd5b81356001600160401b03811115612a7857600080fd5b6108978482850161289d565b60008060408385031215612a9757600080fd5b612aa08361248d565b946020939093013593505050565b600060208284031215612ac057600080fd5b610b02826126e5565b60008060008060408587031215612adf57600080fd5b84356001600160401b03811115612af557600080fd5b612b018782880161269a565b90955093505060208501356001600160401b03811115612b2057600080fd5b612b2c8782880161269a565b95989497509550505050565b60005b83811015612b53578181015183820152602001612b3b565b50506000910152565b6020815260008251806020840152612b7b816040850160208701612b38565b601f01601f19169190910160400192915050565b805180151581146124a457600080fd5b600082601f830112612bb057600080fd5b81516001600160401b03811115612bc957612bc961280c565b8060051b612bd96020820161286d565b91825260208185018101929081019086841115612bf557600080fd5b6020860192505b83831015612c17578251825260209283019290910190612bfc565b9695505050505050565b60006101008284031215612c3457600080fd5b612c3c61284a565b825181529050612c4e60208301612b8f565b602082015260408201516001600160401b03811115612c6c57600080fd5b612c7884828501612b9f565b6040830152506060828101519082015260808083015190820152612c9e60a08301612b8f565b60a082015260c0828101519082015260e09182015191810191909152919050565b60008082840360a0811215612cd357600080fd5b83516001600160401b03811115612ce957600080fd5b612cf586828701612c21565b9350506080601f1982011215612d0a57600080fd5b50604051608081016001600160401b0381118282101715612d2d57612d2d61280c565b60409081526020858101518352858201519083015260608086015191830191909152608090940151938101939093525092909150565b600060208284031215612d7557600080fd5b5051919050565b600060208284031215612d8e57600080fd5b81516001600160401b03811115612da457600080fd5b61089784828501612c21565b600060208284031215612dc257600080fd5b610b02826127ca565b60008251612ddd818460208701612b38565b9190910192915050565b600082601f830112612df857600080fd5b612e02604061286d565b806040840185811115612e1457600080fd5b845b81811015612e2e578051845260209384019301612e16565b509095945050505050565b6000806000806101208587031215612e5057600080fd5b84516001600160401b03811115612e6657600080fd5b612e7287828801612b9f565b945050612e828660208701612de7565b925085607f860112612e9357600080fd5b6040612e9e8161286d565b8060e0880189811115612eb057600080fd5b606089015b81811015612ed657612ec78b82612de7565b84526020909301928401612eb5565b50819550612ee48a82612de7565b94505050505092959194509250565b634e487b7160e01b600052603260045260246000fd5b8060005b6002811015611a6a578151845260209384019390910190600101612f0d565b6102808101612f3b8287612f09565b604082018560005b6002811015612f6d57612f57838351612f09565b6040929092019160209190910190600101612f43565b505050612f7d60c0830185612f09565b61010082018360005b600c811015612fa5578151835260209283019290910190600101612f86565b50505095945050505050565b600060208284031215612fc357600080fd5b610b0282612b8f565b60006060828403128015612fdf57600080fd5b50604051600090606081016001600160401b03811182821017156130055761300561280c565b604090815284518252602080860151908301529384015193810193909352509092915050565b6000808335601e1984360301811261304257600080fd5b8301803591506001600160401b0382111561305c57600080fd5b6020019150368190038213156126de57600080fd5b8183823760009101908152919050565b6040815282604082015282846060830137600060608483018101919091526001600160a01b03929092166020820152601f909201601f191690910101919050565b8082018082111561080057634e487b7160e01b600052601160045260246000fdfea26469706673582212207af07f575585db98c5935ebd7c28c901b4415e40af41d5263b2bfef8980403ce64736f6c634300081b0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x16 PUSH1 0x1A JUMP JUMPDEST PUSH1 0xCA JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH1 0x69 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND EQ PUSH1 0xC7 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP JUMP JUMPDEST PUSH2 0x3119 DUP1 PUSH2 0xD9 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 0x2D5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5D1CA631 GT PUSH2 0x182 JUMPI DUP1 PUSH4 0xC1E32733 GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xE30C3978 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0xF84C7C1E EQ PUSH2 0x631 JUMPI DUP1 PUSH4 0xF8BA8B39 EQ PUSH2 0x639 JUMPI DUP1 PUSH4 0xFFA1AD74 EQ PUSH2 0x64C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x5F0 JUMPI DUP1 PUSH4 0xEFC8385A EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0xF221B845 EQ PUSH2 0x60B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC1E32733 EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0xC6365A3B EQ PUSH2 0x5B2 JUMPI DUP1 PUSH4 0xDA68A0B1 EQ PUSH2 0x5BA JUMPI DUP1 PUSH4 0xDCDD17C4 EQ PUSH2 0x5C2 JUMPI DUP1 PUSH4 0xE23A845A EQ PUSH2 0x5D5 JUMPI DUP1 PUSH4 0xE26ECB0B EQ PUSH2 0x5DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAD5778C7 GT PUSH2 0x13B JUMPI DUP1 PUSH4 0xAD5778C7 EQ PUSH2 0x50B JUMPI DUP1 PUSH4 0xB354C2D8 EQ PUSH2 0x51E JUMPI DUP1 PUSH4 0xB37FEDA4 EQ PUSH2 0x531 JUMPI DUP1 PUSH4 0xB57A40CB EQ PUSH2 0x544 JUMPI DUP1 PUSH4 0xB5FFF0ED EQ PUSH2 0x557 JUMPI DUP1 PUSH4 0xB8DB6871 EQ PUSH2 0x56A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x4B8 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4C0 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x4C8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0x9674CFA4 EQ PUSH2 0x4F0 JUMPI DUP1 PUSH4 0xAAD72921 EQ PUSH2 0x4F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2E1E252F GT PUSH2 0x241 JUMPI DUP1 PUSH4 0x406E8B4C GT PUSH2 0x1FA JUMPI DUP1 PUSH4 0x4C240F34 GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x4C240F34 EQ PUSH2 0x477 JUMPI DUP1 PUSH4 0x523B8136 EQ PUSH2 0x48A JUMPI DUP1 PUSH4 0x552C9B7E EQ PUSH2 0x492 JUMPI DUP1 PUSH4 0x58ADA672 EQ PUSH2 0x4A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x406E8B4C EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0x43E5C520 EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0x443D7534 EQ PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2E1E252F EQ PUSH2 0x3EE JUMPI DUP1 PUSH4 0x310D0D5B EQ PUSH2 0x401 JUMPI DUP1 PUSH4 0x345F83FF EQ PUSH2 0x414 JUMPI DUP1 PUSH4 0x3D59EC60 EQ PUSH2 0x427 JUMPI DUP1 PUSH4 0x3DF432FC EQ PUSH2 0x42F JUMPI DUP1 PUSH4 0x3F0C6648 EQ PUSH2 0x437 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x13E52AE7 GT PUSH2 0x293 JUMPI DUP1 PUSH4 0x13E52AE7 EQ PUSH2 0x385 JUMPI DUP1 PUSH4 0x1B87278D EQ PUSH2 0x38D JUMPI DUP1 PUSH4 0x26485063 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0x2AFAB62F EQ PUSH2 0x3C0 JUMPI DUP1 PUSH4 0x2C1D3204 EQ PUSH2 0x3D3 JUMPI DUP1 PUSH4 0x2D5C4F25 EQ PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x33058D EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0x1C85C77 EQ PUSH2 0x304 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0x35DFDFE EQ PUSH2 0x33D JUMPI DUP1 PUSH4 0x110C96A7 EQ PUSH2 0x352 JUMPI DUP1 PUSH4 0x13364FC8 EQ PUSH2 0x372 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2ED PUSH2 0x2E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x24A9 JUMP JUMPDEST PUSH2 0x67D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FB SWAP3 SWAP2 SWAP1 PUSH2 0x2566 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30C PUSH2 0x74A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2FB JUMP JUMPDEST PUSH2 0x32D PUSH2 0x328 CALLDATASIZE PUSH1 0x4 PUSH2 0x25A9 JUMP JUMPDEST PUSH2 0x7CF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2FB JUMP JUMPDEST PUSH2 0x350 PUSH2 0x34B CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x806 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x365 PUSH2 0x360 CALLDATASIZE PUSH1 0x4 PUSH2 0x25EC JUMP JUMPDEST PUSH2 0x874 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FB SWAP2 SWAP1 PUSH2 0x2618 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x380 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x89F JUMP JUMPDEST PUSH2 0x30C PUSH2 0x8B8 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x39B CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x8C8 JUMP JUMPDEST PUSH2 0x3B3 PUSH2 0x3AE CALLDATASIZE PUSH1 0x4 PUSH2 0x24A9 JUMP JUMPDEST PUSH2 0x993 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FB SWAP2 SWAP1 PUSH2 0x2665 JUMP JUMPDEST PUSH2 0x32D PUSH2 0x3CE CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0xA2C JUMP JUMPDEST PUSH2 0x30C PUSH2 0xA57 JUMP JUMPDEST PUSH2 0x3B3 PUSH2 0x3E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2678 JUMP JUMPDEST PUSH2 0xA6A JUMP JUMPDEST PUSH2 0x350 PUSH2 0x3FC CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x3B3 PUSH2 0x40F CALLDATASIZE PUSH1 0x4 PUSH2 0x2678 JUMP JUMPDEST PUSH2 0xB70 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x422 CALLDATASIZE PUSH1 0x4 PUSH2 0x26FC JUMP JUMPDEST PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x30C PUSH2 0xDEC JUMP JUMPDEST PUSH2 0x30C PUSH2 0xDFF JUMP JUMPDEST PUSH1 0x28 PUSH2 0x30C JUMP JUMPDEST PUSH2 0x350 PUSH2 0x44C CALLDATASIZE PUSH1 0x4 PUSH2 0x27E2 JUMP JUMPDEST PUSH2 0xE42 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x45F CALLDATASIZE PUSH1 0x4 PUSH2 0x2913 JUMP JUMPDEST PUSH2 0xEDF JUMP JUMPDEST PUSH2 0x2ED PUSH2 0x472 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x11EA JUMP JUMPDEST PUSH2 0x350 PUSH2 0x485 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x1265 JUMP JUMPDEST PUSH2 0x30C PUSH2 0x12B1 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x4A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x29DA JUMP JUMPDEST PUSH2 0x12C4 JUMP JUMPDEST PUSH2 0x32D PUSH2 0x4B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x12DA JUMP JUMPDEST PUSH2 0x30C PUSH2 0x12FB JUMP JUMPDEST PUSH2 0x350 PUSH2 0x1305 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x1319 JUMP JUMPDEST PUSH2 0x4D8 PUSH2 0x1361 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2FB JUMP JUMPDEST PUSH2 0x30C PUSH2 0x1396 JUMP JUMPDEST PUSH2 0x365 PUSH2 0x506 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A1B JUMP JUMPDEST PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x4D8 PUSH2 0x519 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A50 JUMP JUMPDEST PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x52C CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x15FC JUMP JUMPDEST PUSH2 0x2ED PUSH2 0x53F CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x1648 JUMP JUMPDEST PUSH2 0x3B3 PUSH2 0x552 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x16C3 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x565 CALLDATASIZE PUSH1 0x4 PUSH2 0x29DA JUMP JUMPDEST PUSH2 0x1711 JUMP JUMPDEST PUSH2 0x57D PUSH2 0x578 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP2 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x2FB JUMP JUMPDEST PUSH2 0x3B3 PUSH2 0x5AD CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x17CB JUMP JUMPDEST PUSH2 0x30C PUSH2 0x181B JUMP JUMPDEST PUSH2 0x30C PUSH2 0x182E JUMP JUMPDEST PUSH2 0x350 PUSH2 0x5D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x1871 JUMP JUMPDEST PUSH2 0x30C PUSH2 0x18A0 JUMP JUMPDEST PUSH2 0x3B3 PUSH2 0x5EB CALLDATASIZE PUSH1 0x4 PUSH2 0x2A84 JUMP JUMPDEST PUSH2 0x18B3 JUMP JUMPDEST PUSH2 0x4D8 PUSH2 0x1912 JUMP JUMPDEST PUSH2 0x32D PUSH2 0x606 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x193B JUMP JUMPDEST PUSH2 0x350 PUSH2 0x619 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x195C JUMP JUMPDEST PUSH2 0x350 PUSH2 0x62C CALLDATASIZE PUSH1 0x4 PUSH2 0x2AAE JUMP JUMPDEST PUSH2 0x19BB JUMP JUMPDEST PUSH2 0x32D PUSH2 0x1A40 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x647 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AC9 JUMP JUMPDEST PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0x670 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x312E302E33 PUSH1 0xD8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FB SWAP2 SWAP1 PUSH2 0x2B5C JUMP JUMPDEST PUSH2 0x685 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0x6B0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x6B8 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1F17004D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xF8B80268 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x719 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x741 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2CBF JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x754 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x765C2C61 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x765C2C61 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x7A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7CA SWAP2 SWAP1 PUSH2 0x2D63 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5D1CA631 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x800 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x80E PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x818 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD SWAP1 SWAP2 POP PUSH32 0x192522987419BE1C06CA88238DF20A35B84C7A5025BBF1E244FAC876D2D320EE SWAP1 PUSH2 0x868 SWAP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x87C PUSH2 0x2401 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x886 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP1 POP PUSH2 0x897 DUP5 DUP3 DUP6 PUSH2 0x13A9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x8A7 PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8B1 PUSH2 0x1AC6 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8C2 PUSH2 0x1AC6 JUMP JUMPDEST SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8D0 PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8DA PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0x91A JUMPI PUSH1 0x40 MLOAD PUSH4 0x27522BAF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x923 DUP2 PUSH2 0x1AEA JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE MLOAD PUSH32 0x725D312746BE14D750D0493AA7960A5ACA3C30F98F74B0E07AFC8F1A36B355C2 SWAP1 PUSH2 0x986 SWAP1 DUP6 SWAP1 DUP5 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x99B PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0x9A3 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7D0ABA4F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x7D0ABA4F SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xA04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x800 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2D7C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA37 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x6 ADD PUSH1 0x20 MSTORE POP POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA61 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x2 ADD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xA72 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0xA7A PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD55DA6A3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xD55DA6A3 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xADA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xB02 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2D7C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xB11 PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1B PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x7 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0xB57 JUMPI PUSH1 0x40 MLOAD PUSH4 0xDBBAA55F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xB78 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0xB80 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6AC0C5C7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xD5818B8E SWAP1 PUSH1 0x64 ADD PUSH2 0xABD JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBD1 PUSH2 0x1BD4 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0xBF8 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0xC14 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0xC22 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xC40 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0xC6A JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH2 0xC91 JUMPI PUSH1 0x40 MLOAD PUSH4 0x43103A3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xCA0 PUSH1 0x20 DUP10 ADD DUP10 PUSH2 0x2AAE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0xCC7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7EB887B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCE7 PUSH2 0xCD7 PUSH1 0x20 DUP10 ADD DUP10 PUSH2 0x2AAE JUMP JUMPDEST PUSH2 0x44C PUSH1 0x40 DUP11 ADD PUSH1 0x20 DUP12 ADD PUSH2 0x2DB0 JUMP JUMPDEST PUSH2 0xCF0 DUP7 PUSH2 0x1BFD JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCFA PUSH2 0x1AC6 JUMP JUMPDEST SWAP1 POP DUP16 DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP DUP11 DUP2 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP10 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP9 DUP2 PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH15 0x616E6F6E5F616164686161725F7631 PUSH1 0x88 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH2 0xD51 SWAP2 SWAP1 PUSH2 0x2DCB JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xD8A DUP16 DUP16 PUSH2 0x1C0E JUMP JUMPDEST PUSH2 0xD94 DUP14 DUP14 PUSH2 0x1CC4 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0xDDB JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDF6 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE09 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1B8BF99B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x6E2FE66C SWAP1 PUSH1 0x24 ADD PUSH2 0x789 JUMP JUMPDEST PUSH2 0xE4A PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x59A60691 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x59A60691 SWAP1 PUSH1 0xA4 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xED7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD MLOAD PUSH1 0x0 SUB PUSH2 0xF05 JUMPI DUP2 MLOAD PUSH1 0x40 MLOAD PUSH4 0x2A47C2F PUSH1 0xE3 SHL DUP2 MSTORE PUSH2 0xB4E SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B5C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP6 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xF23 SWAP2 SWAP1 PUSH2 0x2E39 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH2 0x180 ADD PUSH1 0x40 MSTORE DUP1 DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xF69 JUMPI PUSH2 0xF69 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0xF89 JUMPI PUSH2 0xF89 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x2 DUP2 MLOAD DUP2 LT PUSH2 0xFA9 JUMPI PUSH2 0xFA9 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x3 DUP2 MLOAD DUP2 LT PUSH2 0xFC9 JUMPI PUSH2 0xFC9 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x4 DUP2 MLOAD DUP2 LT PUSH2 0xFE9 JUMPI PUSH2 0xFE9 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x5 DUP2 MLOAD DUP2 LT PUSH2 0x1009 JUMPI PUSH2 0x1009 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x6 DUP2 MLOAD DUP2 LT PUSH2 0x1029 JUMPI PUSH2 0x1029 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x7 DUP2 MLOAD DUP2 LT PUSH2 0x1049 JUMPI PUSH2 0x1049 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x8 DUP2 MLOAD DUP2 LT PUSH2 0x1069 JUMPI PUSH2 0x1069 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x9 DUP2 MLOAD DUP2 LT PUSH2 0x1089 JUMPI PUSH2 0x1089 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0xA DUP2 MLOAD DUP2 LT PUSH2 0x10A9 JUMPI PUSH2 0x10A9 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0xB DUP2 MLOAD DUP2 LT PUSH2 0x10C9 JUMPI PUSH2 0x10C9 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE POP DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 PUSH2 0x10E3 PUSH2 0x1AC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP10 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x10FD SWAP2 SWAP1 PUSH2 0x2DCB JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP1 PUSH2 0x1136 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1DCF1AB PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8CBAC0FA DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1178 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2F2C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1195 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11B9 SWAP2 SWAP1 PUSH2 0x2FB1 JUMP JUMPDEST PUSH2 0x11D6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB4B32E6F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x11DF DUP4 PUSH2 0x1D25 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x11F2 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0x121D PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x1225 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA3018D79 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xA3018D79 SWAP1 PUSH1 0x44 ADD PUSH2 0x6FC JUMP JUMPDEST PUSH2 0x126D PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1277 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x3 DUP2 ADD DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE SWAP1 SWAP2 POP PUSH32 0xB69B4C35C29DEF0AC05E4AC2258986B58DE5AE03FEEEA1802C95F4E0B5794CF1 SWAP1 PUSH1 0x20 ADD PUSH2 0x868 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12BB PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x9A ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12CC PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x12D6 DUP3 DUP3 PUSH2 0x1C0E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12E4 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x5 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8C2 PUSH2 0x1A70 JUMP JUMPDEST PUSH2 0x130D PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1317 PUSH1 0x0 PUSH2 0x1DB2 JUMP JUMPDEST JUMP JUMPDEST CALLER DUP1 PUSH2 0x1323 PUSH2 0x1912 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1355 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xB4E JUMP JUMPDEST PUSH2 0x135E DUP2 PUSH2 0x1DB2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13A0 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x9B ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x13B1 PUSH2 0x2401 JUMP JUMPDEST PUSH2 0x13B9 PUSH2 0x1A70 JUMP JUMPDEST SLOAD DUP5 EQ PUSH2 0x13FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x92C8CADCE8D2E8F240D2C840DAD2E6DAC2E8C6D PUSH1 0x63 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xB4E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1409 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB1A9CD3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB1A9CD3 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1461 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1485 SWAP2 SWAP1 PUSH2 0x2FCC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE DUP3 MLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 ADD MLOAD DUP2 DUP4 ADD MSTORE SWAP1 DUP3 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 PUSH2 0x14BA PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xB2BCD1B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x16579A36 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1524 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x154C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2D7C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD ISZERO ISZERO DUP2 DUP4 ADD MSTORE DUP3 DUP5 ADD MLOAD DUP3 DUP5 ADD MSTORE PUSH1 0x60 DUP1 DUP6 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP6 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xA0 DUP1 DUP6 ADD MLOAD ISZERO ISZERO SWAP1 DUP4 ADD MSTORE PUSH1 0xC0 DUP1 DUP6 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xE0 SWAP4 DUP5 ADD MLOAD SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP4 DUP2 MSTORE SWAP1 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15CC PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x4 ADD DUP3 PUSH1 0x40 MLOAD PUSH2 0x15DD SWAP2 SWAP1 PUSH2 0x2DCB JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1604 PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160E PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE SWAP1 SWAP2 POP PUSH32 0xF007A02BA428E63FA98B65269E70F9A9DB847E0A839049A2F31F069282267734 SWAP1 PUSH1 0x20 ADD PUSH2 0x868 JUMP JUMPDEST PUSH2 0x1650 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0x167B PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x1683 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6AD1D8A7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xD5A3B14E SWAP1 PUSH1 0x44 ADD PUSH2 0x6FC JUMP JUMPDEST PUSH2 0x16CB PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0x16D3 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xCF089 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH3 0xCF0890 SWAP1 PUSH1 0x44 ADD PUSH2 0x9E7 JUMP JUMPDEST PUSH2 0x1719 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x12D6 DUP3 DUP3 PUSH2 0x1CC4 JUMP JUMPDEST PUSH2 0x1747 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x174F PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB1A9CD3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB1A9CD3 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x17A7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x800 SWAP2 SWAP1 PUSH2 0x2FCC JUMP JUMPDEST PUSH2 0x17D3 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0x17DB PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x97AC5391 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x97AC5391 SWAP1 PUSH1 0x44 ADD PUSH2 0x9E7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1825 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x9C ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1838 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E75E7F3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x1E75E7F3 SWAP1 PUSH1 0x24 ADD PUSH2 0x789 JUMP JUMPDEST PUSH2 0x1879 PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1883 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x7 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18AA PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x18BB PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0x18C3 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB2BCD1B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x16579A36 SWAP1 PUSH1 0x64 ADD PUSH2 0xABD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 PUSH2 0x1386 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1945 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x7 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x1964 PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x196E PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x19A2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x56B61331 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x19C3 PUSH2 0x1A94 JUMP JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR DUP3 SSTORE PUSH2 0x1A07 PUSH2 0x1361 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A4A PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A5E PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1A6A DUP5 DUP5 DUP5 DUP5 PUSH2 0x1DEA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x3018A310C36C4F8228F09BF3B1822685CF0971DAA8265A58CA807C4A4DABA400 SWAP1 JUMP JUMPDEST CALLER PUSH2 0x1A9D PUSH2 0x1361 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1317 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xB4E JUMP JUMPDEST PUSH32 0x45045675F3EFE2EC0CCFAD8AA4C678179D3E20B95A34AD9D981FAB6F95BA1E00 SWAP1 JUMP JUMPDEST PUSH2 0x1AF2 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8AD7195D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x8AD7195D SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1B61 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1B6D PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x175BA3E9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x2EB747D2 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1BCD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 PUSH2 0x800 JUMP JUMPDEST PUSH2 0x1C05 PUSH2 0x1F42 JUMP JUMPDEST PUSH2 0x135E DUP2 PUSH2 0x1F67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C18 PUSH2 0x1AC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A6A JUMPI PUSH1 0x1 DUP3 PUSH1 0x5 ADD PUSH1 0x0 DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x1C3F JUMPI PUSH2 0x1C3F PUSH2 0x2EF3 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x192522987419BE1C06CA88238DF20A35B84C7A5025BBF1E244FAC876D2D320EE DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0x1C9E JUMPI PUSH2 0x1C9E PUSH2 0x2EF3 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x40 MLOAD PUSH2 0x1CB4 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 ADD PUSH2 0x1C1D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CCE PUSH2 0x1AC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A6A JUMPI PUSH1 0x1 DUP3 PUSH1 0x7 ADD PUSH1 0x0 DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x1CF5 JUMPI PUSH2 0x1CF5 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP3 SWAP1 SWAP3 ADD CALLDATALOAD DUP4 MSTORE POP DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x1CD3 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP2 ADD MLOAD DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 DUP4 ADD MLOAD SWAP4 DUP4 ADD MLOAD PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP7 ADD MLOAD PUSH1 0xE0 DUP8 ADD MLOAD PUSH2 0x100 DUP9 ADD MLOAD PUSH2 0x120 DUP10 ADD MLOAD PUSH2 0x140 DUP11 ADD MLOAD PUSH2 0x160 SWAP1 SWAP11 ADD MLOAD SWAP9 SWAP11 SWAP8 SWAP10 SWAP8 SWAP9 SWAP7 SWAP8 SWAP6 SWAP7 SWAP5 SWAP6 SWAP4 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x1D8F DUP11 DUP11 DUP14 DUP16 DUP10 DUP14 DUP14 DUP11 DUP11 DUP16 PUSH2 0x1F99 JUMP JUMPDEST PUSH2 0x1D99 DUP12 DUP3 PUSH2 0x2121 JUMP JUMPDEST PUSH2 0x1DA3 DUP11 DUP11 PUSH2 0x2272 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH2 0x12D6 DUP3 PUSH2 0x232D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DF4 PUSH2 0x1AC6 JUMP JUMPDEST SWAP1 POP DUP4 DUP3 EQ PUSH2 0x1E20 JUMPI PUSH1 0x40 MLOAD PUSH4 0x55C5B3E3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0xB4E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0xED7 JUMPI DUP4 DUP4 DUP3 DUP2 DUP2 LT PUSH2 0x1E3D JUMPI PUSH2 0x1E3D PUSH2 0x2EF3 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1E52 SWAP2 SWAP1 PUSH2 0x2AAE JUMP JUMPDEST DUP3 PUSH1 0x4 ADD DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x1E68 JUMPI PUSH2 0x1E68 PUSH2 0x2EF3 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1E7A SWAP2 SWAP1 PUSH2 0x302B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E88 SWAP3 SWAP2 SWAP1 PUSH2 0x3071 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH32 0x3F04312ECEF010D1CB9901BB8602DB84B7B52FDDCEF458E04BD8E83A7FC035A4 DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0x1EEA JUMPI PUSH2 0x1EEA PUSH2 0x2EF3 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1EFC SWAP2 SWAP1 PUSH2 0x302B JUMP JUMPDEST DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x1F0E JUMPI PUSH2 0x1F0E PUSH2 0x2EF3 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1F23 SWAP2 SWAP1 PUSH2 0x2AAE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F32 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3081 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 ADD PUSH2 0x1E23 JUMP JUMPDEST PUSH2 0x1F4A PUSH2 0x239E JUMP JUMPDEST PUSH2 0x1317 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1F6F PUSH2 0x1F42 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1355 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xB4E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FA3 PUSH2 0x1AC6 JUMP JUMPDEST SWAP1 POP DUP11 PUSH1 0x0 SUB PUSH2 0x1FC6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4978C157 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 PUSH1 0x0 SUB PUSH2 0x1FE7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x9D34BA4F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD DUP8 EQ PUSH2 0x2008 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2CEE055 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 ADD SLOAD DUP5 EQ PUSH2 0x202C JUMPI PUSH1 0x40 MLOAD PUSH4 0x81D60393 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x3 ADD SLOAD DUP4 EQ PUSH2 0x2050 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFE0C887B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 ADD SLOAD DUP8 PUSH2 0x2062 SWAP2 SWAP1 PUSH2 0x30C2 JUMP JUMPDEST SWAP1 POP DUP1 DUP7 EQ PUSH2 0x208E JUMPI PUSH1 0x40 MLOAD PUSH4 0x3ABB8C79 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0xB4E JUMP JUMPDEST TIMESTAMP DUP7 GT PUSH2 0x20AE JUMPI PUSH1 0x40 MLOAD PUSH4 0xB67A7713 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x5 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x20DF JUMPI PUSH1 0x40 MLOAD PUSH4 0x56B61331 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x7 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2113 JUMPI PUSH1 0x40 MLOAD PUSH4 0xDBBAA55F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xB4E JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 SUB PUSH2 0x2156 JUMPI PUSH1 0x40 MLOAD PUSH4 0x37F969B3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xB4E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2160 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP1 ISZERO PUSH2 0x2241 JUMPI PUSH2 0x218B PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8AD7195D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x8AD7195D SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x21FA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x725D312746BE14D750D0493AA7960A5ACA3C30F98F74B0E07AFC8F1A36B355C2 SWAP4 POP ADD SWAP1 POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x6 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x227A PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6FB1575 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x6FB1575 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x22E8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x22F4 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x175BA3E9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x2EB747D2 SWAP1 PUSH1 0x24 ADD PUSH2 0xEAB JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 DUP3 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP3 AND SWAP2 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23A8 PUSH2 0x1BD4 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x2437 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2488 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x24A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB02 DUP3 PUSH2 0x248D JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD ISZERO ISZERO DUP2 DUP5 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH2 0x100 SWAP2 DUP6 ADD DUP3 SWAP1 MSTORE DUP1 MLOAD SWAP2 DUP6 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP3 ADD SWAP1 DUP3 SWAP1 PUSH2 0x120 DUP7 ADD SWAP1 JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x251C JUMPI DUP4 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x1 DUP4 ADD SWAP3 POP PUSH2 0x24F9 JUMP JUMPDEST POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0x80 DUP8 ADD MSTORE PUSH1 0xA0 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x2546 PUSH1 0xA0 DUP8 ADD DUP5 ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xC0 DUP8 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH1 0xE0 DUP8 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2579 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x24C4 JUMP JUMPDEST SWAP1 POP PUSH2 0xB02 PUSH1 0x20 DUP4 ADD DUP5 DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xB02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x260F PUSH1 0x20 DUP5 ADD PUSH2 0x248D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH2 0x264B PUSH1 0x20 DUP3 ADD DUP4 MLOAD DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0xA0 DUP1 DUP5 ADD MSTORE PUSH2 0x897 PUSH1 0xC0 DUP5 ADD DUP3 PUSH2 0x24C4 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xB02 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24C4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x268B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x26AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x26C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x26DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x24A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP11 DUP13 SUB PUSH2 0x120 DUP2 SLT ISZERO PUSH2 0x271D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP12 CALLDATALOAD SWAP11 POP PUSH1 0x20 DUP13 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x273A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2746 DUP15 DUP3 DUP16 ADD PUSH2 0x269A JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP POP PUSH1 0x40 DUP13 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2765 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2771 DUP15 DUP3 DUP16 ADD PUSH2 0x269A JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP POP PUSH1 0x60 DUP13 ADD CALLDATALOAD SWAP6 POP PUSH1 0x80 DUP13 ADD CALLDATALOAD SWAP5 POP PUSH2 0x2791 PUSH1 0xA0 DUP14 ADD PUSH2 0x26E5 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 PUSH1 0xBF NOT DUP3 ADD SLT ISZERO PUSH2 0x27A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xC0 DUP12 ADD SWAP2 POP PUSH2 0x27B9 PUSH2 0x100 DUP13 ADD PUSH2 0x26E5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x24A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27FE DUP4 PUSH2 0x26E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x260F PUSH1 0x20 DUP5 ADD PUSH2 0x27CA 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 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2844 JUMPI PUSH2 0x2844 PUSH2 0x280C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x100 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2844 JUMPI PUSH2 0x2844 PUSH2 0x280C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2895 JUMPI PUSH2 0x2895 PUSH2 0x280C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x28CE JUMPI PUSH2 0x28CE PUSH2 0x280C JUMP JUMPDEST POP PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x28E3 DUP2 PUSH2 0x286D JUMP JUMPDEST SWAP2 POP POP DUP3 DUP2 MSTORE DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x28F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2926 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x293C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x40 DUP2 DUP7 SUB SLT ISZERO PUSH2 0x294E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2956 PUSH2 0x2822 JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x296C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2978 DUP8 DUP3 DUP6 ADD PUSH2 0x289D JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2994 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29A0 DUP8 DUP3 DUP6 ADD PUSH2 0x289D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP DUP1 SWAP4 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29D0 DUP6 DUP3 DUP7 ADD PUSH2 0x289D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A0F DUP6 DUP3 DUP7 ADD PUSH2 0x269A JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2A30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2A47 PUSH1 0x40 DUP6 ADD PUSH2 0x248D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x897 DUP5 DUP3 DUP6 ADD PUSH2 0x289D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AA0 DUP4 PUSH2 0x248D JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB02 DUP3 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2ADF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2AF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B01 DUP8 DUP3 DUP9 ADD PUSH2 0x269A JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B2C DUP8 DUP3 DUP9 ADD PUSH2 0x269A JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B53 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2B3B JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x2B7B DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2B38 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x24A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2BB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2BC9 JUMPI PUSH2 0x2BC9 PUSH2 0x280C JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH2 0x2BD9 PUSH1 0x20 DUP3 ADD PUSH2 0x286D JUMP JUMPDEST SWAP2 DUP3 MSTORE PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD SWAP3 SWAP1 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x2BF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0x2C17 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x2BFC JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C3C PUSH2 0x284A JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE SWAP1 POP PUSH2 0x2C4E PUSH1 0x20 DUP4 ADD PUSH2 0x2B8F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2C6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C78 DUP5 DUP3 DUP6 ADD PUSH2 0x2B9F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2C9E PUSH1 0xA0 DUP4 ADD PUSH2 0x2B8F JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 SWAP2 DUP3 ADD MLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 SUB PUSH1 0xA0 DUP2 SLT ISZERO PUSH2 0x2CD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2CE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CF5 DUP7 DUP3 DUP8 ADD PUSH2 0x2C21 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH1 0x1F NOT DUP3 ADD SLT ISZERO PUSH2 0x2D0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2D2D JUMPI PUSH2 0x2D2D PUSH2 0x280C JUMP JUMPDEST PUSH1 0x40 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP6 DUP2 ADD MLOAD DUP4 MSTORE DUP6 DUP3 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP7 ADD MLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 SWAP1 SWAP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2DA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x897 DUP5 DUP3 DUP6 ADD PUSH2 0x2C21 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2DC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB02 DUP3 PUSH2 0x27CA JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2DDD DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2B38 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2DF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E02 PUSH1 0x40 PUSH2 0x286D JUMP JUMPDEST DUP1 PUSH1 0x40 DUP5 ADD DUP6 DUP2 GT ISZERO PUSH2 0x2E14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2E2E JUMPI DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 ADD PUSH2 0x2E16 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x120 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2E50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2E66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E72 DUP8 DUP3 DUP9 ADD PUSH2 0x2B9F JUMP JUMPDEST SWAP5 POP POP PUSH2 0x2E82 DUP7 PUSH1 0x20 DUP8 ADD PUSH2 0x2DE7 JUMP JUMPDEST SWAP3 POP DUP6 PUSH1 0x7F DUP7 ADD SLT PUSH2 0x2E93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 PUSH2 0x2E9E DUP2 PUSH2 0x286D JUMP JUMPDEST DUP1 PUSH1 0xE0 DUP9 ADD DUP10 DUP2 GT ISZERO PUSH2 0x2EB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 DUP10 ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2ED6 JUMPI PUSH2 0x2EC7 DUP12 DUP3 PUSH2 0x2DE7 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 DUP5 ADD PUSH2 0x2EB5 JUMP JUMPDEST POP DUP2 SWAP6 POP PUSH2 0x2EE4 DUP11 DUP3 PUSH2 0x2DE7 JUMP JUMPDEST SWAP5 POP POP POP POP 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 DUP1 PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP2 LT ISZERO PUSH2 0x1A6A JUMPI DUP2 MLOAD DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2F0D JUMP JUMPDEST PUSH2 0x280 DUP2 ADD PUSH2 0x2F3B DUP3 DUP8 PUSH2 0x2F09 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD DUP6 PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP2 LT ISZERO PUSH2 0x2F6D JUMPI PUSH2 0x2F57 DUP4 DUP4 MLOAD PUSH2 0x2F09 JUMP JUMPDEST PUSH1 0x40 SWAP3 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2F43 JUMP JUMPDEST POP POP POP PUSH2 0x2F7D PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x2F09 JUMP JUMPDEST PUSH2 0x100 DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST PUSH1 0xC DUP2 LT ISZERO PUSH2 0x2FA5 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2F86 JUMP JUMPDEST POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2FC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB02 DUP3 PUSH2 0x2B8F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x2FDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x0 SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3005 JUMPI PUSH2 0x3005 PUSH2 0x280C JUMP JUMPDEST PUSH1 0x40 SWAP1 DUP2 MSTORE DUP5 MLOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP7 ADD MLOAD SWAP1 DUP4 ADD MSTORE SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x3042 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x305C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x26DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE DUP3 DUP5 PUSH1 0x60 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x60 DUP5 DUP4 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x800 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0xF07F575585DB98C5935EBD7C28C901B4415E40AF41D5263B2BFEF8 SWAP9 DIV SUB 0xCE PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "1526:15776:38:-:0;;;3214:53;;;;;;;;;-1:-1:-1;3238:22:38;:20;:22::i;:::-;1526:15776;;7709:422:14;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:14;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:14;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:14;-1:-1:-1;;;;;8033:33:14;;;;;8085:29;;158:50:46;;;8085:29:14;;146:2:46;131:18;8085:29:14;;;;;;;7979:146;7758:373;7709:422::o;14:200:46:-;1526:15776:38;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@VERSION_14805": { + "entryPoint": null, + "id": 14805, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@__Ownable_init_4828": { + "entryPoint": 7165, + "id": 4828, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@__Ownable_init_unchained_4855": { + "entryPoint": 8039, + "id": 4855, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_addHashAndTransit_15881": { + "entryPoint": 8818, + "id": 15881, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_addPublicKeyHashesBatch_15566": { + "entryPoint": 7182, + "id": 15566, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_addQrVersionBatch_15971": { + "entryPoint": 7364, + "id": 15971, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_afterProofSubmit_15747": { + "entryPoint": 7461, + "id": 15747, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_checkInitializing_5144": { + "entryPoint": 8002, + "id": 5144, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_checkOwner_4896": { + "entryPoint": 6804, + "id": 4896, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getAnonAadhaarCredentialIssuerStorage_14855": { + "entryPoint": 6854, + "id": 14855, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getIdentityBaseStorage_855": { + "entryPoint": 6768, + "id": 855, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getInitializableStorage_5235": { + "entryPoint": 7124, + "id": 5235, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getOwnable2StepStorage_4662": { + "entryPoint": null, + "id": 4662, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getOwnableStorage_4799": { + "entryPoint": null, + "id": 4799, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_initializableStorageSlot_5221": { + "entryPoint": null, + "id": 5221, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_isInitializing_5212": { + "entryPoint": 9118, + "id": 5212, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_msgSender_5264": { + "entryPoint": null, + "id": 5264, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_revokeClaimAndTransit_15524": { + "entryPoint": 6890, + "id": 15524, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setNullifier_15935": { + "entryPoint": 8481, + "id": 15935, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_transferOwnership_4748": { + "entryPoint": 7602, + "id": 4748, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_4967": { + "entryPoint": 9005, + "id": 4967, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_updateAnonAadhaarVerifiers_15630": { + "entryPoint": 7658, + "id": 15630, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_validatePublicInputs_15859": { + "entryPoint": 8089, + "id": 15859, + "parameterSlots": 10, + "returnSlots": 0 + }, + "@acceptOwnership_4772": { + "entryPoint": 4889, + "id": 4772, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@addPublicKeyHash_15126": { + "entryPoint": 2054, + "id": 15126, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@addPublicKeyHashesBatch_15140": { + "entryPoint": 4804, + "id": 15140, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@addQrVersionBatch_15456": { + "entryPoint": 5905, + "id": 15456, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@addQrVersion_15442": { + "entryPoint": 6257, + "id": 15442, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@anonAadhaarVerifiers_15206": { + "entryPoint": 5570, + "id": 15206, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getClaimProofByRoot_944": { + "entryPoint": 2928, + "id": 944, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getClaimProofWithStateInfo_924": { + "entryPoint": 5704, + "id": 924, + "parameterSlots": 1, + "returnSlots": 2 + }, + "@getClaimProof_904": { + "entryPoint": 5827, + "id": 904, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getClaimsTreeRoot_957": { + "entryPoint": 3583, + "id": 957, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getExpirationTime_15419": { + "entryPoint": 6304, + "id": 15419, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getId_1126": { + "entryPoint": 4859, + "id": 1126, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getIsOldStateGenesis_1138": { + "entryPoint": 6720, + "id": 1138, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getLatestPublishedClaimsRoot_1151": { + "entryPoint": 4785, + "id": 1151, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getLatestPublishedRevocationsRoot_1164": { + "entryPoint": 5014, + "id": 1164, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getLatestPublishedRootsRoot_1177": { + "entryPoint": 6171, + "id": 1177, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getLatestPublishedState_1189": { + "entryPoint": 3564, + "id": 1189, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getNullifierSeed_15382": { + "entryPoint": 2232, + "id": 15382, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getRevocationProofByRoot_1014": { + "entryPoint": 6323, + "id": 1014, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRevocationProofWithStateInfo_994": { + "entryPoint": 1661, + "id": 994, + "parameterSlots": 1, + "returnSlots": 2 + }, + "@getRevocationProof_974": { + "entryPoint": 2451, + "id": 974, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getRevocationStatusByIdAndState_1304": { + "entryPoint": 5033, + "id": 1304, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getRevocationStatus_1214": { + "entryPoint": 2164, + "id": 1214, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRevocationsTreeRoot_1027": { + "entryPoint": 1866, + "id": 1027, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getRootProofByRoot_1084": { + "entryPoint": 2666, + "id": 1084, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRootProofWithStateInfo_1064": { + "entryPoint": 4586, + "id": 1064, + "parameterSlots": 1, + "returnSlots": 2 + }, + "@getRootProof_1044": { + "entryPoint": 6091, + "id": 1044, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getRootsByState_1114": { + "entryPoint": 5923, + "id": 1114, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getRootsTreeRoot_1097": { + "entryPoint": 6190, + "id": 1097, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getSmtDepth_864": { + "entryPoint": null, + "id": 864, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getTemplateRoot_15408": { + "entryPoint": 2647, + "id": 15408, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@initializeIssuer_14962": { + "entryPoint": 3015, + "id": 14962, + "parameterSlots": 10, + "returnSlots": 0 + }, + "@initialize_887": { + "entryPoint": 3650, + "id": 887, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@nullifierExists_15028": { + "entryPoint": 2604, + "id": 15028, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@owner_4879": { + "entryPoint": 4961, + "id": 4879, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@pendingOwner_4696": { + "entryPoint": 6418, + "id": 4696, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@publicKeyHashExists_15397": { + "entryPoint": 4826, + "id": 15397, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@qrVersionSupported_15504": { + "entryPoint": 6459, + "id": 15504, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@removePublicKeyHash_15173": { + "entryPoint": 6492, + "id": 15173, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@removeQrVersion_15489": { + "entryPoint": 2825, + "id": 15489, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@renounceOwnership_4910": { + "entryPoint": 4869, + "id": 4910, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@revokeCredential_15099": { + "entryPoint": 2248, + "id": 15099, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setIssuerDidHash_15007": { + "entryPoint": 4709, + "id": 15007, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setNullifierSeed_14982": { + "entryPoint": 2207, + "id": 14982, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setTemplateRoot_15053": { + "entryPoint": 5628, + "id": 15053, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@supportsInterface_1326": { + "entryPoint": 1999, + "id": 1326, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_8726": { + "entryPoint": null, + "id": 8726, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@transferOwnership_4724": { + "entryPoint": 6587, + "id": 4724, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@updateAnonAadhaarVerifiers_15191": { + "entryPoint": 6742, + "id": 15191, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@verifyAadhaar_15371": { + "entryPoint": 3807, + "id": 15371, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_address": { + "entryPoint": 9957, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_array_uint256_dyn_calldata": { + "entryPoint": 9882, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_array_uint256_dyn_fromMemory": { + "entryPoint": 11167, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_array_uint256_fromMemory": { + "entryPoint": 11751, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_bool_fromMemory": { + "entryPoint": 11151, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_bytes2": { + "entryPoint": 10186, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_string": { + "entryPoint": 10397, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_struct_Proof_fromMemory": { + "entryPoint": 11297, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 10926, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_bytes2": { + "entryPoint": 10210, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 10953, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr": { + "entryPoint": 10714, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$2_memory_ptrt_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptrt_array$_t_uint256_$2_memory_ptr_fromMemory": { + "entryPoint": 11833, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 12209, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes2": { + "entryPoint": 11696, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 9641, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr": { + "entryPoint": 10832, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_CredentialProof_$14818_memory_ptrt_bytes_memory_ptr": { + "entryPoint": 10515, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_struct$_Proof_$2979_memory_ptr_fromMemory": { + "entryPoint": 11644, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_Proof_$2979_memory_ptrt_struct$_StateInfo_$1400_memory_ptr_fromMemory": { + "entryPoint": 11455, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_struct$_Roots_$1390_memory_ptr_fromMemory": { + "entryPoint": 12236, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 9683, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 11619, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_uint256t_uint256t_addresst_struct$_StateInfo_$14813_calldata_ptrt_address": { + "entryPoint": 9980, + "id": null, + "parameterSlots": 2, + "returnSlots": 10 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 9848, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256t_uint256t_uint64": { + "entryPoint": 10779, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_uint256t_uint64": { + "entryPoint": 9708, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint64": { + "entryPoint": 9385, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint64t_uint256": { + "entryPoint": 10884, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_uint64": { + "entryPoint": 9357, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_array_uint256": { + "entryPoint": 12041, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_bool": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_struct_Proof": { + "entryPoint": 9412, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_struct_StateInfo": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 12401, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 11723, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$2_memory_ptr_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_t_array$_t_uint256_$2_memory_ptr_t_array$_t_uint256_$12_memory_ptr__to_t_array$_t_uint256_$2_memory_ptr_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_t_array$_t_uint256_$2_memory_ptr_t_array$_t_uint256_$12_memory_ptr__fromStack_reversed": { + "entryPoint": 12076, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_calldata_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed": { + "entryPoint": 12417, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 11100, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b95c2f31a6045566300565f2774af75c15f58eae84f1e4dafcb6cd16a89e425e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_CredentialStatus_$133_memory_ptr__to_t_struct$_CredentialStatus_$133_memory_ptr__fromStack_reversed": { + "entryPoint": 9752, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr__to_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_address_t_address_t_uint256_t_bytes2__to_t_uint256_t_address_t_address_t_uint256_t_bytes2__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint256__to_t_uint256_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint64__to_t_uint256_t_uint64__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint64_t_uint256__to_t_uint256_t_uint64_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr__fromStack_reversed": { + "entryPoint": 9829, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__fromStack_reversed": { + "entryPoint": 9574, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Roots_$1390_memory_ptr__to_t_struct$_Roots_$1390_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint64__to_t_uint256_t_uint64__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "access_calldata_tail_t_string_calldata_ptr": { + "entryPoint": 12331, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_memory": { + "entryPoint": 10349, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_memory_2962": { + "entryPoint": 10274, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "allocate_memory_2963": { + "entryPoint": 10314, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 12482, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 11064, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 12019, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 10252, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:26814:46", + "nodeType": "YulBlock", + "src": "0:26814:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "62:123:46", + "nodeType": "YulBlock", + "src": "62:123:46", + "statements": [ + { + "nativeSrc": "72:29:46", + "nodeType": "YulAssignment", + "src": "72:29:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "94:6:46", + "nodeType": "YulIdentifier", + "src": "94:6:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "81:12:46", + "nodeType": "YulIdentifier", + "src": "81:12:46" + }, + "nativeSrc": "81:20:46", + "nodeType": "YulFunctionCall", + "src": "81:20:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "72:5:46", + "nodeType": "YulIdentifier", + "src": "72:5:46" + } + ] + }, + { + "body": { + "nativeSrc": "163:16:46", + "nodeType": "YulBlock", + "src": "163:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "172:1:46", + "nodeType": "YulLiteral", + "src": "172:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "175:1:46", + "nodeType": "YulLiteral", + "src": "175:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "165:6:46", + "nodeType": "YulIdentifier", + "src": "165:6:46" + }, + "nativeSrc": "165:12:46", + "nodeType": "YulFunctionCall", + "src": "165:12:46" + }, + "nativeSrc": "165:12:46", + "nodeType": "YulExpressionStatement", + "src": "165:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "123:5:46", + "nodeType": "YulIdentifier", + "src": "123:5:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "134:5:46", + "nodeType": "YulIdentifier", + "src": "134:5:46" + }, + { + "kind": "number", + "nativeSrc": "141:18:46", + "nodeType": "YulLiteral", + "src": "141:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "130:3:46", + "nodeType": "YulIdentifier", + "src": "130:3:46" + }, + "nativeSrc": "130:30:46", + "nodeType": "YulFunctionCall", + "src": "130:30:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "120:2:46", + "nodeType": "YulIdentifier", + "src": "120:2:46" + }, + "nativeSrc": "120:41:46", + "nodeType": "YulFunctionCall", + "src": "120:41:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "113:6:46", + "nodeType": "YulIdentifier", + "src": "113:6:46" + }, + "nativeSrc": "113:49:46", + "nodeType": "YulFunctionCall", + "src": "113:49:46" + }, + "nativeSrc": "110:69:46", + "nodeType": "YulIf", + "src": "110:69:46" + } + ] + }, + "name": "abi_decode_uint64", + "nativeSrc": "14:171:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "41:6:46", + "nodeType": "YulTypedName", + "src": "41:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "52:5:46", + "nodeType": "YulTypedName", + "src": "52:5:46", + "type": "" + } + ], + "src": "14:171:46" + }, + { + "body": { + "nativeSrc": "259:115:46", + "nodeType": "YulBlock", + "src": "259:115:46", + "statements": [ + { + "body": { + "nativeSrc": "305:16:46", + "nodeType": "YulBlock", + "src": "305:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "314:1:46", + "nodeType": "YulLiteral", + "src": "314:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "317:1:46", + "nodeType": "YulLiteral", + "src": "317:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "307:6:46", + "nodeType": "YulIdentifier", + "src": "307:6:46" + }, + "nativeSrc": "307:12:46", + "nodeType": "YulFunctionCall", + "src": "307:12:46" + }, + "nativeSrc": "307:12:46", + "nodeType": "YulExpressionStatement", + "src": "307:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "280:7:46", + "nodeType": "YulIdentifier", + "src": "280:7:46" + }, + { + "name": "headStart", + "nativeSrc": "289:9:46", + "nodeType": "YulIdentifier", + "src": "289:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "276:3:46", + "nodeType": "YulIdentifier", + "src": "276:3:46" + }, + "nativeSrc": "276:23:46", + "nodeType": "YulFunctionCall", + "src": "276:23:46" + }, + { + "kind": "number", + "nativeSrc": "301:2:46", + "nodeType": "YulLiteral", + "src": "301:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "272:3:46", + "nodeType": "YulIdentifier", + "src": "272:3:46" + }, + "nativeSrc": "272:32:46", + "nodeType": "YulFunctionCall", + "src": "272:32:46" + }, + "nativeSrc": "269:52:46", + "nodeType": "YulIf", + "src": "269:52:46" + }, + { + "nativeSrc": "330:38:46", + "nodeType": "YulAssignment", + "src": "330:38:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "358:9:46", + "nodeType": "YulIdentifier", + "src": "358:9:46" + } + ], + "functionName": { + "name": "abi_decode_uint64", + "nativeSrc": "340:17:46", + "nodeType": "YulIdentifier", + "src": "340:17:46" + }, + "nativeSrc": "340:28:46", + "nodeType": "YulFunctionCall", + "src": "340:28:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "330:6:46", + "nodeType": "YulIdentifier", + "src": "330:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint64", + "nativeSrc": "190:184:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "225:9:46", + "nodeType": "YulTypedName", + "src": "225:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "236:7:46", + "nodeType": "YulTypedName", + "src": "236:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "248:6:46", + "nodeType": "YulTypedName", + "src": "248:6:46", + "type": "" + } + ], + "src": "190:184:46" + }, + { + "body": { + "nativeSrc": "420:50:46", + "nodeType": "YulBlock", + "src": "420:50:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "437:3:46", + "nodeType": "YulIdentifier", + "src": "437:3:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "456:5:46", + "nodeType": "YulIdentifier", + "src": "456:5:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "449:6:46", + "nodeType": "YulIdentifier", + "src": "449:6:46" + }, + "nativeSrc": "449:13:46", + "nodeType": "YulFunctionCall", + "src": "449:13:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "442:6:46", + "nodeType": "YulIdentifier", + "src": "442:6:46" + }, + "nativeSrc": "442:21:46", + "nodeType": "YulFunctionCall", + "src": "442:21:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "430:6:46", + "nodeType": "YulIdentifier", + "src": "430:6:46" + }, + "nativeSrc": "430:34:46", + "nodeType": "YulFunctionCall", + "src": "430:34:46" + }, + "nativeSrc": "430:34:46", + "nodeType": "YulExpressionStatement", + "src": "430:34:46" + } + ] + }, + "name": "abi_encode_bool", + "nativeSrc": "379:91:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "404:5:46", + "nodeType": "YulTypedName", + "src": "404:5:46", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "411:3:46", + "nodeType": "YulTypedName", + "src": "411:3:46", + "type": "" + } + ], + "src": "379:91:46" + }, + { + "body": { + "nativeSrc": "531:977:46", + "nodeType": "YulBlock", + "src": "531:977:46", + "statements": [ + { + "nativeSrc": "541:28:46", + "nodeType": "YulVariableDeclaration", + "src": "541:28:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "557:3:46", + "nodeType": "YulIdentifier", + "src": "557:3:46" + }, + { + "kind": "number", + "nativeSrc": "562:6:46", + "nodeType": "YulLiteral", + "src": "562:6:46", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "553:3:46", + "nodeType": "YulIdentifier", + "src": "553:3:46" + }, + "nativeSrc": "553:16:46", + "nodeType": "YulFunctionCall", + "src": "553:16:46" + }, + "variables": [ + { + "name": "tail", + "nativeSrc": "545:4:46", + "nodeType": "YulTypedName", + "src": "545:4:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "585:3:46", + "nodeType": "YulIdentifier", + "src": "585:3:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "596:5:46", + "nodeType": "YulIdentifier", + "src": "596:5:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "590:5:46", + "nodeType": "YulIdentifier", + "src": "590:5:46" + }, + "nativeSrc": "590:12:46", + "nodeType": "YulFunctionCall", + "src": "590:12:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "578:6:46", + "nodeType": "YulIdentifier", + "src": "578:6:46" + }, + "nativeSrc": "578:25:46", + "nodeType": "YulFunctionCall", + "src": "578:25:46" + }, + "nativeSrc": "578:25:46", + "nodeType": "YulExpressionStatement", + "src": "578:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "623:3:46", + "nodeType": "YulIdentifier", + "src": "623:3:46" + }, + { + "kind": "number", + "nativeSrc": "628:4:46", + "nodeType": "YulLiteral", + "src": "628:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "619:3:46", + "nodeType": "YulIdentifier", + "src": "619:3:46" + }, + "nativeSrc": "619:14:46", + "nodeType": "YulFunctionCall", + "src": "619:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:46", + "nodeType": "YulIdentifier", + "src": "659:5:46" + }, + { + "kind": "number", + "nativeSrc": "666:4:46", + "nodeType": "YulLiteral", + "src": "666:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "655:3:46", + "nodeType": "YulIdentifier", + "src": "655:3:46" + }, + "nativeSrc": "655:16:46", + "nodeType": "YulFunctionCall", + "src": "655:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "649:5:46", + "nodeType": "YulIdentifier", + "src": "649:5:46" + }, + "nativeSrc": "649:23:46", + "nodeType": "YulFunctionCall", + "src": "649:23:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "642:6:46", + "nodeType": "YulIdentifier", + "src": "642:6:46" + }, + "nativeSrc": "642:31:46", + "nodeType": "YulFunctionCall", + "src": "642:31:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "635:6:46", + "nodeType": "YulIdentifier", + "src": "635:6:46" + }, + "nativeSrc": "635:39:46", + "nodeType": "YulFunctionCall", + "src": "635:39:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "612:6:46", + "nodeType": "YulIdentifier", + "src": "612:6:46" + }, + "nativeSrc": "612:63:46", + "nodeType": "YulFunctionCall", + "src": "612:63:46" + }, + "nativeSrc": "612:63:46", + "nodeType": "YulExpressionStatement", + "src": "612:63:46" + }, + { + "nativeSrc": "684:43:46", + "nodeType": "YulVariableDeclaration", + "src": "684:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "714:5:46", + "nodeType": "YulIdentifier", + "src": "714:5:46" + }, + { + "kind": "number", + "nativeSrc": "721:4:46", + "nodeType": "YulLiteral", + "src": "721:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "710:3:46", + "nodeType": "YulIdentifier", + "src": "710:3:46" + }, + "nativeSrc": "710:16:46", + "nodeType": "YulFunctionCall", + "src": "710:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "704:5:46", + "nodeType": "YulIdentifier", + "src": "704:5:46" + }, + "nativeSrc": "704:23:46", + "nodeType": "YulFunctionCall", + "src": "704:23:46" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "688:12:46", + "nodeType": "YulTypedName", + "src": "688:12:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "747:3:46", + "nodeType": "YulIdentifier", + "src": "747:3:46" + }, + { + "kind": "number", + "nativeSrc": "752:4:46", + "nodeType": "YulLiteral", + "src": "752:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "743:3:46", + "nodeType": "YulIdentifier", + "src": "743:3:46" + }, + "nativeSrc": "743:14:46", + "nodeType": "YulFunctionCall", + "src": "743:14:46" + }, + { + "kind": "number", + "nativeSrc": "759:6:46", + "nodeType": "YulLiteral", + "src": "759:6:46", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "736:6:46", + "nodeType": "YulIdentifier", + "src": "736:6:46" + }, + "nativeSrc": "736:30:46", + "nodeType": "YulFunctionCall", + "src": "736:30:46" + }, + "nativeSrc": "736:30:46", + "nodeType": "YulExpressionStatement", + "src": "736:30:46" + }, + { + "nativeSrc": "775:17:46", + "nodeType": "YulVariableDeclaration", + "src": "775:17:46", + "value": { + "name": "tail", + "nativeSrc": "788:4:46", + "nodeType": "YulIdentifier", + "src": "788:4:46" + }, + "variables": [ + { + "name": "pos_1", + "nativeSrc": "779:5:46", + "nodeType": "YulTypedName", + "src": "779:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "801:33:46", + "nodeType": "YulVariableDeclaration", + "src": "801:33:46", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "821:12:46", + "nodeType": "YulIdentifier", + "src": "821:12:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "815:5:46", + "nodeType": "YulIdentifier", + "src": "815:5:46" + }, + "nativeSrc": "815:19:46", + "nodeType": "YulFunctionCall", + "src": "815:19:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "805:6:46", + "nodeType": "YulTypedName", + "src": "805:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "850:4:46", + "nodeType": "YulIdentifier", + "src": "850:4:46" + }, + { + "name": "length", + "nativeSrc": "856:6:46", + "nodeType": "YulIdentifier", + "src": "856:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "843:6:46", + "nodeType": "YulIdentifier", + "src": "843:6:46" + }, + "nativeSrc": "843:20:46", + "nodeType": "YulFunctionCall", + "src": "843:20:46" + }, + "nativeSrc": "843:20:46", + "nodeType": "YulExpressionStatement", + "src": "843:20:46" + }, + { + "nativeSrc": "872:22:46", + "nodeType": "YulAssignment", + "src": "872:22:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "885:3:46", + "nodeType": "YulIdentifier", + "src": "885:3:46" + }, + { + "kind": "number", + "nativeSrc": "890:3:46", + "nodeType": "YulLiteral", + "src": "890:3:46", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "881:3:46", + "nodeType": "YulIdentifier", + "src": "881:3:46" + }, + "nativeSrc": "881:13:46", + "nodeType": "YulFunctionCall", + "src": "881:13:46" + }, + "variableNames": [ + { + "name": "pos_1", + "nativeSrc": "872:5:46", + "nodeType": "YulIdentifier", + "src": "872:5:46" + } + ] + }, + { + "nativeSrc": "903:37:46", + "nodeType": "YulVariableDeclaration", + "src": "903:37:46", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "921:12:46", + "nodeType": "YulIdentifier", + "src": "921:12:46" + }, + { + "kind": "number", + "nativeSrc": "935:4:46", + "nodeType": "YulLiteral", + "src": "935:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "917:3:46", + "nodeType": "YulIdentifier", + "src": "917:3:46" + }, + "nativeSrc": "917:23:46", + "nodeType": "YulFunctionCall", + "src": "917:23:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "907:6:46", + "nodeType": "YulTypedName", + "src": "907:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "949:10:46", + "nodeType": "YulVariableDeclaration", + "src": "949:10:46", + "value": { + "kind": "number", + "nativeSrc": "958:1:46", + "nodeType": "YulLiteral", + "src": "958:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "953:1:46", + "nodeType": "YulTypedName", + "src": "953:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1017:130:46", + "nodeType": "YulBlock", + "src": "1017:130:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos_1", + "nativeSrc": "1038:5:46", + "nodeType": "YulIdentifier", + "src": "1038:5:46" + }, + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "1051:6:46", + "nodeType": "YulIdentifier", + "src": "1051:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1045:5:46", + "nodeType": "YulIdentifier", + "src": "1045:5:46" + }, + "nativeSrc": "1045:13:46", + "nodeType": "YulFunctionCall", + "src": "1045:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1031:6:46", + "nodeType": "YulIdentifier", + "src": "1031:6:46" + }, + "nativeSrc": "1031:28:46", + "nodeType": "YulFunctionCall", + "src": "1031:28:46" + }, + "nativeSrc": "1031:28:46", + "nodeType": "YulExpressionStatement", + "src": "1031:28:46" + }, + { + "nativeSrc": "1072:25:46", + "nodeType": "YulAssignment", + "src": "1072:25:46", + "value": { + "arguments": [ + { + "name": "pos_1", + "nativeSrc": "1085:5:46", + "nodeType": "YulIdentifier", + "src": "1085:5:46" + }, + { + "kind": "number", + "nativeSrc": "1092:4:46", + "nodeType": "YulLiteral", + "src": "1092:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1081:3:46", + "nodeType": "YulIdentifier", + "src": "1081:3:46" + }, + "nativeSrc": "1081:16:46", + "nodeType": "YulFunctionCall", + "src": "1081:16:46" + }, + "variableNames": [ + { + "name": "pos_1", + "nativeSrc": "1072:5:46", + "nodeType": "YulIdentifier", + "src": "1072:5:46" + } + ] + }, + { + "nativeSrc": "1110:27:46", + "nodeType": "YulAssignment", + "src": "1110:27:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "1124:6:46", + "nodeType": "YulIdentifier", + "src": "1124:6:46" + }, + { + "kind": "number", + "nativeSrc": "1132:4:46", + "nodeType": "YulLiteral", + "src": "1132:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1120:3:46", + "nodeType": "YulIdentifier", + "src": "1120:3:46" + }, + "nativeSrc": "1120:17:46", + "nodeType": "YulFunctionCall", + "src": "1120:17:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "1110:6:46", + "nodeType": "YulIdentifier", + "src": "1110:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "979:1:46", + "nodeType": "YulIdentifier", + "src": "979:1:46" + }, + { + "name": "length", + "nativeSrc": "982:6:46", + "nodeType": "YulIdentifier", + "src": "982:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "976:2:46", + "nodeType": "YulIdentifier", + "src": "976:2:46" + }, + "nativeSrc": "976:13:46", + "nodeType": "YulFunctionCall", + "src": "976:13:46" + }, + "nativeSrc": "968:179:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "990:18:46", + "nodeType": "YulBlock", + "src": "990:18:46", + "statements": [ + { + "nativeSrc": "992:14:46", + "nodeType": "YulAssignment", + "src": "992:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1001:1:46", + "nodeType": "YulIdentifier", + "src": "1001:1:46" + }, + { + "kind": "number", + "nativeSrc": "1004:1:46", + "nodeType": "YulLiteral", + "src": "1004:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "997:3:46", + "nodeType": "YulIdentifier", + "src": "997:3:46" + }, + "nativeSrc": "997:9:46", + "nodeType": "YulFunctionCall", + "src": "997:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "992:1:46", + "nodeType": "YulIdentifier", + "src": "992:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "972:3:46", + "nodeType": "YulBlock", + "src": "972:3:46", + "statements": [] + }, + "src": "968:179:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1167:3:46", + "nodeType": "YulIdentifier", + "src": "1167:3:46" + }, + { + "kind": "number", + "nativeSrc": "1172:4:46", + "nodeType": "YulLiteral", + "src": "1172:4:46", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1163:3:46", + "nodeType": "YulIdentifier", + "src": "1163:3:46" + }, + "nativeSrc": "1163:14:46", + "nodeType": "YulFunctionCall", + "src": "1163:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1189:5:46", + "nodeType": "YulIdentifier", + "src": "1189:5:46" + }, + { + "kind": "number", + "nativeSrc": "1196:4:46", + "nodeType": "YulLiteral", + "src": "1196:4:46", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1185:3:46", + "nodeType": "YulIdentifier", + "src": "1185:3:46" + }, + "nativeSrc": "1185:16:46", + "nodeType": "YulFunctionCall", + "src": "1185:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1179:5:46", + "nodeType": "YulIdentifier", + "src": "1179:5:46" + }, + "nativeSrc": "1179:23:46", + "nodeType": "YulFunctionCall", + "src": "1179:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1156:6:46", + "nodeType": "YulIdentifier", + "src": "1156:6:46" + }, + "nativeSrc": "1156:47:46", + "nodeType": "YulFunctionCall", + "src": "1156:47:46" + }, + "nativeSrc": "1156:47:46", + "nodeType": "YulExpressionStatement", + "src": "1156:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1223:3:46", + "nodeType": "YulIdentifier", + "src": "1223:3:46" + }, + { + "kind": "number", + "nativeSrc": "1228:4:46", + "nodeType": "YulLiteral", + "src": "1228:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1219:3:46", + "nodeType": "YulIdentifier", + "src": "1219:3:46" + }, + "nativeSrc": "1219:14:46", + "nodeType": "YulFunctionCall", + "src": "1219:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1245:5:46", + "nodeType": "YulIdentifier", + "src": "1245:5:46" + }, + { + "kind": "number", + "nativeSrc": "1252:4:46", + "nodeType": "YulLiteral", + "src": "1252:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1241:3:46", + "nodeType": "YulIdentifier", + "src": "1241:3:46" + }, + "nativeSrc": "1241:16:46", + "nodeType": "YulFunctionCall", + "src": "1241:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1235:5:46", + "nodeType": "YulIdentifier", + "src": "1235:5:46" + }, + "nativeSrc": "1235:23:46", + "nodeType": "YulFunctionCall", + "src": "1235:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1212:6:46", + "nodeType": "YulIdentifier", + "src": "1212:6:46" + }, + "nativeSrc": "1212:47:46", + "nodeType": "YulFunctionCall", + "src": "1212:47:46" + }, + "nativeSrc": "1212:47:46", + "nodeType": "YulExpressionStatement", + "src": "1212:47:46" + }, + { + "nativeSrc": "1268:45:46", + "nodeType": "YulVariableDeclaration", + "src": "1268:45:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1300:5:46", + "nodeType": "YulIdentifier", + "src": "1300:5:46" + }, + { + "kind": "number", + "nativeSrc": "1307:4:46", + "nodeType": "YulLiteral", + "src": "1307:4:46", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1296:3:46", + "nodeType": "YulIdentifier", + "src": "1296:3:46" + }, + "nativeSrc": "1296:16:46", + "nodeType": "YulFunctionCall", + "src": "1296:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1290:5:46", + "nodeType": "YulIdentifier", + "src": "1290:5:46" + }, + "nativeSrc": "1290:23:46", + "nodeType": "YulFunctionCall", + "src": "1290:23:46" + }, + "variables": [ + { + "name": "memberValue0_1", + "nativeSrc": "1272:14:46", + "nodeType": "YulTypedName", + "src": "1272:14:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_1", + "nativeSrc": "1338:14:46", + "nodeType": "YulIdentifier", + "src": "1338:14:46" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1358:3:46", + "nodeType": "YulIdentifier", + "src": "1358:3:46" + }, + { + "kind": "number", + "nativeSrc": "1363:4:46", + "nodeType": "YulLiteral", + "src": "1363:4:46", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1354:3:46", + "nodeType": "YulIdentifier", + "src": "1354:3:46" + }, + "nativeSrc": "1354:14:46", + "nodeType": "YulFunctionCall", + "src": "1354:14:46" + } + ], + "functionName": { + "name": "abi_encode_bool", + "nativeSrc": "1322:15:46", + "nodeType": "YulIdentifier", + "src": "1322:15:46" + }, + "nativeSrc": "1322:47:46", + "nodeType": "YulFunctionCall", + "src": "1322:47:46" + }, + "nativeSrc": "1322:47:46", + "nodeType": "YulExpressionStatement", + "src": "1322:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1389:3:46", + "nodeType": "YulIdentifier", + "src": "1389:3:46" + }, + { + "kind": "number", + "nativeSrc": "1394:4:46", + "nodeType": "YulLiteral", + "src": "1394:4:46", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1385:3:46", + "nodeType": "YulIdentifier", + "src": "1385:3:46" + }, + "nativeSrc": "1385:14:46", + "nodeType": "YulFunctionCall", + "src": "1385:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1411:5:46", + "nodeType": "YulIdentifier", + "src": "1411:5:46" + }, + { + "kind": "number", + "nativeSrc": "1418:4:46", + "nodeType": "YulLiteral", + "src": "1418:4:46", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1407:3:46", + "nodeType": "YulIdentifier", + "src": "1407:3:46" + }, + "nativeSrc": "1407:16:46", + "nodeType": "YulFunctionCall", + "src": "1407:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1401:5:46", + "nodeType": "YulIdentifier", + "src": "1401:5:46" + }, + "nativeSrc": "1401:23:46", + "nodeType": "YulFunctionCall", + "src": "1401:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1378:6:46", + "nodeType": "YulIdentifier", + "src": "1378:6:46" + }, + "nativeSrc": "1378:47:46", + "nodeType": "YulFunctionCall", + "src": "1378:47:46" + }, + "nativeSrc": "1378:47:46", + "nodeType": "YulExpressionStatement", + "src": "1378:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1445:3:46", + "nodeType": "YulIdentifier", + "src": "1445:3:46" + }, + { + "kind": "number", + "nativeSrc": "1450:4:46", + "nodeType": "YulLiteral", + "src": "1450:4:46", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1441:3:46", + "nodeType": "YulIdentifier", + "src": "1441:3:46" + }, + "nativeSrc": "1441:14:46", + "nodeType": "YulFunctionCall", + "src": "1441:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1467:5:46", + "nodeType": "YulIdentifier", + "src": "1467:5:46" + }, + { + "kind": "number", + "nativeSrc": "1474:4:46", + "nodeType": "YulLiteral", + "src": "1474:4:46", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1463:3:46", + "nodeType": "YulIdentifier", + "src": "1463:3:46" + }, + "nativeSrc": "1463:16:46", + "nodeType": "YulFunctionCall", + "src": "1463:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1457:5:46", + "nodeType": "YulIdentifier", + "src": "1457:5:46" + }, + "nativeSrc": "1457:23:46", + "nodeType": "YulFunctionCall", + "src": "1457:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1434:6:46", + "nodeType": "YulIdentifier", + "src": "1434:6:46" + }, + "nativeSrc": "1434:47:46", + "nodeType": "YulFunctionCall", + "src": "1434:47:46" + }, + "nativeSrc": "1434:47:46", + "nodeType": "YulExpressionStatement", + "src": "1434:47:46" + }, + { + "nativeSrc": "1490:12:46", + "nodeType": "YulAssignment", + "src": "1490:12:46", + "value": { + "name": "pos_1", + "nativeSrc": "1497:5:46", + "nodeType": "YulIdentifier", + "src": "1497:5:46" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "1490:3:46", + "nodeType": "YulIdentifier", + "src": "1490:3:46" + } + ] + } + ] + }, + "name": "abi_encode_struct_Proof", + "nativeSrc": "475:1033:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "508:5:46", + "nodeType": "YulTypedName", + "src": "508:5:46", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "515:3:46", + "nodeType": "YulTypedName", + "src": "515:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "523:3:46", + "nodeType": "YulTypedName", + "src": "523:3:46", + "type": "" + } + ], + "src": "475:1033:46" + }, + { + "body": { + "nativeSrc": "1566:209:46", + "nodeType": "YulBlock", + "src": "1566:209:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1583:3:46", + "nodeType": "YulIdentifier", + "src": "1583:3:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1594:5:46", + "nodeType": "YulIdentifier", + "src": "1594:5:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1588:5:46", + "nodeType": "YulIdentifier", + "src": "1588:5:46" + }, + "nativeSrc": "1588:12:46", + "nodeType": "YulFunctionCall", + "src": "1588:12:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1576:6:46", + "nodeType": "YulIdentifier", + "src": "1576:6:46" + }, + "nativeSrc": "1576:25:46", + "nodeType": "YulFunctionCall", + "src": "1576:25:46" + }, + "nativeSrc": "1576:25:46", + "nodeType": "YulExpressionStatement", + "src": "1576:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1621:3:46", + "nodeType": "YulIdentifier", + "src": "1621:3:46" + }, + { + "kind": "number", + "nativeSrc": "1626:4:46", + "nodeType": "YulLiteral", + "src": "1626:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1617:3:46", + "nodeType": "YulIdentifier", + "src": "1617:3:46" + }, + "nativeSrc": "1617:14:46", + "nodeType": "YulFunctionCall", + "src": "1617:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1643:5:46", + "nodeType": "YulIdentifier", + "src": "1643:5:46" + }, + { + "kind": "number", + "nativeSrc": "1650:4:46", + "nodeType": "YulLiteral", + "src": "1650:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1639:3:46", + "nodeType": "YulIdentifier", + "src": "1639:3:46" + }, + "nativeSrc": "1639:16:46", + "nodeType": "YulFunctionCall", + "src": "1639:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1633:5:46", + "nodeType": "YulIdentifier", + "src": "1633:5:46" + }, + "nativeSrc": "1633:23:46", + "nodeType": "YulFunctionCall", + "src": "1633:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1610:6:46", + "nodeType": "YulIdentifier", + "src": "1610:6:46" + }, + "nativeSrc": "1610:47:46", + "nodeType": "YulFunctionCall", + "src": "1610:47:46" + }, + "nativeSrc": "1610:47:46", + "nodeType": "YulExpressionStatement", + "src": "1610:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1677:3:46", + "nodeType": "YulIdentifier", + "src": "1677:3:46" + }, + { + "kind": "number", + "nativeSrc": "1682:4:46", + "nodeType": "YulLiteral", + "src": "1682:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1673:3:46", + "nodeType": "YulIdentifier", + "src": "1673:3:46" + }, + "nativeSrc": "1673:14:46", + "nodeType": "YulFunctionCall", + "src": "1673:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1699:5:46", + "nodeType": "YulIdentifier", + "src": "1699:5:46" + }, + { + "kind": "number", + "nativeSrc": "1706:4:46", + "nodeType": "YulLiteral", + "src": "1706:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1695:3:46", + "nodeType": "YulIdentifier", + "src": "1695:3:46" + }, + "nativeSrc": "1695:16:46", + "nodeType": "YulFunctionCall", + "src": "1695:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1689:5:46", + "nodeType": "YulIdentifier", + "src": "1689:5:46" + }, + "nativeSrc": "1689:23:46", + "nodeType": "YulFunctionCall", + "src": "1689:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1666:6:46", + "nodeType": "YulIdentifier", + "src": "1666:6:46" + }, + "nativeSrc": "1666:47:46", + "nodeType": "YulFunctionCall", + "src": "1666:47:46" + }, + "nativeSrc": "1666:47:46", + "nodeType": "YulExpressionStatement", + "src": "1666:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1733:3:46", + "nodeType": "YulIdentifier", + "src": "1733:3:46" + }, + { + "kind": "number", + "nativeSrc": "1738:4:46", + "nodeType": "YulLiteral", + "src": "1738:4:46", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1729:3:46", + "nodeType": "YulIdentifier", + "src": "1729:3:46" + }, + "nativeSrc": "1729:14:46", + "nodeType": "YulFunctionCall", + "src": "1729:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1755:5:46", + "nodeType": "YulIdentifier", + "src": "1755:5:46" + }, + { + "kind": "number", + "nativeSrc": "1762:4:46", + "nodeType": "YulLiteral", + "src": "1762:4:46", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1751:3:46", + "nodeType": "YulIdentifier", + "src": "1751:3:46" + }, + "nativeSrc": "1751:16:46", + "nodeType": "YulFunctionCall", + "src": "1751:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1745:5:46", + "nodeType": "YulIdentifier", + "src": "1745:5:46" + }, + "nativeSrc": "1745:23:46", + "nodeType": "YulFunctionCall", + "src": "1745:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1722:6:46", + "nodeType": "YulIdentifier", + "src": "1722:6:46" + }, + "nativeSrc": "1722:47:46", + "nodeType": "YulFunctionCall", + "src": "1722:47:46" + }, + "nativeSrc": "1722:47:46", + "nodeType": "YulExpressionStatement", + "src": "1722:47:46" + } + ] + }, + "name": "abi_encode_struct_StateInfo", + "nativeSrc": "1513:262:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1550:5:46", + "nodeType": "YulTypedName", + "src": "1550:5:46", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1557:3:46", + "nodeType": "YulTypedName", + "src": "1557:3:46", + "type": "" + } + ], + "src": "1513:262:46" + }, + { + "body": { + "nativeSrc": "2009:171:46", + "nodeType": "YulBlock", + "src": "2009:171:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2026:9:46", + "nodeType": "YulIdentifier", + "src": "2026:9:46" + }, + { + "kind": "number", + "nativeSrc": "2037:3:46", + "nodeType": "YulLiteral", + "src": "2037:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2019:6:46", + "nodeType": "YulIdentifier", + "src": "2019:6:46" + }, + "nativeSrc": "2019:22:46", + "nodeType": "YulFunctionCall", + "src": "2019:22:46" + }, + "nativeSrc": "2019:22:46", + "nodeType": "YulExpressionStatement", + "src": "2019:22:46" + }, + { + "nativeSrc": "2050:60:46", + "nodeType": "YulAssignment", + "src": "2050:60:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2082:6:46", + "nodeType": "YulIdentifier", + "src": "2082:6:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2094:9:46", + "nodeType": "YulIdentifier", + "src": "2094:9:46" + }, + { + "kind": "number", + "nativeSrc": "2105:3:46", + "nodeType": "YulLiteral", + "src": "2105:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2090:3:46", + "nodeType": "YulIdentifier", + "src": "2090:3:46" + }, + "nativeSrc": "2090:19:46", + "nodeType": "YulFunctionCall", + "src": "2090:19:46" + } + ], + "functionName": { + "name": "abi_encode_struct_Proof", + "nativeSrc": "2058:23:46", + "nodeType": "YulIdentifier", + "src": "2058:23:46" + }, + "nativeSrc": "2058:52:46", + "nodeType": "YulFunctionCall", + "src": "2058:52:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2050:4:46", + "nodeType": "YulIdentifier", + "src": "2050:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "2147:6:46", + "nodeType": "YulIdentifier", + "src": "2147:6:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2159:9:46", + "nodeType": "YulIdentifier", + "src": "2159:9:46" + }, + { + "kind": "number", + "nativeSrc": "2170:2:46", + "nodeType": "YulLiteral", + "src": "2170:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2155:3:46", + "nodeType": "YulIdentifier", + "src": "2155:3:46" + }, + "nativeSrc": "2155:18:46", + "nodeType": "YulFunctionCall", + "src": "2155:18:46" + } + ], + "functionName": { + "name": "abi_encode_struct_StateInfo", + "nativeSrc": "2119:27:46", + "nodeType": "YulIdentifier", + "src": "2119:27:46" + }, + "nativeSrc": "2119:55:46", + "nodeType": "YulFunctionCall", + "src": "2119:55:46" + }, + "nativeSrc": "2119:55:46", + "nodeType": "YulExpressionStatement", + "src": "2119:55:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__fromStack_reversed", + "nativeSrc": "1780:400:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1970:9:46", + "nodeType": "YulTypedName", + "src": "1970:9:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1981:6:46", + "nodeType": "YulTypedName", + "src": "1981:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1989:6:46", + "nodeType": "YulTypedName", + "src": "1989:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2000:4:46", + "nodeType": "YulTypedName", + "src": "2000:4:46", + "type": "" + } + ], + "src": "1780:400:46" + }, + { + "body": { + "nativeSrc": "2286:76:46", + "nodeType": "YulBlock", + "src": "2286:76:46", + "statements": [ + { + "nativeSrc": "2296:26:46", + "nodeType": "YulAssignment", + "src": "2296:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2308:9:46", + "nodeType": "YulIdentifier", + "src": "2308:9:46" + }, + { + "kind": "number", + "nativeSrc": "2319:2:46", + "nodeType": "YulLiteral", + "src": "2319:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2304:3:46", + "nodeType": "YulIdentifier", + "src": "2304:3:46" + }, + "nativeSrc": "2304:18:46", + "nodeType": "YulFunctionCall", + "src": "2304:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2296:4:46", + "nodeType": "YulIdentifier", + "src": "2296:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2338:9:46", + "nodeType": "YulIdentifier", + "src": "2338:9:46" + }, + { + "name": "value0", + "nativeSrc": "2349:6:46", + "nodeType": "YulIdentifier", + "src": "2349:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2331:6:46", + "nodeType": "YulIdentifier", + "src": "2331:6:46" + }, + "nativeSrc": "2331:25:46", + "nodeType": "YulFunctionCall", + "src": "2331:25:46" + }, + "nativeSrc": "2331:25:46", + "nodeType": "YulExpressionStatement", + "src": "2331:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "2185:177:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2255:9:46", + "nodeType": "YulTypedName", + "src": "2255:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2266:6:46", + "nodeType": "YulTypedName", + "src": "2266:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2277:4:46", + "nodeType": "YulTypedName", + "src": "2277:4:46", + "type": "" + } + ], + "src": "2185:177:46" + }, + { + "body": { + "nativeSrc": "2436:217:46", + "nodeType": "YulBlock", + "src": "2436:217:46", + "statements": [ + { + "body": { + "nativeSrc": "2482:16:46", + "nodeType": "YulBlock", + "src": "2482:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2491:1:46", + "nodeType": "YulLiteral", + "src": "2491:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2494:1:46", + "nodeType": "YulLiteral", + "src": "2494:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2484:6:46", + "nodeType": "YulIdentifier", + "src": "2484:6:46" + }, + "nativeSrc": "2484:12:46", + "nodeType": "YulFunctionCall", + "src": "2484:12:46" + }, + "nativeSrc": "2484:12:46", + "nodeType": "YulExpressionStatement", + "src": "2484:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2457:7:46", + "nodeType": "YulIdentifier", + "src": "2457:7:46" + }, + { + "name": "headStart", + "nativeSrc": "2466:9:46", + "nodeType": "YulIdentifier", + "src": "2466:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2453:3:46", + "nodeType": "YulIdentifier", + "src": "2453:3:46" + }, + "nativeSrc": "2453:23:46", + "nodeType": "YulFunctionCall", + "src": "2453:23:46" + }, + { + "kind": "number", + "nativeSrc": "2478:2:46", + "nodeType": "YulLiteral", + "src": "2478:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2449:3:46", + "nodeType": "YulIdentifier", + "src": "2449:3:46" + }, + "nativeSrc": "2449:32:46", + "nodeType": "YulFunctionCall", + "src": "2449:32:46" + }, + "nativeSrc": "2446:52:46", + "nodeType": "YulIf", + "src": "2446:52:46" + }, + { + "nativeSrc": "2507:36:46", + "nodeType": "YulVariableDeclaration", + "src": "2507:36:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2533:9:46", + "nodeType": "YulIdentifier", + "src": "2533:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2520:12:46", + "nodeType": "YulIdentifier", + "src": "2520:12:46" + }, + "nativeSrc": "2520:23:46", + "nodeType": "YulFunctionCall", + "src": "2520:23:46" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "2511:5:46", + "nodeType": "YulTypedName", + "src": "2511:5:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2607:16:46", + "nodeType": "YulBlock", + "src": "2607:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2616:1:46", + "nodeType": "YulLiteral", + "src": "2616:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2619:1:46", + "nodeType": "YulLiteral", + "src": "2619:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2609:6:46", + "nodeType": "YulIdentifier", + "src": "2609:6:46" + }, + "nativeSrc": "2609:12:46", + "nodeType": "YulFunctionCall", + "src": "2609:12:46" + }, + "nativeSrc": "2609:12:46", + "nodeType": "YulExpressionStatement", + "src": "2609:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2565:5:46", + "nodeType": "YulIdentifier", + "src": "2565:5:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2576:5:46", + "nodeType": "YulIdentifier", + "src": "2576:5:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2587:3:46", + "nodeType": "YulLiteral", + "src": "2587:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "2592:10:46", + "nodeType": "YulLiteral", + "src": "2592:10:46", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2583:3:46", + "nodeType": "YulIdentifier", + "src": "2583:3:46" + }, + "nativeSrc": "2583:20:46", + "nodeType": "YulFunctionCall", + "src": "2583:20:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2572:3:46", + "nodeType": "YulIdentifier", + "src": "2572:3:46" + }, + "nativeSrc": "2572:32:46", + "nodeType": "YulFunctionCall", + "src": "2572:32:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2562:2:46", + "nodeType": "YulIdentifier", + "src": "2562:2:46" + }, + "nativeSrc": "2562:43:46", + "nodeType": "YulFunctionCall", + "src": "2562:43:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2555:6:46", + "nodeType": "YulIdentifier", + "src": "2555:6:46" + }, + "nativeSrc": "2555:51:46", + "nodeType": "YulFunctionCall", + "src": "2555:51:46" + }, + "nativeSrc": "2552:71:46", + "nodeType": "YulIf", + "src": "2552:71:46" + }, + { + "nativeSrc": "2632:15:46", + "nodeType": "YulAssignment", + "src": "2632:15:46", + "value": { + "name": "value", + "nativeSrc": "2642:5:46", + "nodeType": "YulIdentifier", + "src": "2642:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2632:6:46", + "nodeType": "YulIdentifier", + "src": "2632:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "2367:286:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2402:9:46", + "nodeType": "YulTypedName", + "src": "2402:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2413:7:46", + "nodeType": "YulTypedName", + "src": "2413:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2425:6:46", + "nodeType": "YulTypedName", + "src": "2425:6:46", + "type": "" + } + ], + "src": "2367:286:46" + }, + { + "body": { + "nativeSrc": "2753:92:46", + "nodeType": "YulBlock", + "src": "2753:92:46", + "statements": [ + { + "nativeSrc": "2763:26:46", + "nodeType": "YulAssignment", + "src": "2763:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2775:9:46", + "nodeType": "YulIdentifier", + "src": "2775:9:46" + }, + { + "kind": "number", + "nativeSrc": "2786:2:46", + "nodeType": "YulLiteral", + "src": "2786:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2771:3:46", + "nodeType": "YulIdentifier", + "src": "2771:3:46" + }, + "nativeSrc": "2771:18:46", + "nodeType": "YulFunctionCall", + "src": "2771:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2763:4:46", + "nodeType": "YulIdentifier", + "src": "2763:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2805:9:46", + "nodeType": "YulIdentifier", + "src": "2805:9:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2830:6:46", + "nodeType": "YulIdentifier", + "src": "2830:6:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2823:6:46", + "nodeType": "YulIdentifier", + "src": "2823:6:46" + }, + "nativeSrc": "2823:14:46", + "nodeType": "YulFunctionCall", + "src": "2823:14:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2816:6:46", + "nodeType": "YulIdentifier", + "src": "2816:6:46" + }, + "nativeSrc": "2816:22:46", + "nodeType": "YulFunctionCall", + "src": "2816:22:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2798:6:46", + "nodeType": "YulIdentifier", + "src": "2798:6:46" + }, + "nativeSrc": "2798:41:46", + "nodeType": "YulFunctionCall", + "src": "2798:41:46" + }, + "nativeSrc": "2798:41:46", + "nodeType": "YulExpressionStatement", + "src": "2798:41:46" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "2658:187:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2722:9:46", + "nodeType": "YulTypedName", + "src": "2722:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2733:6:46", + "nodeType": "YulTypedName", + "src": "2733:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2744:4:46", + "nodeType": "YulTypedName", + "src": "2744:4:46", + "type": "" + } + ], + "src": "2658:187:46" + }, + { + "body": { + "nativeSrc": "2920:156:46", + "nodeType": "YulBlock", + "src": "2920:156:46", + "statements": [ + { + "body": { + "nativeSrc": "2966:16:46", + "nodeType": "YulBlock", + "src": "2966:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2975:1:46", + "nodeType": "YulLiteral", + "src": "2975:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2978:1:46", + "nodeType": "YulLiteral", + "src": "2978:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2968:6:46", + "nodeType": "YulIdentifier", + "src": "2968:6:46" + }, + "nativeSrc": "2968:12:46", + "nodeType": "YulFunctionCall", + "src": "2968:12:46" + }, + "nativeSrc": "2968:12:46", + "nodeType": "YulExpressionStatement", + "src": "2968:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2941:7:46", + "nodeType": "YulIdentifier", + "src": "2941:7:46" + }, + { + "name": "headStart", + "nativeSrc": "2950:9:46", + "nodeType": "YulIdentifier", + "src": "2950:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2937:3:46", + "nodeType": "YulIdentifier", + "src": "2937:3:46" + }, + "nativeSrc": "2937:23:46", + "nodeType": "YulFunctionCall", + "src": "2937:23:46" + }, + { + "kind": "number", + "nativeSrc": "2962:2:46", + "nodeType": "YulLiteral", + "src": "2962:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2933:3:46", + "nodeType": "YulIdentifier", + "src": "2933:3:46" + }, + "nativeSrc": "2933:32:46", + "nodeType": "YulFunctionCall", + "src": "2933:32:46" + }, + "nativeSrc": "2930:52:46", + "nodeType": "YulIf", + "src": "2930:52:46" + }, + { + "nativeSrc": "2991:14:46", + "nodeType": "YulVariableDeclaration", + "src": "2991:14:46", + "value": { + "kind": "number", + "nativeSrc": "3004:1:46", + "nodeType": "YulLiteral", + "src": "3004:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "2995:5:46", + "nodeType": "YulTypedName", + "src": "2995:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "3014:32:46", + "nodeType": "YulAssignment", + "src": "3014:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3036:9:46", + "nodeType": "YulIdentifier", + "src": "3036:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3023:12:46", + "nodeType": "YulIdentifier", + "src": "3023:12:46" + }, + "nativeSrc": "3023:23:46", + "nodeType": "YulFunctionCall", + "src": "3023:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3014:5:46", + "nodeType": "YulIdentifier", + "src": "3014:5:46" + } + ] + }, + { + "nativeSrc": "3055:15:46", + "nodeType": "YulAssignment", + "src": "3055:15:46", + "value": { + "name": "value", + "nativeSrc": "3065:5:46", + "nodeType": "YulIdentifier", + "src": "3065:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3055:6:46", + "nodeType": "YulIdentifier", + "src": "3055:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "2850:226:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2886:9:46", + "nodeType": "YulTypedName", + "src": "2886:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2897:7:46", + "nodeType": "YulTypedName", + "src": "2897:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2909:6:46", + "nodeType": "YulTypedName", + "src": "2909:6:46", + "type": "" + } + ], + "src": "2850:226:46" + }, + { + "body": { + "nativeSrc": "3167:212:46", + "nodeType": "YulBlock", + "src": "3167:212:46", + "statements": [ + { + "body": { + "nativeSrc": "3213:16:46", + "nodeType": "YulBlock", + "src": "3213:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3222:1:46", + "nodeType": "YulLiteral", + "src": "3222:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3225:1:46", + "nodeType": "YulLiteral", + "src": "3225:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3215:6:46", + "nodeType": "YulIdentifier", + "src": "3215:6:46" + }, + "nativeSrc": "3215:12:46", + "nodeType": "YulFunctionCall", + "src": "3215:12:46" + }, + "nativeSrc": "3215:12:46", + "nodeType": "YulExpressionStatement", + "src": "3215:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3188:7:46", + "nodeType": "YulIdentifier", + "src": "3188:7:46" + }, + { + "name": "headStart", + "nativeSrc": "3197:9:46", + "nodeType": "YulIdentifier", + "src": "3197:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3184:3:46", + "nodeType": "YulIdentifier", + "src": "3184:3:46" + }, + "nativeSrc": "3184:23:46", + "nodeType": "YulFunctionCall", + "src": "3184:23:46" + }, + { + "kind": "number", + "nativeSrc": "3209:2:46", + "nodeType": "YulLiteral", + "src": "3209:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3180:3:46", + "nodeType": "YulIdentifier", + "src": "3180:3:46" + }, + "nativeSrc": "3180:32:46", + "nodeType": "YulFunctionCall", + "src": "3180:32:46" + }, + "nativeSrc": "3177:52:46", + "nodeType": "YulIf", + "src": "3177:52:46" + }, + { + "nativeSrc": "3238:14:46", + "nodeType": "YulVariableDeclaration", + "src": "3238:14:46", + "value": { + "kind": "number", + "nativeSrc": "3251:1:46", + "nodeType": "YulLiteral", + "src": "3251:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "3242:5:46", + "nodeType": "YulTypedName", + "src": "3242:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "3261:32:46", + "nodeType": "YulAssignment", + "src": "3261:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3283:9:46", + "nodeType": "YulIdentifier", + "src": "3283:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3270:12:46", + "nodeType": "YulIdentifier", + "src": "3270:12:46" + }, + "nativeSrc": "3270:23:46", + "nodeType": "YulFunctionCall", + "src": "3270:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3261:5:46", + "nodeType": "YulIdentifier", + "src": "3261:5:46" + } + ] + }, + { + "nativeSrc": "3302:15:46", + "nodeType": "YulAssignment", + "src": "3302:15:46", + "value": { + "name": "value", + "nativeSrc": "3312:5:46", + "nodeType": "YulIdentifier", + "src": "3312:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3302:6:46", + "nodeType": "YulIdentifier", + "src": "3302:6:46" + } + ] + }, + { + "nativeSrc": "3326:47:46", + "nodeType": "YulAssignment", + "src": "3326:47:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3358:9:46", + "nodeType": "YulIdentifier", + "src": "3358:9:46" + }, + { + "kind": "number", + "nativeSrc": "3369:2:46", + "nodeType": "YulLiteral", + "src": "3369:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3354:3:46", + "nodeType": "YulIdentifier", + "src": "3354:3:46" + }, + "nativeSrc": "3354:18:46", + "nodeType": "YulFunctionCall", + "src": "3354:18:46" + } + ], + "functionName": { + "name": "abi_decode_uint64", + "nativeSrc": "3336:17:46", + "nodeType": "YulIdentifier", + "src": "3336:17:46" + }, + "nativeSrc": "3336:37:46", + "nodeType": "YulFunctionCall", + "src": "3336:37:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "3326:6:46", + "nodeType": "YulIdentifier", + "src": "3326:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint64", + "nativeSrc": "3081:298:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3125:9:46", + "nodeType": "YulTypedName", + "src": "3125:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3136:7:46", + "nodeType": "YulTypedName", + "src": "3136:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3148:6:46", + "nodeType": "YulTypedName", + "src": "3148:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3156:6:46", + "nodeType": "YulTypedName", + "src": "3156:6:46", + "type": "" + } + ], + "src": "3081:298:46" + }, + { + "body": { + "nativeSrc": "3551:277:46", + "nodeType": "YulBlock", + "src": "3551:277:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3568:9:46", + "nodeType": "YulIdentifier", + "src": "3568:9:46" + }, + { + "kind": "number", + "nativeSrc": "3579:2:46", + "nodeType": "YulLiteral", + "src": "3579:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3561:6:46", + "nodeType": "YulIdentifier", + "src": "3561:6:46" + }, + "nativeSrc": "3561:21:46", + "nodeType": "YulFunctionCall", + "src": "3561:21:46" + }, + "nativeSrc": "3561:21:46", + "nodeType": "YulExpressionStatement", + "src": "3561:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3625:6:46", + "nodeType": "YulIdentifier", + "src": "3625:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3619:5:46", + "nodeType": "YulIdentifier", + "src": "3619:5:46" + }, + "nativeSrc": "3619:13:46", + "nodeType": "YulFunctionCall", + "src": "3619:13:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3638:9:46", + "nodeType": "YulIdentifier", + "src": "3638:9:46" + }, + { + "kind": "number", + "nativeSrc": "3649:2:46", + "nodeType": "YulLiteral", + "src": "3649:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3634:3:46", + "nodeType": "YulIdentifier", + "src": "3634:3:46" + }, + "nativeSrc": "3634:18:46", + "nodeType": "YulFunctionCall", + "src": "3634:18:46" + } + ], + "functionName": { + "name": "abi_encode_struct_StateInfo", + "nativeSrc": "3591:27:46", + "nodeType": "YulIdentifier", + "src": "3591:27:46" + }, + "nativeSrc": "3591:62:46", + "nodeType": "YulFunctionCall", + "src": "3591:62:46" + }, + "nativeSrc": "3591:62:46", + "nodeType": "YulExpressionStatement", + "src": "3591:62:46" + }, + { + "nativeSrc": "3662:42:46", + "nodeType": "YulVariableDeclaration", + "src": "3662:42:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3692:6:46", + "nodeType": "YulIdentifier", + "src": "3692:6:46" + }, + { + "kind": "number", + "nativeSrc": "3700:2:46", + "nodeType": "YulLiteral", + "src": "3700:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3688:3:46", + "nodeType": "YulIdentifier", + "src": "3688:3:46" + }, + "nativeSrc": "3688:15:46", + "nodeType": "YulFunctionCall", + "src": "3688:15:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3682:5:46", + "nodeType": "YulIdentifier", + "src": "3682:5:46" + }, + "nativeSrc": "3682:22:46", + "nodeType": "YulFunctionCall", + "src": "3682:22:46" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "3666:12:46", + "nodeType": "YulTypedName", + "src": "3666:12:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3724:9:46", + "nodeType": "YulIdentifier", + "src": "3724:9:46" + }, + { + "kind": "number", + "nativeSrc": "3735:4:46", + "nodeType": "YulLiteral", + "src": "3735:4:46", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3720:3:46", + "nodeType": "YulIdentifier", + "src": "3720:3:46" + }, + "nativeSrc": "3720:20:46", + "nodeType": "YulFunctionCall", + "src": "3720:20:46" + }, + { + "kind": "number", + "nativeSrc": "3742:4:46", + "nodeType": "YulLiteral", + "src": "3742:4:46", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3713:6:46", + "nodeType": "YulIdentifier", + "src": "3713:6:46" + }, + "nativeSrc": "3713:34:46", + "nodeType": "YulFunctionCall", + "src": "3713:34:46" + }, + "nativeSrc": "3713:34:46", + "nodeType": "YulExpressionStatement", + "src": "3713:34:46" + }, + { + "nativeSrc": "3756:66:46", + "nodeType": "YulAssignment", + "src": "3756:66:46", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "3788:12:46", + "nodeType": "YulIdentifier", + "src": "3788:12:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3806:9:46", + "nodeType": "YulIdentifier", + "src": "3806:9:46" + }, + { + "kind": "number", + "nativeSrc": "3817:3:46", + "nodeType": "YulLiteral", + "src": "3817:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3802:3:46", + "nodeType": "YulIdentifier", + "src": "3802:3:46" + }, + "nativeSrc": "3802:19:46", + "nodeType": "YulFunctionCall", + "src": "3802:19:46" + } + ], + "functionName": { + "name": "abi_encode_struct_Proof", + "nativeSrc": "3764:23:46", + "nodeType": "YulIdentifier", + "src": "3764:23:46" + }, + "nativeSrc": "3764:58:46", + "nodeType": "YulFunctionCall", + "src": "3764:58:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "3756:4:46", + "nodeType": "YulIdentifier", + "src": "3756:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_CredentialStatus_$133_memory_ptr__to_t_struct$_CredentialStatus_$133_memory_ptr__fromStack_reversed", + "nativeSrc": "3384:444:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3520:9:46", + "nodeType": "YulTypedName", + "src": "3520:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3531:6:46", + "nodeType": "YulTypedName", + "src": "3531:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3542:4:46", + "nodeType": "YulTypedName", + "src": "3542:4:46", + "type": "" + } + ], + "src": "3384:444:46" + }, + { + "body": { + "nativeSrc": "3980:105:46", + "nodeType": "YulBlock", + "src": "3980:105:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3997:9:46", + "nodeType": "YulIdentifier", + "src": "3997:9:46" + }, + { + "kind": "number", + "nativeSrc": "4008:2:46", + "nodeType": "YulLiteral", + "src": "4008:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3990:6:46", + "nodeType": "YulIdentifier", + "src": "3990:6:46" + }, + "nativeSrc": "3990:21:46", + "nodeType": "YulFunctionCall", + "src": "3990:21:46" + }, + "nativeSrc": "3990:21:46", + "nodeType": "YulExpressionStatement", + "src": "3990:21:46" + }, + { + "nativeSrc": "4020:59:46", + "nodeType": "YulAssignment", + "src": "4020:59:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4052:6:46", + "nodeType": "YulIdentifier", + "src": "4052:6:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4064:9:46", + "nodeType": "YulIdentifier", + "src": "4064:9:46" + }, + { + "kind": "number", + "nativeSrc": "4075:2:46", + "nodeType": "YulLiteral", + "src": "4075:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4060:3:46", + "nodeType": "YulIdentifier", + "src": "4060:3:46" + }, + "nativeSrc": "4060:18:46", + "nodeType": "YulFunctionCall", + "src": "4060:18:46" + } + ], + "functionName": { + "name": "abi_encode_struct_Proof", + "nativeSrc": "4028:23:46", + "nodeType": "YulIdentifier", + "src": "4028:23:46" + }, + "nativeSrc": "4028:51:46", + "nodeType": "YulFunctionCall", + "src": "4028:51:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4020:4:46", + "nodeType": "YulIdentifier", + "src": "4020:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr__fromStack_reversed", + "nativeSrc": "3833:252:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3949:9:46", + "nodeType": "YulTypedName", + "src": "3949:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3960:6:46", + "nodeType": "YulTypedName", + "src": "3960:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3971:4:46", + "nodeType": "YulTypedName", + "src": "3971:4:46", + "type": "" + } + ], + "src": "3833:252:46" + }, + { + "body": { + "nativeSrc": "4177:259:46", + "nodeType": "YulBlock", + "src": "4177:259:46", + "statements": [ + { + "body": { + "nativeSrc": "4223:16:46", + "nodeType": "YulBlock", + "src": "4223:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4232:1:46", + "nodeType": "YulLiteral", + "src": "4232:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4235:1:46", + "nodeType": "YulLiteral", + "src": "4235:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4225:6:46", + "nodeType": "YulIdentifier", + "src": "4225:6:46" + }, + "nativeSrc": "4225:12:46", + "nodeType": "YulFunctionCall", + "src": "4225:12:46" + }, + "nativeSrc": "4225:12:46", + "nodeType": "YulExpressionStatement", + "src": "4225:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4198:7:46", + "nodeType": "YulIdentifier", + "src": "4198:7:46" + }, + { + "name": "headStart", + "nativeSrc": "4207:9:46", + "nodeType": "YulIdentifier", + "src": "4207:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4194:3:46", + "nodeType": "YulIdentifier", + "src": "4194:3:46" + }, + "nativeSrc": "4194:23:46", + "nodeType": "YulFunctionCall", + "src": "4194:23:46" + }, + { + "kind": "number", + "nativeSrc": "4219:2:46", + "nodeType": "YulLiteral", + "src": "4219:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4190:3:46", + "nodeType": "YulIdentifier", + "src": "4190:3:46" + }, + "nativeSrc": "4190:32:46", + "nodeType": "YulFunctionCall", + "src": "4190:32:46" + }, + "nativeSrc": "4187:52:46", + "nodeType": "YulIf", + "src": "4187:52:46" + }, + { + "nativeSrc": "4248:14:46", + "nodeType": "YulVariableDeclaration", + "src": "4248:14:46", + "value": { + "kind": "number", + "nativeSrc": "4261:1:46", + "nodeType": "YulLiteral", + "src": "4261:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "4252:5:46", + "nodeType": "YulTypedName", + "src": "4252:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "4271:32:46", + "nodeType": "YulAssignment", + "src": "4271:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4293:9:46", + "nodeType": "YulIdentifier", + "src": "4293:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4280:12:46", + "nodeType": "YulIdentifier", + "src": "4280:12:46" + }, + "nativeSrc": "4280:23:46", + "nodeType": "YulFunctionCall", + "src": "4280:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4271:5:46", + "nodeType": "YulIdentifier", + "src": "4271:5:46" + } + ] + }, + { + "nativeSrc": "4312:15:46", + "nodeType": "YulAssignment", + "src": "4312:15:46", + "value": { + "name": "value", + "nativeSrc": "4322:5:46", + "nodeType": "YulIdentifier", + "src": "4322:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4312:6:46", + "nodeType": "YulIdentifier", + "src": "4312:6:46" + } + ] + }, + { + "nativeSrc": "4336:16:46", + "nodeType": "YulVariableDeclaration", + "src": "4336:16:46", + "value": { + "kind": "number", + "nativeSrc": "4351:1:46", + "nodeType": "YulLiteral", + "src": "4351:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "4340:7:46", + "nodeType": "YulTypedName", + "src": "4340:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "4361:43:46", + "nodeType": "YulAssignment", + "src": "4361:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4389:9:46", + "nodeType": "YulIdentifier", + "src": "4389:9:46" + }, + { + "kind": "number", + "nativeSrc": "4400:2:46", + "nodeType": "YulLiteral", + "src": "4400:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4385:3:46", + "nodeType": "YulIdentifier", + "src": "4385:3:46" + }, + "nativeSrc": "4385:18:46", + "nodeType": "YulFunctionCall", + "src": "4385:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4372:12:46", + "nodeType": "YulIdentifier", + "src": "4372:12:46" + }, + "nativeSrc": "4372:32:46", + "nodeType": "YulFunctionCall", + "src": "4372:32:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "4361:7:46", + "nodeType": "YulIdentifier", + "src": "4361:7:46" + } + ] + }, + { + "nativeSrc": "4413:17:46", + "nodeType": "YulAssignment", + "src": "4413:17:46", + "value": { + "name": "value_1", + "nativeSrc": "4423:7:46", + "nodeType": "YulIdentifier", + "src": "4423:7:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "4413:6:46", + "nodeType": "YulIdentifier", + "src": "4413:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nativeSrc": "4090:346:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4135:9:46", + "nodeType": "YulTypedName", + "src": "4135:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4146:7:46", + "nodeType": "YulTypedName", + "src": "4146:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4158:6:46", + "nodeType": "YulTypedName", + "src": "4158:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "4166:6:46", + "nodeType": "YulTypedName", + "src": "4166:6:46", + "type": "" + } + ], + "src": "4090:346:46" + }, + { + "body": { + "nativeSrc": "4525:283:46", + "nodeType": "YulBlock", + "src": "4525:283:46", + "statements": [ + { + "body": { + "nativeSrc": "4574:16:46", + "nodeType": "YulBlock", + "src": "4574:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4583:1:46", + "nodeType": "YulLiteral", + "src": "4583:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4586:1:46", + "nodeType": "YulLiteral", + "src": "4586:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4576:6:46", + "nodeType": "YulIdentifier", + "src": "4576:6:46" + }, + "nativeSrc": "4576:12:46", + "nodeType": "YulFunctionCall", + "src": "4576:12:46" + }, + "nativeSrc": "4576:12:46", + "nodeType": "YulExpressionStatement", + "src": "4576:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4553:6:46", + "nodeType": "YulIdentifier", + "src": "4553:6:46" + }, + { + "kind": "number", + "nativeSrc": "4561:4:46", + "nodeType": "YulLiteral", + "src": "4561:4:46", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4549:3:46", + "nodeType": "YulIdentifier", + "src": "4549:3:46" + }, + "nativeSrc": "4549:17:46", + "nodeType": "YulFunctionCall", + "src": "4549:17:46" + }, + { + "name": "end", + "nativeSrc": "4568:3:46", + "nodeType": "YulIdentifier", + "src": "4568:3:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4545:3:46", + "nodeType": "YulIdentifier", + "src": "4545:3:46" + }, + "nativeSrc": "4545:27:46", + "nodeType": "YulFunctionCall", + "src": "4545:27:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4538:6:46", + "nodeType": "YulIdentifier", + "src": "4538:6:46" + }, + "nativeSrc": "4538:35:46", + "nodeType": "YulFunctionCall", + "src": "4538:35:46" + }, + "nativeSrc": "4535:55:46", + "nodeType": "YulIf", + "src": "4535:55:46" + }, + { + "nativeSrc": "4599:30:46", + "nodeType": "YulAssignment", + "src": "4599:30:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4622:6:46", + "nodeType": "YulIdentifier", + "src": "4622:6:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4609:12:46", + "nodeType": "YulIdentifier", + "src": "4609:12:46" + }, + "nativeSrc": "4609:20:46", + "nodeType": "YulFunctionCall", + "src": "4609:20:46" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "4599:6:46", + "nodeType": "YulIdentifier", + "src": "4599:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "4672:16:46", + "nodeType": "YulBlock", + "src": "4672:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4681:1:46", + "nodeType": "YulLiteral", + "src": "4681:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4684:1:46", + "nodeType": "YulLiteral", + "src": "4684:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4674:6:46", + "nodeType": "YulIdentifier", + "src": "4674:6:46" + }, + "nativeSrc": "4674:12:46", + "nodeType": "YulFunctionCall", + "src": "4674:12:46" + }, + "nativeSrc": "4674:12:46", + "nodeType": "YulExpressionStatement", + "src": "4674:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "4644:6:46", + "nodeType": "YulIdentifier", + "src": "4644:6:46" + }, + { + "kind": "number", + "nativeSrc": "4652:18:46", + "nodeType": "YulLiteral", + "src": "4652:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4641:2:46", + "nodeType": "YulIdentifier", + "src": "4641:2:46" + }, + "nativeSrc": "4641:30:46", + "nodeType": "YulFunctionCall", + "src": "4641:30:46" + }, + "nativeSrc": "4638:50:46", + "nodeType": "YulIf", + "src": "4638:50:46" + }, + { + "nativeSrc": "4697:29:46", + "nodeType": "YulAssignment", + "src": "4697:29:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4713:6:46", + "nodeType": "YulIdentifier", + "src": "4713:6:46" + }, + { + "kind": "number", + "nativeSrc": "4721:4:46", + "nodeType": "YulLiteral", + "src": "4721:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4709:3:46", + "nodeType": "YulIdentifier", + "src": "4709:3:46" + }, + "nativeSrc": "4709:17:46", + "nodeType": "YulFunctionCall", + "src": "4709:17:46" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "4697:8:46", + "nodeType": "YulIdentifier", + "src": "4697:8:46" + } + ] + }, + { + "body": { + "nativeSrc": "4786:16:46", + "nodeType": "YulBlock", + "src": "4786:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4795:1:46", + "nodeType": "YulLiteral", + "src": "4795:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4798:1:46", + "nodeType": "YulLiteral", + "src": "4798:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4788:6:46", + "nodeType": "YulIdentifier", + "src": "4788:6:46" + }, + "nativeSrc": "4788:12:46", + "nodeType": "YulFunctionCall", + "src": "4788:12:46" + }, + "nativeSrc": "4788:12:46", + "nodeType": "YulExpressionStatement", + "src": "4788:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4749:6:46", + "nodeType": "YulIdentifier", + "src": "4749:6:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4761:1:46", + "nodeType": "YulLiteral", + "src": "4761:1:46", + "type": "", + "value": "5" + }, + { + "name": "length", + "nativeSrc": "4764:6:46", + "nodeType": "YulIdentifier", + "src": "4764:6:46" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4757:3:46", + "nodeType": "YulIdentifier", + "src": "4757:3:46" + }, + "nativeSrc": "4757:14:46", + "nodeType": "YulFunctionCall", + "src": "4757:14:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4745:3:46", + "nodeType": "YulIdentifier", + "src": "4745:3:46" + }, + "nativeSrc": "4745:27:46", + "nodeType": "YulFunctionCall", + "src": "4745:27:46" + }, + { + "kind": "number", + "nativeSrc": "4774:4:46", + "nodeType": "YulLiteral", + "src": "4774:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4741:3:46", + "nodeType": "YulIdentifier", + "src": "4741:3:46" + }, + "nativeSrc": "4741:38:46", + "nodeType": "YulFunctionCall", + "src": "4741:38:46" + }, + { + "name": "end", + "nativeSrc": "4781:3:46", + "nodeType": "YulIdentifier", + "src": "4781:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "4738:2:46", + "nodeType": "YulIdentifier", + "src": "4738:2:46" + }, + "nativeSrc": "4738:47:46", + "nodeType": "YulFunctionCall", + "src": "4738:47:46" + }, + "nativeSrc": "4735:67:46", + "nodeType": "YulIf", + "src": "4735:67:46" + } + ] + }, + "name": "abi_decode_array_uint256_dyn_calldata", + "nativeSrc": "4441:367:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "4488:6:46", + "nodeType": "YulTypedName", + "src": "4488:6:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "4496:3:46", + "nodeType": "YulTypedName", + "src": "4496:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "4504:8:46", + "nodeType": "YulTypedName", + "src": "4504:8:46", + "type": "" + }, + { + "name": "length", + "nativeSrc": "4514:6:46", + "nodeType": "YulTypedName", + "src": "4514:6:46", + "type": "" + } + ], + "src": "4441:367:46" + }, + { + "body": { + "nativeSrc": "4862:124:46", + "nodeType": "YulBlock", + "src": "4862:124:46", + "statements": [ + { + "nativeSrc": "4872:29:46", + "nodeType": "YulAssignment", + "src": "4872:29:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "4894:6:46", + "nodeType": "YulIdentifier", + "src": "4894:6:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4881:12:46", + "nodeType": "YulIdentifier", + "src": "4881:12:46" + }, + "nativeSrc": "4881:20:46", + "nodeType": "YulFunctionCall", + "src": "4881:20:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4872:5:46", + "nodeType": "YulIdentifier", + "src": "4872:5:46" + } + ] + }, + { + "body": { + "nativeSrc": "4964:16:46", + "nodeType": "YulBlock", + "src": "4964:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4973:1:46", + "nodeType": "YulLiteral", + "src": "4973:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4976:1:46", + "nodeType": "YulLiteral", + "src": "4976:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4966:6:46", + "nodeType": "YulIdentifier", + "src": "4966:6:46" + }, + "nativeSrc": "4966:12:46", + "nodeType": "YulFunctionCall", + "src": "4966:12:46" + }, + "nativeSrc": "4966:12:46", + "nodeType": "YulExpressionStatement", + "src": "4966:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4923:5:46", + "nodeType": "YulIdentifier", + "src": "4923:5:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "4934:5:46", + "nodeType": "YulIdentifier", + "src": "4934:5:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4949:3:46", + "nodeType": "YulLiteral", + "src": "4949:3:46", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "4954:1:46", + "nodeType": "YulLiteral", + "src": "4954:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "4945:3:46", + "nodeType": "YulIdentifier", + "src": "4945:3:46" + }, + "nativeSrc": "4945:11:46", + "nodeType": "YulFunctionCall", + "src": "4945:11:46" + }, + { + "kind": "number", + "nativeSrc": "4958:1:46", + "nodeType": "YulLiteral", + "src": "4958:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4941:3:46", + "nodeType": "YulIdentifier", + "src": "4941:3:46" + }, + "nativeSrc": "4941:19:46", + "nodeType": "YulFunctionCall", + "src": "4941:19:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "4930:3:46", + "nodeType": "YulIdentifier", + "src": "4930:3:46" + }, + "nativeSrc": "4930:31:46", + "nodeType": "YulFunctionCall", + "src": "4930:31:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "4920:2:46", + "nodeType": "YulIdentifier", + "src": "4920:2:46" + }, + "nativeSrc": "4920:42:46", + "nodeType": "YulFunctionCall", + "src": "4920:42:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "4913:6:46", + "nodeType": "YulIdentifier", + "src": "4913:6:46" + }, + "nativeSrc": "4913:50:46", + "nodeType": "YulFunctionCall", + "src": "4913:50:46" + }, + "nativeSrc": "4910:70:46", + "nodeType": "YulIf", + "src": "4910:70:46" + } + ] + }, + "name": "abi_decode_address", + "nativeSrc": "4813:173:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "4841:6:46", + "nodeType": "YulTypedName", + "src": "4841:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "4852:5:46", + "nodeType": "YulTypedName", + "src": "4852:5:46", + "type": "" + } + ], + "src": "4813:173:46" + }, + { + "body": { + "nativeSrc": "5280:1146:46", + "nodeType": "YulBlock", + "src": "5280:1146:46", + "statements": [ + { + "nativeSrc": "5290:33:46", + "nodeType": "YulVariableDeclaration", + "src": "5290:33:46", + "value": { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5304:7:46", + "nodeType": "YulIdentifier", + "src": "5304:7:46" + }, + { + "name": "headStart", + "nativeSrc": "5313:9:46", + "nodeType": "YulIdentifier", + "src": "5313:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5300:3:46", + "nodeType": "YulIdentifier", + "src": "5300:3:46" + }, + "nativeSrc": "5300:23:46", + "nodeType": "YulFunctionCall", + "src": "5300:23:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "5294:2:46", + "nodeType": "YulTypedName", + "src": "5294:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5348:16:46", + "nodeType": "YulBlock", + "src": "5348:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5357:1:46", + "nodeType": "YulLiteral", + "src": "5357:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5360:1:46", + "nodeType": "YulLiteral", + "src": "5360:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5350:6:46", + "nodeType": "YulIdentifier", + "src": "5350:6:46" + }, + "nativeSrc": "5350:12:46", + "nodeType": "YulFunctionCall", + "src": "5350:12:46" + }, + "nativeSrc": "5350:12:46", + "nodeType": "YulExpressionStatement", + "src": "5350:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "5339:2:46", + "nodeType": "YulIdentifier", + "src": "5339:2:46" + }, + { + "kind": "number", + "nativeSrc": "5343:3:46", + "nodeType": "YulLiteral", + "src": "5343:3:46", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5335:3:46", + "nodeType": "YulIdentifier", + "src": "5335:3:46" + }, + "nativeSrc": "5335:12:46", + "nodeType": "YulFunctionCall", + "src": "5335:12:46" + }, + "nativeSrc": "5332:32:46", + "nodeType": "YulIf", + "src": "5332:32:46" + }, + { + "nativeSrc": "5373:14:46", + "nodeType": "YulVariableDeclaration", + "src": "5373:14:46", + "value": { + "kind": "number", + "nativeSrc": "5386:1:46", + "nodeType": "YulLiteral", + "src": "5386:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "5377:5:46", + "nodeType": "YulTypedName", + "src": "5377:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "5396:32:46", + "nodeType": "YulAssignment", + "src": "5396:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5418:9:46", + "nodeType": "YulIdentifier", + "src": "5418:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5405:12:46", + "nodeType": "YulIdentifier", + "src": "5405:12:46" + }, + "nativeSrc": "5405:23:46", + "nodeType": "YulFunctionCall", + "src": "5405:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "5396:5:46", + "nodeType": "YulIdentifier", + "src": "5396:5:46" + } + ] + }, + { + "nativeSrc": "5437:15:46", + "nodeType": "YulAssignment", + "src": "5437:15:46", + "value": { + "name": "value", + "nativeSrc": "5447:5:46", + "nodeType": "YulIdentifier", + "src": "5447:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5437:6:46", + "nodeType": "YulIdentifier", + "src": "5437:6:46" + } + ] + }, + { + "nativeSrc": "5461:46:46", + "nodeType": "YulVariableDeclaration", + "src": "5461:46:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5492:9:46", + "nodeType": "YulIdentifier", + "src": "5492:9:46" + }, + { + "kind": "number", + "nativeSrc": "5503:2:46", + "nodeType": "YulLiteral", + "src": "5503:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5488:3:46", + "nodeType": "YulIdentifier", + "src": "5488:3:46" + }, + "nativeSrc": "5488:18:46", + "nodeType": "YulFunctionCall", + "src": "5488:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5475:12:46", + "nodeType": "YulIdentifier", + "src": "5475:12:46" + }, + "nativeSrc": "5475:32:46", + "nodeType": "YulFunctionCall", + "src": "5475:32:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "5465:6:46", + "nodeType": "YulTypedName", + "src": "5465:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5550:16:46", + "nodeType": "YulBlock", + "src": "5550:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5559:1:46", + "nodeType": "YulLiteral", + "src": "5559:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5562:1:46", + "nodeType": "YulLiteral", + "src": "5562:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5552:6:46", + "nodeType": "YulIdentifier", + "src": "5552:6:46" + }, + "nativeSrc": "5552:12:46", + "nodeType": "YulFunctionCall", + "src": "5552:12:46" + }, + "nativeSrc": "5552:12:46", + "nodeType": "YulExpressionStatement", + "src": "5552:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5522:6:46", + "nodeType": "YulIdentifier", + "src": "5522:6:46" + }, + { + "kind": "number", + "nativeSrc": "5530:18:46", + "nodeType": "YulLiteral", + "src": "5530:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5519:2:46", + "nodeType": "YulIdentifier", + "src": "5519:2:46" + }, + "nativeSrc": "5519:30:46", + "nodeType": "YulFunctionCall", + "src": "5519:30:46" + }, + "nativeSrc": "5516:50:46", + "nodeType": "YulIf", + "src": "5516:50:46" + }, + { + "nativeSrc": "5575:96:46", + "nodeType": "YulVariableDeclaration", + "src": "5575:96:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5643:9:46", + "nodeType": "YulIdentifier", + "src": "5643:9:46" + }, + { + "name": "offset", + "nativeSrc": "5654:6:46", + "nodeType": "YulIdentifier", + "src": "5654:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5639:3:46", + "nodeType": "YulIdentifier", + "src": "5639:3:46" + }, + "nativeSrc": "5639:22:46", + "nodeType": "YulFunctionCall", + "src": "5639:22:46" + }, + { + "name": "dataEnd", + "nativeSrc": "5663:7:46", + "nodeType": "YulIdentifier", + "src": "5663:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_dyn_calldata", + "nativeSrc": "5601:37:46", + "nodeType": "YulIdentifier", + "src": "5601:37:46" + }, + "nativeSrc": "5601:70:46", + "nodeType": "YulFunctionCall", + "src": "5601:70:46" + }, + "variables": [ + { + "name": "value1_1", + "nativeSrc": "5579:8:46", + "nodeType": "YulTypedName", + "src": "5579:8:46", + "type": "" + }, + { + "name": "value2_1", + "nativeSrc": "5589:8:46", + "nodeType": "YulTypedName", + "src": "5589:8:46", + "type": "" + } + ] + }, + { + "nativeSrc": "5680:18:46", + "nodeType": "YulAssignment", + "src": "5680:18:46", + "value": { + "name": "value1_1", + "nativeSrc": "5690:8:46", + "nodeType": "YulIdentifier", + "src": "5690:8:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5680:6:46", + "nodeType": "YulIdentifier", + "src": "5680:6:46" + } + ] + }, + { + "nativeSrc": "5707:18:46", + "nodeType": "YulAssignment", + "src": "5707:18:46", + "value": { + "name": "value2_1", + "nativeSrc": "5717:8:46", + "nodeType": "YulIdentifier", + "src": "5717:8:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "5707:6:46", + "nodeType": "YulIdentifier", + "src": "5707:6:46" + } + ] + }, + { + "nativeSrc": "5734:48:46", + "nodeType": "YulVariableDeclaration", + "src": "5734:48:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5767:9:46", + "nodeType": "YulIdentifier", + "src": "5767:9:46" + }, + { + "kind": "number", + "nativeSrc": "5778:2:46", + "nodeType": "YulLiteral", + "src": "5778:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5763:3:46", + "nodeType": "YulIdentifier", + "src": "5763:3:46" + }, + "nativeSrc": "5763:18:46", + "nodeType": "YulFunctionCall", + "src": "5763:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5750:12:46", + "nodeType": "YulIdentifier", + "src": "5750:12:46" + }, + "nativeSrc": "5750:32:46", + "nodeType": "YulFunctionCall", + "src": "5750:32:46" + }, + "variables": [ + { + "name": "offset_1", + "nativeSrc": "5738:8:46", + "nodeType": "YulTypedName", + "src": "5738:8:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5827:16:46", + "nodeType": "YulBlock", + "src": "5827:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5836:1:46", + "nodeType": "YulLiteral", + "src": "5836:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5839:1:46", + "nodeType": "YulLiteral", + "src": "5839:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5829:6:46", + "nodeType": "YulIdentifier", + "src": "5829:6:46" + }, + "nativeSrc": "5829:12:46", + "nodeType": "YulFunctionCall", + "src": "5829:12:46" + }, + "nativeSrc": "5829:12:46", + "nodeType": "YulExpressionStatement", + "src": "5829:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nativeSrc": "5797:8:46", + "nodeType": "YulIdentifier", + "src": "5797:8:46" + }, + { + "kind": "number", + "nativeSrc": "5807:18:46", + "nodeType": "YulLiteral", + "src": "5807:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "5794:2:46", + "nodeType": "YulIdentifier", + "src": "5794:2:46" + }, + "nativeSrc": "5794:32:46", + "nodeType": "YulFunctionCall", + "src": "5794:32:46" + }, + "nativeSrc": "5791:52:46", + "nodeType": "YulIf", + "src": "5791:52:46" + }, + { + "nativeSrc": "5852:98:46", + "nodeType": "YulVariableDeclaration", + "src": "5852:98:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5920:9:46", + "nodeType": "YulIdentifier", + "src": "5920:9:46" + }, + { + "name": "offset_1", + "nativeSrc": "5931:8:46", + "nodeType": "YulIdentifier", + "src": "5931:8:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5916:3:46", + "nodeType": "YulIdentifier", + "src": "5916:3:46" + }, + "nativeSrc": "5916:24:46", + "nodeType": "YulFunctionCall", + "src": "5916:24:46" + }, + { + "name": "dataEnd", + "nativeSrc": "5942:7:46", + "nodeType": "YulIdentifier", + "src": "5942:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_dyn_calldata", + "nativeSrc": "5878:37:46", + "nodeType": "YulIdentifier", + "src": "5878:37:46" + }, + "nativeSrc": "5878:72:46", + "nodeType": "YulFunctionCall", + "src": "5878:72:46" + }, + "variables": [ + { + "name": "value3_1", + "nativeSrc": "5856:8:46", + "nodeType": "YulTypedName", + "src": "5856:8:46", + "type": "" + }, + { + "name": "value4_1", + "nativeSrc": "5866:8:46", + "nodeType": "YulTypedName", + "src": "5866:8:46", + "type": "" + } + ] + }, + { + "nativeSrc": "5959:18:46", + "nodeType": "YulAssignment", + "src": "5959:18:46", + "value": { + "name": "value3_1", + "nativeSrc": "5969:8:46", + "nodeType": "YulIdentifier", + "src": "5969:8:46" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "5959:6:46", + "nodeType": "YulIdentifier", + "src": "5959:6:46" + } + ] + }, + { + "nativeSrc": "5986:18:46", + "nodeType": "YulAssignment", + "src": "5986:18:46", + "value": { + "name": "value4_1", + "nativeSrc": "5996:8:46", + "nodeType": "YulIdentifier", + "src": "5996:8:46" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "5986:6:46", + "nodeType": "YulIdentifier", + "src": "5986:6:46" + } + ] + }, + { + "nativeSrc": "6013:16:46", + "nodeType": "YulVariableDeclaration", + "src": "6013:16:46", + "value": { + "kind": "number", + "nativeSrc": "6028:1:46", + "nodeType": "YulLiteral", + "src": "6028:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "6017:7:46", + "nodeType": "YulTypedName", + "src": "6017:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "6038:43:46", + "nodeType": "YulAssignment", + "src": "6038:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6066:9:46", + "nodeType": "YulIdentifier", + "src": "6066:9:46" + }, + { + "kind": "number", + "nativeSrc": "6077:2:46", + "nodeType": "YulLiteral", + "src": "6077:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6062:3:46", + "nodeType": "YulIdentifier", + "src": "6062:3:46" + }, + "nativeSrc": "6062:18:46", + "nodeType": "YulFunctionCall", + "src": "6062:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6049:12:46", + "nodeType": "YulIdentifier", + "src": "6049:12:46" + }, + "nativeSrc": "6049:32:46", + "nodeType": "YulFunctionCall", + "src": "6049:32:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "6038:7:46", + "nodeType": "YulIdentifier", + "src": "6038:7:46" + } + ] + }, + { + "nativeSrc": "6090:17:46", + "nodeType": "YulAssignment", + "src": "6090:17:46", + "value": { + "name": "value_1", + "nativeSrc": "6100:7:46", + "nodeType": "YulIdentifier", + "src": "6100:7:46" + }, + "variableNames": [ + { + "name": "value5", + "nativeSrc": "6090:6:46", + "nodeType": "YulIdentifier", + "src": "6090:6:46" + } + ] + }, + { + "nativeSrc": "6116:16:46", + "nodeType": "YulVariableDeclaration", + "src": "6116:16:46", + "value": { + "kind": "number", + "nativeSrc": "6131:1:46", + "nodeType": "YulLiteral", + "src": "6131:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "6120:7:46", + "nodeType": "YulTypedName", + "src": "6120:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "6141:44:46", + "nodeType": "YulAssignment", + "src": "6141:44:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6169:9:46", + "nodeType": "YulIdentifier", + "src": "6169:9:46" + }, + { + "kind": "number", + "nativeSrc": "6180:3:46", + "nodeType": "YulLiteral", + "src": "6180:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6165:3:46", + "nodeType": "YulIdentifier", + "src": "6165:3:46" + }, + "nativeSrc": "6165:19:46", + "nodeType": "YulFunctionCall", + "src": "6165:19:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6152:12:46", + "nodeType": "YulIdentifier", + "src": "6152:12:46" + }, + "nativeSrc": "6152:33:46", + "nodeType": "YulFunctionCall", + "src": "6152:33:46" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "6141:7:46", + "nodeType": "YulIdentifier", + "src": "6141:7:46" + } + ] + }, + { + "nativeSrc": "6194:17:46", + "nodeType": "YulAssignment", + "src": "6194:17:46", + "value": { + "name": "value_2", + "nativeSrc": "6204:7:46", + "nodeType": "YulIdentifier", + "src": "6204:7:46" + }, + "variableNames": [ + { + "name": "value6", + "nativeSrc": "6194:6:46", + "nodeType": "YulIdentifier", + "src": "6194:6:46" + } + ] + }, + { + "nativeSrc": "6220:49:46", + "nodeType": "YulAssignment", + "src": "6220:49:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6253:9:46", + "nodeType": "YulIdentifier", + "src": "6253:9:46" + }, + { + "kind": "number", + "nativeSrc": "6264:3:46", + "nodeType": "YulLiteral", + "src": "6264:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6249:3:46", + "nodeType": "YulIdentifier", + "src": "6249:3:46" + }, + "nativeSrc": "6249:19:46", + "nodeType": "YulFunctionCall", + "src": "6249:19:46" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "6230:18:46", + "nodeType": "YulIdentifier", + "src": "6230:18:46" + }, + "nativeSrc": "6230:39:46", + "nodeType": "YulFunctionCall", + "src": "6230:39:46" + }, + "variableNames": [ + { + "name": "value7", + "nativeSrc": "6220:6:46", + "nodeType": "YulIdentifier", + "src": "6220:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "6308:16:46", + "nodeType": "YulBlock", + "src": "6308:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6317:1:46", + "nodeType": "YulLiteral", + "src": "6317:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6320:1:46", + "nodeType": "YulLiteral", + "src": "6320:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6310:6:46", + "nodeType": "YulIdentifier", + "src": "6310:6:46" + }, + "nativeSrc": "6310:12:46", + "nodeType": "YulFunctionCall", + "src": "6310:12:46" + }, + "nativeSrc": "6310:12:46", + "nodeType": "YulExpressionStatement", + "src": "6310:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "6289:2:46", + "nodeType": "YulIdentifier", + "src": "6289:2:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6297:3:46", + "nodeType": "YulLiteral", + "src": "6297:3:46", + "type": "", + "value": "191" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "6293:3:46", + "nodeType": "YulIdentifier", + "src": "6293:3:46" + }, + "nativeSrc": "6293:8:46", + "nodeType": "YulFunctionCall", + "src": "6293:8:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6285:3:46", + "nodeType": "YulIdentifier", + "src": "6285:3:46" + }, + "nativeSrc": "6285:17:46", + "nodeType": "YulFunctionCall", + "src": "6285:17:46" + }, + { + "kind": "number", + "nativeSrc": "6304:2:46", + "nodeType": "YulLiteral", + "src": "6304:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6281:3:46", + "nodeType": "YulIdentifier", + "src": "6281:3:46" + }, + "nativeSrc": "6281:26:46", + "nodeType": "YulFunctionCall", + "src": "6281:26:46" + }, + "nativeSrc": "6278:46:46", + "nodeType": "YulIf", + "src": "6278:46:46" + }, + { + "nativeSrc": "6333:29:46", + "nodeType": "YulAssignment", + "src": "6333:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6347:9:46", + "nodeType": "YulIdentifier", + "src": "6347:9:46" + }, + { + "kind": "number", + "nativeSrc": "6358:3:46", + "nodeType": "YulLiteral", + "src": "6358:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6343:3:46", + "nodeType": "YulIdentifier", + "src": "6343:3:46" + }, + "nativeSrc": "6343:19:46", + "nodeType": "YulFunctionCall", + "src": "6343:19:46" + }, + "variableNames": [ + { + "name": "value8", + "nativeSrc": "6333:6:46", + "nodeType": "YulIdentifier", + "src": "6333:6:46" + } + ] + }, + { + "nativeSrc": "6371:49:46", + "nodeType": "YulAssignment", + "src": "6371:49:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6404:9:46", + "nodeType": "YulIdentifier", + "src": "6404:9:46" + }, + { + "kind": "number", + "nativeSrc": "6415:3:46", + "nodeType": "YulLiteral", + "src": "6415:3:46", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6400:3:46", + "nodeType": "YulIdentifier", + "src": "6400:3:46" + }, + "nativeSrc": "6400:19:46", + "nodeType": "YulFunctionCall", + "src": "6400:19:46" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "6381:18:46", + "nodeType": "YulIdentifier", + "src": "6381:18:46" + }, + "nativeSrc": "6381:39:46", + "nodeType": "YulFunctionCall", + "src": "6381:39:46" + }, + "variableNames": [ + { + "name": "value9", + "nativeSrc": "6371:6:46", + "nodeType": "YulIdentifier", + "src": "6371:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_uint256t_uint256t_addresst_struct$_StateInfo_$14813_calldata_ptrt_address", + "nativeSrc": "4991:1435:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5174:9:46", + "nodeType": "YulTypedName", + "src": "5174:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5185:7:46", + "nodeType": "YulTypedName", + "src": "5185:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5197:6:46", + "nodeType": "YulTypedName", + "src": "5197:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5205:6:46", + "nodeType": "YulTypedName", + "src": "5205:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "5213:6:46", + "nodeType": "YulTypedName", + "src": "5213:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "5221:6:46", + "nodeType": "YulTypedName", + "src": "5221:6:46", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "5229:6:46", + "nodeType": "YulTypedName", + "src": "5229:6:46", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "5237:6:46", + "nodeType": "YulTypedName", + "src": "5237:6:46", + "type": "" + }, + { + "name": "value6", + "nativeSrc": "5245:6:46", + "nodeType": "YulTypedName", + "src": "5245:6:46", + "type": "" + }, + { + "name": "value7", + "nativeSrc": "5253:6:46", + "nodeType": "YulTypedName", + "src": "5253:6:46", + "type": "" + }, + { + "name": "value8", + "nativeSrc": "5261:6:46", + "nodeType": "YulTypedName", + "src": "5261:6:46", + "type": "" + }, + { + "name": "value9", + "nativeSrc": "5269:6:46", + "nodeType": "YulTypedName", + "src": "5269:6:46", + "type": "" + } + ], + "src": "4991:1435:46" + }, + { + "body": { + "nativeSrc": "6479:120:46", + "nodeType": "YulBlock", + "src": "6479:120:46", + "statements": [ + { + "nativeSrc": "6489:29:46", + "nodeType": "YulAssignment", + "src": "6489:29:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "6511:6:46", + "nodeType": "YulIdentifier", + "src": "6511:6:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6498:12:46", + "nodeType": "YulIdentifier", + "src": "6498:12:46" + }, + "nativeSrc": "6498:20:46", + "nodeType": "YulFunctionCall", + "src": "6498:20:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "6489:5:46", + "nodeType": "YulIdentifier", + "src": "6489:5:46" + } + ] + }, + { + "body": { + "nativeSrc": "6577:16:46", + "nodeType": "YulBlock", + "src": "6577:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6586:1:46", + "nodeType": "YulLiteral", + "src": "6586:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6589:1:46", + "nodeType": "YulLiteral", + "src": "6589:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6579:6:46", + "nodeType": "YulIdentifier", + "src": "6579:6:46" + }, + "nativeSrc": "6579:12:46", + "nodeType": "YulFunctionCall", + "src": "6579:12:46" + }, + "nativeSrc": "6579:12:46", + "nodeType": "YulExpressionStatement", + "src": "6579:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6540:5:46", + "nodeType": "YulIdentifier", + "src": "6540:5:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "6551:5:46", + "nodeType": "YulIdentifier", + "src": "6551:5:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6562:3:46", + "nodeType": "YulLiteral", + "src": "6562:3:46", + "type": "", + "value": "240" + }, + { + "kind": "number", + "nativeSrc": "6567:5:46", + "nodeType": "YulLiteral", + "src": "6567:5:46", + "type": "", + "value": "65535" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "6558:3:46", + "nodeType": "YulIdentifier", + "src": "6558:3:46" + }, + "nativeSrc": "6558:15:46", + "nodeType": "YulFunctionCall", + "src": "6558:15:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "6547:3:46", + "nodeType": "YulIdentifier", + "src": "6547:3:46" + }, + "nativeSrc": "6547:27:46", + "nodeType": "YulFunctionCall", + "src": "6547:27:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "6537:2:46", + "nodeType": "YulIdentifier", + "src": "6537:2:46" + }, + "nativeSrc": "6537:38:46", + "nodeType": "YulFunctionCall", + "src": "6537:38:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "6530:6:46", + "nodeType": "YulIdentifier", + "src": "6530:6:46" + }, + "nativeSrc": "6530:46:46", + "nodeType": "YulFunctionCall", + "src": "6530:46:46" + }, + "nativeSrc": "6527:66:46", + "nodeType": "YulIf", + "src": "6527:66:46" + } + ] + }, + "name": "abi_decode_bytes2", + "nativeSrc": "6431:168:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "6458:6:46", + "nodeType": "YulTypedName", + "src": "6458:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "6469:5:46", + "nodeType": "YulTypedName", + "src": "6469:5:46", + "type": "" + } + ], + "src": "6431:168:46" + }, + { + "body": { + "nativeSrc": "6690:172:46", + "nodeType": "YulBlock", + "src": "6690:172:46", + "statements": [ + { + "body": { + "nativeSrc": "6736:16:46", + "nodeType": "YulBlock", + "src": "6736:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6745:1:46", + "nodeType": "YulLiteral", + "src": "6745:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6748:1:46", + "nodeType": "YulLiteral", + "src": "6748:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6738:6:46", + "nodeType": "YulIdentifier", + "src": "6738:6:46" + }, + "nativeSrc": "6738:12:46", + "nodeType": "YulFunctionCall", + "src": "6738:12:46" + }, + "nativeSrc": "6738:12:46", + "nodeType": "YulExpressionStatement", + "src": "6738:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "6711:7:46", + "nodeType": "YulIdentifier", + "src": "6711:7:46" + }, + { + "name": "headStart", + "nativeSrc": "6720:9:46", + "nodeType": "YulIdentifier", + "src": "6720:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6707:3:46", + "nodeType": "YulIdentifier", + "src": "6707:3:46" + }, + "nativeSrc": "6707:23:46", + "nodeType": "YulFunctionCall", + "src": "6707:23:46" + }, + { + "kind": "number", + "nativeSrc": "6732:2:46", + "nodeType": "YulLiteral", + "src": "6732:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6703:3:46", + "nodeType": "YulIdentifier", + "src": "6703:3:46" + }, + "nativeSrc": "6703:32:46", + "nodeType": "YulFunctionCall", + "src": "6703:32:46" + }, + "nativeSrc": "6700:52:46", + "nodeType": "YulIf", + "src": "6700:52:46" + }, + { + "nativeSrc": "6761:39:46", + "nodeType": "YulAssignment", + "src": "6761:39:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6790:9:46", + "nodeType": "YulIdentifier", + "src": "6790:9:46" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "6771:18:46", + "nodeType": "YulIdentifier", + "src": "6771:18:46" + }, + "nativeSrc": "6771:29:46", + "nodeType": "YulFunctionCall", + "src": "6771:29:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6761:6:46", + "nodeType": "YulIdentifier", + "src": "6761:6:46" + } + ] + }, + { + "nativeSrc": "6809:47:46", + "nodeType": "YulAssignment", + "src": "6809:47:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6841:9:46", + "nodeType": "YulIdentifier", + "src": "6841:9:46" + }, + { + "kind": "number", + "nativeSrc": "6852:2:46", + "nodeType": "YulLiteral", + "src": "6852:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6837:3:46", + "nodeType": "YulIdentifier", + "src": "6837:3:46" + }, + "nativeSrc": "6837:18:46", + "nodeType": "YulFunctionCall", + "src": "6837:18:46" + } + ], + "functionName": { + "name": "abi_decode_bytes2", + "nativeSrc": "6819:17:46", + "nodeType": "YulIdentifier", + "src": "6819:17:46" + }, + "nativeSrc": "6819:37:46", + "nodeType": "YulFunctionCall", + "src": "6819:37:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "6809:6:46", + "nodeType": "YulIdentifier", + "src": "6809:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bytes2", + "nativeSrc": "6604:258:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6648:9:46", + "nodeType": "YulTypedName", + "src": "6648:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "6659:7:46", + "nodeType": "YulTypedName", + "src": "6659:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "6671:6:46", + "nodeType": "YulTypedName", + "src": "6671:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6679:6:46", + "nodeType": "YulTypedName", + "src": "6679:6:46", + "type": "" + } + ], + "src": "6604:258:46" + }, + { + "body": { + "nativeSrc": "6899:95:46", + "nodeType": "YulBlock", + "src": "6899:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6916:1:46", + "nodeType": "YulLiteral", + "src": "6916:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6923:3:46", + "nodeType": "YulLiteral", + "src": "6923:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "6928:10:46", + "nodeType": "YulLiteral", + "src": "6928:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "6919:3:46", + "nodeType": "YulIdentifier", + "src": "6919:3:46" + }, + "nativeSrc": "6919:20:46", + "nodeType": "YulFunctionCall", + "src": "6919:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6909:6:46", + "nodeType": "YulIdentifier", + "src": "6909:6:46" + }, + "nativeSrc": "6909:31:46", + "nodeType": "YulFunctionCall", + "src": "6909:31:46" + }, + "nativeSrc": "6909:31:46", + "nodeType": "YulExpressionStatement", + "src": "6909:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6956:1:46", + "nodeType": "YulLiteral", + "src": "6956:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "6959:4:46", + "nodeType": "YulLiteral", + "src": "6959:4:46", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6949:6:46", + "nodeType": "YulIdentifier", + "src": "6949:6:46" + }, + "nativeSrc": "6949:15:46", + "nodeType": "YulFunctionCall", + "src": "6949:15:46" + }, + "nativeSrc": "6949:15:46", + "nodeType": "YulExpressionStatement", + "src": "6949:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6980:1:46", + "nodeType": "YulLiteral", + "src": "6980:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6983:4:46", + "nodeType": "YulLiteral", + "src": "6983:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6973:6:46", + "nodeType": "YulIdentifier", + "src": "6973:6:46" + }, + "nativeSrc": "6973:15:46", + "nodeType": "YulFunctionCall", + "src": "6973:15:46" + }, + "nativeSrc": "6973:15:46", + "nodeType": "YulExpressionStatement", + "src": "6973:15:46" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "6867:127:46", + "nodeType": "YulFunctionDefinition", + "src": "6867:127:46" + }, + { + "body": { + "nativeSrc": "7045:205:46", + "nodeType": "YulBlock", + "src": "7045:205:46", + "statements": [ + { + "nativeSrc": "7055:19:46", + "nodeType": "YulAssignment", + "src": "7055:19:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7071:2:46", + "nodeType": "YulLiteral", + "src": "7071:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7065:5:46", + "nodeType": "YulIdentifier", + "src": "7065:5:46" + }, + "nativeSrc": "7065:9:46", + "nodeType": "YulFunctionCall", + "src": "7065:9:46" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "7055:6:46", + "nodeType": "YulIdentifier", + "src": "7055:6:46" + } + ] + }, + { + "nativeSrc": "7083:33:46", + "nodeType": "YulVariableDeclaration", + "src": "7083:33:46", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7105:6:46", + "nodeType": "YulIdentifier", + "src": "7105:6:46" + }, + { + "kind": "number", + "nativeSrc": "7113:2:46", + "nodeType": "YulLiteral", + "src": "7113:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7101:3:46", + "nodeType": "YulIdentifier", + "src": "7101:3:46" + }, + "nativeSrc": "7101:15:46", + "nodeType": "YulFunctionCall", + "src": "7101:15:46" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "7087:10:46", + "nodeType": "YulTypedName", + "src": "7087:10:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7191:22:46", + "nodeType": "YulBlock", + "src": "7191:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7193:16:46", + "nodeType": "YulIdentifier", + "src": "7193:16:46" + }, + "nativeSrc": "7193:18:46", + "nodeType": "YulFunctionCall", + "src": "7193:18:46" + }, + "nativeSrc": "7193:18:46", + "nodeType": "YulExpressionStatement", + "src": "7193:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "7134:10:46", + "nodeType": "YulIdentifier", + "src": "7134:10:46" + }, + { + "kind": "number", + "nativeSrc": "7146:18:46", + "nodeType": "YulLiteral", + "src": "7146:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7131:2:46", + "nodeType": "YulIdentifier", + "src": "7131:2:46" + }, + "nativeSrc": "7131:34:46", + "nodeType": "YulFunctionCall", + "src": "7131:34:46" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "7170:10:46", + "nodeType": "YulIdentifier", + "src": "7170:10:46" + }, + { + "name": "memPtr", + "nativeSrc": "7182:6:46", + "nodeType": "YulIdentifier", + "src": "7182:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7167:2:46", + "nodeType": "YulIdentifier", + "src": "7167:2:46" + }, + "nativeSrc": "7167:22:46", + "nodeType": "YulFunctionCall", + "src": "7167:22:46" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "7128:2:46", + "nodeType": "YulIdentifier", + "src": "7128:2:46" + }, + "nativeSrc": "7128:62:46", + "nodeType": "YulFunctionCall", + "src": "7128:62:46" + }, + "nativeSrc": "7125:88:46", + "nodeType": "YulIf", + "src": "7125:88:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7229:2:46", + "nodeType": "YulLiteral", + "src": "7229:2:46", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "7233:10:46", + "nodeType": "YulIdentifier", + "src": "7233:10:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7222:6:46", + "nodeType": "YulIdentifier", + "src": "7222:6:46" + }, + "nativeSrc": "7222:22:46", + "nodeType": "YulFunctionCall", + "src": "7222:22:46" + }, + "nativeSrc": "7222:22:46", + "nodeType": "YulExpressionStatement", + "src": "7222:22:46" + } + ] + }, + "name": "allocate_memory_2962", + "nativeSrc": "6999:251:46", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "7034:6:46", + "nodeType": "YulTypedName", + "src": "7034:6:46", + "type": "" + } + ], + "src": "6999:251:46" + }, + { + "body": { + "nativeSrc": "7301:209:46", + "nodeType": "YulBlock", + "src": "7301:209:46", + "statements": [ + { + "nativeSrc": "7311:19:46", + "nodeType": "YulAssignment", + "src": "7311:19:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7327:2:46", + "nodeType": "YulLiteral", + "src": "7327:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7321:5:46", + "nodeType": "YulIdentifier", + "src": "7321:5:46" + }, + "nativeSrc": "7321:9:46", + "nodeType": "YulFunctionCall", + "src": "7321:9:46" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "7311:6:46", + "nodeType": "YulIdentifier", + "src": "7311:6:46" + } + ] + }, + { + "nativeSrc": "7339:37:46", + "nodeType": "YulVariableDeclaration", + "src": "7339:37:46", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7361:6:46", + "nodeType": "YulIdentifier", + "src": "7361:6:46" + }, + { + "kind": "number", + "nativeSrc": "7369:6:46", + "nodeType": "YulLiteral", + "src": "7369:6:46", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7357:3:46", + "nodeType": "YulIdentifier", + "src": "7357:3:46" + }, + "nativeSrc": "7357:19:46", + "nodeType": "YulFunctionCall", + "src": "7357:19:46" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "7343:10:46", + "nodeType": "YulTypedName", + "src": "7343:10:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7451:22:46", + "nodeType": "YulBlock", + "src": "7451:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7453:16:46", + "nodeType": "YulIdentifier", + "src": "7453:16:46" + }, + "nativeSrc": "7453:18:46", + "nodeType": "YulFunctionCall", + "src": "7453:18:46" + }, + "nativeSrc": "7453:18:46", + "nodeType": "YulExpressionStatement", + "src": "7453:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "7394:10:46", + "nodeType": "YulIdentifier", + "src": "7394:10:46" + }, + { + "kind": "number", + "nativeSrc": "7406:18:46", + "nodeType": "YulLiteral", + "src": "7406:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7391:2:46", + "nodeType": "YulIdentifier", + "src": "7391:2:46" + }, + "nativeSrc": "7391:34:46", + "nodeType": "YulFunctionCall", + "src": "7391:34:46" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "7430:10:46", + "nodeType": "YulIdentifier", + "src": "7430:10:46" + }, + { + "name": "memPtr", + "nativeSrc": "7442:6:46", + "nodeType": "YulIdentifier", + "src": "7442:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7427:2:46", + "nodeType": "YulIdentifier", + "src": "7427:2:46" + }, + "nativeSrc": "7427:22:46", + "nodeType": "YulFunctionCall", + "src": "7427:22:46" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "7388:2:46", + "nodeType": "YulIdentifier", + "src": "7388:2:46" + }, + "nativeSrc": "7388:62:46", + "nodeType": "YulFunctionCall", + "src": "7388:62:46" + }, + "nativeSrc": "7385:88:46", + "nodeType": "YulIf", + "src": "7385:88:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7489:2:46", + "nodeType": "YulLiteral", + "src": "7489:2:46", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "7493:10:46", + "nodeType": "YulIdentifier", + "src": "7493:10:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7482:6:46", + "nodeType": "YulIdentifier", + "src": "7482:6:46" + }, + "nativeSrc": "7482:22:46", + "nodeType": "YulFunctionCall", + "src": "7482:22:46" + }, + "nativeSrc": "7482:22:46", + "nodeType": "YulExpressionStatement", + "src": "7482:22:46" + } + ] + }, + "name": "allocate_memory_2963", + "nativeSrc": "7255:255:46", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "7290:6:46", + "nodeType": "YulTypedName", + "src": "7290:6:46", + "type": "" + } + ], + "src": "7255:255:46" + }, + { + "body": { + "nativeSrc": "7560:230:46", + "nodeType": "YulBlock", + "src": "7560:230:46", + "statements": [ + { + "nativeSrc": "7570:19:46", + "nodeType": "YulAssignment", + "src": "7570:19:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7586:2:46", + "nodeType": "YulLiteral", + "src": "7586:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7580:5:46", + "nodeType": "YulIdentifier", + "src": "7580:5:46" + }, + "nativeSrc": "7580:9:46", + "nodeType": "YulFunctionCall", + "src": "7580:9:46" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "7570:6:46", + "nodeType": "YulIdentifier", + "src": "7570:6:46" + } + ] + }, + { + "nativeSrc": "7598:58:46", + "nodeType": "YulVariableDeclaration", + "src": "7598:58:46", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7620:6:46", + "nodeType": "YulIdentifier", + "src": "7620:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "size", + "nativeSrc": "7636:4:46", + "nodeType": "YulIdentifier", + "src": "7636:4:46" + }, + { + "kind": "number", + "nativeSrc": "7642:2:46", + "nodeType": "YulLiteral", + "src": "7642:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7632:3:46", + "nodeType": "YulIdentifier", + "src": "7632:3:46" + }, + "nativeSrc": "7632:13:46", + "nodeType": "YulFunctionCall", + "src": "7632:13:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7651:2:46", + "nodeType": "YulLiteral", + "src": "7651:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "7647:3:46", + "nodeType": "YulIdentifier", + "src": "7647:3:46" + }, + "nativeSrc": "7647:7:46", + "nodeType": "YulFunctionCall", + "src": "7647:7:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7628:3:46", + "nodeType": "YulIdentifier", + "src": "7628:3:46" + }, + "nativeSrc": "7628:27:46", + "nodeType": "YulFunctionCall", + "src": "7628:27:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7616:3:46", + "nodeType": "YulIdentifier", + "src": "7616:3:46" + }, + "nativeSrc": "7616:40:46", + "nodeType": "YulFunctionCall", + "src": "7616:40:46" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "7602:10:46", + "nodeType": "YulTypedName", + "src": "7602:10:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7731:22:46", + "nodeType": "YulBlock", + "src": "7731:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7733:16:46", + "nodeType": "YulIdentifier", + "src": "7733:16:46" + }, + "nativeSrc": "7733:18:46", + "nodeType": "YulFunctionCall", + "src": "7733:18:46" + }, + "nativeSrc": "7733:18:46", + "nodeType": "YulExpressionStatement", + "src": "7733:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "7674:10:46", + "nodeType": "YulIdentifier", + "src": "7674:10:46" + }, + { + "kind": "number", + "nativeSrc": "7686:18:46", + "nodeType": "YulLiteral", + "src": "7686:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7671:2:46", + "nodeType": "YulIdentifier", + "src": "7671:2:46" + }, + "nativeSrc": "7671:34:46", + "nodeType": "YulFunctionCall", + "src": "7671:34:46" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "7710:10:46", + "nodeType": "YulIdentifier", + "src": "7710:10:46" + }, + { + "name": "memPtr", + "nativeSrc": "7722:6:46", + "nodeType": "YulIdentifier", + "src": "7722:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7707:2:46", + "nodeType": "YulIdentifier", + "src": "7707:2:46" + }, + "nativeSrc": "7707:22:46", + "nodeType": "YulFunctionCall", + "src": "7707:22:46" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "7668:2:46", + "nodeType": "YulIdentifier", + "src": "7668:2:46" + }, + "nativeSrc": "7668:62:46", + "nodeType": "YulFunctionCall", + "src": "7668:62:46" + }, + "nativeSrc": "7665:88:46", + "nodeType": "YulIf", + "src": "7665:88:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7769:2:46", + "nodeType": "YulLiteral", + "src": "7769:2:46", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "7773:10:46", + "nodeType": "YulIdentifier", + "src": "7773:10:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7762:6:46", + "nodeType": "YulIdentifier", + "src": "7762:6:46" + }, + "nativeSrc": "7762:22:46", + "nodeType": "YulFunctionCall", + "src": "7762:22:46" + }, + "nativeSrc": "7762:22:46", + "nodeType": "YulExpressionStatement", + "src": "7762:22:46" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "7515:275:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "7540:4:46", + "nodeType": "YulTypedName", + "src": "7540:4:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "7549:6:46", + "nodeType": "YulTypedName", + "src": "7549:6:46", + "type": "" + } + ], + "src": "7515:275:46" + }, + { + "body": { + "nativeSrc": "7848:583:46", + "nodeType": "YulBlock", + "src": "7848:583:46", + "statements": [ + { + "body": { + "nativeSrc": "7897:16:46", + "nodeType": "YulBlock", + "src": "7897:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7906:1:46", + "nodeType": "YulLiteral", + "src": "7906:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7909:1:46", + "nodeType": "YulLiteral", + "src": "7909:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7899:6:46", + "nodeType": "YulIdentifier", + "src": "7899:6:46" + }, + "nativeSrc": "7899:12:46", + "nodeType": "YulFunctionCall", + "src": "7899:12:46" + }, + "nativeSrc": "7899:12:46", + "nodeType": "YulExpressionStatement", + "src": "7899:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7876:6:46", + "nodeType": "YulIdentifier", + "src": "7876:6:46" + }, + { + "kind": "number", + "nativeSrc": "7884:4:46", + "nodeType": "YulLiteral", + "src": "7884:4:46", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7872:3:46", + "nodeType": "YulIdentifier", + "src": "7872:3:46" + }, + "nativeSrc": "7872:17:46", + "nodeType": "YulFunctionCall", + "src": "7872:17:46" + }, + { + "name": "end", + "nativeSrc": "7891:3:46", + "nodeType": "YulIdentifier", + "src": "7891:3:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7868:3:46", + "nodeType": "YulIdentifier", + "src": "7868:3:46" + }, + "nativeSrc": "7868:27:46", + "nodeType": "YulFunctionCall", + "src": "7868:27:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7861:6:46", + "nodeType": "YulIdentifier", + "src": "7861:6:46" + }, + "nativeSrc": "7861:35:46", + "nodeType": "YulFunctionCall", + "src": "7861:35:46" + }, + "nativeSrc": "7858:55:46", + "nodeType": "YulIf", + "src": "7858:55:46" + }, + { + "nativeSrc": "7922:34:46", + "nodeType": "YulVariableDeclaration", + "src": "7922:34:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7949:6:46", + "nodeType": "YulIdentifier", + "src": "7949:6:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7936:12:46", + "nodeType": "YulIdentifier", + "src": "7936:12:46" + }, + "nativeSrc": "7936:20:46", + "nodeType": "YulFunctionCall", + "src": "7936:20:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "7926:6:46", + "nodeType": "YulTypedName", + "src": "7926:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "7965:28:46", + "nodeType": "YulVariableDeclaration", + "src": "7965:28:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7980:6:46", + "nodeType": "YulIdentifier", + "src": "7980:6:46" + }, + { + "kind": "number", + "nativeSrc": "7988:4:46", + "nodeType": "YulLiteral", + "src": "7988:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7976:3:46", + "nodeType": "YulIdentifier", + "src": "7976:3:46" + }, + "nativeSrc": "7976:17:46", + "nodeType": "YulFunctionCall", + "src": "7976:17:46" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "7969:3:46", + "nodeType": "YulTypedName", + "src": "7969:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "8002:16:46", + "nodeType": "YulVariableDeclaration", + "src": "8002:16:46", + "value": { + "kind": "number", + "nativeSrc": "8017:1:46", + "nodeType": "YulLiteral", + "src": "8017:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "array_1", + "nativeSrc": "8006:7:46", + "nodeType": "YulTypedName", + "src": "8006:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "8027:19:46", + "nodeType": "YulVariableDeclaration", + "src": "8027:19:46", + "value": { + "name": "array_1", + "nativeSrc": "8039:7:46", + "nodeType": "YulIdentifier", + "src": "8039:7:46" + }, + "variables": [ + { + "name": "size", + "nativeSrc": "8031:4:46", + "nodeType": "YulTypedName", + "src": "8031:4:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8089:22:46", + "nodeType": "YulBlock", + "src": "8089:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "8091:16:46", + "nodeType": "YulIdentifier", + "src": "8091:16:46" + }, + "nativeSrc": "8091:18:46", + "nodeType": "YulFunctionCall", + "src": "8091:18:46" + }, + "nativeSrc": "8091:18:46", + "nodeType": "YulExpressionStatement", + "src": "8091:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "8061:6:46", + "nodeType": "YulIdentifier", + "src": "8061:6:46" + }, + { + "kind": "number", + "nativeSrc": "8069:18:46", + "nodeType": "YulLiteral", + "src": "8069:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8058:2:46", + "nodeType": "YulIdentifier", + "src": "8058:2:46" + }, + "nativeSrc": "8058:30:46", + "nodeType": "YulFunctionCall", + "src": "8058:30:46" + }, + "nativeSrc": "8055:56:46", + "nodeType": "YulIf", + "src": "8055:56:46" + }, + { + "nativeSrc": "8120:48:46", + "nodeType": "YulAssignment", + "src": "8120:48:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "8140:6:46", + "nodeType": "YulIdentifier", + "src": "8140:6:46" + }, + { + "kind": "number", + "nativeSrc": "8148:2:46", + "nodeType": "YulLiteral", + "src": "8148:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8136:3:46", + "nodeType": "YulIdentifier", + "src": "8136:3:46" + }, + "nativeSrc": "8136:15:46", + "nodeType": "YulFunctionCall", + "src": "8136:15:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8157:2:46", + "nodeType": "YulLiteral", + "src": "8157:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "8153:3:46", + "nodeType": "YulIdentifier", + "src": "8153:3:46" + }, + "nativeSrc": "8153:7:46", + "nodeType": "YulFunctionCall", + "src": "8153:7:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8132:3:46", + "nodeType": "YulIdentifier", + "src": "8132:3:46" + }, + "nativeSrc": "8132:29:46", + "nodeType": "YulFunctionCall", + "src": "8132:29:46" + }, + { + "kind": "number", + "nativeSrc": "8163:4:46", + "nodeType": "YulLiteral", + "src": "8163:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8128:3:46", + "nodeType": "YulIdentifier", + "src": "8128:3:46" + }, + "nativeSrc": "8128:40:46", + "nodeType": "YulFunctionCall", + "src": "8128:40:46" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "8120:4:46", + "nodeType": "YulIdentifier", + "src": "8120:4:46" + } + ] + }, + { + "nativeSrc": "8177:32:46", + "nodeType": "YulAssignment", + "src": "8177:32:46", + "value": { + "arguments": [ + { + "name": "size", + "nativeSrc": "8204:4:46", + "nodeType": "YulIdentifier", + "src": "8204:4:46" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "8188:15:46", + "nodeType": "YulIdentifier", + "src": "8188:15:46" + }, + "nativeSrc": "8188:21:46", + "nodeType": "YulFunctionCall", + "src": "8188:21:46" + }, + "variableNames": [ + { + "name": "array_1", + "nativeSrc": "8177:7:46", + "nodeType": "YulIdentifier", + "src": "8177:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array_1", + "nativeSrc": "8225:7:46", + "nodeType": "YulIdentifier", + "src": "8225:7:46" + }, + { + "name": "length", + "nativeSrc": "8234:6:46", + "nodeType": "YulIdentifier", + "src": "8234:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8218:6:46", + "nodeType": "YulIdentifier", + "src": "8218:6:46" + }, + "nativeSrc": "8218:23:46", + "nodeType": "YulFunctionCall", + "src": "8218:23:46" + }, + "nativeSrc": "8218:23:46", + "nodeType": "YulExpressionStatement", + "src": "8218:23:46" + }, + { + "body": { + "nativeSrc": "8279:16:46", + "nodeType": "YulBlock", + "src": "8279:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8288:1:46", + "nodeType": "YulLiteral", + "src": "8288:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8291:1:46", + "nodeType": "YulLiteral", + "src": "8291:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8281:6:46", + "nodeType": "YulIdentifier", + "src": "8281:6:46" + }, + "nativeSrc": "8281:12:46", + "nodeType": "YulFunctionCall", + "src": "8281:12:46" + }, + "nativeSrc": "8281:12:46", + "nodeType": "YulExpressionStatement", + "src": "8281:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "8260:3:46", + "nodeType": "YulIdentifier", + "src": "8260:3:46" + }, + { + "name": "length", + "nativeSrc": "8265:6:46", + "nodeType": "YulIdentifier", + "src": "8265:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8256:3:46", + "nodeType": "YulIdentifier", + "src": "8256:3:46" + }, + "nativeSrc": "8256:16:46", + "nodeType": "YulFunctionCall", + "src": "8256:16:46" + }, + { + "name": "end", + "nativeSrc": "8274:3:46", + "nodeType": "YulIdentifier", + "src": "8274:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8253:2:46", + "nodeType": "YulIdentifier", + "src": "8253:2:46" + }, + "nativeSrc": "8253:25:46", + "nodeType": "YulFunctionCall", + "src": "8253:25:46" + }, + "nativeSrc": "8250:45:46", + "nodeType": "YulIf", + "src": "8250:45:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "array_1", + "nativeSrc": "8321:7:46", + "nodeType": "YulIdentifier", + "src": "8321:7:46" + }, + { + "kind": "number", + "nativeSrc": "8330:4:46", + "nodeType": "YulLiteral", + "src": "8330:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8317:3:46", + "nodeType": "YulIdentifier", + "src": "8317:3:46" + }, + "nativeSrc": "8317:18:46", + "nodeType": "YulFunctionCall", + "src": "8317:18:46" + }, + { + "name": "src", + "nativeSrc": "8337:3:46", + "nodeType": "YulIdentifier", + "src": "8337:3:46" + }, + { + "name": "length", + "nativeSrc": "8342:6:46", + "nodeType": "YulIdentifier", + "src": "8342:6:46" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "8304:12:46", + "nodeType": "YulIdentifier", + "src": "8304:12:46" + }, + "nativeSrc": "8304:45:46", + "nodeType": "YulFunctionCall", + "src": "8304:45:46" + }, + "nativeSrc": "8304:45:46", + "nodeType": "YulExpressionStatement", + "src": "8304:45:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "array_1", + "nativeSrc": "8373:7:46", + "nodeType": "YulIdentifier", + "src": "8373:7:46" + }, + { + "name": "length", + "nativeSrc": "8382:6:46", + "nodeType": "YulIdentifier", + "src": "8382:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8369:3:46", + "nodeType": "YulIdentifier", + "src": "8369:3:46" + }, + "nativeSrc": "8369:20:46", + "nodeType": "YulFunctionCall", + "src": "8369:20:46" + }, + { + "kind": "number", + "nativeSrc": "8391:4:46", + "nodeType": "YulLiteral", + "src": "8391:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8365:3:46", + "nodeType": "YulIdentifier", + "src": "8365:3:46" + }, + "nativeSrc": "8365:31:46", + "nodeType": "YulFunctionCall", + "src": "8365:31:46" + }, + { + "kind": "number", + "nativeSrc": "8398:1:46", + "nodeType": "YulLiteral", + "src": "8398:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8358:6:46", + "nodeType": "YulIdentifier", + "src": "8358:6:46" + }, + "nativeSrc": "8358:42:46", + "nodeType": "YulFunctionCall", + "src": "8358:42:46" + }, + "nativeSrc": "8358:42:46", + "nodeType": "YulExpressionStatement", + "src": "8358:42:46" + }, + { + "nativeSrc": "8409:16:46", + "nodeType": "YulAssignment", + "src": "8409:16:46", + "value": { + "name": "array_1", + "nativeSrc": "8418:7:46", + "nodeType": "YulIdentifier", + "src": "8418:7:46" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "8409:5:46", + "nodeType": "YulIdentifier", + "src": "8409:5:46" + } + ] + } + ] + }, + "name": "abi_decode_string", + "nativeSrc": "7795:636:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "7822:6:46", + "nodeType": "YulTypedName", + "src": "7822:6:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7830:3:46", + "nodeType": "YulTypedName", + "src": "7830:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "7838:5:46", + "nodeType": "YulTypedName", + "src": "7838:5:46", + "type": "" + } + ], + "src": "7795:636:46" + }, + { + "body": { + "nativeSrc": "8566:885:46", + "nodeType": "YulBlock", + "src": "8566:885:46", + "statements": [ + { + "body": { + "nativeSrc": "8612:16:46", + "nodeType": "YulBlock", + "src": "8612:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8621:1:46", + "nodeType": "YulLiteral", + "src": "8621:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8624:1:46", + "nodeType": "YulLiteral", + "src": "8624:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8614:6:46", + "nodeType": "YulIdentifier", + "src": "8614:6:46" + }, + "nativeSrc": "8614:12:46", + "nodeType": "YulFunctionCall", + "src": "8614:12:46" + }, + "nativeSrc": "8614:12:46", + "nodeType": "YulExpressionStatement", + "src": "8614:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8587:7:46", + "nodeType": "YulIdentifier", + "src": "8587:7:46" + }, + { + "name": "headStart", + "nativeSrc": "8596:9:46", + "nodeType": "YulIdentifier", + "src": "8596:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8583:3:46", + "nodeType": "YulIdentifier", + "src": "8583:3:46" + }, + "nativeSrc": "8583:23:46", + "nodeType": "YulFunctionCall", + "src": "8583:23:46" + }, + { + "kind": "number", + "nativeSrc": "8608:2:46", + "nodeType": "YulLiteral", + "src": "8608:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8579:3:46", + "nodeType": "YulIdentifier", + "src": "8579:3:46" + }, + "nativeSrc": "8579:32:46", + "nodeType": "YulFunctionCall", + "src": "8579:32:46" + }, + "nativeSrc": "8576:52:46", + "nodeType": "YulIf", + "src": "8576:52:46" + }, + { + "nativeSrc": "8637:37:46", + "nodeType": "YulVariableDeclaration", + "src": "8637:37:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8664:9:46", + "nodeType": "YulIdentifier", + "src": "8664:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8651:12:46", + "nodeType": "YulIdentifier", + "src": "8651:12:46" + }, + "nativeSrc": "8651:23:46", + "nodeType": "YulFunctionCall", + "src": "8651:23:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8641:6:46", + "nodeType": "YulTypedName", + "src": "8641:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8717:16:46", + "nodeType": "YulBlock", + "src": "8717:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8726:1:46", + "nodeType": "YulLiteral", + "src": "8726:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8729:1:46", + "nodeType": "YulLiteral", + "src": "8729:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8719:6:46", + "nodeType": "YulIdentifier", + "src": "8719:6:46" + }, + "nativeSrc": "8719:12:46", + "nodeType": "YulFunctionCall", + "src": "8719:12:46" + }, + "nativeSrc": "8719:12:46", + "nodeType": "YulExpressionStatement", + "src": "8719:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8689:6:46", + "nodeType": "YulIdentifier", + "src": "8689:6:46" + }, + { + "kind": "number", + "nativeSrc": "8697:18:46", + "nodeType": "YulLiteral", + "src": "8697:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8686:2:46", + "nodeType": "YulIdentifier", + "src": "8686:2:46" + }, + "nativeSrc": "8686:30:46", + "nodeType": "YulFunctionCall", + "src": "8686:30:46" + }, + "nativeSrc": "8683:50:46", + "nodeType": "YulIf", + "src": "8683:50:46" + }, + { + "nativeSrc": "8742:32:46", + "nodeType": "YulVariableDeclaration", + "src": "8742:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8756:9:46", + "nodeType": "YulIdentifier", + "src": "8756:9:46" + }, + { + "name": "offset", + "nativeSrc": "8767:6:46", + "nodeType": "YulIdentifier", + "src": "8767:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8752:3:46", + "nodeType": "YulIdentifier", + "src": "8752:3:46" + }, + "nativeSrc": "8752:22:46", + "nodeType": "YulFunctionCall", + "src": "8752:22:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "8746:2:46", + "nodeType": "YulTypedName", + "src": "8746:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8812:16:46", + "nodeType": "YulBlock", + "src": "8812:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8821:1:46", + "nodeType": "YulLiteral", + "src": "8821:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8824:1:46", + "nodeType": "YulLiteral", + "src": "8824:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8814:6:46", + "nodeType": "YulIdentifier", + "src": "8814:6:46" + }, + "nativeSrc": "8814:12:46", + "nodeType": "YulFunctionCall", + "src": "8814:12:46" + }, + "nativeSrc": "8814:12:46", + "nodeType": "YulExpressionStatement", + "src": "8814:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8794:7:46", + "nodeType": "YulIdentifier", + "src": "8794:7:46" + }, + { + "name": "_1", + "nativeSrc": "8803:2:46", + "nodeType": "YulIdentifier", + "src": "8803:2:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8790:3:46", + "nodeType": "YulIdentifier", + "src": "8790:3:46" + }, + "nativeSrc": "8790:16:46", + "nodeType": "YulFunctionCall", + "src": "8790:16:46" + }, + { + "kind": "number", + "nativeSrc": "8808:2:46", + "nodeType": "YulLiteral", + "src": "8808:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8786:3:46", + "nodeType": "YulIdentifier", + "src": "8786:3:46" + }, + "nativeSrc": "8786:25:46", + "nodeType": "YulFunctionCall", + "src": "8786:25:46" + }, + "nativeSrc": "8783:45:46", + "nodeType": "YulIf", + "src": "8783:45:46" + }, + { + "nativeSrc": "8837:35:46", + "nodeType": "YulVariableDeclaration", + "src": "8837:35:46", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_memory_2962", + "nativeSrc": "8850:20:46", + "nodeType": "YulIdentifier", + "src": "8850:20:46" + }, + "nativeSrc": "8850:22:46", + "nodeType": "YulFunctionCall", + "src": "8850:22:46" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "8841:5:46", + "nodeType": "YulTypedName", + "src": "8841:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "8881:32:46", + "nodeType": "YulVariableDeclaration", + "src": "8881:32:46", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "8910:2:46", + "nodeType": "YulIdentifier", + "src": "8910:2:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8897:12:46", + "nodeType": "YulIdentifier", + "src": "8897:12:46" + }, + "nativeSrc": "8897:16:46", + "nodeType": "YulFunctionCall", + "src": "8897:16:46" + }, + "variables": [ + { + "name": "offset_1", + "nativeSrc": "8885:8:46", + "nodeType": "YulTypedName", + "src": "8885:8:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8958:16:46", + "nodeType": "YulBlock", + "src": "8958:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8967:1:46", + "nodeType": "YulLiteral", + "src": "8967:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8970:1:46", + "nodeType": "YulLiteral", + "src": "8970:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8960:6:46", + "nodeType": "YulIdentifier", + "src": "8960:6:46" + }, + "nativeSrc": "8960:12:46", + "nodeType": "YulFunctionCall", + "src": "8960:12:46" + }, + "nativeSrc": "8960:12:46", + "nodeType": "YulExpressionStatement", + "src": "8960:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nativeSrc": "8928:8:46", + "nodeType": "YulIdentifier", + "src": "8928:8:46" + }, + { + "kind": "number", + "nativeSrc": "8938:18:46", + "nodeType": "YulLiteral", + "src": "8938:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8925:2:46", + "nodeType": "YulIdentifier", + "src": "8925:2:46" + }, + "nativeSrc": "8925:32:46", + "nodeType": "YulFunctionCall", + "src": "8925:32:46" + }, + "nativeSrc": "8922:52:46", + "nodeType": "YulIf", + "src": "8922:52:46" + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8990:5:46", + "nodeType": "YulIdentifier", + "src": "8990:5:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "9019:2:46", + "nodeType": "YulIdentifier", + "src": "9019:2:46" + }, + { + "name": "offset_1", + "nativeSrc": "9023:8:46", + "nodeType": "YulIdentifier", + "src": "9023:8:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9015:3:46", + "nodeType": "YulIdentifier", + "src": "9015:3:46" + }, + "nativeSrc": "9015:17:46", + "nodeType": "YulFunctionCall", + "src": "9015:17:46" + }, + { + "name": "dataEnd", + "nativeSrc": "9034:7:46", + "nodeType": "YulIdentifier", + "src": "9034:7:46" + } + ], + "functionName": { + "name": "abi_decode_string", + "nativeSrc": "8997:17:46", + "nodeType": "YulIdentifier", + "src": "8997:17:46" + }, + "nativeSrc": "8997:45:46", + "nodeType": "YulFunctionCall", + "src": "8997:45:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8983:6:46", + "nodeType": "YulIdentifier", + "src": "8983:6:46" + }, + "nativeSrc": "8983:60:46", + "nodeType": "YulFunctionCall", + "src": "8983:60:46" + }, + "nativeSrc": "8983:60:46", + "nodeType": "YulExpressionStatement", + "src": "8983:60:46" + }, + { + "nativeSrc": "9052:41:46", + "nodeType": "YulVariableDeclaration", + "src": "9052:41:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "9085:2:46", + "nodeType": "YulIdentifier", + "src": "9085:2:46" + }, + { + "kind": "number", + "nativeSrc": "9089:2:46", + "nodeType": "YulLiteral", + "src": "9089:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9081:3:46", + "nodeType": "YulIdentifier", + "src": "9081:3:46" + }, + "nativeSrc": "9081:11:46", + "nodeType": "YulFunctionCall", + "src": "9081:11:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9068:12:46", + "nodeType": "YulIdentifier", + "src": "9068:12:46" + }, + "nativeSrc": "9068:25:46", + "nodeType": "YulFunctionCall", + "src": "9068:25:46" + }, + "variables": [ + { + "name": "offset_2", + "nativeSrc": "9056:8:46", + "nodeType": "YulTypedName", + "src": "9056:8:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9138:16:46", + "nodeType": "YulBlock", + "src": "9138:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9147:1:46", + "nodeType": "YulLiteral", + "src": "9147:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9150:1:46", + "nodeType": "YulLiteral", + "src": "9150:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9140:6:46", + "nodeType": "YulIdentifier", + "src": "9140:6:46" + }, + "nativeSrc": "9140:12:46", + "nodeType": "YulFunctionCall", + "src": "9140:12:46" + }, + "nativeSrc": "9140:12:46", + "nodeType": "YulExpressionStatement", + "src": "9140:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_2", + "nativeSrc": "9108:8:46", + "nodeType": "YulIdentifier", + "src": "9108:8:46" + }, + { + "kind": "number", + "nativeSrc": "9118:18:46", + "nodeType": "YulLiteral", + "src": "9118:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9105:2:46", + "nodeType": "YulIdentifier", + "src": "9105:2:46" + }, + "nativeSrc": "9105:32:46", + "nodeType": "YulFunctionCall", + "src": "9105:32:46" + }, + "nativeSrc": "9102:52:46", + "nodeType": "YulIf", + "src": "9102:52:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "9174:5:46", + "nodeType": "YulIdentifier", + "src": "9174:5:46" + }, + { + "kind": "number", + "nativeSrc": "9181:2:46", + "nodeType": "YulLiteral", + "src": "9181:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9170:3:46", + "nodeType": "YulIdentifier", + "src": "9170:3:46" + }, + "nativeSrc": "9170:14:46", + "nodeType": "YulFunctionCall", + "src": "9170:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "9208:2:46", + "nodeType": "YulIdentifier", + "src": "9208:2:46" + }, + { + "name": "offset_2", + "nativeSrc": "9212:8:46", + "nodeType": "YulIdentifier", + "src": "9212:8:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9204:3:46", + "nodeType": "YulIdentifier", + "src": "9204:3:46" + }, + "nativeSrc": "9204:17:46", + "nodeType": "YulFunctionCall", + "src": "9204:17:46" + }, + { + "name": "dataEnd", + "nativeSrc": "9223:7:46", + "nodeType": "YulIdentifier", + "src": "9223:7:46" + } + ], + "functionName": { + "name": "abi_decode_string", + "nativeSrc": "9186:17:46", + "nodeType": "YulIdentifier", + "src": "9186:17:46" + }, + "nativeSrc": "9186:45:46", + "nodeType": "YulFunctionCall", + "src": "9186:45:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9163:6:46", + "nodeType": "YulIdentifier", + "src": "9163:6:46" + }, + "nativeSrc": "9163:69:46", + "nodeType": "YulFunctionCall", + "src": "9163:69:46" + }, + "nativeSrc": "9163:69:46", + "nodeType": "YulExpressionStatement", + "src": "9163:69:46" + }, + { + "nativeSrc": "9241:15:46", + "nodeType": "YulAssignment", + "src": "9241:15:46", + "value": { + "name": "value", + "nativeSrc": "9251:5:46", + "nodeType": "YulIdentifier", + "src": "9251:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9241:6:46", + "nodeType": "YulIdentifier", + "src": "9241:6:46" + } + ] + }, + { + "nativeSrc": "9265:48:46", + "nodeType": "YulVariableDeclaration", + "src": "9265:48:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9298:9:46", + "nodeType": "YulIdentifier", + "src": "9298:9:46" + }, + { + "kind": "number", + "nativeSrc": "9309:2:46", + "nodeType": "YulLiteral", + "src": "9309:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9294:3:46", + "nodeType": "YulIdentifier", + "src": "9294:3:46" + }, + "nativeSrc": "9294:18:46", + "nodeType": "YulFunctionCall", + "src": "9294:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9281:12:46", + "nodeType": "YulIdentifier", + "src": "9281:12:46" + }, + "nativeSrc": "9281:32:46", + "nodeType": "YulFunctionCall", + "src": "9281:32:46" + }, + "variables": [ + { + "name": "offset_3", + "nativeSrc": "9269:8:46", + "nodeType": "YulTypedName", + "src": "9269:8:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9358:16:46", + "nodeType": "YulBlock", + "src": "9358:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9367:1:46", + "nodeType": "YulLiteral", + "src": "9367:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9370:1:46", + "nodeType": "YulLiteral", + "src": "9370:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9360:6:46", + "nodeType": "YulIdentifier", + "src": "9360:6:46" + }, + "nativeSrc": "9360:12:46", + "nodeType": "YulFunctionCall", + "src": "9360:12:46" + }, + "nativeSrc": "9360:12:46", + "nodeType": "YulExpressionStatement", + "src": "9360:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_3", + "nativeSrc": "9328:8:46", + "nodeType": "YulIdentifier", + "src": "9328:8:46" + }, + { + "kind": "number", + "nativeSrc": "9338:18:46", + "nodeType": "YulLiteral", + "src": "9338:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9325:2:46", + "nodeType": "YulIdentifier", + "src": "9325:2:46" + }, + "nativeSrc": "9325:32:46", + "nodeType": "YulFunctionCall", + "src": "9325:32:46" + }, + "nativeSrc": "9322:52:46", + "nodeType": "YulIf", + "src": "9322:52:46" + }, + { + "nativeSrc": "9383:62:46", + "nodeType": "YulAssignment", + "src": "9383:62:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9415:9:46", + "nodeType": "YulIdentifier", + "src": "9415:9:46" + }, + { + "name": "offset_3", + "nativeSrc": "9426:8:46", + "nodeType": "YulIdentifier", + "src": "9426:8:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9411:3:46", + "nodeType": "YulIdentifier", + "src": "9411:3:46" + }, + "nativeSrc": "9411:24:46", + "nodeType": "YulFunctionCall", + "src": "9411:24:46" + }, + { + "name": "dataEnd", + "nativeSrc": "9437:7:46", + "nodeType": "YulIdentifier", + "src": "9437:7:46" + } + ], + "functionName": { + "name": "abi_decode_string", + "nativeSrc": "9393:17:46", + "nodeType": "YulIdentifier", + "src": "9393:17:46" + }, + "nativeSrc": "9393:52:46", + "nodeType": "YulFunctionCall", + "src": "9393:52:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "9383:6:46", + "nodeType": "YulIdentifier", + "src": "9383:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_CredentialProof_$14818_memory_ptrt_bytes_memory_ptr", + "nativeSrc": "8436:1015:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "8524:9:46", + "nodeType": "YulTypedName", + "src": "8524:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "8535:7:46", + "nodeType": "YulTypedName", + "src": "8535:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "8547:6:46", + "nodeType": "YulTypedName", + "src": "8547:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "8555:6:46", + "nodeType": "YulTypedName", + "src": "8555:6:46", + "type": "" + } + ], + "src": "8436:1015:46" + }, + { + "body": { + "nativeSrc": "9561:332:46", + "nodeType": "YulBlock", + "src": "9561:332:46", + "statements": [ + { + "body": { + "nativeSrc": "9607:16:46", + "nodeType": "YulBlock", + "src": "9607:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9616:1:46", + "nodeType": "YulLiteral", + "src": "9616:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9619:1:46", + "nodeType": "YulLiteral", + "src": "9619:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9609:6:46", + "nodeType": "YulIdentifier", + "src": "9609:6:46" + }, + "nativeSrc": "9609:12:46", + "nodeType": "YulFunctionCall", + "src": "9609:12:46" + }, + "nativeSrc": "9609:12:46", + "nodeType": "YulExpressionStatement", + "src": "9609:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "9582:7:46", + "nodeType": "YulIdentifier", + "src": "9582:7:46" + }, + { + "name": "headStart", + "nativeSrc": "9591:9:46", + "nodeType": "YulIdentifier", + "src": "9591:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9578:3:46", + "nodeType": "YulIdentifier", + "src": "9578:3:46" + }, + "nativeSrc": "9578:23:46", + "nodeType": "YulFunctionCall", + "src": "9578:23:46" + }, + { + "kind": "number", + "nativeSrc": "9603:2:46", + "nodeType": "YulLiteral", + "src": "9603:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "9574:3:46", + "nodeType": "YulIdentifier", + "src": "9574:3:46" + }, + "nativeSrc": "9574:32:46", + "nodeType": "YulFunctionCall", + "src": "9574:32:46" + }, + "nativeSrc": "9571:52:46", + "nodeType": "YulIf", + "src": "9571:52:46" + }, + { + "nativeSrc": "9632:37:46", + "nodeType": "YulVariableDeclaration", + "src": "9632:37:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9659:9:46", + "nodeType": "YulIdentifier", + "src": "9659:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "9646:12:46", + "nodeType": "YulIdentifier", + "src": "9646:12:46" + }, + "nativeSrc": "9646:23:46", + "nodeType": "YulFunctionCall", + "src": "9646:23:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "9636:6:46", + "nodeType": "YulTypedName", + "src": "9636:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9712:16:46", + "nodeType": "YulBlock", + "src": "9712:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9721:1:46", + "nodeType": "YulLiteral", + "src": "9721:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "9724:1:46", + "nodeType": "YulLiteral", + "src": "9724:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "9714:6:46", + "nodeType": "YulIdentifier", + "src": "9714:6:46" + }, + "nativeSrc": "9714:12:46", + "nodeType": "YulFunctionCall", + "src": "9714:12:46" + }, + "nativeSrc": "9714:12:46", + "nodeType": "YulExpressionStatement", + "src": "9714:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "9684:6:46", + "nodeType": "YulIdentifier", + "src": "9684:6:46" + }, + { + "kind": "number", + "nativeSrc": "9692:18:46", + "nodeType": "YulLiteral", + "src": "9692:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "9681:2:46", + "nodeType": "YulIdentifier", + "src": "9681:2:46" + }, + "nativeSrc": "9681:30:46", + "nodeType": "YulFunctionCall", + "src": "9681:30:46" + }, + "nativeSrc": "9678:50:46", + "nodeType": "YulIf", + "src": "9678:50:46" + }, + { + "nativeSrc": "9737:96:46", + "nodeType": "YulVariableDeclaration", + "src": "9737:96:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9805:9:46", + "nodeType": "YulIdentifier", + "src": "9805:9:46" + }, + { + "name": "offset", + "nativeSrc": "9816:6:46", + "nodeType": "YulIdentifier", + "src": "9816:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9801:3:46", + "nodeType": "YulIdentifier", + "src": "9801:3:46" + }, + "nativeSrc": "9801:22:46", + "nodeType": "YulFunctionCall", + "src": "9801:22:46" + }, + { + "name": "dataEnd", + "nativeSrc": "9825:7:46", + "nodeType": "YulIdentifier", + "src": "9825:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_dyn_calldata", + "nativeSrc": "9763:37:46", + "nodeType": "YulIdentifier", + "src": "9763:37:46" + }, + "nativeSrc": "9763:70:46", + "nodeType": "YulFunctionCall", + "src": "9763:70:46" + }, + "variables": [ + { + "name": "value0_1", + "nativeSrc": "9741:8:46", + "nodeType": "YulTypedName", + "src": "9741:8:46", + "type": "" + }, + { + "name": "value1_1", + "nativeSrc": "9751:8:46", + "nodeType": "YulTypedName", + "src": "9751:8:46", + "type": "" + } + ] + }, + { + "nativeSrc": "9842:18:46", + "nodeType": "YulAssignment", + "src": "9842:18:46", + "value": { + "name": "value0_1", + "nativeSrc": "9852:8:46", + "nodeType": "YulIdentifier", + "src": "9852:8:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "9842:6:46", + "nodeType": "YulIdentifier", + "src": "9842:6:46" + } + ] + }, + { + "nativeSrc": "9869:18:46", + "nodeType": "YulAssignment", + "src": "9869:18:46", + "value": { + "name": "value1_1", + "nativeSrc": "9879:8:46", + "nodeType": "YulIdentifier", + "src": "9879:8:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "9869:6:46", + "nodeType": "YulIdentifier", + "src": "9869:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr", + "nativeSrc": "9456:437:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9519:9:46", + "nodeType": "YulTypedName", + "src": "9519:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "9530:7:46", + "nodeType": "YulTypedName", + "src": "9530:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "9542:6:46", + "nodeType": "YulTypedName", + "src": "9542:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9550:6:46", + "nodeType": "YulTypedName", + "src": "9550:6:46", + "type": "" + } + ], + "src": "9456:437:46" + }, + { + "body": { + "nativeSrc": "9999:102:46", + "nodeType": "YulBlock", + "src": "9999:102:46", + "statements": [ + { + "nativeSrc": "10009:26:46", + "nodeType": "YulAssignment", + "src": "10009:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10021:9:46", + "nodeType": "YulIdentifier", + "src": "10021:9:46" + }, + { + "kind": "number", + "nativeSrc": "10032:2:46", + "nodeType": "YulLiteral", + "src": "10032:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10017:3:46", + "nodeType": "YulIdentifier", + "src": "10017:3:46" + }, + "nativeSrc": "10017:18:46", + "nodeType": "YulFunctionCall", + "src": "10017:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10009:4:46", + "nodeType": "YulIdentifier", + "src": "10009:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10051:9:46", + "nodeType": "YulIdentifier", + "src": "10051:9:46" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "10066:6:46", + "nodeType": "YulIdentifier", + "src": "10066:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10082:3:46", + "nodeType": "YulLiteral", + "src": "10082:3:46", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "10087:1:46", + "nodeType": "YulLiteral", + "src": "10087:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "10078:3:46", + "nodeType": "YulIdentifier", + "src": "10078:3:46" + }, + "nativeSrc": "10078:11:46", + "nodeType": "YulFunctionCall", + "src": "10078:11:46" + }, + { + "kind": "number", + "nativeSrc": "10091:1:46", + "nodeType": "YulLiteral", + "src": "10091:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10074:3:46", + "nodeType": "YulIdentifier", + "src": "10074:3:46" + }, + "nativeSrc": "10074:19:46", + "nodeType": "YulFunctionCall", + "src": "10074:19:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "10062:3:46", + "nodeType": "YulIdentifier", + "src": "10062:3:46" + }, + "nativeSrc": "10062:32:46", + "nodeType": "YulFunctionCall", + "src": "10062:32:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10044:6:46", + "nodeType": "YulIdentifier", + "src": "10044:6:46" + }, + "nativeSrc": "10044:51:46", + "nodeType": "YulFunctionCall", + "src": "10044:51:46" + }, + "nativeSrc": "10044:51:46", + "nodeType": "YulExpressionStatement", + "src": "10044:51:46" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "9898:203:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9968:9:46", + "nodeType": "YulTypedName", + "src": "9968:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "9979:6:46", + "nodeType": "YulTypedName", + "src": "9979:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9990:4:46", + "nodeType": "YulTypedName", + "src": "9990:4:46", + "type": "" + } + ], + "src": "9898:203:46" + }, + { + "body": { + "nativeSrc": "10209:315:46", + "nodeType": "YulBlock", + "src": "10209:315:46", + "statements": [ + { + "body": { + "nativeSrc": "10255:16:46", + "nodeType": "YulBlock", + "src": "10255:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10264:1:46", + "nodeType": "YulLiteral", + "src": "10264:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "10267:1:46", + "nodeType": "YulLiteral", + "src": "10267:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "10257:6:46", + "nodeType": "YulIdentifier", + "src": "10257:6:46" + }, + "nativeSrc": "10257:12:46", + "nodeType": "YulFunctionCall", + "src": "10257:12:46" + }, + "nativeSrc": "10257:12:46", + "nodeType": "YulExpressionStatement", + "src": "10257:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10230:7:46", + "nodeType": "YulIdentifier", + "src": "10230:7:46" + }, + { + "name": "headStart", + "nativeSrc": "10239:9:46", + "nodeType": "YulIdentifier", + "src": "10239:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10226:3:46", + "nodeType": "YulIdentifier", + "src": "10226:3:46" + }, + "nativeSrc": "10226:23:46", + "nodeType": "YulFunctionCall", + "src": "10226:23:46" + }, + { + "kind": "number", + "nativeSrc": "10251:2:46", + "nodeType": "YulLiteral", + "src": "10251:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10222:3:46", + "nodeType": "YulIdentifier", + "src": "10222:3:46" + }, + "nativeSrc": "10222:32:46", + "nodeType": "YulFunctionCall", + "src": "10222:32:46" + }, + "nativeSrc": "10219:52:46", + "nodeType": "YulIf", + "src": "10219:52:46" + }, + { + "nativeSrc": "10280:14:46", + "nodeType": "YulVariableDeclaration", + "src": "10280:14:46", + "value": { + "kind": "number", + "nativeSrc": "10293:1:46", + "nodeType": "YulLiteral", + "src": "10293:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "10284:5:46", + "nodeType": "YulTypedName", + "src": "10284:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "10303:32:46", + "nodeType": "YulAssignment", + "src": "10303:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10325:9:46", + "nodeType": "YulIdentifier", + "src": "10325:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10312:12:46", + "nodeType": "YulIdentifier", + "src": "10312:12:46" + }, + "nativeSrc": "10312:23:46", + "nodeType": "YulFunctionCall", + "src": "10312:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "10303:5:46", + "nodeType": "YulIdentifier", + "src": "10303:5:46" + } + ] + }, + { + "nativeSrc": "10344:15:46", + "nodeType": "YulAssignment", + "src": "10344:15:46", + "value": { + "name": "value", + "nativeSrc": "10354:5:46", + "nodeType": "YulIdentifier", + "src": "10354:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "10344:6:46", + "nodeType": "YulIdentifier", + "src": "10344:6:46" + } + ] + }, + { + "nativeSrc": "10368:16:46", + "nodeType": "YulVariableDeclaration", + "src": "10368:16:46", + "value": { + "kind": "number", + "nativeSrc": "10383:1:46", + "nodeType": "YulLiteral", + "src": "10383:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "10372:7:46", + "nodeType": "YulTypedName", + "src": "10372:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "10393:43:46", + "nodeType": "YulAssignment", + "src": "10393:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10421:9:46", + "nodeType": "YulIdentifier", + "src": "10421:9:46" + }, + { + "kind": "number", + "nativeSrc": "10432:2:46", + "nodeType": "YulLiteral", + "src": "10432:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10417:3:46", + "nodeType": "YulIdentifier", + "src": "10417:3:46" + }, + "nativeSrc": "10417:18:46", + "nodeType": "YulFunctionCall", + "src": "10417:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10404:12:46", + "nodeType": "YulIdentifier", + "src": "10404:12:46" + }, + "nativeSrc": "10404:32:46", + "nodeType": "YulFunctionCall", + "src": "10404:32:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "10393:7:46", + "nodeType": "YulIdentifier", + "src": "10393:7:46" + } + ] + }, + { + "nativeSrc": "10445:17:46", + "nodeType": "YulAssignment", + "src": "10445:17:46", + "value": { + "name": "value_1", + "nativeSrc": "10455:7:46", + "nodeType": "YulIdentifier", + "src": "10455:7:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "10445:6:46", + "nodeType": "YulIdentifier", + "src": "10445:6:46" + } + ] + }, + { + "nativeSrc": "10471:47:46", + "nodeType": "YulAssignment", + "src": "10471:47:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10503:9:46", + "nodeType": "YulIdentifier", + "src": "10503:9:46" + }, + { + "kind": "number", + "nativeSrc": "10514:2:46", + "nodeType": "YulLiteral", + "src": "10514:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10499:3:46", + "nodeType": "YulIdentifier", + "src": "10499:3:46" + }, + "nativeSrc": "10499:18:46", + "nodeType": "YulFunctionCall", + "src": "10499:18:46" + } + ], + "functionName": { + "name": "abi_decode_uint64", + "nativeSrc": "10481:17:46", + "nodeType": "YulIdentifier", + "src": "10481:17:46" + }, + "nativeSrc": "10481:37:46", + "nodeType": "YulFunctionCall", + "src": "10481:37:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "10471:6:46", + "nodeType": "YulIdentifier", + "src": "10471:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_uint64", + "nativeSrc": "10106:418:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10159:9:46", + "nodeType": "YulTypedName", + "src": "10159:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10170:7:46", + "nodeType": "YulTypedName", + "src": "10170:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10182:6:46", + "nodeType": "YulTypedName", + "src": "10182:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "10190:6:46", + "nodeType": "YulTypedName", + "src": "10190:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "10198:6:46", + "nodeType": "YulTypedName", + "src": "10198:6:46", + "type": "" + } + ], + "src": "10106:418:46" + }, + { + "body": { + "nativeSrc": "10609:242:46", + "nodeType": "YulBlock", + "src": "10609:242:46", + "statements": [ + { + "body": { + "nativeSrc": "10655:16:46", + "nodeType": "YulBlock", + "src": "10655:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10664:1:46", + "nodeType": "YulLiteral", + "src": "10664:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "10667:1:46", + "nodeType": "YulLiteral", + "src": "10667:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "10657:6:46", + "nodeType": "YulIdentifier", + "src": "10657:6:46" + }, + "nativeSrc": "10657:12:46", + "nodeType": "YulFunctionCall", + "src": "10657:12:46" + }, + "nativeSrc": "10657:12:46", + "nodeType": "YulExpressionStatement", + "src": "10657:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10630:7:46", + "nodeType": "YulIdentifier", + "src": "10630:7:46" + }, + { + "name": "headStart", + "nativeSrc": "10639:9:46", + "nodeType": "YulIdentifier", + "src": "10639:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10626:3:46", + "nodeType": "YulIdentifier", + "src": "10626:3:46" + }, + "nativeSrc": "10626:23:46", + "nodeType": "YulFunctionCall", + "src": "10626:23:46" + }, + { + "kind": "number", + "nativeSrc": "10651:2:46", + "nodeType": "YulLiteral", + "src": "10651:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10622:3:46", + "nodeType": "YulIdentifier", + "src": "10622:3:46" + }, + "nativeSrc": "10622:32:46", + "nodeType": "YulFunctionCall", + "src": "10622:32:46" + }, + "nativeSrc": "10619:52:46", + "nodeType": "YulIf", + "src": "10619:52:46" + }, + { + "nativeSrc": "10680:37:46", + "nodeType": "YulVariableDeclaration", + "src": "10680:37:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10707:9:46", + "nodeType": "YulIdentifier", + "src": "10707:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10694:12:46", + "nodeType": "YulIdentifier", + "src": "10694:12:46" + }, + "nativeSrc": "10694:23:46", + "nodeType": "YulFunctionCall", + "src": "10694:23:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10684:6:46", + "nodeType": "YulTypedName", + "src": "10684:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10760:16:46", + "nodeType": "YulBlock", + "src": "10760:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10769:1:46", + "nodeType": "YulLiteral", + "src": "10769:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "10772:1:46", + "nodeType": "YulLiteral", + "src": "10772:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "10762:6:46", + "nodeType": "YulIdentifier", + "src": "10762:6:46" + }, + "nativeSrc": "10762:12:46", + "nodeType": "YulFunctionCall", + "src": "10762:12:46" + }, + "nativeSrc": "10762:12:46", + "nodeType": "YulExpressionStatement", + "src": "10762:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10732:6:46", + "nodeType": "YulIdentifier", + "src": "10732:6:46" + }, + { + "kind": "number", + "nativeSrc": "10740:18:46", + "nodeType": "YulLiteral", + "src": "10740:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10729:2:46", + "nodeType": "YulIdentifier", + "src": "10729:2:46" + }, + "nativeSrc": "10729:30:46", + "nodeType": "YulFunctionCall", + "src": "10729:30:46" + }, + "nativeSrc": "10726:50:46", + "nodeType": "YulIf", + "src": "10726:50:46" + }, + { + "nativeSrc": "10785:60:46", + "nodeType": "YulAssignment", + "src": "10785:60:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10817:9:46", + "nodeType": "YulIdentifier", + "src": "10817:9:46" + }, + { + "name": "offset", + "nativeSrc": "10828:6:46", + "nodeType": "YulIdentifier", + "src": "10828:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10813:3:46", + "nodeType": "YulIdentifier", + "src": "10813:3:46" + }, + "nativeSrc": "10813:22:46", + "nodeType": "YulFunctionCall", + "src": "10813:22:46" + }, + { + "name": "dataEnd", + "nativeSrc": "10837:7:46", + "nodeType": "YulIdentifier", + "src": "10837:7:46" + } + ], + "functionName": { + "name": "abi_decode_string", + "nativeSrc": "10795:17:46", + "nodeType": "YulIdentifier", + "src": "10795:17:46" + }, + "nativeSrc": "10795:50:46", + "nodeType": "YulFunctionCall", + "src": "10795:50:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "10785:6:46", + "nodeType": "YulIdentifier", + "src": "10785:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr", + "nativeSrc": "10529:322:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10575:9:46", + "nodeType": "YulTypedName", + "src": "10575:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10586:7:46", + "nodeType": "YulTypedName", + "src": "10586:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10598:6:46", + "nodeType": "YulTypedName", + "src": "10598:6:46", + "type": "" + } + ], + "src": "10529:322:46" + }, + { + "body": { + "nativeSrc": "11003:209:46", + "nodeType": "YulBlock", + "src": "11003:209:46", + "statements": [ + { + "nativeSrc": "11013:26:46", + "nodeType": "YulAssignment", + "src": "11013:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11025:9:46", + "nodeType": "YulIdentifier", + "src": "11025:9:46" + }, + { + "kind": "number", + "nativeSrc": "11036:2:46", + "nodeType": "YulLiteral", + "src": "11036:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11021:3:46", + "nodeType": "YulIdentifier", + "src": "11021:3:46" + }, + "nativeSrc": "11021:18:46", + "nodeType": "YulFunctionCall", + "src": "11021:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11013:4:46", + "nodeType": "YulIdentifier", + "src": "11013:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11055:9:46", + "nodeType": "YulIdentifier", + "src": "11055:9:46" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "11072:6:46", + "nodeType": "YulIdentifier", + "src": "11072:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "11066:5:46", + "nodeType": "YulIdentifier", + "src": "11066:5:46" + }, + "nativeSrc": "11066:13:46", + "nodeType": "YulFunctionCall", + "src": "11066:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11048:6:46", + "nodeType": "YulIdentifier", + "src": "11048:6:46" + }, + "nativeSrc": "11048:32:46", + "nodeType": "YulFunctionCall", + "src": "11048:32:46" + }, + "nativeSrc": "11048:32:46", + "nodeType": "YulExpressionStatement", + "src": "11048:32:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11100:9:46", + "nodeType": "YulIdentifier", + "src": "11100:9:46" + }, + { + "kind": "number", + "nativeSrc": "11111:4:46", + "nodeType": "YulLiteral", + "src": "11111:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11096:3:46", + "nodeType": "YulIdentifier", + "src": "11096:3:46" + }, + "nativeSrc": "11096:20:46", + "nodeType": "YulFunctionCall", + "src": "11096:20:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "11128:6:46", + "nodeType": "YulIdentifier", + "src": "11128:6:46" + }, + { + "kind": "number", + "nativeSrc": "11136:4:46", + "nodeType": "YulLiteral", + "src": "11136:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11124:3:46", + "nodeType": "YulIdentifier", + "src": "11124:3:46" + }, + "nativeSrc": "11124:17:46", + "nodeType": "YulFunctionCall", + "src": "11124:17:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "11118:5:46", + "nodeType": "YulIdentifier", + "src": "11118:5:46" + }, + "nativeSrc": "11118:24:46", + "nodeType": "YulFunctionCall", + "src": "11118:24:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11089:6:46", + "nodeType": "YulIdentifier", + "src": "11089:6:46" + }, + "nativeSrc": "11089:54:46", + "nodeType": "YulFunctionCall", + "src": "11089:54:46" + }, + "nativeSrc": "11089:54:46", + "nodeType": "YulExpressionStatement", + "src": "11089:54:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11163:9:46", + "nodeType": "YulIdentifier", + "src": "11163:9:46" + }, + { + "kind": "number", + "nativeSrc": "11174:4:46", + "nodeType": "YulLiteral", + "src": "11174:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11159:3:46", + "nodeType": "YulIdentifier", + "src": "11159:3:46" + }, + "nativeSrc": "11159:20:46", + "nodeType": "YulFunctionCall", + "src": "11159:20:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "11191:6:46", + "nodeType": "YulIdentifier", + "src": "11191:6:46" + }, + { + "kind": "number", + "nativeSrc": "11199:4:46", + "nodeType": "YulLiteral", + "src": "11199:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11187:3:46", + "nodeType": "YulIdentifier", + "src": "11187:3:46" + }, + "nativeSrc": "11187:17:46", + "nodeType": "YulFunctionCall", + "src": "11187:17:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "11181:5:46", + "nodeType": "YulIdentifier", + "src": "11181:5:46" + }, + "nativeSrc": "11181:24:46", + "nodeType": "YulFunctionCall", + "src": "11181:24:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11152:6:46", + "nodeType": "YulIdentifier", + "src": "11152:6:46" + }, + "nativeSrc": "11152:54:46", + "nodeType": "YulFunctionCall", + "src": "11152:54:46" + }, + "nativeSrc": "11152:54:46", + "nodeType": "YulExpressionStatement", + "src": "11152:54:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Roots_$1390_memory_ptr__to_t_struct$_Roots_$1390_memory_ptr__fromStack_reversed", + "nativeSrc": "10856:356:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10972:9:46", + "nodeType": "YulTypedName", + "src": "10972:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "10983:6:46", + "nodeType": "YulTypedName", + "src": "10983:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10994:4:46", + "nodeType": "YulTypedName", + "src": "10994:4:46", + "type": "" + } + ], + "src": "10856:356:46" + }, + { + "body": { + "nativeSrc": "11303:212:46", + "nodeType": "YulBlock", + "src": "11303:212:46", + "statements": [ + { + "body": { + "nativeSrc": "11349:16:46", + "nodeType": "YulBlock", + "src": "11349:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11358:1:46", + "nodeType": "YulLiteral", + "src": "11358:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11361:1:46", + "nodeType": "YulLiteral", + "src": "11361:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11351:6:46", + "nodeType": "YulIdentifier", + "src": "11351:6:46" + }, + "nativeSrc": "11351:12:46", + "nodeType": "YulFunctionCall", + "src": "11351:12:46" + }, + "nativeSrc": "11351:12:46", + "nodeType": "YulExpressionStatement", + "src": "11351:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11324:7:46", + "nodeType": "YulIdentifier", + "src": "11324:7:46" + }, + { + "name": "headStart", + "nativeSrc": "11333:9:46", + "nodeType": "YulIdentifier", + "src": "11333:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11320:3:46", + "nodeType": "YulIdentifier", + "src": "11320:3:46" + }, + "nativeSrc": "11320:23:46", + "nodeType": "YulFunctionCall", + "src": "11320:23:46" + }, + { + "kind": "number", + "nativeSrc": "11345:2:46", + "nodeType": "YulLiteral", + "src": "11345:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11316:3:46", + "nodeType": "YulIdentifier", + "src": "11316:3:46" + }, + "nativeSrc": "11316:32:46", + "nodeType": "YulFunctionCall", + "src": "11316:32:46" + }, + "nativeSrc": "11313:52:46", + "nodeType": "YulIf", + "src": "11313:52:46" + }, + { + "nativeSrc": "11374:38:46", + "nodeType": "YulAssignment", + "src": "11374:38:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11402:9:46", + "nodeType": "YulIdentifier", + "src": "11402:9:46" + } + ], + "functionName": { + "name": "abi_decode_uint64", + "nativeSrc": "11384:17:46", + "nodeType": "YulIdentifier", + "src": "11384:17:46" + }, + "nativeSrc": "11384:28:46", + "nodeType": "YulFunctionCall", + "src": "11384:28:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11374:6:46", + "nodeType": "YulIdentifier", + "src": "11374:6:46" + } + ] + }, + { + "nativeSrc": "11421:14:46", + "nodeType": "YulVariableDeclaration", + "src": "11421:14:46", + "value": { + "kind": "number", + "nativeSrc": "11434:1:46", + "nodeType": "YulLiteral", + "src": "11434:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "11425:5:46", + "nodeType": "YulTypedName", + "src": "11425:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "11444:41:46", + "nodeType": "YulAssignment", + "src": "11444:41:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11470:9:46", + "nodeType": "YulIdentifier", + "src": "11470:9:46" + }, + { + "kind": "number", + "nativeSrc": "11481:2:46", + "nodeType": "YulLiteral", + "src": "11481:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11466:3:46", + "nodeType": "YulIdentifier", + "src": "11466:3:46" + }, + "nativeSrc": "11466:18:46", + "nodeType": "YulFunctionCall", + "src": "11466:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11453:12:46", + "nodeType": "YulIdentifier", + "src": "11453:12:46" + }, + "nativeSrc": "11453:32:46", + "nodeType": "YulFunctionCall", + "src": "11453:32:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "11444:5:46", + "nodeType": "YulIdentifier", + "src": "11444:5:46" + } + ] + }, + { + "nativeSrc": "11494:15:46", + "nodeType": "YulAssignment", + "src": "11494:15:46", + "value": { + "name": "value", + "nativeSrc": "11504:5:46", + "nodeType": "YulIdentifier", + "src": "11504:5:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "11494:6:46", + "nodeType": "YulIdentifier", + "src": "11494:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint64t_uint256", + "nativeSrc": "11217:298:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11261:9:46", + "nodeType": "YulTypedName", + "src": "11261:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11272:7:46", + "nodeType": "YulTypedName", + "src": "11272:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11284:6:46", + "nodeType": "YulTypedName", + "src": "11284:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11292:6:46", + "nodeType": "YulTypedName", + "src": "11292:6:46", + "type": "" + } + ], + "src": "11217:298:46" + }, + { + "body": { + "nativeSrc": "11590:116:46", + "nodeType": "YulBlock", + "src": "11590:116:46", + "statements": [ + { + "body": { + "nativeSrc": "11636:16:46", + "nodeType": "YulBlock", + "src": "11636:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11645:1:46", + "nodeType": "YulLiteral", + "src": "11645:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11648:1:46", + "nodeType": "YulLiteral", + "src": "11648:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11638:6:46", + "nodeType": "YulIdentifier", + "src": "11638:6:46" + }, + "nativeSrc": "11638:12:46", + "nodeType": "YulFunctionCall", + "src": "11638:12:46" + }, + "nativeSrc": "11638:12:46", + "nodeType": "YulExpressionStatement", + "src": "11638:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11611:7:46", + "nodeType": "YulIdentifier", + "src": "11611:7:46" + }, + { + "name": "headStart", + "nativeSrc": "11620:9:46", + "nodeType": "YulIdentifier", + "src": "11620:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11607:3:46", + "nodeType": "YulIdentifier", + "src": "11607:3:46" + }, + "nativeSrc": "11607:23:46", + "nodeType": "YulFunctionCall", + "src": "11607:23:46" + }, + { + "kind": "number", + "nativeSrc": "11632:2:46", + "nodeType": "YulLiteral", + "src": "11632:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11603:3:46", + "nodeType": "YulIdentifier", + "src": "11603:3:46" + }, + "nativeSrc": "11603:32:46", + "nodeType": "YulFunctionCall", + "src": "11603:32:46" + }, + "nativeSrc": "11600:52:46", + "nodeType": "YulIf", + "src": "11600:52:46" + }, + { + "nativeSrc": "11661:39:46", + "nodeType": "YulAssignment", + "src": "11661:39:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11690:9:46", + "nodeType": "YulIdentifier", + "src": "11690:9:46" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "11671:18:46", + "nodeType": "YulIdentifier", + "src": "11671:18:46" + }, + "nativeSrc": "11671:29:46", + "nodeType": "YulFunctionCall", + "src": "11671:29:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11661:6:46", + "nodeType": "YulIdentifier", + "src": "11661:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "11520:186:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11556:9:46", + "nodeType": "YulTypedName", + "src": "11556:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11567:7:46", + "nodeType": "YulTypedName", + "src": "11567:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11579:6:46", + "nodeType": "YulTypedName", + "src": "11579:6:46", + "type": "" + } + ], + "src": "11520:186:46" + }, + { + "body": { + "nativeSrc": "11880:611:46", + "nodeType": "YulBlock", + "src": "11880:611:46", + "statements": [ + { + "body": { + "nativeSrc": "11926:16:46", + "nodeType": "YulBlock", + "src": "11926:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11935:1:46", + "nodeType": "YulLiteral", + "src": "11935:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11938:1:46", + "nodeType": "YulLiteral", + "src": "11938:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "11928:6:46", + "nodeType": "YulIdentifier", + "src": "11928:6:46" + }, + "nativeSrc": "11928:12:46", + "nodeType": "YulFunctionCall", + "src": "11928:12:46" + }, + "nativeSrc": "11928:12:46", + "nodeType": "YulExpressionStatement", + "src": "11928:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "11901:7:46", + "nodeType": "YulIdentifier", + "src": "11901:7:46" + }, + { + "name": "headStart", + "nativeSrc": "11910:9:46", + "nodeType": "YulIdentifier", + "src": "11910:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "11897:3:46", + "nodeType": "YulIdentifier", + "src": "11897:3:46" + }, + "nativeSrc": "11897:23:46", + "nodeType": "YulFunctionCall", + "src": "11897:23:46" + }, + { + "kind": "number", + "nativeSrc": "11922:2:46", + "nodeType": "YulLiteral", + "src": "11922:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11893:3:46", + "nodeType": "YulIdentifier", + "src": "11893:3:46" + }, + "nativeSrc": "11893:32:46", + "nodeType": "YulFunctionCall", + "src": "11893:32:46" + }, + "nativeSrc": "11890:52:46", + "nodeType": "YulIf", + "src": "11890:52:46" + }, + { + "nativeSrc": "11951:37:46", + "nodeType": "YulVariableDeclaration", + "src": "11951:37:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11978:9:46", + "nodeType": "YulIdentifier", + "src": "11978:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11965:12:46", + "nodeType": "YulIdentifier", + "src": "11965:12:46" + }, + "nativeSrc": "11965:23:46", + "nodeType": "YulFunctionCall", + "src": "11965:23:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "11955:6:46", + "nodeType": "YulTypedName", + "src": "11955:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12031:16:46", + "nodeType": "YulBlock", + "src": "12031:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12040:1:46", + "nodeType": "YulLiteral", + "src": "12040:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12043:1:46", + "nodeType": "YulLiteral", + "src": "12043:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12033:6:46", + "nodeType": "YulIdentifier", + "src": "12033:6:46" + }, + "nativeSrc": "12033:12:46", + "nodeType": "YulFunctionCall", + "src": "12033:12:46" + }, + "nativeSrc": "12033:12:46", + "nodeType": "YulExpressionStatement", + "src": "12033:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12003:6:46", + "nodeType": "YulIdentifier", + "src": "12003:6:46" + }, + { + "kind": "number", + "nativeSrc": "12011:18:46", + "nodeType": "YulLiteral", + "src": "12011:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12000:2:46", + "nodeType": "YulIdentifier", + "src": "12000:2:46" + }, + "nativeSrc": "12000:30:46", + "nodeType": "YulFunctionCall", + "src": "12000:30:46" + }, + "nativeSrc": "11997:50:46", + "nodeType": "YulIf", + "src": "11997:50:46" + }, + { + "nativeSrc": "12056:96:46", + "nodeType": "YulVariableDeclaration", + "src": "12056:96:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12124:9:46", + "nodeType": "YulIdentifier", + "src": "12124:9:46" + }, + { + "name": "offset", + "nativeSrc": "12135:6:46", + "nodeType": "YulIdentifier", + "src": "12135:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12120:3:46", + "nodeType": "YulIdentifier", + "src": "12120:3:46" + }, + "nativeSrc": "12120:22:46", + "nodeType": "YulFunctionCall", + "src": "12120:22:46" + }, + { + "name": "dataEnd", + "nativeSrc": "12144:7:46", + "nodeType": "YulIdentifier", + "src": "12144:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_dyn_calldata", + "nativeSrc": "12082:37:46", + "nodeType": "YulIdentifier", + "src": "12082:37:46" + }, + "nativeSrc": "12082:70:46", + "nodeType": "YulFunctionCall", + "src": "12082:70:46" + }, + "variables": [ + { + "name": "value0_1", + "nativeSrc": "12060:8:46", + "nodeType": "YulTypedName", + "src": "12060:8:46", + "type": "" + }, + { + "name": "value1_1", + "nativeSrc": "12070:8:46", + "nodeType": "YulTypedName", + "src": "12070:8:46", + "type": "" + } + ] + }, + { + "nativeSrc": "12161:18:46", + "nodeType": "YulAssignment", + "src": "12161:18:46", + "value": { + "name": "value0_1", + "nativeSrc": "12171:8:46", + "nodeType": "YulIdentifier", + "src": "12171:8:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "12161:6:46", + "nodeType": "YulIdentifier", + "src": "12161:6:46" + } + ] + }, + { + "nativeSrc": "12188:18:46", + "nodeType": "YulAssignment", + "src": "12188:18:46", + "value": { + "name": "value1_1", + "nativeSrc": "12198:8:46", + "nodeType": "YulIdentifier", + "src": "12198:8:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "12188:6:46", + "nodeType": "YulIdentifier", + "src": "12188:6:46" + } + ] + }, + { + "nativeSrc": "12215:48:46", + "nodeType": "YulVariableDeclaration", + "src": "12215:48:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12248:9:46", + "nodeType": "YulIdentifier", + "src": "12248:9:46" + }, + { + "kind": "number", + "nativeSrc": "12259:2:46", + "nodeType": "YulLiteral", + "src": "12259:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12244:3:46", + "nodeType": "YulIdentifier", + "src": "12244:3:46" + }, + "nativeSrc": "12244:18:46", + "nodeType": "YulFunctionCall", + "src": "12244:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12231:12:46", + "nodeType": "YulIdentifier", + "src": "12231:12:46" + }, + "nativeSrc": "12231:32:46", + "nodeType": "YulFunctionCall", + "src": "12231:32:46" + }, + "variables": [ + { + "name": "offset_1", + "nativeSrc": "12219:8:46", + "nodeType": "YulTypedName", + "src": "12219:8:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12308:16:46", + "nodeType": "YulBlock", + "src": "12308:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12317:1:46", + "nodeType": "YulLiteral", + "src": "12317:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12320:1:46", + "nodeType": "YulLiteral", + "src": "12320:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12310:6:46", + "nodeType": "YulIdentifier", + "src": "12310:6:46" + }, + "nativeSrc": "12310:12:46", + "nodeType": "YulFunctionCall", + "src": "12310:12:46" + }, + "nativeSrc": "12310:12:46", + "nodeType": "YulExpressionStatement", + "src": "12310:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nativeSrc": "12278:8:46", + "nodeType": "YulIdentifier", + "src": "12278:8:46" + }, + { + "kind": "number", + "nativeSrc": "12288:18:46", + "nodeType": "YulLiteral", + "src": "12288:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12275:2:46", + "nodeType": "YulIdentifier", + "src": "12275:2:46" + }, + "nativeSrc": "12275:32:46", + "nodeType": "YulFunctionCall", + "src": "12275:32:46" + }, + "nativeSrc": "12272:52:46", + "nodeType": "YulIf", + "src": "12272:52:46" + }, + { + "nativeSrc": "12333:98:46", + "nodeType": "YulVariableDeclaration", + "src": "12333:98:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12401:9:46", + "nodeType": "YulIdentifier", + "src": "12401:9:46" + }, + { + "name": "offset_1", + "nativeSrc": "12412:8:46", + "nodeType": "YulIdentifier", + "src": "12412:8:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12397:3:46", + "nodeType": "YulIdentifier", + "src": "12397:3:46" + }, + "nativeSrc": "12397:24:46", + "nodeType": "YulFunctionCall", + "src": "12397:24:46" + }, + { + "name": "dataEnd", + "nativeSrc": "12423:7:46", + "nodeType": "YulIdentifier", + "src": "12423:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_dyn_calldata", + "nativeSrc": "12359:37:46", + "nodeType": "YulIdentifier", + "src": "12359:37:46" + }, + "nativeSrc": "12359:72:46", + "nodeType": "YulFunctionCall", + "src": "12359:72:46" + }, + "variables": [ + { + "name": "value2_1", + "nativeSrc": "12337:8:46", + "nodeType": "YulTypedName", + "src": "12337:8:46", + "type": "" + }, + { + "name": "value3_1", + "nativeSrc": "12347:8:46", + "nodeType": "YulTypedName", + "src": "12347:8:46", + "type": "" + } + ] + }, + { + "nativeSrc": "12440:18:46", + "nodeType": "YulAssignment", + "src": "12440:18:46", + "value": { + "name": "value2_1", + "nativeSrc": "12450:8:46", + "nodeType": "YulIdentifier", + "src": "12450:8:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "12440:6:46", + "nodeType": "YulIdentifier", + "src": "12440:6:46" + } + ] + }, + { + "nativeSrc": "12467:18:46", + "nodeType": "YulAssignment", + "src": "12467:18:46", + "value": { + "name": "value3_1", + "nativeSrc": "12477:8:46", + "nodeType": "YulIdentifier", + "src": "12477:8:46" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "12467:6:46", + "nodeType": "YulIdentifier", + "src": "12467:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptr", + "nativeSrc": "11711:780:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11822:9:46", + "nodeType": "YulTypedName", + "src": "11822:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "11833:7:46", + "nodeType": "YulTypedName", + "src": "11833:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "11845:6:46", + "nodeType": "YulTypedName", + "src": "11845:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "11853:6:46", + "nodeType": "YulTypedName", + "src": "11853:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "11861:6:46", + "nodeType": "YulTypedName", + "src": "11861:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "11869:6:46", + "nodeType": "YulTypedName", + "src": "11869:6:46", + "type": "" + } + ], + "src": "11711:780:46" + }, + { + "body": { + "nativeSrc": "12562:184:46", + "nodeType": "YulBlock", + "src": "12562:184:46", + "statements": [ + { + "nativeSrc": "12572:10:46", + "nodeType": "YulVariableDeclaration", + "src": "12572:10:46", + "value": { + "kind": "number", + "nativeSrc": "12581:1:46", + "nodeType": "YulLiteral", + "src": "12581:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "12576:1:46", + "nodeType": "YulTypedName", + "src": "12576:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12641:63:46", + "nodeType": "YulBlock", + "src": "12641:63:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "12666:3:46", + "nodeType": "YulIdentifier", + "src": "12666:3:46" + }, + { + "name": "i", + "nativeSrc": "12671:1:46", + "nodeType": "YulIdentifier", + "src": "12671:1:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12662:3:46", + "nodeType": "YulIdentifier", + "src": "12662:3:46" + }, + "nativeSrc": "12662:11:46", + "nodeType": "YulFunctionCall", + "src": "12662:11:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "12685:3:46", + "nodeType": "YulIdentifier", + "src": "12685:3:46" + }, + { + "name": "i", + "nativeSrc": "12690:1:46", + "nodeType": "YulIdentifier", + "src": "12690:1:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12681:3:46", + "nodeType": "YulIdentifier", + "src": "12681:3:46" + }, + "nativeSrc": "12681:11:46", + "nodeType": "YulFunctionCall", + "src": "12681:11:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "12675:5:46", + "nodeType": "YulIdentifier", + "src": "12675:5:46" + }, + "nativeSrc": "12675:18:46", + "nodeType": "YulFunctionCall", + "src": "12675:18:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12655:6:46", + "nodeType": "YulIdentifier", + "src": "12655:6:46" + }, + "nativeSrc": "12655:39:46", + "nodeType": "YulFunctionCall", + "src": "12655:39:46" + }, + "nativeSrc": "12655:39:46", + "nodeType": "YulExpressionStatement", + "src": "12655:39:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "12602:1:46", + "nodeType": "YulIdentifier", + "src": "12602:1:46" + }, + { + "name": "length", + "nativeSrc": "12605:6:46", + "nodeType": "YulIdentifier", + "src": "12605:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "12599:2:46", + "nodeType": "YulIdentifier", + "src": "12599:2:46" + }, + "nativeSrc": "12599:13:46", + "nodeType": "YulFunctionCall", + "src": "12599:13:46" + }, + "nativeSrc": "12591:113:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "12613:19:46", + "nodeType": "YulBlock", + "src": "12613:19:46", + "statements": [ + { + "nativeSrc": "12615:15:46", + "nodeType": "YulAssignment", + "src": "12615:15:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "12624:1:46", + "nodeType": "YulIdentifier", + "src": "12624:1:46" + }, + { + "kind": "number", + "nativeSrc": "12627:2:46", + "nodeType": "YulLiteral", + "src": "12627:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12620:3:46", + "nodeType": "YulIdentifier", + "src": "12620:3:46" + }, + "nativeSrc": "12620:10:46", + "nodeType": "YulFunctionCall", + "src": "12620:10:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "12615:1:46", + "nodeType": "YulIdentifier", + "src": "12615:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "12595:3:46", + "nodeType": "YulBlock", + "src": "12595:3:46", + "statements": [] + }, + "src": "12591:113:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "12724:3:46", + "nodeType": "YulIdentifier", + "src": "12724:3:46" + }, + { + "name": "length", + "nativeSrc": "12729:6:46", + "nodeType": "YulIdentifier", + "src": "12729:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12720:3:46", + "nodeType": "YulIdentifier", + "src": "12720:3:46" + }, + "nativeSrc": "12720:16:46", + "nodeType": "YulFunctionCall", + "src": "12720:16:46" + }, + { + "kind": "number", + "nativeSrc": "12738:1:46", + "nodeType": "YulLiteral", + "src": "12738:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12713:6:46", + "nodeType": "YulIdentifier", + "src": "12713:6:46" + }, + "nativeSrc": "12713:27:46", + "nodeType": "YulFunctionCall", + "src": "12713:27:46" + }, + "nativeSrc": "12713:27:46", + "nodeType": "YulExpressionStatement", + "src": "12713:27:46" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "12496:250:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "12540:3:46", + "nodeType": "YulTypedName", + "src": "12540:3:46", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "12545:3:46", + "nodeType": "YulTypedName", + "src": "12545:3:46", + "type": "" + }, + { + "name": "length", + "nativeSrc": "12550:6:46", + "nodeType": "YulTypedName", + "src": "12550:6:46", + "type": "" + } + ], + "src": "12496:250:46" + }, + { + "body": { + "nativeSrc": "12872:275:46", + "nodeType": "YulBlock", + "src": "12872:275:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12889:9:46", + "nodeType": "YulIdentifier", + "src": "12889:9:46" + }, + { + "kind": "number", + "nativeSrc": "12900:2:46", + "nodeType": "YulLiteral", + "src": "12900:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12882:6:46", + "nodeType": "YulIdentifier", + "src": "12882:6:46" + }, + "nativeSrc": "12882:21:46", + "nodeType": "YulFunctionCall", + "src": "12882:21:46" + }, + "nativeSrc": "12882:21:46", + "nodeType": "YulExpressionStatement", + "src": "12882:21:46" + }, + { + "nativeSrc": "12912:27:46", + "nodeType": "YulVariableDeclaration", + "src": "12912:27:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "12932:6:46", + "nodeType": "YulIdentifier", + "src": "12932:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "12926:5:46", + "nodeType": "YulIdentifier", + "src": "12926:5:46" + }, + "nativeSrc": "12926:13:46", + "nodeType": "YulFunctionCall", + "src": "12926:13:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "12916:6:46", + "nodeType": "YulTypedName", + "src": "12916:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12959:9:46", + "nodeType": "YulIdentifier", + "src": "12959:9:46" + }, + { + "kind": "number", + "nativeSrc": "12970:2:46", + "nodeType": "YulLiteral", + "src": "12970:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12955:3:46", + "nodeType": "YulIdentifier", + "src": "12955:3:46" + }, + "nativeSrc": "12955:18:46", + "nodeType": "YulFunctionCall", + "src": "12955:18:46" + }, + { + "name": "length", + "nativeSrc": "12975:6:46", + "nodeType": "YulIdentifier", + "src": "12975:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "12948:6:46", + "nodeType": "YulIdentifier", + "src": "12948:6:46" + }, + "nativeSrc": "12948:34:46", + "nodeType": "YulFunctionCall", + "src": "12948:34:46" + }, + "nativeSrc": "12948:34:46", + "nodeType": "YulExpressionStatement", + "src": "12948:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "13030:6:46", + "nodeType": "YulIdentifier", + "src": "13030:6:46" + }, + { + "kind": "number", + "nativeSrc": "13038:2:46", + "nodeType": "YulLiteral", + "src": "13038:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13026:3:46", + "nodeType": "YulIdentifier", + "src": "13026:3:46" + }, + "nativeSrc": "13026:15:46", + "nodeType": "YulFunctionCall", + "src": "13026:15:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13047:9:46", + "nodeType": "YulIdentifier", + "src": "13047:9:46" + }, + { + "kind": "number", + "nativeSrc": "13058:2:46", + "nodeType": "YulLiteral", + "src": "13058:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13043:3:46", + "nodeType": "YulIdentifier", + "src": "13043:3:46" + }, + "nativeSrc": "13043:18:46", + "nodeType": "YulFunctionCall", + "src": "13043:18:46" + }, + { + "name": "length", + "nativeSrc": "13063:6:46", + "nodeType": "YulIdentifier", + "src": "13063:6:46" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "12991:34:46", + "nodeType": "YulIdentifier", + "src": "12991:34:46" + }, + "nativeSrc": "12991:79:46", + "nodeType": "YulFunctionCall", + "src": "12991:79:46" + }, + "nativeSrc": "12991:79:46", + "nodeType": "YulExpressionStatement", + "src": "12991:79:46" + }, + { + "nativeSrc": "13079:62:46", + "nodeType": "YulAssignment", + "src": "13079:62:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13095:9:46", + "nodeType": "YulIdentifier", + "src": "13095:9:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "13114:6:46", + "nodeType": "YulIdentifier", + "src": "13114:6:46" + }, + { + "kind": "number", + "nativeSrc": "13122:2:46", + "nodeType": "YulLiteral", + "src": "13122:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13110:3:46", + "nodeType": "YulIdentifier", + "src": "13110:3:46" + }, + "nativeSrc": "13110:15:46", + "nodeType": "YulFunctionCall", + "src": "13110:15:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13131:2:46", + "nodeType": "YulLiteral", + "src": "13131:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "13127:3:46", + "nodeType": "YulIdentifier", + "src": "13127:3:46" + }, + "nativeSrc": "13127:7:46", + "nodeType": "YulFunctionCall", + "src": "13127:7:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "13106:3:46", + "nodeType": "YulIdentifier", + "src": "13106:3:46" + }, + "nativeSrc": "13106:29:46", + "nodeType": "YulFunctionCall", + "src": "13106:29:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13091:3:46", + "nodeType": "YulIdentifier", + "src": "13091:3:46" + }, + "nativeSrc": "13091:45:46", + "nodeType": "YulFunctionCall", + "src": "13091:45:46" + }, + { + "kind": "number", + "nativeSrc": "13138:2:46", + "nodeType": "YulLiteral", + "src": "13138:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13087:3:46", + "nodeType": "YulIdentifier", + "src": "13087:3:46" + }, + "nativeSrc": "13087:54:46", + "nodeType": "YulFunctionCall", + "src": "13087:54:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13079:4:46", + "nodeType": "YulIdentifier", + "src": "13079:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "12751:396:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12841:9:46", + "nodeType": "YulTypedName", + "src": "12841:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "12852:6:46", + "nodeType": "YulTypedName", + "src": "12852:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "12863:4:46", + "nodeType": "YulTypedName", + "src": "12863:4:46", + "type": "" + } + ], + "src": "12751:396:46" + }, + { + "body": { + "nativeSrc": "13310:144:46", + "nodeType": "YulBlock", + "src": "13310:144:46", + "statements": [ + { + "nativeSrc": "13320:26:46", + "nodeType": "YulAssignment", + "src": "13320:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13332:9:46", + "nodeType": "YulIdentifier", + "src": "13332:9:46" + }, + { + "kind": "number", + "nativeSrc": "13343:2:46", + "nodeType": "YulLiteral", + "src": "13343:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13328:3:46", + "nodeType": "YulIdentifier", + "src": "13328:3:46" + }, + "nativeSrc": "13328:18:46", + "nodeType": "YulFunctionCall", + "src": "13328:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13320:4:46", + "nodeType": "YulIdentifier", + "src": "13320:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13362:9:46", + "nodeType": "YulIdentifier", + "src": "13362:9:46" + }, + { + "name": "value0", + "nativeSrc": "13373:6:46", + "nodeType": "YulIdentifier", + "src": "13373:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13355:6:46", + "nodeType": "YulIdentifier", + "src": "13355:6:46" + }, + "nativeSrc": "13355:25:46", + "nodeType": "YulFunctionCall", + "src": "13355:25:46" + }, + "nativeSrc": "13355:25:46", + "nodeType": "YulExpressionStatement", + "src": "13355:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13400:9:46", + "nodeType": "YulIdentifier", + "src": "13400:9:46" + }, + { + "kind": "number", + "nativeSrc": "13411:2:46", + "nodeType": "YulLiteral", + "src": "13411:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13396:3:46", + "nodeType": "YulIdentifier", + "src": "13396:3:46" + }, + "nativeSrc": "13396:18:46", + "nodeType": "YulFunctionCall", + "src": "13396:18:46" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "13420:6:46", + "nodeType": "YulIdentifier", + "src": "13420:6:46" + }, + { + "kind": "number", + "nativeSrc": "13428:18:46", + "nodeType": "YulLiteral", + "src": "13428:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "13416:3:46", + "nodeType": "YulIdentifier", + "src": "13416:3:46" + }, + "nativeSrc": "13416:31:46", + "nodeType": "YulFunctionCall", + "src": "13416:31:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13389:6:46", + "nodeType": "YulIdentifier", + "src": "13389:6:46" + }, + "nativeSrc": "13389:59:46", + "nodeType": "YulFunctionCall", + "src": "13389:59:46" + }, + "nativeSrc": "13389:59:46", + "nodeType": "YulExpressionStatement", + "src": "13389:59:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint64__to_t_uint256_t_uint64__fromStack_library_reversed", + "nativeSrc": "13152:302:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13271:9:46", + "nodeType": "YulTypedName", + "src": "13271:9:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13282:6:46", + "nodeType": "YulTypedName", + "src": "13282:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "13290:6:46", + "nodeType": "YulTypedName", + "src": "13290:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13301:4:46", + "nodeType": "YulTypedName", + "src": "13301:4:46", + "type": "" + } + ], + "src": "13152:302:46" + }, + { + "body": { + "nativeSrc": "13516:107:46", + "nodeType": "YulBlock", + "src": "13516:107:46", + "statements": [ + { + "nativeSrc": "13526:22:46", + "nodeType": "YulAssignment", + "src": "13526:22:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "13541:6:46", + "nodeType": "YulIdentifier", + "src": "13541:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "13535:5:46", + "nodeType": "YulIdentifier", + "src": "13535:5:46" + }, + "nativeSrc": "13535:13:46", + "nodeType": "YulFunctionCall", + "src": "13535:13:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "13526:5:46", + "nodeType": "YulIdentifier", + "src": "13526:5:46" + } + ] + }, + { + "body": { + "nativeSrc": "13601:16:46", + "nodeType": "YulBlock", + "src": "13601:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13610:1:46", + "nodeType": "YulLiteral", + "src": "13610:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13613:1:46", + "nodeType": "YulLiteral", + "src": "13613:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "13603:6:46", + "nodeType": "YulIdentifier", + "src": "13603:6:46" + }, + "nativeSrc": "13603:12:46", + "nodeType": "YulFunctionCall", + "src": "13603:12:46" + }, + "nativeSrc": "13603:12:46", + "nodeType": "YulExpressionStatement", + "src": "13603:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "13570:5:46", + "nodeType": "YulIdentifier", + "src": "13570:5:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "13591:5:46", + "nodeType": "YulIdentifier", + "src": "13591:5:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "13584:6:46", + "nodeType": "YulIdentifier", + "src": "13584:6:46" + }, + "nativeSrc": "13584:13:46", + "nodeType": "YulFunctionCall", + "src": "13584:13:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "13577:6:46", + "nodeType": "YulIdentifier", + "src": "13577:6:46" + }, + "nativeSrc": "13577:21:46", + "nodeType": "YulFunctionCall", + "src": "13577:21:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "13567:2:46", + "nodeType": "YulIdentifier", + "src": "13567:2:46" + }, + "nativeSrc": "13567:32:46", + "nodeType": "YulFunctionCall", + "src": "13567:32:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "13560:6:46", + "nodeType": "YulIdentifier", + "src": "13560:6:46" + }, + "nativeSrc": "13560:40:46", + "nodeType": "YulFunctionCall", + "src": "13560:40:46" + }, + "nativeSrc": "13557:60:46", + "nodeType": "YulIf", + "src": "13557:60:46" + } + ] + }, + "name": "abi_decode_bool_fromMemory", + "nativeSrc": "13459:164:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "13495:6:46", + "nodeType": "YulTypedName", + "src": "13495:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "13506:5:46", + "nodeType": "YulTypedName", + "src": "13506:5:46", + "type": "" + } + ], + "src": "13459:164:46" + }, + { + "body": { + "nativeSrc": "13703:697:46", + "nodeType": "YulBlock", + "src": "13703:697:46", + "statements": [ + { + "body": { + "nativeSrc": "13752:16:46", + "nodeType": "YulBlock", + "src": "13752:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13761:1:46", + "nodeType": "YulLiteral", + "src": "13761:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13764:1:46", + "nodeType": "YulLiteral", + "src": "13764:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "13754:6:46", + "nodeType": "YulIdentifier", + "src": "13754:6:46" + }, + "nativeSrc": "13754:12:46", + "nodeType": "YulFunctionCall", + "src": "13754:12:46" + }, + "nativeSrc": "13754:12:46", + "nodeType": "YulExpressionStatement", + "src": "13754:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "13731:6:46", + "nodeType": "YulIdentifier", + "src": "13731:6:46" + }, + { + "kind": "number", + "nativeSrc": "13739:4:46", + "nodeType": "YulLiteral", + "src": "13739:4:46", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13727:3:46", + "nodeType": "YulIdentifier", + "src": "13727:3:46" + }, + "nativeSrc": "13727:17:46", + "nodeType": "YulFunctionCall", + "src": "13727:17:46" + }, + { + "name": "end", + "nativeSrc": "13746:3:46", + "nodeType": "YulIdentifier", + "src": "13746:3:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "13723:3:46", + "nodeType": "YulIdentifier", + "src": "13723:3:46" + }, + "nativeSrc": "13723:27:46", + "nodeType": "YulFunctionCall", + "src": "13723:27:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "13716:6:46", + "nodeType": "YulIdentifier", + "src": "13716:6:46" + }, + "nativeSrc": "13716:35:46", + "nodeType": "YulFunctionCall", + "src": "13716:35:46" + }, + "nativeSrc": "13713:55:46", + "nodeType": "YulIf", + "src": "13713:55:46" + }, + { + "nativeSrc": "13777:27:46", + "nodeType": "YulVariableDeclaration", + "src": "13777:27:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "13797:6:46", + "nodeType": "YulIdentifier", + "src": "13797:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "13791:5:46", + "nodeType": "YulIdentifier", + "src": "13791:5:46" + }, + "nativeSrc": "13791:13:46", + "nodeType": "YulFunctionCall", + "src": "13791:13:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "13781:6:46", + "nodeType": "YulTypedName", + "src": "13781:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "13847:22:46", + "nodeType": "YulBlock", + "src": "13847:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "13849:16:46", + "nodeType": "YulIdentifier", + "src": "13849:16:46" + }, + "nativeSrc": "13849:18:46", + "nodeType": "YulFunctionCall", + "src": "13849:18:46" + }, + "nativeSrc": "13849:18:46", + "nodeType": "YulExpressionStatement", + "src": "13849:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "13819:6:46", + "nodeType": "YulIdentifier", + "src": "13819:6:46" + }, + { + "kind": "number", + "nativeSrc": "13827:18:46", + "nodeType": "YulLiteral", + "src": "13827:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "13816:2:46", + "nodeType": "YulIdentifier", + "src": "13816:2:46" + }, + "nativeSrc": "13816:30:46", + "nodeType": "YulFunctionCall", + "src": "13816:30:46" + }, + "nativeSrc": "13813:56:46", + "nodeType": "YulIf", + "src": "13813:56:46" + }, + { + "nativeSrc": "13878:24:46", + "nodeType": "YulVariableDeclaration", + "src": "13878:24:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13892:1:46", + "nodeType": "YulLiteral", + "src": "13892:1:46", + "type": "", + "value": "5" + }, + { + "name": "length", + "nativeSrc": "13895:6:46", + "nodeType": "YulIdentifier", + "src": "13895:6:46" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "13888:3:46", + "nodeType": "YulIdentifier", + "src": "13888:3:46" + }, + "nativeSrc": "13888:14:46", + "nodeType": "YulFunctionCall", + "src": "13888:14:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "13882:2:46", + "nodeType": "YulTypedName", + "src": "13882:2:46", + "type": "" + } + ] + }, + { + "nativeSrc": "13911:41:46", + "nodeType": "YulVariableDeclaration", + "src": "13911:41:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "13942:2:46", + "nodeType": "YulIdentifier", + "src": "13942:2:46" + }, + { + "kind": "number", + "nativeSrc": "13946:4:46", + "nodeType": "YulLiteral", + "src": "13946:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13938:3:46", + "nodeType": "YulIdentifier", + "src": "13938:3:46" + }, + "nativeSrc": "13938:13:46", + "nodeType": "YulFunctionCall", + "src": "13938:13:46" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "13922:15:46", + "nodeType": "YulIdentifier", + "src": "13922:15:46" + }, + "nativeSrc": "13922:30:46", + "nodeType": "YulFunctionCall", + "src": "13922:30:46" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "13915:3:46", + "nodeType": "YulTypedName", + "src": "13915:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "13961:18:46", + "nodeType": "YulVariableDeclaration", + "src": "13961:18:46", + "value": { + "name": "dst", + "nativeSrc": "13976:3:46", + "nodeType": "YulIdentifier", + "src": "13976:3:46" + }, + "variables": [ + { + "name": "array_1", + "nativeSrc": "13965:7:46", + "nodeType": "YulTypedName", + "src": "13965:7:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "13995:3:46", + "nodeType": "YulIdentifier", + "src": "13995:3:46" + }, + { + "name": "length", + "nativeSrc": "14000:6:46", + "nodeType": "YulIdentifier", + "src": "14000:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13988:6:46", + "nodeType": "YulIdentifier", + "src": "13988:6:46" + }, + "nativeSrc": "13988:19:46", + "nodeType": "YulFunctionCall", + "src": "13988:19:46" + }, + "nativeSrc": "13988:19:46", + "nodeType": "YulExpressionStatement", + "src": "13988:19:46" + }, + { + "nativeSrc": "14016:21:46", + "nodeType": "YulAssignment", + "src": "14016:21:46", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "14027:3:46", + "nodeType": "YulIdentifier", + "src": "14027:3:46" + }, + { + "kind": "number", + "nativeSrc": "14032:4:46", + "nodeType": "YulLiteral", + "src": "14032:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14023:3:46", + "nodeType": "YulIdentifier", + "src": "14023:3:46" + }, + "nativeSrc": "14023:14:46", + "nodeType": "YulFunctionCall", + "src": "14023:14:46" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "14016:3:46", + "nodeType": "YulIdentifier", + "src": "14016:3:46" + } + ] + }, + { + "nativeSrc": "14046:40:46", + "nodeType": "YulVariableDeclaration", + "src": "14046:40:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "14068:6:46", + "nodeType": "YulIdentifier", + "src": "14068:6:46" + }, + { + "name": "_1", + "nativeSrc": "14076:2:46", + "nodeType": "YulIdentifier", + "src": "14076:2:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14064:3:46", + "nodeType": "YulIdentifier", + "src": "14064:3:46" + }, + "nativeSrc": "14064:15:46", + "nodeType": "YulFunctionCall", + "src": "14064:15:46" + }, + { + "kind": "number", + "nativeSrc": "14081:4:46", + "nodeType": "YulLiteral", + "src": "14081:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14060:3:46", + "nodeType": "YulIdentifier", + "src": "14060:3:46" + }, + "nativeSrc": "14060:26:46", + "nodeType": "YulFunctionCall", + "src": "14060:26:46" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "14050:6:46", + "nodeType": "YulTypedName", + "src": "14050:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "14114:16:46", + "nodeType": "YulBlock", + "src": "14114:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14123:1:46", + "nodeType": "YulLiteral", + "src": "14123:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14126:1:46", + "nodeType": "YulLiteral", + "src": "14126:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14116:6:46", + "nodeType": "YulIdentifier", + "src": "14116:6:46" + }, + "nativeSrc": "14116:12:46", + "nodeType": "YulFunctionCall", + "src": "14116:12:46" + }, + "nativeSrc": "14116:12:46", + "nodeType": "YulExpressionStatement", + "src": "14116:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "14101:6:46", + "nodeType": "YulIdentifier", + "src": "14101:6:46" + }, + { + "name": "end", + "nativeSrc": "14109:3:46", + "nodeType": "YulIdentifier", + "src": "14109:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "14098:2:46", + "nodeType": "YulIdentifier", + "src": "14098:2:46" + }, + "nativeSrc": "14098:15:46", + "nodeType": "YulFunctionCall", + "src": "14098:15:46" + }, + "nativeSrc": "14095:35:46", + "nodeType": "YulIf", + "src": "14095:35:46" + }, + { + "nativeSrc": "14139:28:46", + "nodeType": "YulVariableDeclaration", + "src": "14139:28:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "14154:6:46", + "nodeType": "YulIdentifier", + "src": "14154:6:46" + }, + { + "kind": "number", + "nativeSrc": "14162:4:46", + "nodeType": "YulLiteral", + "src": "14162:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14150:3:46", + "nodeType": "YulIdentifier", + "src": "14150:3:46" + }, + "nativeSrc": "14150:17:46", + "nodeType": "YulFunctionCall", + "src": "14150:17:46" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "14143:3:46", + "nodeType": "YulTypedName", + "src": "14143:3:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "14234:135:46", + "nodeType": "YulBlock", + "src": "14234:135:46", + "statements": [ + { + "nativeSrc": "14248:14:46", + "nodeType": "YulVariableDeclaration", + "src": "14248:14:46", + "value": { + "kind": "number", + "nativeSrc": "14261:1:46", + "nodeType": "YulLiteral", + "src": "14261:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "14252:5:46", + "nodeType": "YulTypedName", + "src": "14252:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "14275:19:46", + "nodeType": "YulAssignment", + "src": "14275:19:46", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "14290:3:46", + "nodeType": "YulIdentifier", + "src": "14290:3:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14284:5:46", + "nodeType": "YulIdentifier", + "src": "14284:5:46" + }, + "nativeSrc": "14284:10:46", + "nodeType": "YulFunctionCall", + "src": "14284:10:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "14275:5:46", + "nodeType": "YulIdentifier", + "src": "14275:5:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "14314:3:46", + "nodeType": "YulIdentifier", + "src": "14314:3:46" + }, + { + "name": "value", + "nativeSrc": "14319:5:46", + "nodeType": "YulIdentifier", + "src": "14319:5:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14307:6:46", + "nodeType": "YulIdentifier", + "src": "14307:6:46" + }, + "nativeSrc": "14307:18:46", + "nodeType": "YulFunctionCall", + "src": "14307:18:46" + }, + "nativeSrc": "14307:18:46", + "nodeType": "YulExpressionStatement", + "src": "14307:18:46" + }, + { + "nativeSrc": "14338:21:46", + "nodeType": "YulAssignment", + "src": "14338:21:46", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "14349:3:46", + "nodeType": "YulIdentifier", + "src": "14349:3:46" + }, + { + "kind": "number", + "nativeSrc": "14354:4:46", + "nodeType": "YulLiteral", + "src": "14354:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14345:3:46", + "nodeType": "YulIdentifier", + "src": "14345:3:46" + }, + "nativeSrc": "14345:14:46", + "nodeType": "YulFunctionCall", + "src": "14345:14:46" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "14338:3:46", + "nodeType": "YulIdentifier", + "src": "14338:3:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "14187:3:46", + "nodeType": "YulIdentifier", + "src": "14187:3:46" + }, + { + "name": "srcEnd", + "nativeSrc": "14192:6:46", + "nodeType": "YulIdentifier", + "src": "14192:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "14184:2:46", + "nodeType": "YulIdentifier", + "src": "14184:2:46" + }, + "nativeSrc": "14184:15:46", + "nodeType": "YulFunctionCall", + "src": "14184:15:46" + }, + "nativeSrc": "14176:193:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "14200:25:46", + "nodeType": "YulBlock", + "src": "14200:25:46", + "statements": [ + { + "nativeSrc": "14202:21:46", + "nodeType": "YulAssignment", + "src": "14202:21:46", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "14213:3:46", + "nodeType": "YulIdentifier", + "src": "14213:3:46" + }, + { + "kind": "number", + "nativeSrc": "14218:4:46", + "nodeType": "YulLiteral", + "src": "14218:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14209:3:46", + "nodeType": "YulIdentifier", + "src": "14209:3:46" + }, + "nativeSrc": "14209:14:46", + "nodeType": "YulFunctionCall", + "src": "14209:14:46" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "14202:3:46", + "nodeType": "YulIdentifier", + "src": "14202:3:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "14180:3:46", + "nodeType": "YulBlock", + "src": "14180:3:46", + "statements": [] + }, + "src": "14176:193:46" + }, + { + "nativeSrc": "14378:16:46", + "nodeType": "YulAssignment", + "src": "14378:16:46", + "value": { + "name": "array_1", + "nativeSrc": "14387:7:46", + "nodeType": "YulIdentifier", + "src": "14387:7:46" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "14378:5:46", + "nodeType": "YulIdentifier", + "src": "14378:5:46" + } + ] + } + ] + }, + "name": "abi_decode_array_uint256_dyn_fromMemory", + "nativeSrc": "13628:772:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "13677:6:46", + "nodeType": "YulTypedName", + "src": "13677:6:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "13685:3:46", + "nodeType": "YulTypedName", + "src": "13685:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "13693:5:46", + "nodeType": "YulTypedName", + "src": "13693:5:46", + "type": "" + } + ], + "src": "13628:772:46" + }, + { + "body": { + "nativeSrc": "14478:1014:46", + "nodeType": "YulBlock", + "src": "14478:1014:46", + "statements": [ + { + "body": { + "nativeSrc": "14524:16:46", + "nodeType": "YulBlock", + "src": "14524:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14533:1:46", + "nodeType": "YulLiteral", + "src": "14533:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14536:1:46", + "nodeType": "YulLiteral", + "src": "14536:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14526:6:46", + "nodeType": "YulIdentifier", + "src": "14526:6:46" + }, + "nativeSrc": "14526:12:46", + "nodeType": "YulFunctionCall", + "src": "14526:12:46" + }, + "nativeSrc": "14526:12:46", + "nodeType": "YulExpressionStatement", + "src": "14526:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "end", + "nativeSrc": "14499:3:46", + "nodeType": "YulIdentifier", + "src": "14499:3:46" + }, + { + "name": "headStart", + "nativeSrc": "14504:9:46", + "nodeType": "YulIdentifier", + "src": "14504:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "14495:3:46", + "nodeType": "YulIdentifier", + "src": "14495:3:46" + }, + "nativeSrc": "14495:19:46", + "nodeType": "YulFunctionCall", + "src": "14495:19:46" + }, + { + "kind": "number", + "nativeSrc": "14516:6:46", + "nodeType": "YulLiteral", + "src": "14516:6:46", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "14491:3:46", + "nodeType": "YulIdentifier", + "src": "14491:3:46" + }, + "nativeSrc": "14491:32:46", + "nodeType": "YulFunctionCall", + "src": "14491:32:46" + }, + "nativeSrc": "14488:52:46", + "nodeType": "YulIf", + "src": "14488:52:46" + }, + { + "nativeSrc": "14549:31:46", + "nodeType": "YulAssignment", + "src": "14549:31:46", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_memory_2963", + "nativeSrc": "14558:20:46", + "nodeType": "YulIdentifier", + "src": "14558:20:46" + }, + "nativeSrc": "14558:22:46", + "nodeType": "YulFunctionCall", + "src": "14558:22:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "14549:5:46", + "nodeType": "YulIdentifier", + "src": "14549:5:46" + } + ] + }, + { + "nativeSrc": "14589:16:46", + "nodeType": "YulVariableDeclaration", + "src": "14589:16:46", + "value": { + "kind": "number", + "nativeSrc": "14604:1:46", + "nodeType": "YulLiteral", + "src": "14604:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "14593:7:46", + "nodeType": "YulTypedName", + "src": "14593:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "14614:27:46", + "nodeType": "YulAssignment", + "src": "14614:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14631:9:46", + "nodeType": "YulIdentifier", + "src": "14631:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14625:5:46", + "nodeType": "YulIdentifier", + "src": "14625:5:46" + }, + "nativeSrc": "14625:16:46", + "nodeType": "YulFunctionCall", + "src": "14625:16:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "14614:7:46", + "nodeType": "YulIdentifier", + "src": "14614:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "14657:5:46", + "nodeType": "YulIdentifier", + "src": "14657:5:46" + }, + { + "name": "value_1", + "nativeSrc": "14664:7:46", + "nodeType": "YulIdentifier", + "src": "14664:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14650:6:46", + "nodeType": "YulIdentifier", + "src": "14650:6:46" + }, + "nativeSrc": "14650:22:46", + "nodeType": "YulFunctionCall", + "src": "14650:22:46" + }, + "nativeSrc": "14650:22:46", + "nodeType": "YulExpressionStatement", + "src": "14650:22:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14692:5:46", + "nodeType": "YulIdentifier", + "src": "14692:5:46" + }, + { + "kind": "number", + "nativeSrc": "14699:2:46", + "nodeType": "YulLiteral", + "src": "14699:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14688:3:46", + "nodeType": "YulIdentifier", + "src": "14688:3:46" + }, + "nativeSrc": "14688:14:46", + "nodeType": "YulFunctionCall", + "src": "14688:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14735:9:46", + "nodeType": "YulIdentifier", + "src": "14735:9:46" + }, + { + "kind": "number", + "nativeSrc": "14746:2:46", + "nodeType": "YulLiteral", + "src": "14746:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14731:3:46", + "nodeType": "YulIdentifier", + "src": "14731:3:46" + }, + "nativeSrc": "14731:18:46", + "nodeType": "YulFunctionCall", + "src": "14731:18:46" + } + ], + "functionName": { + "name": "abi_decode_bool_fromMemory", + "nativeSrc": "14704:26:46", + "nodeType": "YulIdentifier", + "src": "14704:26:46" + }, + "nativeSrc": "14704:46:46", + "nodeType": "YulFunctionCall", + "src": "14704:46:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14681:6:46", + "nodeType": "YulIdentifier", + "src": "14681:6:46" + }, + "nativeSrc": "14681:70:46", + "nodeType": "YulFunctionCall", + "src": "14681:70:46" + }, + "nativeSrc": "14681:70:46", + "nodeType": "YulExpressionStatement", + "src": "14681:70:46" + }, + { + "nativeSrc": "14760:39:46", + "nodeType": "YulVariableDeclaration", + "src": "14760:39:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14784:9:46", + "nodeType": "YulIdentifier", + "src": "14784:9:46" + }, + { + "kind": "number", + "nativeSrc": "14795:2:46", + "nodeType": "YulLiteral", + "src": "14795:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14780:3:46", + "nodeType": "YulIdentifier", + "src": "14780:3:46" + }, + "nativeSrc": "14780:18:46", + "nodeType": "YulFunctionCall", + "src": "14780:18:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "14774:5:46", + "nodeType": "YulIdentifier", + "src": "14774:5:46" + }, + "nativeSrc": "14774:25:46", + "nodeType": "YulFunctionCall", + "src": "14774:25:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "14764:6:46", + "nodeType": "YulTypedName", + "src": "14764:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "14842:16:46", + "nodeType": "YulBlock", + "src": "14842:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14851:1:46", + "nodeType": "YulLiteral", + "src": "14851:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14854:1:46", + "nodeType": "YulLiteral", + "src": "14854:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14844:6:46", + "nodeType": "YulIdentifier", + "src": "14844:6:46" + }, + "nativeSrc": "14844:12:46", + "nodeType": "YulFunctionCall", + "src": "14844:12:46" + }, + "nativeSrc": "14844:12:46", + "nodeType": "YulExpressionStatement", + "src": "14844:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "14814:6:46", + "nodeType": "YulIdentifier", + "src": "14814:6:46" + }, + { + "kind": "number", + "nativeSrc": "14822:18:46", + "nodeType": "YulLiteral", + "src": "14822:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "14811:2:46", + "nodeType": "YulIdentifier", + "src": "14811:2:46" + }, + "nativeSrc": "14811:30:46", + "nodeType": "YulFunctionCall", + "src": "14811:30:46" + }, + "nativeSrc": "14808:50:46", + "nodeType": "YulIf", + "src": "14808:50:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "14878:5:46", + "nodeType": "YulIdentifier", + "src": "14878:5:46" + }, + { + "kind": "number", + "nativeSrc": "14885:2:46", + "nodeType": "YulLiteral", + "src": "14885:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14874:3:46", + "nodeType": "YulIdentifier", + "src": "14874:3:46" + }, + "nativeSrc": "14874:14:46", + "nodeType": "YulFunctionCall", + "src": "14874:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14934:9:46", + "nodeType": "YulIdentifier", + "src": "14934:9:46" + }, + { + "name": "offset", + "nativeSrc": "14945:6:46", + "nodeType": "YulIdentifier", + "src": "14945:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14930:3:46", + "nodeType": "YulIdentifier", + "src": "14930:3:46" + }, + "nativeSrc": "14930:22:46", + "nodeType": "YulFunctionCall", + "src": "14930:22:46" + }, + { + "name": "end", + "nativeSrc": "14954:3:46", + "nodeType": "YulIdentifier", + "src": "14954:3:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_dyn_fromMemory", + "nativeSrc": "14890:39:46", + "nodeType": "YulIdentifier", + "src": "14890:39:46" + }, + "nativeSrc": "14890:68:46", + "nodeType": "YulFunctionCall", + "src": "14890:68:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "14867:6:46", + "nodeType": "YulIdentifier", + "src": "14867:6:46" + }, + "nativeSrc": "14867:92:46", + "nodeType": "YulFunctionCall", + "src": "14867:92:46" + }, + "nativeSrc": "14867:92:46", + "nodeType": "YulExpressionStatement", + "src": "14867:92:46" + }, + { + "nativeSrc": "14968:16:46", + "nodeType": "YulVariableDeclaration", + "src": "14968:16:46", + "value": { + "kind": "number", + "nativeSrc": "14983:1:46", + "nodeType": "YulLiteral", + "src": "14983:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "14972:7:46", + "nodeType": "YulTypedName", + "src": "14972:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "14993:36:46", + "nodeType": "YulAssignment", + "src": "14993:36:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15014:9:46", + "nodeType": "YulIdentifier", + "src": "15014:9:46" + }, + { + "kind": "number", + "nativeSrc": "15025:2:46", + "nodeType": "YulLiteral", + "src": "15025:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15010:3:46", + "nodeType": "YulIdentifier", + "src": "15010:3:46" + }, + "nativeSrc": "15010:18:46", + "nodeType": "YulFunctionCall", + "src": "15010:18:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15004:5:46", + "nodeType": "YulIdentifier", + "src": "15004:5:46" + }, + "nativeSrc": "15004:25:46", + "nodeType": "YulFunctionCall", + "src": "15004:25:46" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "14993:7:46", + "nodeType": "YulIdentifier", + "src": "14993:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "15049:5:46", + "nodeType": "YulIdentifier", + "src": "15049:5:46" + }, + { + "kind": "number", + "nativeSrc": "15056:2:46", + "nodeType": "YulLiteral", + "src": "15056:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15045:3:46", + "nodeType": "YulIdentifier", + "src": "15045:3:46" + }, + "nativeSrc": "15045:14:46", + "nodeType": "YulFunctionCall", + "src": "15045:14:46" + }, + { + "name": "value_2", + "nativeSrc": "15061:7:46", + "nodeType": "YulIdentifier", + "src": "15061:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15038:6:46", + "nodeType": "YulIdentifier", + "src": "15038:6:46" + }, + "nativeSrc": "15038:31:46", + "nodeType": "YulFunctionCall", + "src": "15038:31:46" + }, + "nativeSrc": "15038:31:46", + "nodeType": "YulExpressionStatement", + "src": "15038:31:46" + }, + { + "nativeSrc": "15078:16:46", + "nodeType": "YulVariableDeclaration", + "src": "15078:16:46", + "value": { + "kind": "number", + "nativeSrc": "15093:1:46", + "nodeType": "YulLiteral", + "src": "15093:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "15082:7:46", + "nodeType": "YulTypedName", + "src": "15082:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "15103:37:46", + "nodeType": "YulAssignment", + "src": "15103:37:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15124:9:46", + "nodeType": "YulIdentifier", + "src": "15124:9:46" + }, + { + "kind": "number", + "nativeSrc": "15135:3:46", + "nodeType": "YulLiteral", + "src": "15135:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15120:3:46", + "nodeType": "YulIdentifier", + "src": "15120:3:46" + }, + "nativeSrc": "15120:19:46", + "nodeType": "YulFunctionCall", + "src": "15120:19:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15114:5:46", + "nodeType": "YulIdentifier", + "src": "15114:5:46" + }, + "nativeSrc": "15114:26:46", + "nodeType": "YulFunctionCall", + "src": "15114:26:46" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "15103:7:46", + "nodeType": "YulIdentifier", + "src": "15103:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "15160:5:46", + "nodeType": "YulIdentifier", + "src": "15160:5:46" + }, + { + "kind": "number", + "nativeSrc": "15167:3:46", + "nodeType": "YulLiteral", + "src": "15167:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15156:3:46", + "nodeType": "YulIdentifier", + "src": "15156:3:46" + }, + "nativeSrc": "15156:15:46", + "nodeType": "YulFunctionCall", + "src": "15156:15:46" + }, + { + "name": "value_3", + "nativeSrc": "15173:7:46", + "nodeType": "YulIdentifier", + "src": "15173:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15149:6:46", + "nodeType": "YulIdentifier", + "src": "15149:6:46" + }, + "nativeSrc": "15149:32:46", + "nodeType": "YulFunctionCall", + "src": "15149:32:46" + }, + "nativeSrc": "15149:32:46", + "nodeType": "YulExpressionStatement", + "src": "15149:32:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "15201:5:46", + "nodeType": "YulIdentifier", + "src": "15201:5:46" + }, + { + "kind": "number", + "nativeSrc": "15208:3:46", + "nodeType": "YulLiteral", + "src": "15208:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15197:3:46", + "nodeType": "YulIdentifier", + "src": "15197:3:46" + }, + "nativeSrc": "15197:15:46", + "nodeType": "YulFunctionCall", + "src": "15197:15:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15245:9:46", + "nodeType": "YulIdentifier", + "src": "15245:9:46" + }, + { + "kind": "number", + "nativeSrc": "15256:3:46", + "nodeType": "YulLiteral", + "src": "15256:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15241:3:46", + "nodeType": "YulIdentifier", + "src": "15241:3:46" + }, + "nativeSrc": "15241:19:46", + "nodeType": "YulFunctionCall", + "src": "15241:19:46" + } + ], + "functionName": { + "name": "abi_decode_bool_fromMemory", + "nativeSrc": "15214:26:46", + "nodeType": "YulIdentifier", + "src": "15214:26:46" + }, + "nativeSrc": "15214:47:46", + "nodeType": "YulFunctionCall", + "src": "15214:47:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15190:6:46", + "nodeType": "YulIdentifier", + "src": "15190:6:46" + }, + "nativeSrc": "15190:72:46", + "nodeType": "YulFunctionCall", + "src": "15190:72:46" + }, + "nativeSrc": "15190:72:46", + "nodeType": "YulExpressionStatement", + "src": "15190:72:46" + }, + { + "nativeSrc": "15271:16:46", + "nodeType": "YulVariableDeclaration", + "src": "15271:16:46", + "value": { + "kind": "number", + "nativeSrc": "15286:1:46", + "nodeType": "YulLiteral", + "src": "15286:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_4", + "nativeSrc": "15275:7:46", + "nodeType": "YulTypedName", + "src": "15275:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "15296:37:46", + "nodeType": "YulAssignment", + "src": "15296:37:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15317:9:46", + "nodeType": "YulIdentifier", + "src": "15317:9:46" + }, + { + "kind": "number", + "nativeSrc": "15328:3:46", + "nodeType": "YulLiteral", + "src": "15328:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15313:3:46", + "nodeType": "YulIdentifier", + "src": "15313:3:46" + }, + "nativeSrc": "15313:19:46", + "nodeType": "YulFunctionCall", + "src": "15313:19:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15307:5:46", + "nodeType": "YulIdentifier", + "src": "15307:5:46" + }, + "nativeSrc": "15307:26:46", + "nodeType": "YulFunctionCall", + "src": "15307:26:46" + }, + "variableNames": [ + { + "name": "value_4", + "nativeSrc": "15296:7:46", + "nodeType": "YulIdentifier", + "src": "15296:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "15353:5:46", + "nodeType": "YulIdentifier", + "src": "15353:5:46" + }, + { + "kind": "number", + "nativeSrc": "15360:3:46", + "nodeType": "YulLiteral", + "src": "15360:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15349:3:46", + "nodeType": "YulIdentifier", + "src": "15349:3:46" + }, + "nativeSrc": "15349:15:46", + "nodeType": "YulFunctionCall", + "src": "15349:15:46" + }, + { + "name": "value_4", + "nativeSrc": "15366:7:46", + "nodeType": "YulIdentifier", + "src": "15366:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15342:6:46", + "nodeType": "YulIdentifier", + "src": "15342:6:46" + }, + "nativeSrc": "15342:32:46", + "nodeType": "YulFunctionCall", + "src": "15342:32:46" + }, + "nativeSrc": "15342:32:46", + "nodeType": "YulExpressionStatement", + "src": "15342:32:46" + }, + { + "nativeSrc": "15383:16:46", + "nodeType": "YulVariableDeclaration", + "src": "15383:16:46", + "value": { + "kind": "number", + "nativeSrc": "15398:1:46", + "nodeType": "YulLiteral", + "src": "15398:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_5", + "nativeSrc": "15387:7:46", + "nodeType": "YulTypedName", + "src": "15387:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "15408:37:46", + "nodeType": "YulAssignment", + "src": "15408:37:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15429:9:46", + "nodeType": "YulIdentifier", + "src": "15429:9:46" + }, + { + "kind": "number", + "nativeSrc": "15440:3:46", + "nodeType": "YulLiteral", + "src": "15440:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15425:3:46", + "nodeType": "YulIdentifier", + "src": "15425:3:46" + }, + "nativeSrc": "15425:19:46", + "nodeType": "YulFunctionCall", + "src": "15425:19:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15419:5:46", + "nodeType": "YulIdentifier", + "src": "15419:5:46" + }, + "nativeSrc": "15419:26:46", + "nodeType": "YulFunctionCall", + "src": "15419:26:46" + }, + "variableNames": [ + { + "name": "value_5", + "nativeSrc": "15408:7:46", + "nodeType": "YulIdentifier", + "src": "15408:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "15465:5:46", + "nodeType": "YulIdentifier", + "src": "15465:5:46" + }, + { + "kind": "number", + "nativeSrc": "15472:3:46", + "nodeType": "YulLiteral", + "src": "15472:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15461:3:46", + "nodeType": "YulIdentifier", + "src": "15461:3:46" + }, + "nativeSrc": "15461:15:46", + "nodeType": "YulFunctionCall", + "src": "15461:15:46" + }, + { + "name": "value_5", + "nativeSrc": "15478:7:46", + "nodeType": "YulIdentifier", + "src": "15478:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15454:6:46", + "nodeType": "YulIdentifier", + "src": "15454:6:46" + }, + "nativeSrc": "15454:32:46", + "nodeType": "YulFunctionCall", + "src": "15454:32:46" + }, + "nativeSrc": "15454:32:46", + "nodeType": "YulExpressionStatement", + "src": "15454:32:46" + } + ] + }, + "name": "abi_decode_struct_Proof_fromMemory", + "nativeSrc": "14405:1087:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "14449:9:46", + "nodeType": "YulTypedName", + "src": "14449:9:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "14460:3:46", + "nodeType": "YulTypedName", + "src": "14460:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "14468:5:46", + "nodeType": "YulTypedName", + "src": "14468:5:46", + "type": "" + } + ], + "src": "14405:1087:46" + }, + { + "body": { + "nativeSrc": "15645:1010:46", + "nodeType": "YulBlock", + "src": "15645:1010:46", + "statements": [ + { + "nativeSrc": "15655:33:46", + "nodeType": "YulVariableDeclaration", + "src": "15655:33:46", + "value": { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "15669:7:46", + "nodeType": "YulIdentifier", + "src": "15669:7:46" + }, + { + "name": "headStart", + "nativeSrc": "15678:9:46", + "nodeType": "YulIdentifier", + "src": "15678:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15665:3:46", + "nodeType": "YulIdentifier", + "src": "15665:3:46" + }, + "nativeSrc": "15665:23:46", + "nodeType": "YulFunctionCall", + "src": "15665:23:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "15659:2:46", + "nodeType": "YulTypedName", + "src": "15659:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15713:16:46", + "nodeType": "YulBlock", + "src": "15713:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15722:1:46", + "nodeType": "YulLiteral", + "src": "15722:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15725:1:46", + "nodeType": "YulLiteral", + "src": "15725:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15715:6:46", + "nodeType": "YulIdentifier", + "src": "15715:6:46" + }, + "nativeSrc": "15715:12:46", + "nodeType": "YulFunctionCall", + "src": "15715:12:46" + }, + "nativeSrc": "15715:12:46", + "nodeType": "YulExpressionStatement", + "src": "15715:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "15704:2:46", + "nodeType": "YulIdentifier", + "src": "15704:2:46" + }, + { + "kind": "number", + "nativeSrc": "15708:3:46", + "nodeType": "YulLiteral", + "src": "15708:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "15700:3:46", + "nodeType": "YulIdentifier", + "src": "15700:3:46" + }, + "nativeSrc": "15700:12:46", + "nodeType": "YulFunctionCall", + "src": "15700:12:46" + }, + "nativeSrc": "15697:32:46", + "nodeType": "YulIf", + "src": "15697:32:46" + }, + { + "nativeSrc": "15738:30:46", + "nodeType": "YulVariableDeclaration", + "src": "15738:30:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15758:9:46", + "nodeType": "YulIdentifier", + "src": "15758:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "15752:5:46", + "nodeType": "YulIdentifier", + "src": "15752:5:46" + }, + "nativeSrc": "15752:16:46", + "nodeType": "YulFunctionCall", + "src": "15752:16:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "15742:6:46", + "nodeType": "YulTypedName", + "src": "15742:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15811:16:46", + "nodeType": "YulBlock", + "src": "15811:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15820:1:46", + "nodeType": "YulLiteral", + "src": "15820:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15823:1:46", + "nodeType": "YulLiteral", + "src": "15823:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15813:6:46", + "nodeType": "YulIdentifier", + "src": "15813:6:46" + }, + "nativeSrc": "15813:12:46", + "nodeType": "YulFunctionCall", + "src": "15813:12:46" + }, + "nativeSrc": "15813:12:46", + "nodeType": "YulExpressionStatement", + "src": "15813:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "15783:6:46", + "nodeType": "YulIdentifier", + "src": "15783:6:46" + }, + { + "kind": "number", + "nativeSrc": "15791:18:46", + "nodeType": "YulLiteral", + "src": "15791:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "15780:2:46", + "nodeType": "YulIdentifier", + "src": "15780:2:46" + }, + "nativeSrc": "15780:30:46", + "nodeType": "YulFunctionCall", + "src": "15780:30:46" + }, + "nativeSrc": "15777:50:46", + "nodeType": "YulIf", + "src": "15777:50:46" + }, + { + "nativeSrc": "15836:77:46", + "nodeType": "YulAssignment", + "src": "15836:77:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15885:9:46", + "nodeType": "YulIdentifier", + "src": "15885:9:46" + }, + { + "name": "offset", + "nativeSrc": "15896:6:46", + "nodeType": "YulIdentifier", + "src": "15896:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15881:3:46", + "nodeType": "YulIdentifier", + "src": "15881:3:46" + }, + "nativeSrc": "15881:22:46", + "nodeType": "YulFunctionCall", + "src": "15881:22:46" + }, + { + "name": "dataEnd", + "nativeSrc": "15905:7:46", + "nodeType": "YulIdentifier", + "src": "15905:7:46" + } + ], + "functionName": { + "name": "abi_decode_struct_Proof_fromMemory", + "nativeSrc": "15846:34:46", + "nodeType": "YulIdentifier", + "src": "15846:34:46" + }, + "nativeSrc": "15846:67:46", + "nodeType": "YulFunctionCall", + "src": "15846:67:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "15836:6:46", + "nodeType": "YulIdentifier", + "src": "15836:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "15953:16:46", + "nodeType": "YulBlock", + "src": "15953:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15962:1:46", + "nodeType": "YulLiteral", + "src": "15962:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15965:1:46", + "nodeType": "YulLiteral", + "src": "15965:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15955:6:46", + "nodeType": "YulIdentifier", + "src": "15955:6:46" + }, + "nativeSrc": "15955:12:46", + "nodeType": "YulFunctionCall", + "src": "15955:12:46" + }, + "nativeSrc": "15955:12:46", + "nodeType": "YulExpressionStatement", + "src": "15955:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "15933:2:46", + "nodeType": "YulIdentifier", + "src": "15933:2:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15941:2:46", + "nodeType": "YulLiteral", + "src": "15941:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "15937:3:46", + "nodeType": "YulIdentifier", + "src": "15937:3:46" + }, + "nativeSrc": "15937:7:46", + "nodeType": "YulFunctionCall", + "src": "15937:7:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15929:3:46", + "nodeType": "YulIdentifier", + "src": "15929:3:46" + }, + "nativeSrc": "15929:16:46", + "nodeType": "YulFunctionCall", + "src": "15929:16:46" + }, + { + "kind": "number", + "nativeSrc": "15947:4:46", + "nodeType": "YulLiteral", + "src": "15947:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "15925:3:46", + "nodeType": "YulIdentifier", + "src": "15925:3:46" + }, + "nativeSrc": "15925:27:46", + "nodeType": "YulFunctionCall", + "src": "15925:27:46" + }, + "nativeSrc": "15922:47:46", + "nodeType": "YulIf", + "src": "15922:47:46" + }, + { + "nativeSrc": "15978:15:46", + "nodeType": "YulVariableDeclaration", + "src": "15978:15:46", + "value": { + "kind": "number", + "nativeSrc": "15992:1:46", + "nodeType": "YulLiteral", + "src": "15992:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "15982:6:46", + "nodeType": "YulTypedName", + "src": "15982:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "16002:19:46", + "nodeType": "YulAssignment", + "src": "16002:19:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16018:2:46", + "nodeType": "YulLiteral", + "src": "16018:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "16012:5:46", + "nodeType": "YulIdentifier", + "src": "16012:5:46" + }, + "nativeSrc": "16012:9:46", + "nodeType": "YulFunctionCall", + "src": "16012:9:46" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "16002:6:46", + "nodeType": "YulIdentifier", + "src": "16002:6:46" + } + ] + }, + { + "nativeSrc": "16030:35:46", + "nodeType": "YulVariableDeclaration", + "src": "16030:35:46", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "16052:6:46", + "nodeType": "YulIdentifier", + "src": "16052:6:46" + }, + { + "kind": "number", + "nativeSrc": "16060:4:46", + "nodeType": "YulLiteral", + "src": "16060:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16048:3:46", + "nodeType": "YulIdentifier", + "src": "16048:3:46" + }, + "nativeSrc": "16048:17:46", + "nodeType": "YulFunctionCall", + "src": "16048:17:46" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "16034:10:46", + "nodeType": "YulTypedName", + "src": "16034:10:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "16140:22:46", + "nodeType": "YulBlock", + "src": "16140:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "16142:16:46", + "nodeType": "YulIdentifier", + "src": "16142:16:46" + }, + "nativeSrc": "16142:18:46", + "nodeType": "YulFunctionCall", + "src": "16142:18:46" + }, + "nativeSrc": "16142:18:46", + "nodeType": "YulExpressionStatement", + "src": "16142:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "16083:10:46", + "nodeType": "YulIdentifier", + "src": "16083:10:46" + }, + { + "kind": "number", + "nativeSrc": "16095:18:46", + "nodeType": "YulLiteral", + "src": "16095:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "16080:2:46", + "nodeType": "YulIdentifier", + "src": "16080:2:46" + }, + "nativeSrc": "16080:34:46", + "nodeType": "YulFunctionCall", + "src": "16080:34:46" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "16119:10:46", + "nodeType": "YulIdentifier", + "src": "16119:10:46" + }, + { + "name": "memPtr", + "nativeSrc": "16131:6:46", + "nodeType": "YulIdentifier", + "src": "16131:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "16116:2:46", + "nodeType": "YulIdentifier", + "src": "16116:2:46" + }, + "nativeSrc": "16116:22:46", + "nodeType": "YulFunctionCall", + "src": "16116:22:46" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "16077:2:46", + "nodeType": "YulIdentifier", + "src": "16077:2:46" + }, + "nativeSrc": "16077:62:46", + "nodeType": "YulFunctionCall", + "src": "16077:62:46" + }, + "nativeSrc": "16074:88:46", + "nodeType": "YulIf", + "src": "16074:88:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16178:2:46", + "nodeType": "YulLiteral", + "src": "16178:2:46", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "16182:10:46", + "nodeType": "YulIdentifier", + "src": "16182:10:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16171:6:46", + "nodeType": "YulIdentifier", + "src": "16171:6:46" + }, + "nativeSrc": "16171:22:46", + "nodeType": "YulFunctionCall", + "src": "16171:22:46" + }, + "nativeSrc": "16171:22:46", + "nodeType": "YulExpressionStatement", + "src": "16171:22:46" + }, + { + "nativeSrc": "16202:14:46", + "nodeType": "YulVariableDeclaration", + "src": "16202:14:46", + "value": { + "kind": "number", + "nativeSrc": "16215:1:46", + "nodeType": "YulLiteral", + "src": "16215:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "16206:5:46", + "nodeType": "YulTypedName", + "src": "16206:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "16225:34:46", + "nodeType": "YulAssignment", + "src": "16225:34:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16244:9:46", + "nodeType": "YulIdentifier", + "src": "16244:9:46" + }, + { + "kind": "number", + "nativeSrc": "16255:2:46", + "nodeType": "YulLiteral", + "src": "16255:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16240:3:46", + "nodeType": "YulIdentifier", + "src": "16240:3:46" + }, + "nativeSrc": "16240:18:46", + "nodeType": "YulFunctionCall", + "src": "16240:18:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "16234:5:46", + "nodeType": "YulIdentifier", + "src": "16234:5:46" + }, + "nativeSrc": "16234:25:46", + "nodeType": "YulFunctionCall", + "src": "16234:25:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "16225:5:46", + "nodeType": "YulIdentifier", + "src": "16225:5:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "16275:6:46", + "nodeType": "YulIdentifier", + "src": "16275:6:46" + }, + { + "name": "value", + "nativeSrc": "16283:5:46", + "nodeType": "YulIdentifier", + "src": "16283:5:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16268:6:46", + "nodeType": "YulIdentifier", + "src": "16268:6:46" + }, + "nativeSrc": "16268:21:46", + "nodeType": "YulFunctionCall", + "src": "16268:21:46" + }, + "nativeSrc": "16268:21:46", + "nodeType": "YulExpressionStatement", + "src": "16268:21:46" + }, + { + "nativeSrc": "16298:16:46", + "nodeType": "YulVariableDeclaration", + "src": "16298:16:46", + "value": { + "kind": "number", + "nativeSrc": "16313:1:46", + "nodeType": "YulLiteral", + "src": "16313:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "16302:7:46", + "nodeType": "YulTypedName", + "src": "16302:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "16323:36:46", + "nodeType": "YulAssignment", + "src": "16323:36:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16344:9:46", + "nodeType": "YulIdentifier", + "src": "16344:9:46" + }, + { + "kind": "number", + "nativeSrc": "16355:2:46", + "nodeType": "YulLiteral", + "src": "16355:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16340:3:46", + "nodeType": "YulIdentifier", + "src": "16340:3:46" + }, + "nativeSrc": "16340:18:46", + "nodeType": "YulFunctionCall", + "src": "16340:18:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "16334:5:46", + "nodeType": "YulIdentifier", + "src": "16334:5:46" + }, + "nativeSrc": "16334:25:46", + "nodeType": "YulFunctionCall", + "src": "16334:25:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "16323:7:46", + "nodeType": "YulIdentifier", + "src": "16323:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "16379:6:46", + "nodeType": "YulIdentifier", + "src": "16379:6:46" + }, + { + "kind": "number", + "nativeSrc": "16387:2:46", + "nodeType": "YulLiteral", + "src": "16387:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16375:3:46", + "nodeType": "YulIdentifier", + "src": "16375:3:46" + }, + "nativeSrc": "16375:15:46", + "nodeType": "YulFunctionCall", + "src": "16375:15:46" + }, + { + "name": "value_1", + "nativeSrc": "16392:7:46", + "nodeType": "YulIdentifier", + "src": "16392:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16368:6:46", + "nodeType": "YulIdentifier", + "src": "16368:6:46" + }, + "nativeSrc": "16368:32:46", + "nodeType": "YulFunctionCall", + "src": "16368:32:46" + }, + "nativeSrc": "16368:32:46", + "nodeType": "YulExpressionStatement", + "src": "16368:32:46" + }, + { + "nativeSrc": "16409:16:46", + "nodeType": "YulVariableDeclaration", + "src": "16409:16:46", + "value": { + "kind": "number", + "nativeSrc": "16424:1:46", + "nodeType": "YulLiteral", + "src": "16424:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "16413:7:46", + "nodeType": "YulTypedName", + "src": "16413:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "16434:36:46", + "nodeType": "YulAssignment", + "src": "16434:36:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16455:9:46", + "nodeType": "YulIdentifier", + "src": "16455:9:46" + }, + { + "kind": "number", + "nativeSrc": "16466:2:46", + "nodeType": "YulLiteral", + "src": "16466:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16451:3:46", + "nodeType": "YulIdentifier", + "src": "16451:3:46" + }, + "nativeSrc": "16451:18:46", + "nodeType": "YulFunctionCall", + "src": "16451:18:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "16445:5:46", + "nodeType": "YulIdentifier", + "src": "16445:5:46" + }, + "nativeSrc": "16445:25:46", + "nodeType": "YulFunctionCall", + "src": "16445:25:46" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "16434:7:46", + "nodeType": "YulIdentifier", + "src": "16434:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "16490:6:46", + "nodeType": "YulIdentifier", + "src": "16490:6:46" + }, + { + "kind": "number", + "nativeSrc": "16498:2:46", + "nodeType": "YulLiteral", + "src": "16498:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16486:3:46", + "nodeType": "YulIdentifier", + "src": "16486:3:46" + }, + "nativeSrc": "16486:15:46", + "nodeType": "YulFunctionCall", + "src": "16486:15:46" + }, + { + "name": "value_2", + "nativeSrc": "16503:7:46", + "nodeType": "YulIdentifier", + "src": "16503:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16479:6:46", + "nodeType": "YulIdentifier", + "src": "16479:6:46" + }, + "nativeSrc": "16479:32:46", + "nodeType": "YulFunctionCall", + "src": "16479:32:46" + }, + "nativeSrc": "16479:32:46", + "nodeType": "YulExpressionStatement", + "src": "16479:32:46" + }, + { + "nativeSrc": "16520:16:46", + "nodeType": "YulVariableDeclaration", + "src": "16520:16:46", + "value": { + "kind": "number", + "nativeSrc": "16535:1:46", + "nodeType": "YulLiteral", + "src": "16535:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "16524:7:46", + "nodeType": "YulTypedName", + "src": "16524:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "16545:38:46", + "nodeType": "YulAssignment", + "src": "16545:38:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16566:9:46", + "nodeType": "YulIdentifier", + "src": "16566:9:46" + }, + { + "kind": "number", + "nativeSrc": "16577:4:46", + "nodeType": "YulLiteral", + "src": "16577:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16562:3:46", + "nodeType": "YulIdentifier", + "src": "16562:3:46" + }, + "nativeSrc": "16562:20:46", + "nodeType": "YulFunctionCall", + "src": "16562:20:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "16556:5:46", + "nodeType": "YulIdentifier", + "src": "16556:5:46" + }, + "nativeSrc": "16556:27:46", + "nodeType": "YulFunctionCall", + "src": "16556:27:46" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "16545:7:46", + "nodeType": "YulIdentifier", + "src": "16545:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "16603:6:46", + "nodeType": "YulIdentifier", + "src": "16603:6:46" + }, + { + "kind": "number", + "nativeSrc": "16611:2:46", + "nodeType": "YulLiteral", + "src": "16611:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16599:3:46", + "nodeType": "YulIdentifier", + "src": "16599:3:46" + }, + "nativeSrc": "16599:15:46", + "nodeType": "YulFunctionCall", + "src": "16599:15:46" + }, + { + "name": "value_3", + "nativeSrc": "16616:7:46", + "nodeType": "YulIdentifier", + "src": "16616:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16592:6:46", + "nodeType": "YulIdentifier", + "src": "16592:6:46" + }, + "nativeSrc": "16592:32:46", + "nodeType": "YulFunctionCall", + "src": "16592:32:46" + }, + "nativeSrc": "16592:32:46", + "nodeType": "YulExpressionStatement", + "src": "16592:32:46" + }, + { + "nativeSrc": "16633:16:46", + "nodeType": "YulAssignment", + "src": "16633:16:46", + "value": { + "name": "memPtr", + "nativeSrc": "16643:6:46", + "nodeType": "YulIdentifier", + "src": "16643:6:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "16633:6:46", + "nodeType": "YulIdentifier", + "src": "16633:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Proof_$2979_memory_ptrt_struct$_StateInfo_$1400_memory_ptr_fromMemory", + "nativeSrc": "15497:1158:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15603:9:46", + "nodeType": "YulTypedName", + "src": "15603:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "15614:7:46", + "nodeType": "YulTypedName", + "src": "15614:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "15626:6:46", + "nodeType": "YulTypedName", + "src": "15626:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "15634:6:46", + "nodeType": "YulTypedName", + "src": "15634:6:46", + "type": "" + } + ], + "src": "15497:1158:46" + }, + { + "body": { + "nativeSrc": "16792:76:46", + "nodeType": "YulBlock", + "src": "16792:76:46", + "statements": [ + { + "nativeSrc": "16802:26:46", + "nodeType": "YulAssignment", + "src": "16802:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16814:9:46", + "nodeType": "YulIdentifier", + "src": "16814:9:46" + }, + { + "kind": "number", + "nativeSrc": "16825:2:46", + "nodeType": "YulLiteral", + "src": "16825:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16810:3:46", + "nodeType": "YulIdentifier", + "src": "16810:3:46" + }, + "nativeSrc": "16810:18:46", + "nodeType": "YulFunctionCall", + "src": "16810:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "16802:4:46", + "nodeType": "YulIdentifier", + "src": "16802:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16844:9:46", + "nodeType": "YulIdentifier", + "src": "16844:9:46" + }, + { + "name": "value0", + "nativeSrc": "16855:6:46", + "nodeType": "YulIdentifier", + "src": "16855:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16837:6:46", + "nodeType": "YulIdentifier", + "src": "16837:6:46" + }, + "nativeSrc": "16837:25:46", + "nodeType": "YulFunctionCall", + "src": "16837:25:46" + }, + "nativeSrc": "16837:25:46", + "nodeType": "YulExpressionStatement", + "src": "16837:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr__to_t_uint256__fromStack_library_reversed", + "nativeSrc": "16660:208:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "16761:9:46", + "nodeType": "YulTypedName", + "src": "16761:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "16772:6:46", + "nodeType": "YulTypedName", + "src": "16772:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "16783:4:46", + "nodeType": "YulTypedName", + "src": "16783:4:46", + "type": "" + } + ], + "src": "16660:208:46" + }, + { + "body": { + "nativeSrc": "16954:149:46", + "nodeType": "YulBlock", + "src": "16954:149:46", + "statements": [ + { + "body": { + "nativeSrc": "17000:16:46", + "nodeType": "YulBlock", + "src": "17000:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17009:1:46", + "nodeType": "YulLiteral", + "src": "17009:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17012:1:46", + "nodeType": "YulLiteral", + "src": "17012:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17002:6:46", + "nodeType": "YulIdentifier", + "src": "17002:6:46" + }, + "nativeSrc": "17002:12:46", + "nodeType": "YulFunctionCall", + "src": "17002:12:46" + }, + "nativeSrc": "17002:12:46", + "nodeType": "YulExpressionStatement", + "src": "17002:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "16975:7:46", + "nodeType": "YulIdentifier", + "src": "16975:7:46" + }, + { + "name": "headStart", + "nativeSrc": "16984:9:46", + "nodeType": "YulIdentifier", + "src": "16984:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "16971:3:46", + "nodeType": "YulIdentifier", + "src": "16971:3:46" + }, + "nativeSrc": "16971:23:46", + "nodeType": "YulFunctionCall", + "src": "16971:23:46" + }, + { + "kind": "number", + "nativeSrc": "16996:2:46", + "nodeType": "YulLiteral", + "src": "16996:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "16967:3:46", + "nodeType": "YulIdentifier", + "src": "16967:3:46" + }, + "nativeSrc": "16967:32:46", + "nodeType": "YulFunctionCall", + "src": "16967:32:46" + }, + "nativeSrc": "16964:52:46", + "nodeType": "YulIf", + "src": "16964:52:46" + }, + { + "nativeSrc": "17025:14:46", + "nodeType": "YulVariableDeclaration", + "src": "17025:14:46", + "value": { + "kind": "number", + "nativeSrc": "17038:1:46", + "nodeType": "YulLiteral", + "src": "17038:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "17029:5:46", + "nodeType": "YulTypedName", + "src": "17029:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "17048:25:46", + "nodeType": "YulAssignment", + "src": "17048:25:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17063:9:46", + "nodeType": "YulIdentifier", + "src": "17063:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17057:5:46", + "nodeType": "YulIdentifier", + "src": "17057:5:46" + }, + "nativeSrc": "17057:16:46", + "nodeType": "YulFunctionCall", + "src": "17057:16:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "17048:5:46", + "nodeType": "YulIdentifier", + "src": "17048:5:46" + } + ] + }, + { + "nativeSrc": "17082:15:46", + "nodeType": "YulAssignment", + "src": "17082:15:46", + "value": { + "name": "value", + "nativeSrc": "17092:5:46", + "nodeType": "YulIdentifier", + "src": "17092:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "17082:6:46", + "nodeType": "YulIdentifier", + "src": "17082:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nativeSrc": "16873:230:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "16920:9:46", + "nodeType": "YulTypedName", + "src": "16920:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "16931:7:46", + "nodeType": "YulTypedName", + "src": "16931:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "16943:6:46", + "nodeType": "YulTypedName", + "src": "16943:6:46", + "type": "" + } + ], + "src": "16873:230:46" + }, + { + "body": { + "nativeSrc": "17235:144:46", + "nodeType": "YulBlock", + "src": "17235:144:46", + "statements": [ + { + "nativeSrc": "17245:26:46", + "nodeType": "YulAssignment", + "src": "17245:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17257:9:46", + "nodeType": "YulIdentifier", + "src": "17257:9:46" + }, + { + "kind": "number", + "nativeSrc": "17268:2:46", + "nodeType": "YulLiteral", + "src": "17268:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17253:3:46", + "nodeType": "YulIdentifier", + "src": "17253:3:46" + }, + "nativeSrc": "17253:18:46", + "nodeType": "YulFunctionCall", + "src": "17253:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "17245:4:46", + "nodeType": "YulIdentifier", + "src": "17245:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17287:9:46", + "nodeType": "YulIdentifier", + "src": "17287:9:46" + }, + { + "name": "value0", + "nativeSrc": "17298:6:46", + "nodeType": "YulIdentifier", + "src": "17298:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17280:6:46", + "nodeType": "YulIdentifier", + "src": "17280:6:46" + }, + "nativeSrc": "17280:25:46", + "nodeType": "YulFunctionCall", + "src": "17280:25:46" + }, + "nativeSrc": "17280:25:46", + "nodeType": "YulExpressionStatement", + "src": "17280:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17325:9:46", + "nodeType": "YulIdentifier", + "src": "17325:9:46" + }, + { + "kind": "number", + "nativeSrc": "17336:2:46", + "nodeType": "YulLiteral", + "src": "17336:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17321:3:46", + "nodeType": "YulIdentifier", + "src": "17321:3:46" + }, + "nativeSrc": "17321:18:46", + "nodeType": "YulFunctionCall", + "src": "17321:18:46" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "17345:6:46", + "nodeType": "YulIdentifier", + "src": "17345:6:46" + }, + { + "kind": "number", + "nativeSrc": "17353:18:46", + "nodeType": "YulLiteral", + "src": "17353:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "17341:3:46", + "nodeType": "YulIdentifier", + "src": "17341:3:46" + }, + "nativeSrc": "17341:31:46", + "nodeType": "YulFunctionCall", + "src": "17341:31:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17314:6:46", + "nodeType": "YulIdentifier", + "src": "17314:6:46" + }, + "nativeSrc": "17314:59:46", + "nodeType": "YulFunctionCall", + "src": "17314:59:46" + }, + "nativeSrc": "17314:59:46", + "nodeType": "YulExpressionStatement", + "src": "17314:59:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint64__to_t_uint256_t_uint64__fromStack_reversed", + "nativeSrc": "17108:271:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "17196:9:46", + "nodeType": "YulTypedName", + "src": "17196:9:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "17207:6:46", + "nodeType": "YulTypedName", + "src": "17207:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "17215:6:46", + "nodeType": "YulTypedName", + "src": "17215:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "17226:4:46", + "nodeType": "YulTypedName", + "src": "17226:4:46", + "type": "" + } + ], + "src": "17108:271:46" + }, + { + "body": { + "nativeSrc": "17488:252:46", + "nodeType": "YulBlock", + "src": "17488:252:46", + "statements": [ + { + "body": { + "nativeSrc": "17534:16:46", + "nodeType": "YulBlock", + "src": "17534:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17543:1:46", + "nodeType": "YulLiteral", + "src": "17543:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17546:1:46", + "nodeType": "YulLiteral", + "src": "17546:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17536:6:46", + "nodeType": "YulIdentifier", + "src": "17536:6:46" + }, + "nativeSrc": "17536:12:46", + "nodeType": "YulFunctionCall", + "src": "17536:12:46" + }, + "nativeSrc": "17536:12:46", + "nodeType": "YulExpressionStatement", + "src": "17536:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "17509:7:46", + "nodeType": "YulIdentifier", + "src": "17509:7:46" + }, + { + "name": "headStart", + "nativeSrc": "17518:9:46", + "nodeType": "YulIdentifier", + "src": "17518:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "17505:3:46", + "nodeType": "YulIdentifier", + "src": "17505:3:46" + }, + "nativeSrc": "17505:23:46", + "nodeType": "YulFunctionCall", + "src": "17505:23:46" + }, + { + "kind": "number", + "nativeSrc": "17530:2:46", + "nodeType": "YulLiteral", + "src": "17530:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "17501:3:46", + "nodeType": "YulIdentifier", + "src": "17501:3:46" + }, + "nativeSrc": "17501:32:46", + "nodeType": "YulFunctionCall", + "src": "17501:32:46" + }, + "nativeSrc": "17498:52:46", + "nodeType": "YulIf", + "src": "17498:52:46" + }, + { + "nativeSrc": "17559:30:46", + "nodeType": "YulVariableDeclaration", + "src": "17559:30:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17579:9:46", + "nodeType": "YulIdentifier", + "src": "17579:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17573:5:46", + "nodeType": "YulIdentifier", + "src": "17573:5:46" + }, + "nativeSrc": "17573:16:46", + "nodeType": "YulFunctionCall", + "src": "17573:16:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "17563:6:46", + "nodeType": "YulTypedName", + "src": "17563:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "17632:16:46", + "nodeType": "YulBlock", + "src": "17632:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17641:1:46", + "nodeType": "YulLiteral", + "src": "17641:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17644:1:46", + "nodeType": "YulLiteral", + "src": "17644:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17634:6:46", + "nodeType": "YulIdentifier", + "src": "17634:6:46" + }, + "nativeSrc": "17634:12:46", + "nodeType": "YulFunctionCall", + "src": "17634:12:46" + }, + "nativeSrc": "17634:12:46", + "nodeType": "YulExpressionStatement", + "src": "17634:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "17604:6:46", + "nodeType": "YulIdentifier", + "src": "17604:6:46" + }, + { + "kind": "number", + "nativeSrc": "17612:18:46", + "nodeType": "YulLiteral", + "src": "17612:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "17601:2:46", + "nodeType": "YulIdentifier", + "src": "17601:2:46" + }, + "nativeSrc": "17601:30:46", + "nodeType": "YulFunctionCall", + "src": "17601:30:46" + }, + "nativeSrc": "17598:50:46", + "nodeType": "YulIf", + "src": "17598:50:46" + }, + { + "nativeSrc": "17657:77:46", + "nodeType": "YulAssignment", + "src": "17657:77:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17706:9:46", + "nodeType": "YulIdentifier", + "src": "17706:9:46" + }, + { + "name": "offset", + "nativeSrc": "17717:6:46", + "nodeType": "YulIdentifier", + "src": "17717:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17702:3:46", + "nodeType": "YulIdentifier", + "src": "17702:3:46" + }, + "nativeSrc": "17702:22:46", + "nodeType": "YulFunctionCall", + "src": "17702:22:46" + }, + { + "name": "dataEnd", + "nativeSrc": "17726:7:46", + "nodeType": "YulIdentifier", + "src": "17726:7:46" + } + ], + "functionName": { + "name": "abi_decode_struct_Proof_fromMemory", + "nativeSrc": "17667:34:46", + "nodeType": "YulIdentifier", + "src": "17667:34:46" + }, + "nativeSrc": "17667:67:46", + "nodeType": "YulFunctionCall", + "src": "17667:67:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "17657:6:46", + "nodeType": "YulIdentifier", + "src": "17657:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Proof_$2979_memory_ptr_fromMemory", + "nativeSrc": "17384:356:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "17454:9:46", + "nodeType": "YulTypedName", + "src": "17454:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "17465:7:46", + "nodeType": "YulTypedName", + "src": "17465:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "17477:6:46", + "nodeType": "YulTypedName", + "src": "17477:6:46", + "type": "" + } + ], + "src": "17384:356:46" + }, + { + "body": { + "nativeSrc": "17933:162:46", + "nodeType": "YulBlock", + "src": "17933:162:46", + "statements": [ + { + "nativeSrc": "17943:26:46", + "nodeType": "YulAssignment", + "src": "17943:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17955:9:46", + "nodeType": "YulIdentifier", + "src": "17955:9:46" + }, + { + "kind": "number", + "nativeSrc": "17966:2:46", + "nodeType": "YulLiteral", + "src": "17966:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17951:3:46", + "nodeType": "YulIdentifier", + "src": "17951:3:46" + }, + "nativeSrc": "17951:18:46", + "nodeType": "YulFunctionCall", + "src": "17951:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "17943:4:46", + "nodeType": "YulIdentifier", + "src": "17943:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17985:9:46", + "nodeType": "YulIdentifier", + "src": "17985:9:46" + }, + { + "name": "value0", + "nativeSrc": "17996:6:46", + "nodeType": "YulIdentifier", + "src": "17996:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17978:6:46", + "nodeType": "YulIdentifier", + "src": "17978:6:46" + }, + "nativeSrc": "17978:25:46", + "nodeType": "YulFunctionCall", + "src": "17978:25:46" + }, + "nativeSrc": "17978:25:46", + "nodeType": "YulExpressionStatement", + "src": "17978:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18023:9:46", + "nodeType": "YulIdentifier", + "src": "18023:9:46" + }, + { + "kind": "number", + "nativeSrc": "18034:2:46", + "nodeType": "YulLiteral", + "src": "18034:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18019:3:46", + "nodeType": "YulIdentifier", + "src": "18019:3:46" + }, + "nativeSrc": "18019:18:46", + "nodeType": "YulFunctionCall", + "src": "18019:18:46" + }, + { + "name": "value1", + "nativeSrc": "18039:6:46", + "nodeType": "YulIdentifier", + "src": "18039:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18012:6:46", + "nodeType": "YulIdentifier", + "src": "18012:6:46" + }, + "nativeSrc": "18012:34:46", + "nodeType": "YulFunctionCall", + "src": "18012:34:46" + }, + "nativeSrc": "18012:34:46", + "nodeType": "YulExpressionStatement", + "src": "18012:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18066:9:46", + "nodeType": "YulIdentifier", + "src": "18066:9:46" + }, + { + "kind": "number", + "nativeSrc": "18077:2:46", + "nodeType": "YulLiteral", + "src": "18077:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18062:3:46", + "nodeType": "YulIdentifier", + "src": "18062:3:46" + }, + "nativeSrc": "18062:18:46", + "nodeType": "YulFunctionCall", + "src": "18062:18:46" + }, + { + "name": "value2", + "nativeSrc": "18082:6:46", + "nodeType": "YulIdentifier", + "src": "18082:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18055:6:46", + "nodeType": "YulIdentifier", + "src": "18055:6:46" + }, + "nativeSrc": "18055:34:46", + "nodeType": "YulFunctionCall", + "src": "18055:34:46" + }, + "nativeSrc": "18055:34:46", + "nodeType": "YulExpressionStatement", + "src": "18055:34:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_library_reversed", + "nativeSrc": "17745:350:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "17886:9:46", + "nodeType": "YulTypedName", + "src": "17886:9:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "17897:6:46", + "nodeType": "YulTypedName", + "src": "17897:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "17905:6:46", + "nodeType": "YulTypedName", + "src": "17905:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "17913:6:46", + "nodeType": "YulTypedName", + "src": "17913:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "17924:4:46", + "nodeType": "YulTypedName", + "src": "17924:4:46", + "type": "" + } + ], + "src": "17745:350:46" + }, + { + "body": { + "nativeSrc": "18169:115:46", + "nodeType": "YulBlock", + "src": "18169:115:46", + "statements": [ + { + "body": { + "nativeSrc": "18215:16:46", + "nodeType": "YulBlock", + "src": "18215:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18224:1:46", + "nodeType": "YulLiteral", + "src": "18224:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "18227:1:46", + "nodeType": "YulLiteral", + "src": "18227:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "18217:6:46", + "nodeType": "YulIdentifier", + "src": "18217:6:46" + }, + "nativeSrc": "18217:12:46", + "nodeType": "YulFunctionCall", + "src": "18217:12:46" + }, + "nativeSrc": "18217:12:46", + "nodeType": "YulExpressionStatement", + "src": "18217:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "18190:7:46", + "nodeType": "YulIdentifier", + "src": "18190:7:46" + }, + { + "name": "headStart", + "nativeSrc": "18199:9:46", + "nodeType": "YulIdentifier", + "src": "18199:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18186:3:46", + "nodeType": "YulIdentifier", + "src": "18186:3:46" + }, + "nativeSrc": "18186:23:46", + "nodeType": "YulFunctionCall", + "src": "18186:23:46" + }, + { + "kind": "number", + "nativeSrc": "18211:2:46", + "nodeType": "YulLiteral", + "src": "18211:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "18182:3:46", + "nodeType": "YulIdentifier", + "src": "18182:3:46" + }, + "nativeSrc": "18182:32:46", + "nodeType": "YulFunctionCall", + "src": "18182:32:46" + }, + "nativeSrc": "18179:52:46", + "nodeType": "YulIf", + "src": "18179:52:46" + }, + { + "nativeSrc": "18240:38:46", + "nodeType": "YulAssignment", + "src": "18240:38:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18268:9:46", + "nodeType": "YulIdentifier", + "src": "18268:9:46" + } + ], + "functionName": { + "name": "abi_decode_bytes2", + "nativeSrc": "18250:17:46", + "nodeType": "YulIdentifier", + "src": "18250:17:46" + }, + "nativeSrc": "18250:28:46", + "nodeType": "YulFunctionCall", + "src": "18250:28:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "18240:6:46", + "nodeType": "YulIdentifier", + "src": "18240:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes2", + "nativeSrc": "18100:184:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "18135:9:46", + "nodeType": "YulTypedName", + "src": "18135:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "18146:7:46", + "nodeType": "YulTypedName", + "src": "18146:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "18158:6:46", + "nodeType": "YulTypedName", + "src": "18158:6:46", + "type": "" + } + ], + "src": "18100:184:46" + }, + { + "body": { + "nativeSrc": "18428:150:46", + "nodeType": "YulBlock", + "src": "18428:150:46", + "statements": [ + { + "nativeSrc": "18438:27:46", + "nodeType": "YulVariableDeclaration", + "src": "18438:27:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "18458:6:46", + "nodeType": "YulIdentifier", + "src": "18458:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18452:5:46", + "nodeType": "YulIdentifier", + "src": "18452:5:46" + }, + "nativeSrc": "18452:13:46", + "nodeType": "YulFunctionCall", + "src": "18452:13:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "18442:6:46", + "nodeType": "YulTypedName", + "src": "18442:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "18513:6:46", + "nodeType": "YulIdentifier", + "src": "18513:6:46" + }, + { + "kind": "number", + "nativeSrc": "18521:4:46", + "nodeType": "YulLiteral", + "src": "18521:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18509:3:46", + "nodeType": "YulIdentifier", + "src": "18509:3:46" + }, + "nativeSrc": "18509:17:46", + "nodeType": "YulFunctionCall", + "src": "18509:17:46" + }, + { + "name": "pos", + "nativeSrc": "18528:3:46", + "nodeType": "YulIdentifier", + "src": "18528:3:46" + }, + { + "name": "length", + "nativeSrc": "18533:6:46", + "nodeType": "YulIdentifier", + "src": "18533:6:46" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "18474:34:46", + "nodeType": "YulIdentifier", + "src": "18474:34:46" + }, + "nativeSrc": "18474:66:46", + "nodeType": "YulFunctionCall", + "src": "18474:66:46" + }, + "nativeSrc": "18474:66:46", + "nodeType": "YulExpressionStatement", + "src": "18474:66:46" + }, + { + "nativeSrc": "18549:23:46", + "nodeType": "YulAssignment", + "src": "18549:23:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "18560:3:46", + "nodeType": "YulIdentifier", + "src": "18560:3:46" + }, + { + "name": "length", + "nativeSrc": "18565:6:46", + "nodeType": "YulIdentifier", + "src": "18565:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18556:3:46", + "nodeType": "YulIdentifier", + "src": "18556:3:46" + }, + "nativeSrc": "18556:16:46", + "nodeType": "YulFunctionCall", + "src": "18556:16:46" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "18549:3:46", + "nodeType": "YulIdentifier", + "src": "18549:3:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "18289:289:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "18404:3:46", + "nodeType": "YulTypedName", + "src": "18404:3:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "18409:6:46", + "nodeType": "YulTypedName", + "src": "18409:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "18420:3:46", + "nodeType": "YulTypedName", + "src": "18420:3:46", + "type": "" + } + ], + "src": "18289:289:46" + }, + { + "body": { + "nativeSrc": "18691:101:46", + "nodeType": "YulBlock", + "src": "18691:101:46", + "statements": [ + { + "nativeSrc": "18701:26:46", + "nodeType": "YulAssignment", + "src": "18701:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18713:9:46", + "nodeType": "YulIdentifier", + "src": "18713:9:46" + }, + { + "kind": "number", + "nativeSrc": "18724:2:46", + "nodeType": "YulLiteral", + "src": "18724:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18709:3:46", + "nodeType": "YulIdentifier", + "src": "18709:3:46" + }, + "nativeSrc": "18709:18:46", + "nodeType": "YulFunctionCall", + "src": "18709:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "18701:4:46", + "nodeType": "YulIdentifier", + "src": "18701:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18743:9:46", + "nodeType": "YulIdentifier", + "src": "18743:9:46" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "18758:6:46", + "nodeType": "YulIdentifier", + "src": "18758:6:46" + }, + { + "kind": "number", + "nativeSrc": "18766:18:46", + "nodeType": "YulLiteral", + "src": "18766:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "18754:3:46", + "nodeType": "YulIdentifier", + "src": "18754:3:46" + }, + "nativeSrc": "18754:31:46", + "nodeType": "YulFunctionCall", + "src": "18754:31:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18736:6:46", + "nodeType": "YulIdentifier", + "src": "18736:6:46" + }, + "nativeSrc": "18736:50:46", + "nodeType": "YulFunctionCall", + "src": "18736:50:46" + }, + "nativeSrc": "18736:50:46", + "nodeType": "YulExpressionStatement", + "src": "18736:50:46" + } + ] + }, + "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed", + "nativeSrc": "18583:209:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "18660:9:46", + "nodeType": "YulTypedName", + "src": "18660:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "18671:6:46", + "nodeType": "YulTypedName", + "src": "18671:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "18682:4:46", + "nodeType": "YulTypedName", + "src": "18682:4:46", + "type": "" + } + ], + "src": "18583:209:46" + }, + { + "body": { + "nativeSrc": "19039:324:46", + "nodeType": "YulBlock", + "src": "19039:324:46", + "statements": [ + { + "nativeSrc": "19049:27:46", + "nodeType": "YulAssignment", + "src": "19049:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19061:9:46", + "nodeType": "YulIdentifier", + "src": "19061:9:46" + }, + { + "kind": "number", + "nativeSrc": "19072:3:46", + "nodeType": "YulLiteral", + "src": "19072:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19057:3:46", + "nodeType": "YulIdentifier", + "src": "19057:3:46" + }, + "nativeSrc": "19057:19:46", + "nodeType": "YulFunctionCall", + "src": "19057:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "19049:4:46", + "nodeType": "YulIdentifier", + "src": "19049:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19092:9:46", + "nodeType": "YulIdentifier", + "src": "19092:9:46" + }, + { + "name": "value0", + "nativeSrc": "19103:6:46", + "nodeType": "YulIdentifier", + "src": "19103:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19085:6:46", + "nodeType": "YulIdentifier", + "src": "19085:6:46" + }, + "nativeSrc": "19085:25:46", + "nodeType": "YulFunctionCall", + "src": "19085:25:46" + }, + "nativeSrc": "19085:25:46", + "nodeType": "YulExpressionStatement", + "src": "19085:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19130:9:46", + "nodeType": "YulIdentifier", + "src": "19130:9:46" + }, + { + "kind": "number", + "nativeSrc": "19141:2:46", + "nodeType": "YulLiteral", + "src": "19141:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19126:3:46", + "nodeType": "YulIdentifier", + "src": "19126:3:46" + }, + "nativeSrc": "19126:18:46", + "nodeType": "YulFunctionCall", + "src": "19126:18:46" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "19150:6:46", + "nodeType": "YulIdentifier", + "src": "19150:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19166:3:46", + "nodeType": "YulLiteral", + "src": "19166:3:46", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "19171:1:46", + "nodeType": "YulLiteral", + "src": "19171:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "19162:3:46", + "nodeType": "YulIdentifier", + "src": "19162:3:46" + }, + "nativeSrc": "19162:11:46", + "nodeType": "YulFunctionCall", + "src": "19162:11:46" + }, + { + "kind": "number", + "nativeSrc": "19175:1:46", + "nodeType": "YulLiteral", + "src": "19175:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "19158:3:46", + "nodeType": "YulIdentifier", + "src": "19158:3:46" + }, + "nativeSrc": "19158:19:46", + "nodeType": "YulFunctionCall", + "src": "19158:19:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19146:3:46", + "nodeType": "YulIdentifier", + "src": "19146:3:46" + }, + "nativeSrc": "19146:32:46", + "nodeType": "YulFunctionCall", + "src": "19146:32:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19119:6:46", + "nodeType": "YulIdentifier", + "src": "19119:6:46" + }, + "nativeSrc": "19119:60:46", + "nodeType": "YulFunctionCall", + "src": "19119:60:46" + }, + "nativeSrc": "19119:60:46", + "nodeType": "YulExpressionStatement", + "src": "19119:60:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19199:9:46", + "nodeType": "YulIdentifier", + "src": "19199:9:46" + }, + { + "kind": "number", + "nativeSrc": "19210:2:46", + "nodeType": "YulLiteral", + "src": "19210:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19195:3:46", + "nodeType": "YulIdentifier", + "src": "19195:3:46" + }, + "nativeSrc": "19195:18:46", + "nodeType": "YulFunctionCall", + "src": "19195:18:46" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "19219:6:46", + "nodeType": "YulIdentifier", + "src": "19219:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19235:3:46", + "nodeType": "YulLiteral", + "src": "19235:3:46", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "19240:1:46", + "nodeType": "YulLiteral", + "src": "19240:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "19231:3:46", + "nodeType": "YulIdentifier", + "src": "19231:3:46" + }, + "nativeSrc": "19231:11:46", + "nodeType": "YulFunctionCall", + "src": "19231:11:46" + }, + { + "kind": "number", + "nativeSrc": "19244:1:46", + "nodeType": "YulLiteral", + "src": "19244:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "19227:3:46", + "nodeType": "YulIdentifier", + "src": "19227:3:46" + }, + "nativeSrc": "19227:19:46", + "nodeType": "YulFunctionCall", + "src": "19227:19:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19215:3:46", + "nodeType": "YulIdentifier", + "src": "19215:3:46" + }, + "nativeSrc": "19215:32:46", + "nodeType": "YulFunctionCall", + "src": "19215:32:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19188:6:46", + "nodeType": "YulIdentifier", + "src": "19188:6:46" + }, + "nativeSrc": "19188:60:46", + "nodeType": "YulFunctionCall", + "src": "19188:60:46" + }, + "nativeSrc": "19188:60:46", + "nodeType": "YulExpressionStatement", + "src": "19188:60:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19268:9:46", + "nodeType": "YulIdentifier", + "src": "19268:9:46" + }, + { + "kind": "number", + "nativeSrc": "19279:2:46", + "nodeType": "YulLiteral", + "src": "19279:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19264:3:46", + "nodeType": "YulIdentifier", + "src": "19264:3:46" + }, + "nativeSrc": "19264:18:46", + "nodeType": "YulFunctionCall", + "src": "19264:18:46" + }, + { + "name": "value3", + "nativeSrc": "19284:6:46", + "nodeType": "YulIdentifier", + "src": "19284:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19257:6:46", + "nodeType": "YulIdentifier", + "src": "19257:6:46" + }, + "nativeSrc": "19257:34:46", + "nodeType": "YulFunctionCall", + "src": "19257:34:46" + }, + "nativeSrc": "19257:34:46", + "nodeType": "YulExpressionStatement", + "src": "19257:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19311:9:46", + "nodeType": "YulIdentifier", + "src": "19311:9:46" + }, + { + "kind": "number", + "nativeSrc": "19322:3:46", + "nodeType": "YulLiteral", + "src": "19322:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19307:3:46", + "nodeType": "YulIdentifier", + "src": "19307:3:46" + }, + "nativeSrc": "19307:19:46", + "nodeType": "YulFunctionCall", + "src": "19307:19:46" + }, + { + "arguments": [ + { + "name": "value4", + "nativeSrc": "19332:6:46", + "nodeType": "YulIdentifier", + "src": "19332:6:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19344:3:46", + "nodeType": "YulLiteral", + "src": "19344:3:46", + "type": "", + "value": "240" + }, + { + "kind": "number", + "nativeSrc": "19349:5:46", + "nodeType": "YulLiteral", + "src": "19349:5:46", + "type": "", + "value": "65535" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "19340:3:46", + "nodeType": "YulIdentifier", + "src": "19340:3:46" + }, + "nativeSrc": "19340:15:46", + "nodeType": "YulFunctionCall", + "src": "19340:15:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "19328:3:46", + "nodeType": "YulIdentifier", + "src": "19328:3:46" + }, + "nativeSrc": "19328:28:46", + "nodeType": "YulFunctionCall", + "src": "19328:28:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19300:6:46", + "nodeType": "YulIdentifier", + "src": "19300:6:46" + }, + "nativeSrc": "19300:57:46", + "nodeType": "YulFunctionCall", + "src": "19300:57:46" + }, + "nativeSrc": "19300:57:46", + "nodeType": "YulExpressionStatement", + "src": "19300:57:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_address_t_address_t_uint256_t_bytes2__to_t_uint256_t_address_t_address_t_uint256_t_bytes2__fromStack_library_reversed", + "nativeSrc": "18797:566:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "18976:9:46", + "nodeType": "YulTypedName", + "src": "18976:9:46", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "18987:6:46", + "nodeType": "YulTypedName", + "src": "18987:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "18995:6:46", + "nodeType": "YulTypedName", + "src": "18995:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "19003:6:46", + "nodeType": "YulTypedName", + "src": "19003:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "19011:6:46", + "nodeType": "YulTypedName", + "src": "19011:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "19019:6:46", + "nodeType": "YulTypedName", + "src": "19019:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "19030:4:46", + "nodeType": "YulTypedName", + "src": "19030:4:46", + "type": "" + } + ], + "src": "18797:566:46" + }, + { + "body": { + "nativeSrc": "19439:549:46", + "nodeType": "YulBlock", + "src": "19439:549:46", + "statements": [ + { + "body": { + "nativeSrc": "19488:16:46", + "nodeType": "YulBlock", + "src": "19488:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19497:1:46", + "nodeType": "YulLiteral", + "src": "19497:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "19500:1:46", + "nodeType": "YulLiteral", + "src": "19500:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "19490:6:46", + "nodeType": "YulIdentifier", + "src": "19490:6:46" + }, + "nativeSrc": "19490:12:46", + "nodeType": "YulFunctionCall", + "src": "19490:12:46" + }, + "nativeSrc": "19490:12:46", + "nodeType": "YulExpressionStatement", + "src": "19490:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "19467:6:46", + "nodeType": "YulIdentifier", + "src": "19467:6:46" + }, + { + "kind": "number", + "nativeSrc": "19475:4:46", + "nodeType": "YulLiteral", + "src": "19475:4:46", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19463:3:46", + "nodeType": "YulIdentifier", + "src": "19463:3:46" + }, + "nativeSrc": "19463:17:46", + "nodeType": "YulFunctionCall", + "src": "19463:17:46" + }, + { + "name": "end", + "nativeSrc": "19482:3:46", + "nodeType": "YulIdentifier", + "src": "19482:3:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "19459:3:46", + "nodeType": "YulIdentifier", + "src": "19459:3:46" + }, + "nativeSrc": "19459:27:46", + "nodeType": "YulFunctionCall", + "src": "19459:27:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "19452:6:46", + "nodeType": "YulIdentifier", + "src": "19452:6:46" + }, + "nativeSrc": "19452:35:46", + "nodeType": "YulFunctionCall", + "src": "19452:35:46" + }, + "nativeSrc": "19449:55:46", + "nodeType": "YulIf", + "src": "19449:55:46" + }, + { + "nativeSrc": "19513:13:46", + "nodeType": "YulVariableDeclaration", + "src": "19513:13:46", + "value": { + "kind": "number", + "nativeSrc": "19525:1:46", + "nodeType": "YulLiteral", + "src": "19525:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "size", + "nativeSrc": "19517:4:46", + "nodeType": "YulTypedName", + "src": "19517:4:46", + "type": "" + } + ] + }, + { + "nativeSrc": "19535:11:46", + "nodeType": "YulVariableDeclaration", + "src": "19535:11:46", + "value": { + "kind": "number", + "nativeSrc": "19545:1:46", + "nodeType": "YulLiteral", + "src": "19545:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "19539:2:46", + "nodeType": "YulTypedName", + "src": "19539:2:46", + "type": "" + } + ] + }, + { + "nativeSrc": "19555:7:46", + "nodeType": "YulAssignment", + "src": "19555:7:46", + "value": { + "kind": "number", + "nativeSrc": "19561:1:46", + "nodeType": "YulLiteral", + "src": "19561:1:46", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "_1", + "nativeSrc": "19555:2:46", + "nodeType": "YulIdentifier", + "src": "19555:2:46" + } + ] + }, + { + "nativeSrc": "19571:10:46", + "nodeType": "YulAssignment", + "src": "19571:10:46", + "value": { + "kind": "number", + "nativeSrc": "19579:2:46", + "nodeType": "YulLiteral", + "src": "19579:2:46", + "type": "", + "value": "64" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "19571:4:46", + "nodeType": "YulIdentifier", + "src": "19571:4:46" + } + ] + }, + { + "nativeSrc": "19590:30:46", + "nodeType": "YulVariableDeclaration", + "src": "19590:30:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19617:2:46", + "nodeType": "YulLiteral", + "src": "19617:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "19601:15:46", + "nodeType": "YulIdentifier", + "src": "19601:15:46" + }, + "nativeSrc": "19601:19:46", + "nodeType": "YulFunctionCall", + "src": "19601:19:46" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "19594:3:46", + "nodeType": "YulTypedName", + "src": "19594:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "19629:18:46", + "nodeType": "YulVariableDeclaration", + "src": "19629:18:46", + "value": { + "name": "dst", + "nativeSrc": "19644:3:46", + "nodeType": "YulIdentifier", + "src": "19644:3:46" + }, + "variables": [ + { + "name": "array_1", + "nativeSrc": "19633:7:46", + "nodeType": "YulTypedName", + "src": "19633:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "19656:29:46", + "nodeType": "YulVariableDeclaration", + "src": "19656:29:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "19674:6:46", + "nodeType": "YulIdentifier", + "src": "19674:6:46" + }, + { + "kind": "number", + "nativeSrc": "19682:2:46", + "nodeType": "YulLiteral", + "src": "19682:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19670:3:46", + "nodeType": "YulIdentifier", + "src": "19670:3:46" + }, + "nativeSrc": "19670:15:46", + "nodeType": "YulFunctionCall", + "src": "19670:15:46" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "19660:6:46", + "nodeType": "YulTypedName", + "src": "19660:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "19713:16:46", + "nodeType": "YulBlock", + "src": "19713:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19722:1:46", + "nodeType": "YulLiteral", + "src": "19722:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "19725:1:46", + "nodeType": "YulLiteral", + "src": "19725:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "19715:6:46", + "nodeType": "YulIdentifier", + "src": "19715:6:46" + }, + "nativeSrc": "19715:12:46", + "nodeType": "YulFunctionCall", + "src": "19715:12:46" + }, + "nativeSrc": "19715:12:46", + "nodeType": "YulExpressionStatement", + "src": "19715:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "19700:6:46", + "nodeType": "YulIdentifier", + "src": "19700:6:46" + }, + { + "name": "end", + "nativeSrc": "19708:3:46", + "nodeType": "YulIdentifier", + "src": "19708:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "19697:2:46", + "nodeType": "YulIdentifier", + "src": "19697:2:46" + }, + "nativeSrc": "19697:15:46", + "nodeType": "YulFunctionCall", + "src": "19697:15:46" + }, + "nativeSrc": "19694:35:46", + "nodeType": "YulIf", + "src": "19694:35:46" + }, + { + "nativeSrc": "19738:17:46", + "nodeType": "YulVariableDeclaration", + "src": "19738:17:46", + "value": { + "name": "offset", + "nativeSrc": "19749:6:46", + "nodeType": "YulIdentifier", + "src": "19749:6:46" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "19742:3:46", + "nodeType": "YulTypedName", + "src": "19742:3:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "19822:135:46", + "nodeType": "YulBlock", + "src": "19822:135:46", + "statements": [ + { + "nativeSrc": "19836:14:46", + "nodeType": "YulVariableDeclaration", + "src": "19836:14:46", + "value": { + "kind": "number", + "nativeSrc": "19849:1:46", + "nodeType": "YulLiteral", + "src": "19849:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "19840:5:46", + "nodeType": "YulTypedName", + "src": "19840:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "19863:19:46", + "nodeType": "YulAssignment", + "src": "19863:19:46", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "19878:3:46", + "nodeType": "YulIdentifier", + "src": "19878:3:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19872:5:46", + "nodeType": "YulIdentifier", + "src": "19872:5:46" + }, + "nativeSrc": "19872:10:46", + "nodeType": "YulFunctionCall", + "src": "19872:10:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "19863:5:46", + "nodeType": "YulIdentifier", + "src": "19863:5:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "19902:3:46", + "nodeType": "YulIdentifier", + "src": "19902:3:46" + }, + { + "name": "value", + "nativeSrc": "19907:5:46", + "nodeType": "YulIdentifier", + "src": "19907:5:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19895:6:46", + "nodeType": "YulIdentifier", + "src": "19895:6:46" + }, + "nativeSrc": "19895:18:46", + "nodeType": "YulFunctionCall", + "src": "19895:18:46" + }, + "nativeSrc": "19895:18:46", + "nodeType": "YulExpressionStatement", + "src": "19895:18:46" + }, + { + "nativeSrc": "19926:21:46", + "nodeType": "YulAssignment", + "src": "19926:21:46", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "19937:3:46", + "nodeType": "YulIdentifier", + "src": "19937:3:46" + }, + { + "kind": "number", + "nativeSrc": "19942:4:46", + "nodeType": "YulLiteral", + "src": "19942:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19933:3:46", + "nodeType": "YulIdentifier", + "src": "19933:3:46" + }, + "nativeSrc": "19933:14:46", + "nodeType": "YulFunctionCall", + "src": "19933:14:46" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "19926:3:46", + "nodeType": "YulIdentifier", + "src": "19926:3:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "19775:3:46", + "nodeType": "YulIdentifier", + "src": "19775:3:46" + }, + { + "name": "srcEnd", + "nativeSrc": "19780:6:46", + "nodeType": "YulIdentifier", + "src": "19780:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "19772:2:46", + "nodeType": "YulIdentifier", + "src": "19772:2:46" + }, + "nativeSrc": "19772:15:46", + "nodeType": "YulFunctionCall", + "src": "19772:15:46" + }, + "nativeSrc": "19764:193:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "19788:25:46", + "nodeType": "YulBlock", + "src": "19788:25:46", + "statements": [ + { + "nativeSrc": "19790:21:46", + "nodeType": "YulAssignment", + "src": "19790:21:46", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "19801:3:46", + "nodeType": "YulIdentifier", + "src": "19801:3:46" + }, + { + "kind": "number", + "nativeSrc": "19806:4:46", + "nodeType": "YulLiteral", + "src": "19806:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19797:3:46", + "nodeType": "YulIdentifier", + "src": "19797:3:46" + }, + "nativeSrc": "19797:14:46", + "nodeType": "YulFunctionCall", + "src": "19797:14:46" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "19790:3:46", + "nodeType": "YulIdentifier", + "src": "19790:3:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "19768:3:46", + "nodeType": "YulBlock", + "src": "19768:3:46", + "statements": [] + }, + "src": "19764:193:46" + }, + { + "nativeSrc": "19966:16:46", + "nodeType": "YulAssignment", + "src": "19966:16:46", + "value": { + "name": "array_1", + "nativeSrc": "19975:7:46", + "nodeType": "YulIdentifier", + "src": "19975:7:46" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "19966:5:46", + "nodeType": "YulIdentifier", + "src": "19966:5:46" + } + ] + } + ] + }, + "name": "abi_decode_array_uint256_fromMemory", + "nativeSrc": "19368:620:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "19413:6:46", + "nodeType": "YulTypedName", + "src": "19413:6:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "19421:3:46", + "nodeType": "YulTypedName", + "src": "19421:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "19429:5:46", + "nodeType": "YulTypedName", + "src": "19429:5:46", + "type": "" + } + ], + "src": "19368:620:46" + }, + { + "body": { + "nativeSrc": "20242:960:46", + "nodeType": "YulBlock", + "src": "20242:960:46", + "statements": [ + { + "body": { + "nativeSrc": "20289:16:46", + "nodeType": "YulBlock", + "src": "20289:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20298:1:46", + "nodeType": "YulLiteral", + "src": "20298:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "20301:1:46", + "nodeType": "YulLiteral", + "src": "20301:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "20291:6:46", + "nodeType": "YulIdentifier", + "src": "20291:6:46" + }, + "nativeSrc": "20291:12:46", + "nodeType": "YulFunctionCall", + "src": "20291:12:46" + }, + "nativeSrc": "20291:12:46", + "nodeType": "YulExpressionStatement", + "src": "20291:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "20263:7:46", + "nodeType": "YulIdentifier", + "src": "20263:7:46" + }, + { + "name": "headStart", + "nativeSrc": "20272:9:46", + "nodeType": "YulIdentifier", + "src": "20272:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20259:3:46", + "nodeType": "YulIdentifier", + "src": "20259:3:46" + }, + "nativeSrc": "20259:23:46", + "nodeType": "YulFunctionCall", + "src": "20259:23:46" + }, + { + "kind": "number", + "nativeSrc": "20284:3:46", + "nodeType": "YulLiteral", + "src": "20284:3:46", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "20255:3:46", + "nodeType": "YulIdentifier", + "src": "20255:3:46" + }, + "nativeSrc": "20255:33:46", + "nodeType": "YulFunctionCall", + "src": "20255:33:46" + }, + "nativeSrc": "20252:53:46", + "nodeType": "YulIf", + "src": "20252:53:46" + }, + { + "nativeSrc": "20314:30:46", + "nodeType": "YulVariableDeclaration", + "src": "20314:30:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20334:9:46", + "nodeType": "YulIdentifier", + "src": "20334:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "20328:5:46", + "nodeType": "YulIdentifier", + "src": "20328:5:46" + }, + "nativeSrc": "20328:16:46", + "nodeType": "YulFunctionCall", + "src": "20328:16:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20318:6:46", + "nodeType": "YulTypedName", + "src": "20318:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "20387:16:46", + "nodeType": "YulBlock", + "src": "20387:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20396:1:46", + "nodeType": "YulLiteral", + "src": "20396:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "20399:1:46", + "nodeType": "YulLiteral", + "src": "20399:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "20389:6:46", + "nodeType": "YulIdentifier", + "src": "20389:6:46" + }, + "nativeSrc": "20389:12:46", + "nodeType": "YulFunctionCall", + "src": "20389:12:46" + }, + "nativeSrc": "20389:12:46", + "nodeType": "YulExpressionStatement", + "src": "20389:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "20359:6:46", + "nodeType": "YulIdentifier", + "src": "20359:6:46" + }, + { + "kind": "number", + "nativeSrc": "20367:18:46", + "nodeType": "YulLiteral", + "src": "20367:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "20356:2:46", + "nodeType": "YulIdentifier", + "src": "20356:2:46" + }, + "nativeSrc": "20356:30:46", + "nodeType": "YulFunctionCall", + "src": "20356:30:46" + }, + "nativeSrc": "20353:50:46", + "nodeType": "YulIf", + "src": "20353:50:46" + }, + { + "nativeSrc": "20412:82:46", + "nodeType": "YulAssignment", + "src": "20412:82:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20466:9:46", + "nodeType": "YulIdentifier", + "src": "20466:9:46" + }, + { + "name": "offset", + "nativeSrc": "20477:6:46", + "nodeType": "YulIdentifier", + "src": "20477:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20462:3:46", + "nodeType": "YulIdentifier", + "src": "20462:3:46" + }, + "nativeSrc": "20462:22:46", + "nodeType": "YulFunctionCall", + "src": "20462:22:46" + }, + { + "name": "dataEnd", + "nativeSrc": "20486:7:46", + "nodeType": "YulIdentifier", + "src": "20486:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_dyn_fromMemory", + "nativeSrc": "20422:39:46", + "nodeType": "YulIdentifier", + "src": "20422:39:46" + }, + "nativeSrc": "20422:72:46", + "nodeType": "YulFunctionCall", + "src": "20422:72:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "20412:6:46", + "nodeType": "YulIdentifier", + "src": "20412:6:46" + } + ] + }, + { + "nativeSrc": "20503:74:46", + "nodeType": "YulAssignment", + "src": "20503:74:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20553:9:46", + "nodeType": "YulIdentifier", + "src": "20553:9:46" + }, + { + "kind": "number", + "nativeSrc": "20564:2:46", + "nodeType": "YulLiteral", + "src": "20564:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20549:3:46", + "nodeType": "YulIdentifier", + "src": "20549:3:46" + }, + "nativeSrc": "20549:18:46", + "nodeType": "YulFunctionCall", + "src": "20549:18:46" + }, + { + "name": "dataEnd", + "nativeSrc": "20569:7:46", + "nodeType": "YulIdentifier", + "src": "20569:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_fromMemory", + "nativeSrc": "20513:35:46", + "nodeType": "YulIdentifier", + "src": "20513:35:46" + }, + "nativeSrc": "20513:64:46", + "nodeType": "YulFunctionCall", + "src": "20513:64:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "20503:6:46", + "nodeType": "YulIdentifier", + "src": "20503:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "20631:16:46", + "nodeType": "YulBlock", + "src": "20631:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20640:1:46", + "nodeType": "YulLiteral", + "src": "20640:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "20643:1:46", + "nodeType": "YulLiteral", + "src": "20643:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "20633:6:46", + "nodeType": "YulIdentifier", + "src": "20633:6:46" + }, + "nativeSrc": "20633:12:46", + "nodeType": "YulFunctionCall", + "src": "20633:12:46" + }, + "nativeSrc": "20633:12:46", + "nodeType": "YulExpressionStatement", + "src": "20633:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20604:9:46", + "nodeType": "YulIdentifier", + "src": "20604:9:46" + }, + { + "kind": "number", + "nativeSrc": "20615:3:46", + "nodeType": "YulLiteral", + "src": "20615:3:46", + "type": "", + "value": "127" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20600:3:46", + "nodeType": "YulIdentifier", + "src": "20600:3:46" + }, + "nativeSrc": "20600:19:46", + "nodeType": "YulFunctionCall", + "src": "20600:19:46" + }, + { + "name": "dataEnd", + "nativeSrc": "20621:7:46", + "nodeType": "YulIdentifier", + "src": "20621:7:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "20596:3:46", + "nodeType": "YulIdentifier", + "src": "20596:3:46" + }, + "nativeSrc": "20596:33:46", + "nodeType": "YulFunctionCall", + "src": "20596:33:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "20589:6:46", + "nodeType": "YulIdentifier", + "src": "20589:6:46" + }, + "nativeSrc": "20589:41:46", + "nodeType": "YulFunctionCall", + "src": "20589:41:46" + }, + "nativeSrc": "20586:61:46", + "nodeType": "YulIf", + "src": "20586:61:46" + }, + { + "nativeSrc": "20656:13:46", + "nodeType": "YulVariableDeclaration", + "src": "20656:13:46", + "value": { + "kind": "number", + "nativeSrc": "20668:1:46", + "nodeType": "YulLiteral", + "src": "20668:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "size", + "nativeSrc": "20660:4:46", + "nodeType": "YulTypedName", + "src": "20660:4:46", + "type": "" + } + ] + }, + { + "nativeSrc": "20678:11:46", + "nodeType": "YulVariableDeclaration", + "src": "20678:11:46", + "value": { + "kind": "number", + "nativeSrc": "20688:1:46", + "nodeType": "YulLiteral", + "src": "20688:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "20682:2:46", + "nodeType": "YulTypedName", + "src": "20682:2:46", + "type": "" + } + ] + }, + { + "nativeSrc": "20698:7:46", + "nodeType": "YulAssignment", + "src": "20698:7:46", + "value": { + "kind": "number", + "nativeSrc": "20704:1:46", + "nodeType": "YulLiteral", + "src": "20704:1:46", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "_1", + "nativeSrc": "20698:2:46", + "nodeType": "YulIdentifier", + "src": "20698:2:46" + } + ] + }, + { + "nativeSrc": "20714:10:46", + "nodeType": "YulAssignment", + "src": "20714:10:46", + "value": { + "kind": "number", + "nativeSrc": "20722:2:46", + "nodeType": "YulLiteral", + "src": "20722:2:46", + "type": "", + "value": "64" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "20714:4:46", + "nodeType": "YulIdentifier", + "src": "20714:4:46" + } + ] + }, + { + "nativeSrc": "20733:30:46", + "nodeType": "YulVariableDeclaration", + "src": "20733:30:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20760:2:46", + "nodeType": "YulLiteral", + "src": "20760:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "20744:15:46", + "nodeType": "YulIdentifier", + "src": "20744:15:46" + }, + "nativeSrc": "20744:19:46", + "nodeType": "YulFunctionCall", + "src": "20744:19:46" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "20737:3:46", + "nodeType": "YulTypedName", + "src": "20737:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "20772:16:46", + "nodeType": "YulVariableDeclaration", + "src": "20772:16:46", + "value": { + "name": "dst", + "nativeSrc": "20785:3:46", + "nodeType": "YulIdentifier", + "src": "20785:3:46" + }, + "variables": [ + { + "name": "array", + "nativeSrc": "20776:5:46", + "nodeType": "YulTypedName", + "src": "20776:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "20797:33:46", + "nodeType": "YulVariableDeclaration", + "src": "20797:33:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20815:9:46", + "nodeType": "YulIdentifier", + "src": "20815:9:46" + }, + { + "kind": "number", + "nativeSrc": "20826:3:46", + "nodeType": "YulLiteral", + "src": "20826:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20811:3:46", + "nodeType": "YulIdentifier", + "src": "20811:3:46" + }, + "nativeSrc": "20811:19:46", + "nodeType": "YulFunctionCall", + "src": "20811:19:46" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "20801:6:46", + "nodeType": "YulTypedName", + "src": "20801:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "20862:16:46", + "nodeType": "YulBlock", + "src": "20862:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20871:1:46", + "nodeType": "YulLiteral", + "src": "20871:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "20874:1:46", + "nodeType": "YulLiteral", + "src": "20874:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "20864:6:46", + "nodeType": "YulIdentifier", + "src": "20864:6:46" + }, + "nativeSrc": "20864:12:46", + "nodeType": "YulFunctionCall", + "src": "20864:12:46" + }, + "nativeSrc": "20864:12:46", + "nodeType": "YulExpressionStatement", + "src": "20864:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "20845:6:46", + "nodeType": "YulIdentifier", + "src": "20845:6:46" + }, + { + "name": "dataEnd", + "nativeSrc": "20853:7:46", + "nodeType": "YulIdentifier", + "src": "20853:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "20842:2:46", + "nodeType": "YulIdentifier", + "src": "20842:2:46" + }, + "nativeSrc": "20842:19:46", + "nodeType": "YulFunctionCall", + "src": "20842:19:46" + }, + "nativeSrc": "20839:39:46", + "nodeType": "YulIf", + "src": "20839:39:46" + }, + { + "nativeSrc": "20887:29:46", + "nodeType": "YulVariableDeclaration", + "src": "20887:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20902:9:46", + "nodeType": "YulIdentifier", + "src": "20902:9:46" + }, + { + "kind": "number", + "nativeSrc": "20913:2:46", + "nodeType": "YulLiteral", + "src": "20913:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20898:3:46", + "nodeType": "YulIdentifier", + "src": "20898:3:46" + }, + "nativeSrc": "20898:18:46", + "nodeType": "YulFunctionCall", + "src": "20898:18:46" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "20891:3:46", + "nodeType": "YulTypedName", + "src": "20891:3:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "20983:118:46", + "nodeType": "YulBlock", + "src": "20983:118:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "21004:3:46", + "nodeType": "YulIdentifier", + "src": "21004:3:46" + }, + { + "arguments": [ + { + "name": "src", + "nativeSrc": "21045:3:46", + "nodeType": "YulIdentifier", + "src": "21045:3:46" + }, + { + "name": "dataEnd", + "nativeSrc": "21050:7:46", + "nodeType": "YulIdentifier", + "src": "21050:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_fromMemory", + "nativeSrc": "21009:35:46", + "nodeType": "YulIdentifier", + "src": "21009:35:46" + }, + "nativeSrc": "21009:49:46", + "nodeType": "YulFunctionCall", + "src": "21009:49:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20997:6:46", + "nodeType": "YulIdentifier", + "src": "20997:6:46" + }, + "nativeSrc": "20997:62:46", + "nodeType": "YulFunctionCall", + "src": "20997:62:46" + }, + "nativeSrc": "20997:62:46", + "nodeType": "YulExpressionStatement", + "src": "20997:62:46" + }, + { + "nativeSrc": "21072:19:46", + "nodeType": "YulAssignment", + "src": "21072:19:46", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "21083:3:46", + "nodeType": "YulIdentifier", + "src": "21083:3:46" + }, + { + "kind": "number", + "nativeSrc": "21088:2:46", + "nodeType": "YulLiteral", + "src": "21088:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21079:3:46", + "nodeType": "YulIdentifier", + "src": "21079:3:46" + }, + "nativeSrc": "21079:12:46", + "nodeType": "YulFunctionCall", + "src": "21079:12:46" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "21072:3:46", + "nodeType": "YulIdentifier", + "src": "21072:3:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "20936:3:46", + "nodeType": "YulIdentifier", + "src": "20936:3:46" + }, + { + "name": "srcEnd", + "nativeSrc": "20941:6:46", + "nodeType": "YulIdentifier", + "src": "20941:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "20933:2:46", + "nodeType": "YulIdentifier", + "src": "20933:2:46" + }, + "nativeSrc": "20933:15:46", + "nodeType": "YulFunctionCall", + "src": "20933:15:46" + }, + "nativeSrc": "20925:176:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "20949:25:46", + "nodeType": "YulBlock", + "src": "20949:25:46", + "statements": [ + { + "nativeSrc": "20951:21:46", + "nodeType": "YulAssignment", + "src": "20951:21:46", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "20962:3:46", + "nodeType": "YulIdentifier", + "src": "20962:3:46" + }, + { + "name": "size", + "nativeSrc": "20967:4:46", + "nodeType": "YulIdentifier", + "src": "20967:4:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20958:3:46", + "nodeType": "YulIdentifier", + "src": "20958:3:46" + }, + "nativeSrc": "20958:14:46", + "nodeType": "YulFunctionCall", + "src": "20958:14:46" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "20951:3:46", + "nodeType": "YulIdentifier", + "src": "20951:3:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "20929:3:46", + "nodeType": "YulBlock", + "src": "20929:3:46", + "statements": [] + }, + "src": "20925:176:46" + }, + { + "nativeSrc": "21110:15:46", + "nodeType": "YulAssignment", + "src": "21110:15:46", + "value": { + "name": "array", + "nativeSrc": "21120:5:46", + "nodeType": "YulIdentifier", + "src": "21120:5:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "21110:6:46", + "nodeType": "YulIdentifier", + "src": "21110:6:46" + } + ] + }, + { + "nativeSrc": "21134:62:46", + "nodeType": "YulAssignment", + "src": "21134:62:46", + "value": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "21180:6:46", + "nodeType": "YulIdentifier", + "src": "21180:6:46" + }, + { + "name": "dataEnd", + "nativeSrc": "21188:7:46", + "nodeType": "YulIdentifier", + "src": "21188:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_fromMemory", + "nativeSrc": "21144:35:46", + "nodeType": "YulIdentifier", + "src": "21144:35:46" + }, + "nativeSrc": "21144:52:46", + "nodeType": "YulFunctionCall", + "src": "21144:52:46" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "21134:6:46", + "nodeType": "YulIdentifier", + "src": "21134:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$2_memory_ptrt_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptrt_array$_t_uint256_$2_memory_ptr_fromMemory", + "nativeSrc": "19993:1209:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "20184:9:46", + "nodeType": "YulTypedName", + "src": "20184:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "20195:7:46", + "nodeType": "YulTypedName", + "src": "20195:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "20207:6:46", + "nodeType": "YulTypedName", + "src": "20207:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "20215:6:46", + "nodeType": "YulTypedName", + "src": "20215:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "20223:6:46", + "nodeType": "YulTypedName", + "src": "20223:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "20231:6:46", + "nodeType": "YulTypedName", + "src": "20231:6:46", + "type": "" + } + ], + "src": "19993:1209:46" + }, + { + "body": { + "nativeSrc": "21239:95:46", + "nodeType": "YulBlock", + "src": "21239:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21256:1:46", + "nodeType": "YulLiteral", + "src": "21256:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21263:3:46", + "nodeType": "YulLiteral", + "src": "21263:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "21268:10:46", + "nodeType": "YulLiteral", + "src": "21268:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "21259:3:46", + "nodeType": "YulIdentifier", + "src": "21259:3:46" + }, + "nativeSrc": "21259:20:46", + "nodeType": "YulFunctionCall", + "src": "21259:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21249:6:46", + "nodeType": "YulIdentifier", + "src": "21249:6:46" + }, + "nativeSrc": "21249:31:46", + "nodeType": "YulFunctionCall", + "src": "21249:31:46" + }, + "nativeSrc": "21249:31:46", + "nodeType": "YulExpressionStatement", + "src": "21249:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21296:1:46", + "nodeType": "YulLiteral", + "src": "21296:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "21299:4:46", + "nodeType": "YulLiteral", + "src": "21299:4:46", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21289:6:46", + "nodeType": "YulIdentifier", + "src": "21289:6:46" + }, + "nativeSrc": "21289:15:46", + "nodeType": "YulFunctionCall", + "src": "21289:15:46" + }, + "nativeSrc": "21289:15:46", + "nodeType": "YulExpressionStatement", + "src": "21289:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21320:1:46", + "nodeType": "YulLiteral", + "src": "21320:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "21323:4:46", + "nodeType": "YulLiteral", + "src": "21323:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "21313:6:46", + "nodeType": "YulIdentifier", + "src": "21313:6:46" + }, + "nativeSrc": "21313:15:46", + "nodeType": "YulFunctionCall", + "src": "21313:15:46" + }, + "nativeSrc": "21313:15:46", + "nodeType": "YulExpressionStatement", + "src": "21313:15:46" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "21207:127:46", + "nodeType": "YulFunctionDefinition", + "src": "21207:127:46" + }, + { + "body": { + "nativeSrc": "21389:253:46", + "nodeType": "YulBlock", + "src": "21389:253:46", + "statements": [ + { + "nativeSrc": "21399:10:46", + "nodeType": "YulAssignment", + "src": "21399:10:46", + "value": { + "name": "pos", + "nativeSrc": "21406:3:46", + "nodeType": "YulIdentifier", + "src": "21406:3:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "21399:3:46", + "nodeType": "YulIdentifier", + "src": "21399:3:46" + } + ] + }, + { + "nativeSrc": "21418:19:46", + "nodeType": "YulVariableDeclaration", + "src": "21418:19:46", + "value": { + "name": "value", + "nativeSrc": "21432:5:46", + "nodeType": "YulIdentifier", + "src": "21432:5:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "21422:6:46", + "nodeType": "YulTypedName", + "src": "21422:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "21446:10:46", + "nodeType": "YulVariableDeclaration", + "src": "21446:10:46", + "value": { + "kind": "number", + "nativeSrc": "21455:1:46", + "nodeType": "YulLiteral", + "src": "21455:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "21450:1:46", + "nodeType": "YulTypedName", + "src": "21450:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "21512:124:46", + "nodeType": "YulBlock", + "src": "21512:124:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21533:3:46", + "nodeType": "YulIdentifier", + "src": "21533:3:46" + }, + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "21544:6:46", + "nodeType": "YulIdentifier", + "src": "21544:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "21538:5:46", + "nodeType": "YulIdentifier", + "src": "21538:5:46" + }, + "nativeSrc": "21538:13:46", + "nodeType": "YulFunctionCall", + "src": "21538:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21526:6:46", + "nodeType": "YulIdentifier", + "src": "21526:6:46" + }, + "nativeSrc": "21526:26:46", + "nodeType": "YulFunctionCall", + "src": "21526:26:46" + }, + "nativeSrc": "21526:26:46", + "nodeType": "YulExpressionStatement", + "src": "21526:26:46" + }, + { + "nativeSrc": "21565:21:46", + "nodeType": "YulAssignment", + "src": "21565:21:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "21576:3:46", + "nodeType": "YulIdentifier", + "src": "21576:3:46" + }, + { + "kind": "number", + "nativeSrc": "21581:4:46", + "nodeType": "YulLiteral", + "src": "21581:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21572:3:46", + "nodeType": "YulIdentifier", + "src": "21572:3:46" + }, + "nativeSrc": "21572:14:46", + "nodeType": "YulFunctionCall", + "src": "21572:14:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "21565:3:46", + "nodeType": "YulIdentifier", + "src": "21565:3:46" + } + ] + }, + { + "nativeSrc": "21599:27:46", + "nodeType": "YulAssignment", + "src": "21599:27:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "21613:6:46", + "nodeType": "YulIdentifier", + "src": "21613:6:46" + }, + { + "kind": "number", + "nativeSrc": "21621:4:46", + "nodeType": "YulLiteral", + "src": "21621:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21609:3:46", + "nodeType": "YulIdentifier", + "src": "21609:3:46" + }, + "nativeSrc": "21609:17:46", + "nodeType": "YulFunctionCall", + "src": "21609:17:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "21599:6:46", + "nodeType": "YulIdentifier", + "src": "21599:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "21476:1:46", + "nodeType": "YulIdentifier", + "src": "21476:1:46" + }, + { + "kind": "number", + "nativeSrc": "21479:4:46", + "nodeType": "YulLiteral", + "src": "21479:4:46", + "type": "", + "value": "0x02" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "21473:2:46", + "nodeType": "YulIdentifier", + "src": "21473:2:46" + }, + "nativeSrc": "21473:11:46", + "nodeType": "YulFunctionCall", + "src": "21473:11:46" + }, + "nativeSrc": "21465:171:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "21485:18:46", + "nodeType": "YulBlock", + "src": "21485:18:46", + "statements": [ + { + "nativeSrc": "21487:14:46", + "nodeType": "YulAssignment", + "src": "21487:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "21496:1:46", + "nodeType": "YulIdentifier", + "src": "21496:1:46" + }, + { + "kind": "number", + "nativeSrc": "21499:1:46", + "nodeType": "YulLiteral", + "src": "21499:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21492:3:46", + "nodeType": "YulIdentifier", + "src": "21492:3:46" + }, + "nativeSrc": "21492:9:46", + "nodeType": "YulFunctionCall", + "src": "21492:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "21487:1:46", + "nodeType": "YulIdentifier", + "src": "21487:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "21469:3:46", + "nodeType": "YulBlock", + "src": "21469:3:46", + "statements": [] + }, + "src": "21465:171:46" + } + ] + }, + "name": "abi_encode_array_uint256", + "nativeSrc": "21339:303:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "21373:5:46", + "nodeType": "YulTypedName", + "src": "21373:5:46", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "21380:3:46", + "nodeType": "YulTypedName", + "src": "21380:3:46", + "type": "" + } + ], + "src": "21339:303:46" + }, + { + "body": { + "nativeSrc": "22064:772:46", + "nodeType": "YulBlock", + "src": "22064:772:46", + "statements": [ + { + "nativeSrc": "22074:27:46", + "nodeType": "YulAssignment", + "src": "22074:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22086:9:46", + "nodeType": "YulIdentifier", + "src": "22086:9:46" + }, + { + "kind": "number", + "nativeSrc": "22097:3:46", + "nodeType": "YulLiteral", + "src": "22097:3:46", + "type": "", + "value": "640" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22082:3:46", + "nodeType": "YulIdentifier", + "src": "22082:3:46" + }, + "nativeSrc": "22082:19:46", + "nodeType": "YulFunctionCall", + "src": "22082:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22074:4:46", + "nodeType": "YulIdentifier", + "src": "22074:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "22135:6:46", + "nodeType": "YulIdentifier", + "src": "22135:6:46" + }, + { + "name": "headStart", + "nativeSrc": "22143:9:46", + "nodeType": "YulIdentifier", + "src": "22143:9:46" + } + ], + "functionName": { + "name": "abi_encode_array_uint256", + "nativeSrc": "22110:24:46", + "nodeType": "YulIdentifier", + "src": "22110:24:46" + }, + "nativeSrc": "22110:43:46", + "nodeType": "YulFunctionCall", + "src": "22110:43:46" + }, + "nativeSrc": "22110:43:46", + "nodeType": "YulExpressionStatement", + "src": "22110:43:46" + }, + { + "nativeSrc": "22162:29:46", + "nodeType": "YulVariableDeclaration", + "src": "22162:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22177:9:46", + "nodeType": "YulIdentifier", + "src": "22177:9:46" + }, + { + "kind": "number", + "nativeSrc": "22188:2:46", + "nodeType": "YulLiteral", + "src": "22188:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22173:3:46", + "nodeType": "YulIdentifier", + "src": "22173:3:46" + }, + "nativeSrc": "22173:18:46", + "nodeType": "YulFunctionCall", + "src": "22173:18:46" + }, + "variables": [ + { + "name": "pos", + "nativeSrc": "22166:3:46", + "nodeType": "YulTypedName", + "src": "22166:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "22200:10:46", + "nodeType": "YulAssignment", + "src": "22200:10:46", + "value": { + "name": "pos", + "nativeSrc": "22207:3:46", + "nodeType": "YulIdentifier", + "src": "22207:3:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "22200:3:46", + "nodeType": "YulIdentifier", + "src": "22200:3:46" + } + ] + }, + { + "nativeSrc": "22219:20:46", + "nodeType": "YulVariableDeclaration", + "src": "22219:20:46", + "value": { + "name": "value1", + "nativeSrc": "22233:6:46", + "nodeType": "YulIdentifier", + "src": "22233:6:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "22223:6:46", + "nodeType": "YulTypedName", + "src": "22223:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "22248:10:46", + "nodeType": "YulVariableDeclaration", + "src": "22248:10:46", + "value": { + "kind": "number", + "nativeSrc": "22257:1:46", + "nodeType": "YulLiteral", + "src": "22257:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "22252:1:46", + "nodeType": "YulTypedName", + "src": "22252:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "22314:140:46", + "nodeType": "YulBlock", + "src": "22314:140:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "22359:6:46", + "nodeType": "YulIdentifier", + "src": "22359:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "22353:5:46", + "nodeType": "YulIdentifier", + "src": "22353:5:46" + }, + "nativeSrc": "22353:13:46", + "nodeType": "YulFunctionCall", + "src": "22353:13:46" + }, + { + "name": "pos", + "nativeSrc": "22368:3:46", + "nodeType": "YulIdentifier", + "src": "22368:3:46" + } + ], + "functionName": { + "name": "abi_encode_array_uint256", + "nativeSrc": "22328:24:46", + "nodeType": "YulIdentifier", + "src": "22328:24:46" + }, + "nativeSrc": "22328:44:46", + "nodeType": "YulFunctionCall", + "src": "22328:44:46" + }, + "nativeSrc": "22328:44:46", + "nodeType": "YulExpressionStatement", + "src": "22328:44:46" + }, + { + "nativeSrc": "22385:19:46", + "nodeType": "YulAssignment", + "src": "22385:19:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "22396:3:46", + "nodeType": "YulIdentifier", + "src": "22396:3:46" + }, + { + "kind": "number", + "nativeSrc": "22401:2:46", + "nodeType": "YulLiteral", + "src": "22401:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22392:3:46", + "nodeType": "YulIdentifier", + "src": "22392:3:46" + }, + "nativeSrc": "22392:12:46", + "nodeType": "YulFunctionCall", + "src": "22392:12:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "22385:3:46", + "nodeType": "YulIdentifier", + "src": "22385:3:46" + } + ] + }, + { + "nativeSrc": "22417:27:46", + "nodeType": "YulAssignment", + "src": "22417:27:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "22431:6:46", + "nodeType": "YulIdentifier", + "src": "22431:6:46" + }, + { + "kind": "number", + "nativeSrc": "22439:4:46", + "nodeType": "YulLiteral", + "src": "22439:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22427:3:46", + "nodeType": "YulIdentifier", + "src": "22427:3:46" + }, + "nativeSrc": "22427:17:46", + "nodeType": "YulFunctionCall", + "src": "22427:17:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "22417:6:46", + "nodeType": "YulIdentifier", + "src": "22417:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "22278:1:46", + "nodeType": "YulIdentifier", + "src": "22278:1:46" + }, + { + "kind": "number", + "nativeSrc": "22281:4:46", + "nodeType": "YulLiteral", + "src": "22281:4:46", + "type": "", + "value": "0x02" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "22275:2:46", + "nodeType": "YulIdentifier", + "src": "22275:2:46" + }, + "nativeSrc": "22275:11:46", + "nodeType": "YulFunctionCall", + "src": "22275:11:46" + }, + "nativeSrc": "22267:187:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "22287:18:46", + "nodeType": "YulBlock", + "src": "22287:18:46", + "statements": [ + { + "nativeSrc": "22289:14:46", + "nodeType": "YulAssignment", + "src": "22289:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "22298:1:46", + "nodeType": "YulIdentifier", + "src": "22298:1:46" + }, + { + "kind": "number", + "nativeSrc": "22301:1:46", + "nodeType": "YulLiteral", + "src": "22301:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22294:3:46", + "nodeType": "YulIdentifier", + "src": "22294:3:46" + }, + "nativeSrc": "22294:9:46", + "nodeType": "YulFunctionCall", + "src": "22294:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "22289:1:46", + "nodeType": "YulIdentifier", + "src": "22289:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "22271:3:46", + "nodeType": "YulBlock", + "src": "22271:3:46", + "statements": [] + }, + "src": "22267:187:46" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "22488:6:46", + "nodeType": "YulIdentifier", + "src": "22488:6:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22500:9:46", + "nodeType": "YulIdentifier", + "src": "22500:9:46" + }, + { + "kind": "number", + "nativeSrc": "22511:3:46", + "nodeType": "YulLiteral", + "src": "22511:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22496:3:46", + "nodeType": "YulIdentifier", + "src": "22496:3:46" + }, + "nativeSrc": "22496:19:46", + "nodeType": "YulFunctionCall", + "src": "22496:19:46" + } + ], + "functionName": { + "name": "abi_encode_array_uint256", + "nativeSrc": "22463:24:46", + "nodeType": "YulIdentifier", + "src": "22463:24:46" + }, + "nativeSrc": "22463:53:46", + "nodeType": "YulFunctionCall", + "src": "22463:53:46" + }, + "nativeSrc": "22463:53:46", + "nodeType": "YulExpressionStatement", + "src": "22463:53:46" + }, + { + "nativeSrc": "22525:32:46", + "nodeType": "YulVariableDeclaration", + "src": "22525:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22542:9:46", + "nodeType": "YulIdentifier", + "src": "22542:9:46" + }, + { + "kind": "number", + "nativeSrc": "22553:3:46", + "nodeType": "YulLiteral", + "src": "22553:3:46", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22538:3:46", + "nodeType": "YulIdentifier", + "src": "22538:3:46" + }, + "nativeSrc": "22538:19:46", + "nodeType": "YulFunctionCall", + "src": "22538:19:46" + }, + "variables": [ + { + "name": "pos_1", + "nativeSrc": "22529:5:46", + "nodeType": "YulTypedName", + "src": "22529:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "22566:14:46", + "nodeType": "YulAssignment", + "src": "22566:14:46", + "value": { + "name": "pos_1", + "nativeSrc": "22575:5:46", + "nodeType": "YulIdentifier", + "src": "22575:5:46" + }, + "variableNames": [ + { + "name": "pos_1", + "nativeSrc": "22566:5:46", + "nodeType": "YulIdentifier", + "src": "22566:5:46" + } + ] + }, + { + "nativeSrc": "22589:22:46", + "nodeType": "YulVariableDeclaration", + "src": "22589:22:46", + "value": { + "name": "value3", + "nativeSrc": "22605:6:46", + "nodeType": "YulIdentifier", + "src": "22605:6:46" + }, + "variables": [ + { + "name": "srcPtr_1", + "nativeSrc": "22593:8:46", + "nodeType": "YulTypedName", + "src": "22593:8:46", + "type": "" + } + ] + }, + { + "nativeSrc": "22620:12:46", + "nodeType": "YulVariableDeclaration", + "src": "22620:12:46", + "value": { + "kind": "number", + "nativeSrc": "22631:1:46", + "nodeType": "YulLiteral", + "src": "22631:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i_1", + "nativeSrc": "22624:3:46", + "nodeType": "YulTypedName", + "src": "22624:3:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "22694:136:46", + "nodeType": "YulBlock", + "src": "22694:136:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos_1", + "nativeSrc": "22715:5:46", + "nodeType": "YulIdentifier", + "src": "22715:5:46" + }, + { + "arguments": [ + { + "name": "srcPtr_1", + "nativeSrc": "22728:8:46", + "nodeType": "YulIdentifier", + "src": "22728:8:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "22722:5:46", + "nodeType": "YulIdentifier", + "src": "22722:5:46" + }, + "nativeSrc": "22722:15:46", + "nodeType": "YulFunctionCall", + "src": "22722:15:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22708:6:46", + "nodeType": "YulIdentifier", + "src": "22708:6:46" + }, + "nativeSrc": "22708:30:46", + "nodeType": "YulFunctionCall", + "src": "22708:30:46" + }, + "nativeSrc": "22708:30:46", + "nodeType": "YulExpressionStatement", + "src": "22708:30:46" + }, + { + "nativeSrc": "22751:25:46", + "nodeType": "YulAssignment", + "src": "22751:25:46", + "value": { + "arguments": [ + { + "name": "pos_1", + "nativeSrc": "22764:5:46", + "nodeType": "YulIdentifier", + "src": "22764:5:46" + }, + { + "kind": "number", + "nativeSrc": "22771:4:46", + "nodeType": "YulLiteral", + "src": "22771:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22760:3:46", + "nodeType": "YulIdentifier", + "src": "22760:3:46" + }, + "nativeSrc": "22760:16:46", + "nodeType": "YulFunctionCall", + "src": "22760:16:46" + }, + "variableNames": [ + { + "name": "pos_1", + "nativeSrc": "22751:5:46", + "nodeType": "YulIdentifier", + "src": "22751:5:46" + } + ] + }, + { + "nativeSrc": "22789:31:46", + "nodeType": "YulAssignment", + "src": "22789:31:46", + "value": { + "arguments": [ + { + "name": "srcPtr_1", + "nativeSrc": "22805:8:46", + "nodeType": "YulIdentifier", + "src": "22805:8:46" + }, + { + "kind": "number", + "nativeSrc": "22815:4:46", + "nodeType": "YulLiteral", + "src": "22815:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22801:3:46", + "nodeType": "YulIdentifier", + "src": "22801:3:46" + }, + "nativeSrc": "22801:19:46", + "nodeType": "YulFunctionCall", + "src": "22801:19:46" + }, + "variableNames": [ + { + "name": "srcPtr_1", + "nativeSrc": "22789:8:46", + "nodeType": "YulIdentifier", + "src": "22789:8:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i_1", + "nativeSrc": "22652:3:46", + "nodeType": "YulIdentifier", + "src": "22652:3:46" + }, + { + "kind": "number", + "nativeSrc": "22657:4:46", + "nodeType": "YulLiteral", + "src": "22657:4:46", + "type": "", + "value": "0x0c" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "22649:2:46", + "nodeType": "YulIdentifier", + "src": "22649:2:46" + }, + "nativeSrc": "22649:13:46", + "nodeType": "YulFunctionCall", + "src": "22649:13:46" + }, + "nativeSrc": "22641:189:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "22663:22:46", + "nodeType": "YulBlock", + "src": "22663:22:46", + "statements": [ + { + "nativeSrc": "22665:18:46", + "nodeType": "YulAssignment", + "src": "22665:18:46", + "value": { + "arguments": [ + { + "name": "i_1", + "nativeSrc": "22676:3:46", + "nodeType": "YulIdentifier", + "src": "22676:3:46" + }, + { + "kind": "number", + "nativeSrc": "22681:1:46", + "nodeType": "YulLiteral", + "src": "22681:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22672:3:46", + "nodeType": "YulIdentifier", + "src": "22672:3:46" + }, + "nativeSrc": "22672:11:46", + "nodeType": "YulFunctionCall", + "src": "22672:11:46" + }, + "variableNames": [ + { + "name": "i_1", + "nativeSrc": "22665:3:46", + "nodeType": "YulIdentifier", + "src": "22665:3:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "22645:3:46", + "nodeType": "YulBlock", + "src": "22645:3:46", + "statements": [] + }, + "src": "22641:189:46" + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$2_memory_ptr_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_t_array$_t_uint256_$2_memory_ptr_t_array$_t_uint256_$12_memory_ptr__to_t_array$_t_uint256_$2_memory_ptr_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_t_array$_t_uint256_$2_memory_ptr_t_array$_t_uint256_$12_memory_ptr__fromStack_reversed", + "nativeSrc": "21647:1189:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22009:9:46", + "nodeType": "YulTypedName", + "src": "22009:9:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "22020:6:46", + "nodeType": "YulTypedName", + "src": "22020:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "22028:6:46", + "nodeType": "YulTypedName", + "src": "22028:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "22036:6:46", + "nodeType": "YulTypedName", + "src": "22036:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "22044:6:46", + "nodeType": "YulTypedName", + "src": "22044:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "22055:4:46", + "nodeType": "YulTypedName", + "src": "22055:4:46", + "type": "" + } + ], + "src": "21647:1189:46" + }, + { + "body": { + "nativeSrc": "22919:124:46", + "nodeType": "YulBlock", + "src": "22919:124:46", + "statements": [ + { + "body": { + "nativeSrc": "22965:16:46", + "nodeType": "YulBlock", + "src": "22965:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22974:1:46", + "nodeType": "YulLiteral", + "src": "22974:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22977:1:46", + "nodeType": "YulLiteral", + "src": "22977:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22967:6:46", + "nodeType": "YulIdentifier", + "src": "22967:6:46" + }, + "nativeSrc": "22967:12:46", + "nodeType": "YulFunctionCall", + "src": "22967:12:46" + }, + "nativeSrc": "22967:12:46", + "nodeType": "YulExpressionStatement", + "src": "22967:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "22940:7:46", + "nodeType": "YulIdentifier", + "src": "22940:7:46" + }, + { + "name": "headStart", + "nativeSrc": "22949:9:46", + "nodeType": "YulIdentifier", + "src": "22949:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22936:3:46", + "nodeType": "YulIdentifier", + "src": "22936:3:46" + }, + "nativeSrc": "22936:23:46", + "nodeType": "YulFunctionCall", + "src": "22936:23:46" + }, + { + "kind": "number", + "nativeSrc": "22961:2:46", + "nodeType": "YulLiteral", + "src": "22961:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "22932:3:46", + "nodeType": "YulIdentifier", + "src": "22932:3:46" + }, + "nativeSrc": "22932:32:46", + "nodeType": "YulFunctionCall", + "src": "22932:32:46" + }, + "nativeSrc": "22929:52:46", + "nodeType": "YulIf", + "src": "22929:52:46" + }, + { + "nativeSrc": "22990:47:46", + "nodeType": "YulAssignment", + "src": "22990:47:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23027:9:46", + "nodeType": "YulIdentifier", + "src": "23027:9:46" + } + ], + "functionName": { + "name": "abi_decode_bool_fromMemory", + "nativeSrc": "23000:26:46", + "nodeType": "YulIdentifier", + "src": "23000:26:46" + }, + "nativeSrc": "23000:37:46", + "nodeType": "YulFunctionCall", + "src": "23000:37:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "22990:6:46", + "nodeType": "YulIdentifier", + "src": "22990:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nativeSrc": "22841:202:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22885:9:46", + "nodeType": "YulTypedName", + "src": "22885:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "22896:7:46", + "nodeType": "YulTypedName", + "src": "22896:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "22908:6:46", + "nodeType": "YulTypedName", + "src": "22908:6:46", + "type": "" + } + ], + "src": "22841:202:46" + }, + { + "body": { + "nativeSrc": "23208:119:46", + "nodeType": "YulBlock", + "src": "23208:119:46", + "statements": [ + { + "nativeSrc": "23218:26:46", + "nodeType": "YulAssignment", + "src": "23218:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23230:9:46", + "nodeType": "YulIdentifier", + "src": "23230:9:46" + }, + { + "kind": "number", + "nativeSrc": "23241:2:46", + "nodeType": "YulLiteral", + "src": "23241:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23226:3:46", + "nodeType": "YulIdentifier", + "src": "23226:3:46" + }, + "nativeSrc": "23226:18:46", + "nodeType": "YulFunctionCall", + "src": "23226:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23218:4:46", + "nodeType": "YulIdentifier", + "src": "23218:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23260:9:46", + "nodeType": "YulIdentifier", + "src": "23260:9:46" + }, + { + "name": "value0", + "nativeSrc": "23271:6:46", + "nodeType": "YulIdentifier", + "src": "23271:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23253:6:46", + "nodeType": "YulIdentifier", + "src": "23253:6:46" + }, + "nativeSrc": "23253:25:46", + "nodeType": "YulFunctionCall", + "src": "23253:25:46" + }, + "nativeSrc": "23253:25:46", + "nodeType": "YulExpressionStatement", + "src": "23253:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23298:9:46", + "nodeType": "YulIdentifier", + "src": "23298:9:46" + }, + { + "kind": "number", + "nativeSrc": "23309:2:46", + "nodeType": "YulLiteral", + "src": "23309:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23294:3:46", + "nodeType": "YulIdentifier", + "src": "23294:3:46" + }, + "nativeSrc": "23294:18:46", + "nodeType": "YulFunctionCall", + "src": "23294:18:46" + }, + { + "name": "value1", + "nativeSrc": "23314:6:46", + "nodeType": "YulIdentifier", + "src": "23314:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23287:6:46", + "nodeType": "YulIdentifier", + "src": "23287:6:46" + }, + "nativeSrc": "23287:34:46", + "nodeType": "YulFunctionCall", + "src": "23287:34:46" + }, + "nativeSrc": "23287:34:46", + "nodeType": "YulExpressionStatement", + "src": "23287:34:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint256__to_t_uint256_t_uint256__fromStack_library_reversed", + "nativeSrc": "23048:279:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23169:9:46", + "nodeType": "YulTypedName", + "src": "23169:9:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "23180:6:46", + "nodeType": "YulTypedName", + "src": "23180:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "23188:6:46", + "nodeType": "YulTypedName", + "src": "23188:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "23199:4:46", + "nodeType": "YulTypedName", + "src": "23199:4:46", + "type": "" + } + ], + "src": "23048:279:46" + }, + { + "body": { + "nativeSrc": "23506:170:46", + "nodeType": "YulBlock", + "src": "23506:170:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23523:9:46", + "nodeType": "YulIdentifier", + "src": "23523:9:46" + }, + { + "kind": "number", + "nativeSrc": "23534:2:46", + "nodeType": "YulLiteral", + "src": "23534:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23516:6:46", + "nodeType": "YulIdentifier", + "src": "23516:6:46" + }, + "nativeSrc": "23516:21:46", + "nodeType": "YulFunctionCall", + "src": "23516:21:46" + }, + "nativeSrc": "23516:21:46", + "nodeType": "YulExpressionStatement", + "src": "23516:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23557:9:46", + "nodeType": "YulIdentifier", + "src": "23557:9:46" + }, + { + "kind": "number", + "nativeSrc": "23568:2:46", + "nodeType": "YulLiteral", + "src": "23568:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23553:3:46", + "nodeType": "YulIdentifier", + "src": "23553:3:46" + }, + "nativeSrc": "23553:18:46", + "nodeType": "YulFunctionCall", + "src": "23553:18:46" + }, + { + "kind": "number", + "nativeSrc": "23573:2:46", + "nodeType": "YulLiteral", + "src": "23573:2:46", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23546:6:46", + "nodeType": "YulIdentifier", + "src": "23546:6:46" + }, + "nativeSrc": "23546:30:46", + "nodeType": "YulFunctionCall", + "src": "23546:30:46" + }, + "nativeSrc": "23546:30:46", + "nodeType": "YulExpressionStatement", + "src": "23546:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23596:9:46", + "nodeType": "YulIdentifier", + "src": "23596:9:46" + }, + { + "kind": "number", + "nativeSrc": "23607:2:46", + "nodeType": "YulLiteral", + "src": "23607:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23592:3:46", + "nodeType": "YulIdentifier", + "src": "23592:3:46" + }, + "nativeSrc": "23592:18:46", + "nodeType": "YulFunctionCall", + "src": "23592:18:46" + }, + { + "hexValue": "4964656e74697479206964206d69736d61746368", + "kind": "string", + "nativeSrc": "23612:22:46", + "nodeType": "YulLiteral", + "src": "23612:22:46", + "type": "", + "value": "Identity id mismatch" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23585:6:46", + "nodeType": "YulIdentifier", + "src": "23585:6:46" + }, + "nativeSrc": "23585:50:46", + "nodeType": "YulFunctionCall", + "src": "23585:50:46" + }, + "nativeSrc": "23585:50:46", + "nodeType": "YulExpressionStatement", + "src": "23585:50:46" + }, + { + "nativeSrc": "23644:26:46", + "nodeType": "YulAssignment", + "src": "23644:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23656:9:46", + "nodeType": "YulIdentifier", + "src": "23656:9:46" + }, + { + "kind": "number", + "nativeSrc": "23667:2:46", + "nodeType": "YulLiteral", + "src": "23667:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23652:3:46", + "nodeType": "YulIdentifier", + "src": "23652:3:46" + }, + "nativeSrc": "23652:18:46", + "nodeType": "YulFunctionCall", + "src": "23652:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23644:4:46", + "nodeType": "YulIdentifier", + "src": "23644:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b95c2f31a6045566300565f2774af75c15f58eae84f1e4dafcb6cd16a89e425e__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "23332:344:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23483:9:46", + "nodeType": "YulTypedName", + "src": "23483:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "23497:4:46", + "nodeType": "YulTypedName", + "src": "23497:4:46", + "type": "" + } + ], + "src": "23332:344:46" + }, + { + "body": { + "nativeSrc": "23785:665:46", + "nodeType": "YulBlock", + "src": "23785:665:46", + "statements": [ + { + "nativeSrc": "23795:42:46", + "nodeType": "YulVariableDeclaration", + "src": "23795:42:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "23813:7:46", + "nodeType": "YulIdentifier", + "src": "23813:7:46" + }, + { + "name": "headStart", + "nativeSrc": "23822:9:46", + "nodeType": "YulIdentifier", + "src": "23822:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "23809:3:46", + "nodeType": "YulIdentifier", + "src": "23809:3:46" + }, + "nativeSrc": "23809:23:46", + "nodeType": "YulFunctionCall", + "src": "23809:23:46" + }, + { + "kind": "number", + "nativeSrc": "23834:2:46", + "nodeType": "YulLiteral", + "src": "23834:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "23805:3:46", + "nodeType": "YulIdentifier", + "src": "23805:3:46" + }, + "nativeSrc": "23805:32:46", + "nodeType": "YulFunctionCall", + "src": "23805:32:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "23799:2:46", + "nodeType": "YulTypedName", + "src": "23799:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "23852:16:46", + "nodeType": "YulBlock", + "src": "23852:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23861:1:46", + "nodeType": "YulLiteral", + "src": "23861:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "23864:1:46", + "nodeType": "YulLiteral", + "src": "23864:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "23854:6:46", + "nodeType": "YulIdentifier", + "src": "23854:6:46" + }, + "nativeSrc": "23854:12:46", + "nodeType": "YulFunctionCall", + "src": "23854:12:46" + }, + "nativeSrc": "23854:12:46", + "nodeType": "YulExpressionStatement", + "src": "23854:12:46" + } + ] + }, + "condition": { + "name": "_1", + "nativeSrc": "23849:2:46", + "nodeType": "YulIdentifier", + "src": "23849:2:46" + }, + "nativeSrc": "23846:22:46", + "nodeType": "YulIf", + "src": "23846:22:46" + }, + { + "nativeSrc": "23877:7:46", + "nodeType": "YulAssignment", + "src": "23877:7:46", + "value": { + "kind": "number", + "nativeSrc": "23883:1:46", + "nodeType": "YulLiteral", + "src": "23883:1:46", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "_1", + "nativeSrc": "23877:2:46", + "nodeType": "YulIdentifier", + "src": "23877:2:46" + } + ] + }, + { + "nativeSrc": "23893:16:46", + "nodeType": "YulVariableDeclaration", + "src": "23893:16:46", + "value": { + "name": "_1", + "nativeSrc": "23907:2:46", + "nodeType": "YulIdentifier", + "src": "23907:2:46" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "23897:6:46", + "nodeType": "YulTypedName", + "src": "23897:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "23918:19:46", + "nodeType": "YulAssignment", + "src": "23918:19:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "23934:2:46", + "nodeType": "YulLiteral", + "src": "23934:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "23928:5:46", + "nodeType": "YulIdentifier", + "src": "23928:5:46" + }, + "nativeSrc": "23928:9:46", + "nodeType": "YulFunctionCall", + "src": "23928:9:46" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "23918:6:46", + "nodeType": "YulIdentifier", + "src": "23918:6:46" + } + ] + }, + { + "nativeSrc": "23946:33:46", + "nodeType": "YulVariableDeclaration", + "src": "23946:33:46", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "23968:6:46", + "nodeType": "YulIdentifier", + "src": "23968:6:46" + }, + { + "kind": "number", + "nativeSrc": "23976:2:46", + "nodeType": "YulLiteral", + "src": "23976:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23964:3:46", + "nodeType": "YulIdentifier", + "src": "23964:3:46" + }, + "nativeSrc": "23964:15:46", + "nodeType": "YulFunctionCall", + "src": "23964:15:46" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "23950:10:46", + "nodeType": "YulTypedName", + "src": "23950:10:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "24054:22:46", + "nodeType": "YulBlock", + "src": "24054:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "24056:16:46", + "nodeType": "YulIdentifier", + "src": "24056:16:46" + }, + "nativeSrc": "24056:18:46", + "nodeType": "YulFunctionCall", + "src": "24056:18:46" + }, + "nativeSrc": "24056:18:46", + "nodeType": "YulExpressionStatement", + "src": "24056:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "23997:10:46", + "nodeType": "YulIdentifier", + "src": "23997:10:46" + }, + { + "kind": "number", + "nativeSrc": "24009:18:46", + "nodeType": "YulLiteral", + "src": "24009:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "23994:2:46", + "nodeType": "YulIdentifier", + "src": "23994:2:46" + }, + "nativeSrc": "23994:34:46", + "nodeType": "YulFunctionCall", + "src": "23994:34:46" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "24033:10:46", + "nodeType": "YulIdentifier", + "src": "24033:10:46" + }, + { + "name": "memPtr", + "nativeSrc": "24045:6:46", + "nodeType": "YulIdentifier", + "src": "24045:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "24030:2:46", + "nodeType": "YulIdentifier", + "src": "24030:2:46" + }, + "nativeSrc": "24030:22:46", + "nodeType": "YulFunctionCall", + "src": "24030:22:46" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "23991:2:46", + "nodeType": "YulIdentifier", + "src": "23991:2:46" + }, + "nativeSrc": "23991:62:46", + "nodeType": "YulFunctionCall", + "src": "23991:62:46" + }, + "nativeSrc": "23988:88:46", + "nodeType": "YulIf", + "src": "23988:88:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24092:2:46", + "nodeType": "YulLiteral", + "src": "24092:2:46", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "24096:10:46", + "nodeType": "YulIdentifier", + "src": "24096:10:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24085:6:46", + "nodeType": "YulIdentifier", + "src": "24085:6:46" + }, + "nativeSrc": "24085:22:46", + "nodeType": "YulFunctionCall", + "src": "24085:22:46" + }, + "nativeSrc": "24085:22:46", + "nodeType": "YulExpressionStatement", + "src": "24085:22:46" + }, + { + "nativeSrc": "24116:15:46", + "nodeType": "YulVariableDeclaration", + "src": "24116:15:46", + "value": { + "name": "_1", + "nativeSrc": "24129:2:46", + "nodeType": "YulIdentifier", + "src": "24129:2:46" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "24120:5:46", + "nodeType": "YulTypedName", + "src": "24120:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "24140:25:46", + "nodeType": "YulAssignment", + "src": "24140:25:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24155:9:46", + "nodeType": "YulIdentifier", + "src": "24155:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "24149:5:46", + "nodeType": "YulIdentifier", + "src": "24149:5:46" + }, + "nativeSrc": "24149:16:46", + "nodeType": "YulFunctionCall", + "src": "24149:16:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "24140:5:46", + "nodeType": "YulIdentifier", + "src": "24140:5:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "24181:6:46", + "nodeType": "YulIdentifier", + "src": "24181:6:46" + }, + { + "name": "value", + "nativeSrc": "24189:5:46", + "nodeType": "YulIdentifier", + "src": "24189:5:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24174:6:46", + "nodeType": "YulIdentifier", + "src": "24174:6:46" + }, + "nativeSrc": "24174:21:46", + "nodeType": "YulFunctionCall", + "src": "24174:21:46" + }, + "nativeSrc": "24174:21:46", + "nodeType": "YulExpressionStatement", + "src": "24174:21:46" + }, + { + "nativeSrc": "24204:17:46", + "nodeType": "YulVariableDeclaration", + "src": "24204:17:46", + "value": { + "name": "_1", + "nativeSrc": "24219:2:46", + "nodeType": "YulIdentifier", + "src": "24219:2:46" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "24208:7:46", + "nodeType": "YulTypedName", + "src": "24208:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "24230:36:46", + "nodeType": "YulAssignment", + "src": "24230:36:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24251:9:46", + "nodeType": "YulIdentifier", + "src": "24251:9:46" + }, + { + "kind": "number", + "nativeSrc": "24262:2:46", + "nodeType": "YulLiteral", + "src": "24262:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24247:3:46", + "nodeType": "YulIdentifier", + "src": "24247:3:46" + }, + "nativeSrc": "24247:18:46", + "nodeType": "YulFunctionCall", + "src": "24247:18:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "24241:5:46", + "nodeType": "YulIdentifier", + "src": "24241:5:46" + }, + "nativeSrc": "24241:25:46", + "nodeType": "YulFunctionCall", + "src": "24241:25:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "24230:7:46", + "nodeType": "YulIdentifier", + "src": "24230:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "24286:6:46", + "nodeType": "YulIdentifier", + "src": "24286:6:46" + }, + { + "kind": "number", + "nativeSrc": "24294:2:46", + "nodeType": "YulLiteral", + "src": "24294:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24282:3:46", + "nodeType": "YulIdentifier", + "src": "24282:3:46" + }, + "nativeSrc": "24282:15:46", + "nodeType": "YulFunctionCall", + "src": "24282:15:46" + }, + { + "name": "value_1", + "nativeSrc": "24299:7:46", + "nodeType": "YulIdentifier", + "src": "24299:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24275:6:46", + "nodeType": "YulIdentifier", + "src": "24275:6:46" + }, + "nativeSrc": "24275:32:46", + "nodeType": "YulFunctionCall", + "src": "24275:32:46" + }, + "nativeSrc": "24275:32:46", + "nodeType": "YulExpressionStatement", + "src": "24275:32:46" + }, + { + "nativeSrc": "24316:17:46", + "nodeType": "YulVariableDeclaration", + "src": "24316:17:46", + "value": { + "name": "_1", + "nativeSrc": "24331:2:46", + "nodeType": "YulIdentifier", + "src": "24331:2:46" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "24320:7:46", + "nodeType": "YulTypedName", + "src": "24320:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "24342:36:46", + "nodeType": "YulAssignment", + "src": "24342:36:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24363:9:46", + "nodeType": "YulIdentifier", + "src": "24363:9:46" + }, + { + "kind": "number", + "nativeSrc": "24374:2:46", + "nodeType": "YulLiteral", + "src": "24374:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24359:3:46", + "nodeType": "YulIdentifier", + "src": "24359:3:46" + }, + "nativeSrc": "24359:18:46", + "nodeType": "YulFunctionCall", + "src": "24359:18:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "24353:5:46", + "nodeType": "YulIdentifier", + "src": "24353:5:46" + }, + "nativeSrc": "24353:25:46", + "nodeType": "YulFunctionCall", + "src": "24353:25:46" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "24342:7:46", + "nodeType": "YulIdentifier", + "src": "24342:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "24398:6:46", + "nodeType": "YulIdentifier", + "src": "24398:6:46" + }, + { + "kind": "number", + "nativeSrc": "24406:2:46", + "nodeType": "YulLiteral", + "src": "24406:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24394:3:46", + "nodeType": "YulIdentifier", + "src": "24394:3:46" + }, + "nativeSrc": "24394:15:46", + "nodeType": "YulFunctionCall", + "src": "24394:15:46" + }, + { + "name": "value_2", + "nativeSrc": "24411:7:46", + "nodeType": "YulIdentifier", + "src": "24411:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24387:6:46", + "nodeType": "YulIdentifier", + "src": "24387:6:46" + }, + "nativeSrc": "24387:32:46", + "nodeType": "YulFunctionCall", + "src": "24387:32:46" + }, + "nativeSrc": "24387:32:46", + "nodeType": "YulExpressionStatement", + "src": "24387:32:46" + }, + { + "nativeSrc": "24428:16:46", + "nodeType": "YulAssignment", + "src": "24428:16:46", + "value": { + "name": "memPtr", + "nativeSrc": "24438:6:46", + "nodeType": "YulIdentifier", + "src": "24438:6:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "24428:6:46", + "nodeType": "YulIdentifier", + "src": "24428:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Roots_$1390_memory_ptr_fromMemory", + "nativeSrc": "23681:769:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23751:9:46", + "nodeType": "YulTypedName", + "src": "23751:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "23762:7:46", + "nodeType": "YulTypedName", + "src": "23762:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "23774:6:46", + "nodeType": "YulTypedName", + "src": "23774:6:46", + "type": "" + } + ], + "src": "23681:769:46" + }, + { + "body": { + "nativeSrc": "24641:187:46", + "nodeType": "YulBlock", + "src": "24641:187:46", + "statements": [ + { + "nativeSrc": "24651:26:46", + "nodeType": "YulAssignment", + "src": "24651:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24663:9:46", + "nodeType": "YulIdentifier", + "src": "24663:9:46" + }, + { + "kind": "number", + "nativeSrc": "24674:2:46", + "nodeType": "YulLiteral", + "src": "24674:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24659:3:46", + "nodeType": "YulIdentifier", + "src": "24659:3:46" + }, + "nativeSrc": "24659:18:46", + "nodeType": "YulFunctionCall", + "src": "24659:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "24651:4:46", + "nodeType": "YulIdentifier", + "src": "24651:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24693:9:46", + "nodeType": "YulIdentifier", + "src": "24693:9:46" + }, + { + "name": "value0", + "nativeSrc": "24704:6:46", + "nodeType": "YulIdentifier", + "src": "24704:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24686:6:46", + "nodeType": "YulIdentifier", + "src": "24686:6:46" + }, + "nativeSrc": "24686:25:46", + "nodeType": "YulFunctionCall", + "src": "24686:25:46" + }, + "nativeSrc": "24686:25:46", + "nodeType": "YulExpressionStatement", + "src": "24686:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24731:9:46", + "nodeType": "YulIdentifier", + "src": "24731:9:46" + }, + { + "kind": "number", + "nativeSrc": "24742:2:46", + "nodeType": "YulLiteral", + "src": "24742:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24727:3:46", + "nodeType": "YulIdentifier", + "src": "24727:3:46" + }, + "nativeSrc": "24727:18:46", + "nodeType": "YulFunctionCall", + "src": "24727:18:46" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "24751:6:46", + "nodeType": "YulIdentifier", + "src": "24751:6:46" + }, + { + "kind": "number", + "nativeSrc": "24759:18:46", + "nodeType": "YulLiteral", + "src": "24759:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "24747:3:46", + "nodeType": "YulIdentifier", + "src": "24747:3:46" + }, + "nativeSrc": "24747:31:46", + "nodeType": "YulFunctionCall", + "src": "24747:31:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24720:6:46", + "nodeType": "YulIdentifier", + "src": "24720:6:46" + }, + "nativeSrc": "24720:59:46", + "nodeType": "YulFunctionCall", + "src": "24720:59:46" + }, + "nativeSrc": "24720:59:46", + "nodeType": "YulExpressionStatement", + "src": "24720:59:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24799:9:46", + "nodeType": "YulIdentifier", + "src": "24799:9:46" + }, + { + "kind": "number", + "nativeSrc": "24810:2:46", + "nodeType": "YulLiteral", + "src": "24810:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24795:3:46", + "nodeType": "YulIdentifier", + "src": "24795:3:46" + }, + "nativeSrc": "24795:18:46", + "nodeType": "YulFunctionCall", + "src": "24795:18:46" + }, + { + "name": "value2", + "nativeSrc": "24815:6:46", + "nodeType": "YulIdentifier", + "src": "24815:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24788:6:46", + "nodeType": "YulIdentifier", + "src": "24788:6:46" + }, + "nativeSrc": "24788:34:46", + "nodeType": "YulFunctionCall", + "src": "24788:34:46" + }, + "nativeSrc": "24788:34:46", + "nodeType": "YulExpressionStatement", + "src": "24788:34:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint64_t_uint256__to_t_uint256_t_uint64_t_uint256__fromStack_library_reversed", + "nativeSrc": "24455:373:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "24594:9:46", + "nodeType": "YulTypedName", + "src": "24594:9:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "24605:6:46", + "nodeType": "YulTypedName", + "src": "24605:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "24613:6:46", + "nodeType": "YulTypedName", + "src": "24613:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "24621:6:46", + "nodeType": "YulTypedName", + "src": "24621:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "24632:4:46", + "nodeType": "YulTypedName", + "src": "24632:4:46", + "type": "" + } + ], + "src": "24455:373:46" + }, + { + "body": { + "nativeSrc": "24962:119:46", + "nodeType": "YulBlock", + "src": "24962:119:46", + "statements": [ + { + "nativeSrc": "24972:26:46", + "nodeType": "YulAssignment", + "src": "24972:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24984:9:46", + "nodeType": "YulIdentifier", + "src": "24984:9:46" + }, + { + "kind": "number", + "nativeSrc": "24995:2:46", + "nodeType": "YulLiteral", + "src": "24995:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24980:3:46", + "nodeType": "YulIdentifier", + "src": "24980:3:46" + }, + "nativeSrc": "24980:18:46", + "nodeType": "YulFunctionCall", + "src": "24980:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "24972:4:46", + "nodeType": "YulIdentifier", + "src": "24972:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25014:9:46", + "nodeType": "YulIdentifier", + "src": "25014:9:46" + }, + { + "name": "value0", + "nativeSrc": "25025:6:46", + "nodeType": "YulIdentifier", + "src": "25025:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25007:6:46", + "nodeType": "YulIdentifier", + "src": "25007:6:46" + }, + "nativeSrc": "25007:25:46", + "nodeType": "YulFunctionCall", + "src": "25007:25:46" + }, + "nativeSrc": "25007:25:46", + "nodeType": "YulExpressionStatement", + "src": "25007:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25052:9:46", + "nodeType": "YulIdentifier", + "src": "25052:9:46" + }, + { + "kind": "number", + "nativeSrc": "25063:2:46", + "nodeType": "YulLiteral", + "src": "25063:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25048:3:46", + "nodeType": "YulIdentifier", + "src": "25048:3:46" + }, + "nativeSrc": "25048:18:46", + "nodeType": "YulFunctionCall", + "src": "25048:18:46" + }, + { + "name": "value1", + "nativeSrc": "25068:6:46", + "nodeType": "YulIdentifier", + "src": "25068:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25041:6:46", + "nodeType": "YulIdentifier", + "src": "25041:6:46" + }, + "nativeSrc": "25041:34:46", + "nodeType": "YulFunctionCall", + "src": "25041:34:46" + }, + "nativeSrc": "25041:34:46", + "nodeType": "YulExpressionStatement", + "src": "25041:34:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "24833:248:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "24923:9:46", + "nodeType": "YulTypedName", + "src": "24923:9:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "24934:6:46", + "nodeType": "YulTypedName", + "src": "24934:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "24942:6:46", + "nodeType": "YulTypedName", + "src": "24942:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "24953:4:46", + "nodeType": "YulTypedName", + "src": "24953:4:46", + "type": "" + } + ], + "src": "24833:248:46" + }, + { + "body": { + "nativeSrc": "25181:427:46", + "nodeType": "YulBlock", + "src": "25181:427:46", + "statements": [ + { + "nativeSrc": "25191:51:46", + "nodeType": "YulVariableDeclaration", + "src": "25191:51:46", + "value": { + "arguments": [ + { + "name": "ptr_to_tail", + "nativeSrc": "25230:11:46", + "nodeType": "YulIdentifier", + "src": "25230:11:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "25217:12:46", + "nodeType": "YulIdentifier", + "src": "25217:12:46" + }, + "nativeSrc": "25217:25:46", + "nodeType": "YulFunctionCall", + "src": "25217:25:46" + }, + "variables": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "25195:18:46", + "nodeType": "YulTypedName", + "src": "25195:18:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "25331:16:46", + "nodeType": "YulBlock", + "src": "25331:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25340:1:46", + "nodeType": "YulLiteral", + "src": "25340:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "25343:1:46", + "nodeType": "YulLiteral", + "src": "25343:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "25333:6:46", + "nodeType": "YulIdentifier", + "src": "25333:6:46" + }, + "nativeSrc": "25333:12:46", + "nodeType": "YulFunctionCall", + "src": "25333:12:46" + }, + "nativeSrc": "25333:12:46", + "nodeType": "YulExpressionStatement", + "src": "25333:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "25265:18:46", + "nodeType": "YulIdentifier", + "src": "25265:18:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "25293:12:46", + "nodeType": "YulIdentifier", + "src": "25293:12:46" + }, + "nativeSrc": "25293:14:46", + "nodeType": "YulFunctionCall", + "src": "25293:14:46" + }, + { + "name": "base_ref", + "nativeSrc": "25309:8:46", + "nodeType": "YulIdentifier", + "src": "25309:8:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "25289:3:46", + "nodeType": "YulIdentifier", + "src": "25289:3:46" + }, + "nativeSrc": "25289:29:46", + "nodeType": "YulFunctionCall", + "src": "25289:29:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25324:2:46", + "nodeType": "YulLiteral", + "src": "25324:2:46", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "25320:3:46", + "nodeType": "YulIdentifier", + "src": "25320:3:46" + }, + "nativeSrc": "25320:7:46", + "nodeType": "YulFunctionCall", + "src": "25320:7:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25285:3:46", + "nodeType": "YulIdentifier", + "src": "25285:3:46" + }, + "nativeSrc": "25285:43:46", + "nodeType": "YulFunctionCall", + "src": "25285:43:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "25261:3:46", + "nodeType": "YulIdentifier", + "src": "25261:3:46" + }, + "nativeSrc": "25261:68:46", + "nodeType": "YulFunctionCall", + "src": "25261:68:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "25254:6:46", + "nodeType": "YulIdentifier", + "src": "25254:6:46" + }, + "nativeSrc": "25254:76:46", + "nodeType": "YulFunctionCall", + "src": "25254:76:46" + }, + "nativeSrc": "25251:96:46", + "nodeType": "YulIf", + "src": "25251:96:46" + }, + { + "nativeSrc": "25356:47:46", + "nodeType": "YulVariableDeclaration", + "src": "25356:47:46", + "value": { + "arguments": [ + { + "name": "base_ref", + "nativeSrc": "25374:8:46", + "nodeType": "YulIdentifier", + "src": "25374:8:46" + }, + { + "name": "rel_offset_of_tail", + "nativeSrc": "25384:18:46", + "nodeType": "YulIdentifier", + "src": "25384:18:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25370:3:46", + "nodeType": "YulIdentifier", + "src": "25370:3:46" + }, + "nativeSrc": "25370:33:46", + "nodeType": "YulFunctionCall", + "src": "25370:33:46" + }, + "variables": [ + { + "name": "addr_1", + "nativeSrc": "25360:6:46", + "nodeType": "YulTypedName", + "src": "25360:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "25412:30:46", + "nodeType": "YulAssignment", + "src": "25412:30:46", + "value": { + "arguments": [ + { + "name": "addr_1", + "nativeSrc": "25435:6:46", + "nodeType": "YulIdentifier", + "src": "25435:6:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "25422:12:46", + "nodeType": "YulIdentifier", + "src": "25422:12:46" + }, + "nativeSrc": "25422:20:46", + "nodeType": "YulFunctionCall", + "src": "25422:20:46" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "25412:6:46", + "nodeType": "YulIdentifier", + "src": "25412:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "25485:16:46", + "nodeType": "YulBlock", + "src": "25485:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25494:1:46", + "nodeType": "YulLiteral", + "src": "25494:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "25497:1:46", + "nodeType": "YulLiteral", + "src": "25497:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "25487:6:46", + "nodeType": "YulIdentifier", + "src": "25487:6:46" + }, + "nativeSrc": "25487:12:46", + "nodeType": "YulFunctionCall", + "src": "25487:12:46" + }, + "nativeSrc": "25487:12:46", + "nodeType": "YulExpressionStatement", + "src": "25487:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "25457:6:46", + "nodeType": "YulIdentifier", + "src": "25457:6:46" + }, + { + "kind": "number", + "nativeSrc": "25465:18:46", + "nodeType": "YulLiteral", + "src": "25465:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "25454:2:46", + "nodeType": "YulIdentifier", + "src": "25454:2:46" + }, + "nativeSrc": "25454:30:46", + "nodeType": "YulFunctionCall", + "src": "25454:30:46" + }, + "nativeSrc": "25451:50:46", + "nodeType": "YulIf", + "src": "25451:50:46" + }, + { + "nativeSrc": "25510:25:46", + "nodeType": "YulAssignment", + "src": "25510:25:46", + "value": { + "arguments": [ + { + "name": "addr_1", + "nativeSrc": "25522:6:46", + "nodeType": "YulIdentifier", + "src": "25522:6:46" + }, + { + "kind": "number", + "nativeSrc": "25530:4:46", + "nodeType": "YulLiteral", + "src": "25530:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25518:3:46", + "nodeType": "YulIdentifier", + "src": "25518:3:46" + }, + "nativeSrc": "25518:17:46", + "nodeType": "YulFunctionCall", + "src": "25518:17:46" + }, + "variableNames": [ + { + "name": "addr", + "nativeSrc": "25510:4:46", + "nodeType": "YulIdentifier", + "src": "25510:4:46" + } + ] + }, + { + "body": { + "nativeSrc": "25586:16:46", + "nodeType": "YulBlock", + "src": "25586:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25595:1:46", + "nodeType": "YulLiteral", + "src": "25595:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "25598:1:46", + "nodeType": "YulLiteral", + "src": "25598:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "25588:6:46", + "nodeType": "YulIdentifier", + "src": "25588:6:46" + }, + "nativeSrc": "25588:12:46", + "nodeType": "YulFunctionCall", + "src": "25588:12:46" + }, + "nativeSrc": "25588:12:46", + "nodeType": "YulExpressionStatement", + "src": "25588:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "addr", + "nativeSrc": "25551:4:46", + "nodeType": "YulIdentifier", + "src": "25551:4:46" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "25561:12:46", + "nodeType": "YulIdentifier", + "src": "25561:12:46" + }, + "nativeSrc": "25561:14:46", + "nodeType": "YulFunctionCall", + "src": "25561:14:46" + }, + { + "name": "length", + "nativeSrc": "25577:6:46", + "nodeType": "YulIdentifier", + "src": "25577:6:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "25557:3:46", + "nodeType": "YulIdentifier", + "src": "25557:3:46" + }, + "nativeSrc": "25557:27:46", + "nodeType": "YulFunctionCall", + "src": "25557:27:46" + } + ], + "functionName": { + "name": "sgt", + "nativeSrc": "25547:3:46", + "nodeType": "YulIdentifier", + "src": "25547:3:46" + }, + "nativeSrc": "25547:38:46", + "nodeType": "YulFunctionCall", + "src": "25547:38:46" + }, + "nativeSrc": "25544:58:46", + "nodeType": "YulIf", + "src": "25544:58:46" + } + ] + }, + "name": "access_calldata_tail_t_string_calldata_ptr", + "nativeSrc": "25086:522:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base_ref", + "nativeSrc": "25138:8:46", + "nodeType": "YulTypedName", + "src": "25138:8:46", + "type": "" + }, + { + "name": "ptr_to_tail", + "nativeSrc": "25148:11:46", + "nodeType": "YulTypedName", + "src": "25148:11:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "addr", + "nativeSrc": "25164:4:46", + "nodeType": "YulTypedName", + "src": "25164:4:46", + "type": "" + }, + { + "name": "length", + "nativeSrc": "25170:6:46", + "nodeType": "YulTypedName", + "src": "25170:6:46", + "type": "" + } + ], + "src": "25086:522:46" + }, + { + "body": { + "nativeSrc": "25762:124:46", + "nodeType": "YulBlock", + "src": "25762:124:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25785:3:46", + "nodeType": "YulIdentifier", + "src": "25785:3:46" + }, + { + "name": "value0", + "nativeSrc": "25790:6:46", + "nodeType": "YulIdentifier", + "src": "25790:6:46" + }, + { + "name": "value1", + "nativeSrc": "25798:6:46", + "nodeType": "YulIdentifier", + "src": "25798:6:46" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "25772:12:46", + "nodeType": "YulIdentifier", + "src": "25772:12:46" + }, + "nativeSrc": "25772:33:46", + "nodeType": "YulFunctionCall", + "src": "25772:33:46" + }, + "nativeSrc": "25772:33:46", + "nodeType": "YulExpressionStatement", + "src": "25772:33:46" + }, + { + "nativeSrc": "25814:26:46", + "nodeType": "YulVariableDeclaration", + "src": "25814:26:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "25828:3:46", + "nodeType": "YulIdentifier", + "src": "25828:3:46" + }, + { + "name": "value1", + "nativeSrc": "25833:6:46", + "nodeType": "YulIdentifier", + "src": "25833:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25824:3:46", + "nodeType": "YulIdentifier", + "src": "25824:3:46" + }, + "nativeSrc": "25824:16:46", + "nodeType": "YulFunctionCall", + "src": "25824:16:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "25818:2:46", + "nodeType": "YulTypedName", + "src": "25818:2:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "25856:2:46", + "nodeType": "YulIdentifier", + "src": "25856:2:46" + }, + { + "kind": "number", + "nativeSrc": "25860:1:46", + "nodeType": "YulLiteral", + "src": "25860:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25849:6:46", + "nodeType": "YulIdentifier", + "src": "25849:6:46" + }, + "nativeSrc": "25849:13:46", + "nodeType": "YulFunctionCall", + "src": "25849:13:46" + }, + "nativeSrc": "25849:13:46", + "nodeType": "YulExpressionStatement", + "src": "25849:13:46" + }, + { + "nativeSrc": "25871:9:46", + "nodeType": "YulAssignment", + "src": "25871:9:46", + "value": { + "name": "_1", + "nativeSrc": "25878:2:46", + "nodeType": "YulIdentifier", + "src": "25878:2:46" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "25871:3:46", + "nodeType": "YulIdentifier", + "src": "25871:3:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "25613:273:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "25730:3:46", + "nodeType": "YulTypedName", + "src": "25730:3:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "25735:6:46", + "nodeType": "YulTypedName", + "src": "25735:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "25743:6:46", + "nodeType": "YulTypedName", + "src": "25743:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "25754:3:46", + "nodeType": "YulTypedName", + "src": "25754:3:46", + "type": "" + } + ], + "src": "25613:273:46" + }, + { + "body": { + "nativeSrc": "26050:330:46", + "nodeType": "YulBlock", + "src": "26050:330:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26067:9:46", + "nodeType": "YulIdentifier", + "src": "26067:9:46" + }, + { + "kind": "number", + "nativeSrc": "26078:2:46", + "nodeType": "YulLiteral", + "src": "26078:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26060:6:46", + "nodeType": "YulIdentifier", + "src": "26060:6:46" + }, + "nativeSrc": "26060:21:46", + "nodeType": "YulFunctionCall", + "src": "26060:21:46" + }, + "nativeSrc": "26060:21:46", + "nodeType": "YulExpressionStatement", + "src": "26060:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26101:9:46", + "nodeType": "YulIdentifier", + "src": "26101:9:46" + }, + { + "kind": "number", + "nativeSrc": "26112:2:46", + "nodeType": "YulLiteral", + "src": "26112:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26097:3:46", + "nodeType": "YulIdentifier", + "src": "26097:3:46" + }, + "nativeSrc": "26097:18:46", + "nodeType": "YulFunctionCall", + "src": "26097:18:46" + }, + { + "name": "value1", + "nativeSrc": "26117:6:46", + "nodeType": "YulIdentifier", + "src": "26117:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26090:6:46", + "nodeType": "YulIdentifier", + "src": "26090:6:46" + }, + "nativeSrc": "26090:34:46", + "nodeType": "YulFunctionCall", + "src": "26090:34:46" + }, + "nativeSrc": "26090:34:46", + "nodeType": "YulExpressionStatement", + "src": "26090:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26150:9:46", + "nodeType": "YulIdentifier", + "src": "26150:9:46" + }, + { + "kind": "number", + "nativeSrc": "26161:2:46", + "nodeType": "YulLiteral", + "src": "26161:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26146:3:46", + "nodeType": "YulIdentifier", + "src": "26146:3:46" + }, + "nativeSrc": "26146:18:46", + "nodeType": "YulFunctionCall", + "src": "26146:18:46" + }, + { + "name": "value0", + "nativeSrc": "26166:6:46", + "nodeType": "YulIdentifier", + "src": "26166:6:46" + }, + { + "name": "value1", + "nativeSrc": "26174:6:46", + "nodeType": "YulIdentifier", + "src": "26174:6:46" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "26133:12:46", + "nodeType": "YulIdentifier", + "src": "26133:12:46" + }, + "nativeSrc": "26133:48:46", + "nodeType": "YulFunctionCall", + "src": "26133:48:46" + }, + "nativeSrc": "26133:48:46", + "nodeType": "YulExpressionStatement", + "src": "26133:48:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26205:9:46", + "nodeType": "YulIdentifier", + "src": "26205:9:46" + }, + { + "name": "value1", + "nativeSrc": "26216:6:46", + "nodeType": "YulIdentifier", + "src": "26216:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26201:3:46", + "nodeType": "YulIdentifier", + "src": "26201:3:46" + }, + "nativeSrc": "26201:22:46", + "nodeType": "YulFunctionCall", + "src": "26201:22:46" + }, + { + "kind": "number", + "nativeSrc": "26225:2:46", + "nodeType": "YulLiteral", + "src": "26225:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26197:3:46", + "nodeType": "YulIdentifier", + "src": "26197:3:46" + }, + "nativeSrc": "26197:31:46", + "nodeType": "YulFunctionCall", + "src": "26197:31:46" + }, + { + "kind": "number", + "nativeSrc": "26230:1:46", + "nodeType": "YulLiteral", + "src": "26230:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26190:6:46", + "nodeType": "YulIdentifier", + "src": "26190:6:46" + }, + "nativeSrc": "26190:42:46", + "nodeType": "YulFunctionCall", + "src": "26190:42:46" + }, + "nativeSrc": "26190:42:46", + "nodeType": "YulExpressionStatement", + "src": "26190:42:46" + }, + { + "nativeSrc": "26241:62:46", + "nodeType": "YulAssignment", + "src": "26241:62:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26257:9:46", + "nodeType": "YulIdentifier", + "src": "26257:9:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "26276:6:46", + "nodeType": "YulIdentifier", + "src": "26276:6:46" + }, + { + "kind": "number", + "nativeSrc": "26284:2:46", + "nodeType": "YulLiteral", + "src": "26284:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26272:3:46", + "nodeType": "YulIdentifier", + "src": "26272:3:46" + }, + "nativeSrc": "26272:15:46", + "nodeType": "YulFunctionCall", + "src": "26272:15:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26293:2:46", + "nodeType": "YulLiteral", + "src": "26293:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "26289:3:46", + "nodeType": "YulIdentifier", + "src": "26289:3:46" + }, + "nativeSrc": "26289:7:46", + "nodeType": "YulFunctionCall", + "src": "26289:7:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "26268:3:46", + "nodeType": "YulIdentifier", + "src": "26268:3:46" + }, + "nativeSrc": "26268:29:46", + "nodeType": "YulFunctionCall", + "src": "26268:29:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26253:3:46", + "nodeType": "YulIdentifier", + "src": "26253:3:46" + }, + "nativeSrc": "26253:45:46", + "nodeType": "YulFunctionCall", + "src": "26253:45:46" + }, + { + "kind": "number", + "nativeSrc": "26300:2:46", + "nodeType": "YulLiteral", + "src": "26300:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26249:3:46", + "nodeType": "YulIdentifier", + "src": "26249:3:46" + }, + "nativeSrc": "26249:54:46", + "nodeType": "YulFunctionCall", + "src": "26249:54:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "26241:4:46", + "nodeType": "YulIdentifier", + "src": "26241:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26323:9:46", + "nodeType": "YulIdentifier", + "src": "26323:9:46" + }, + { + "kind": "number", + "nativeSrc": "26334:4:46", + "nodeType": "YulLiteral", + "src": "26334:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26319:3:46", + "nodeType": "YulIdentifier", + "src": "26319:3:46" + }, + "nativeSrc": "26319:20:46", + "nodeType": "YulFunctionCall", + "src": "26319:20:46" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "26345:6:46", + "nodeType": "YulIdentifier", + "src": "26345:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26361:3:46", + "nodeType": "YulLiteral", + "src": "26361:3:46", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "26366:1:46", + "nodeType": "YulLiteral", + "src": "26366:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "26357:3:46", + "nodeType": "YulIdentifier", + "src": "26357:3:46" + }, + "nativeSrc": "26357:11:46", + "nodeType": "YulFunctionCall", + "src": "26357:11:46" + }, + { + "kind": "number", + "nativeSrc": "26370:1:46", + "nodeType": "YulLiteral", + "src": "26370:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "26353:3:46", + "nodeType": "YulIdentifier", + "src": "26353:3:46" + }, + "nativeSrc": "26353:19:46", + "nodeType": "YulFunctionCall", + "src": "26353:19:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "26341:3:46", + "nodeType": "YulIdentifier", + "src": "26341:3:46" + }, + "nativeSrc": "26341:32:46", + "nodeType": "YulFunctionCall", + "src": "26341:32:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26312:6:46", + "nodeType": "YulIdentifier", + "src": "26312:6:46" + }, + "nativeSrc": "26312:62:46", + "nodeType": "YulFunctionCall", + "src": "26312:62:46" + }, + "nativeSrc": "26312:62:46", + "nodeType": "YulExpressionStatement", + "src": "26312:62:46" + } + ] + }, + "name": "abi_encode_tuple_t_string_calldata_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed", + "nativeSrc": "25891:489:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "26003:9:46", + "nodeType": "YulTypedName", + "src": "26003:9:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "26014:6:46", + "nodeType": "YulTypedName", + "src": "26014:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "26022:6:46", + "nodeType": "YulTypedName", + "src": "26022:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "26030:6:46", + "nodeType": "YulTypedName", + "src": "26030:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "26041:4:46", + "nodeType": "YulTypedName", + "src": "26041:4:46", + "type": "" + } + ], + "src": "25891:489:46" + }, + { + "body": { + "nativeSrc": "26433:174:46", + "nodeType": "YulBlock", + "src": "26433:174:46", + "statements": [ + { + "nativeSrc": "26443:16:46", + "nodeType": "YulAssignment", + "src": "26443:16:46", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "26454:1:46", + "nodeType": "YulIdentifier", + "src": "26454:1:46" + }, + { + "name": "y", + "nativeSrc": "26457:1:46", + "nodeType": "YulIdentifier", + "src": "26457:1:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26450:3:46", + "nodeType": "YulIdentifier", + "src": "26450:3:46" + }, + "nativeSrc": "26450:9:46", + "nodeType": "YulFunctionCall", + "src": "26450:9:46" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "26443:3:46", + "nodeType": "YulIdentifier", + "src": "26443:3:46" + } + ] + }, + { + "body": { + "nativeSrc": "26490:111:46", + "nodeType": "YulBlock", + "src": "26490:111:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26511:1:46", + "nodeType": "YulLiteral", + "src": "26511:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26518:3:46", + "nodeType": "YulLiteral", + "src": "26518:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "26523:10:46", + "nodeType": "YulLiteral", + "src": "26523:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "26514:3:46", + "nodeType": "YulIdentifier", + "src": "26514:3:46" + }, + "nativeSrc": "26514:20:46", + "nodeType": "YulFunctionCall", + "src": "26514:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26504:6:46", + "nodeType": "YulIdentifier", + "src": "26504:6:46" + }, + "nativeSrc": "26504:31:46", + "nodeType": "YulFunctionCall", + "src": "26504:31:46" + }, + "nativeSrc": "26504:31:46", + "nodeType": "YulExpressionStatement", + "src": "26504:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26555:1:46", + "nodeType": "YulLiteral", + "src": "26555:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "26558:4:46", + "nodeType": "YulLiteral", + "src": "26558:4:46", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26548:6:46", + "nodeType": "YulIdentifier", + "src": "26548:6:46" + }, + "nativeSrc": "26548:15:46", + "nodeType": "YulFunctionCall", + "src": "26548:15:46" + }, + "nativeSrc": "26548:15:46", + "nodeType": "YulExpressionStatement", + "src": "26548:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26583:1:46", + "nodeType": "YulLiteral", + "src": "26583:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "26586:4:46", + "nodeType": "YulLiteral", + "src": "26586:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "26576:6:46", + "nodeType": "YulIdentifier", + "src": "26576:6:46" + }, + "nativeSrc": "26576:15:46", + "nodeType": "YulFunctionCall", + "src": "26576:15:46" + }, + "nativeSrc": "26576:15:46", + "nodeType": "YulExpressionStatement", + "src": "26576:15:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "26474:1:46", + "nodeType": "YulIdentifier", + "src": "26474:1:46" + }, + { + "name": "sum", + "nativeSrc": "26477:3:46", + "nodeType": "YulIdentifier", + "src": "26477:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "26471:2:46", + "nodeType": "YulIdentifier", + "src": "26471:2:46" + }, + "nativeSrc": "26471:10:46", + "nodeType": "YulFunctionCall", + "src": "26471:10:46" + }, + "nativeSrc": "26468:133:46", + "nodeType": "YulIf", + "src": "26468:133:46" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "26385:222:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "26416:1:46", + "nodeType": "YulTypedName", + "src": "26416:1:46", + "type": "" + }, + { + "name": "y", + "nativeSrc": "26419:1:46", + "nodeType": "YulTypedName", + "src": "26419:1:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "26425:3:46", + "nodeType": "YulTypedName", + "src": "26425:3:46", + "type": "" + } + ], + "src": "26385:222:46" + }, + { + "body": { + "nativeSrc": "26711:101:46", + "nodeType": "YulBlock", + "src": "26711:101:46", + "statements": [ + { + "nativeSrc": "26721:26:46", + "nodeType": "YulAssignment", + "src": "26721:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26733:9:46", + "nodeType": "YulIdentifier", + "src": "26733:9:46" + }, + { + "kind": "number", + "nativeSrc": "26744:2:46", + "nodeType": "YulLiteral", + "src": "26744:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26729:3:46", + "nodeType": "YulIdentifier", + "src": "26729:3:46" + }, + "nativeSrc": "26729:18:46", + "nodeType": "YulFunctionCall", + "src": "26729:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "26721:4:46", + "nodeType": "YulIdentifier", + "src": "26721:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26763:9:46", + "nodeType": "YulIdentifier", + "src": "26763:9:46" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "26778:6:46", + "nodeType": "YulIdentifier", + "src": "26778:6:46" + }, + { + "kind": "number", + "nativeSrc": "26786:18:46", + "nodeType": "YulLiteral", + "src": "26786:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "26774:3:46", + "nodeType": "YulIdentifier", + "src": "26774:3:46" + }, + "nativeSrc": "26774:31:46", + "nodeType": "YulFunctionCall", + "src": "26774:31:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26756:6:46", + "nodeType": "YulIdentifier", + "src": "26756:6:46" + }, + "nativeSrc": "26756:50:46", + "nodeType": "YulFunctionCall", + "src": "26756:50:46" + }, + "nativeSrc": "26756:50:46", + "nodeType": "YulExpressionStatement", + "src": "26756:50:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", + "nativeSrc": "26612:200:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "26680:9:46", + "nodeType": "YulTypedName", + "src": "26680:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "26691:6:46", + "nodeType": "YulTypedName", + "src": "26691:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "26702:4:46", + "nodeType": "YulTypedName", + "src": "26702:4:46", + "type": "" + } + ], + "src": "26612:200:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_uint64(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint64(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint64(headStart)\n }\n function abi_encode_bool(value, pos)\n {\n mstore(pos, iszero(iszero(value)))\n }\n function abi_encode_struct_Proof(value, pos) -> end\n {\n let tail := add(pos, 0x0100)\n mstore(pos, mload(value))\n mstore(add(pos, 0x20), iszero(iszero(mload(add(value, 0x20)))))\n let memberValue0 := mload(add(value, 0x40))\n mstore(add(pos, 0x40), 0x0100)\n let pos_1 := tail\n let length := mload(memberValue0)\n mstore(tail, length)\n pos_1 := add(pos, 288)\n let srcPtr := add(memberValue0, 0x20)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos_1, mload(srcPtr))\n pos_1 := add(pos_1, 0x20)\n srcPtr := add(srcPtr, 0x20)\n }\n mstore(add(pos, 0x60), mload(add(value, 0x60)))\n mstore(add(pos, 0x80), mload(add(value, 0x80)))\n let memberValue0_1 := mload(add(value, 0xa0))\n abi_encode_bool(memberValue0_1, add(pos, 0xa0))\n mstore(add(pos, 0xc0), mload(add(value, 0xc0)))\n mstore(add(pos, 0xe0), mload(add(value, 0xe0)))\n end := pos_1\n }\n function abi_encode_struct_StateInfo(value, pos)\n {\n mstore(pos, mload(value))\n mstore(add(pos, 0x20), mload(add(value, 0x20)))\n mstore(add(pos, 0x40), mload(add(value, 0x40)))\n mstore(add(pos, 0x60), mload(add(value, 0x60)))\n }\n function abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 160)\n tail := abi_encode_struct_Proof(value0, add(headStart, 160))\n abi_encode_struct_StateInfo(value1, add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n value0 := value\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 abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n }\n function abi_decode_tuple_t_uint256t_uint64(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n value1 := abi_decode_uint64(add(headStart, 32))\n }\n function abi_encode_tuple_t_struct$_CredentialStatus_$133_memory_ptr__to_t_struct$_CredentialStatus_$133_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n abi_encode_struct_StateInfo(mload(value0), add(headStart, 32))\n let memberValue0 := mload(add(value0, 32))\n mstore(add(headStart, 0xa0), 0xa0)\n tail := abi_encode_struct_Proof(memberValue0, add(headStart, 192))\n }\n function abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_struct_Proof(value0, add(headStart, 32))\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n }\n function abi_decode_array_uint256_dyn_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint256t_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_uint256t_uint256t_addresst_struct$_StateInfo_$14813_calldata_ptrt_address(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9\n {\n let _1 := sub(dataEnd, headStart)\n if slt(_1, 288) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value1_1, value2_1 := abi_decode_array_uint256_dyn_calldata(add(headStart, offset), dataEnd)\n value1 := value1_1\n value2 := value2_1\n let offset_1 := calldataload(add(headStart, 64))\n if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_array_uint256_dyn_calldata(add(headStart, offset_1), dataEnd)\n value3 := value3_1\n value4 := value4_1\n let value_1 := 0\n value_1 := calldataload(add(headStart, 96))\n value5 := value_1\n let value_2 := 0\n value_2 := calldataload(add(headStart, 128))\n value6 := value_2\n value7 := abi_decode_address(add(headStart, 160))\n if slt(add(_1, not(191)), 64) { revert(0, 0) }\n value8 := add(headStart, 192)\n value9 := abi_decode_address(add(headStart, 256))\n }\n function abi_decode_bytes2(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, shl(240, 65535)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_bytes2(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_bytes2(add(headStart, 32))\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_2962() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 64)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory_2963() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 0x0100)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function abi_decode_string(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n let src := add(offset, 0x20)\n let array_1 := 0\n let size := array_1\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n array_1 := allocate_memory(size)\n mstore(array_1, length)\n if gt(add(src, length), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), src, length)\n mstore(add(add(array_1, length), 0x20), 0)\n array := array_1\n }\n function abi_decode_tuple_t_struct$_CredentialProof_$14818_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if slt(sub(dataEnd, _1), 64) { revert(0, 0) }\n let value := allocate_memory_2962()\n let offset_1 := calldataload(_1)\n if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n mstore(value, abi_decode_string(add(_1, offset_1), dataEnd))\n let offset_2 := calldataload(add(_1, 32))\n if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n mstore(add(value, 32), abi_decode_string(add(_1, offset_2), dataEnd))\n value0 := value\n let offset_3 := calldataload(add(headStart, 32))\n if gt(offset_3, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_string(add(headStart, offset_3), dataEnd)\n }\n function abi_decode_tuple_t_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_array_uint256_dyn_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_uint256t_uint256t_uint64(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n value2 := abi_decode_uint64(add(headStart, 64))\n }\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_string(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_struct$_Roots_$1390_memory_ptr__to_t_struct$_Roots_$1390_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, mload(value0))\n mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n }\n function abi_decode_tuple_t_uint64t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint64(headStart)\n let value := 0\n value := calldataload(add(headStart, 32))\n value1 := value\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_array_uint256_dyn_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_array_uint256_dyn_calldata(add(headStart, offset_1), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n let length := mload(value0)\n mstore(add(headStart, 32), length)\n copy_memory_to_memory_with_cleanup(add(value0, 32), add(headStart, 64), length)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint64__to_t_uint256_t_uint64__fromStack_library_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n }\n function abi_decode_bool_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_array_uint256_dyn_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := mload(offset)\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n let _1 := shl(5, length)\n let dst := allocate_memory(add(_1, 0x20))\n let array_1 := dst\n mstore(dst, length)\n dst := add(dst, 0x20)\n let srcEnd := add(add(offset, _1), 0x20)\n if gt(srcEnd, end) { revert(0, 0) }\n let src := add(offset, 0x20)\n for { } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n let value := 0\n value := mload(src)\n mstore(dst, value)\n dst := add(dst, 0x20)\n }\n array := array_1\n }\n function abi_decode_struct_Proof_fromMemory(headStart, end) -> value\n {\n if slt(sub(end, headStart), 0x0100) { revert(0, 0) }\n value := allocate_memory_2963()\n let value_1 := 0\n value_1 := mload(headStart)\n mstore(value, value_1)\n mstore(add(value, 32), abi_decode_bool_fromMemory(add(headStart, 32)))\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n mstore(add(value, 64), abi_decode_array_uint256_dyn_fromMemory(add(headStart, offset), end))\n let value_2 := 0\n value_2 := mload(add(headStart, 96))\n mstore(add(value, 96), value_2)\n let value_3 := 0\n value_3 := mload(add(headStart, 128))\n mstore(add(value, 128), value_3)\n mstore(add(value, 160), abi_decode_bool_fromMemory(add(headStart, 160)))\n let value_4 := 0\n value_4 := mload(add(headStart, 192))\n mstore(add(value, 192), value_4)\n let value_5 := 0\n value_5 := mload(add(headStart, 224))\n mstore(add(value, 224), value_5)\n }\n function abi_decode_tuple_t_struct$_Proof_$2979_memory_ptrt_struct$_StateInfo_$1400_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n let _1 := sub(dataEnd, headStart)\n if slt(_1, 160) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_struct_Proof_fromMemory(add(headStart, offset), dataEnd)\n if slt(add(_1, not(31)), 0x80) { revert(0, 0) }\n let memPtr := 0\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 0x80)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n let value := 0\n value := mload(add(headStart, 32))\n mstore(memPtr, value)\n let value_1 := 0\n value_1 := mload(add(headStart, 64))\n mstore(add(memPtr, 32), value_1)\n let value_2 := 0\n value_2 := mload(add(headStart, 96))\n mstore(add(memPtr, 64), value_2)\n let value_3 := 0\n value_3 := mload(add(headStart, 0x80))\n mstore(add(memPtr, 96), value_3)\n value1 := memPtr\n }\n function abi_encode_tuple_t_struct$_Data_$1371_storage_ptr__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := 0\n value := mload(headStart)\n value0 := value\n }\n function abi_encode_tuple_t_uint256_t_uint64__to_t_uint256_t_uint64__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n }\n function abi_decode_tuple_t_struct$_Proof_$2979_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_struct_Proof_fromMemory(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_library_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_decode_tuple_t_bytes2(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_bytes2(headStart)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_address_t_address_t_uint256_t_bytes2__to_t_uint256_t_address_t_address_t_uint256_t_bytes2__fromStack_library_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), and(value4, shl(240, 65535)))\n }\n function abi_decode_array_uint256_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let size := 0\n let _1 := 0\n _1 := 0\n size := 64\n let dst := allocate_memory(64)\n let array_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 let value := 0\n value := mload(src)\n mstore(dst, value)\n dst := add(dst, 0x20)\n }\n array := array_1\n }\n function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$2_memory_ptrt_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptrt_array$_t_uint256_$2_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 288) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_array_uint256_dyn_fromMemory(add(headStart, offset), dataEnd)\n value1 := abi_decode_array_uint256_fromMemory(add(headStart, 32), dataEnd)\n if iszero(slt(add(headStart, 127), dataEnd)) { revert(0, 0) }\n let size := 0\n let _1 := 0\n _1 := 0\n size := 64\n let dst := allocate_memory(64)\n let array := dst\n let srcEnd := add(headStart, 224)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(headStart, 96)\n for { } lt(src, srcEnd) { src := add(src, size) }\n {\n mstore(dst, abi_decode_array_uint256_fromMemory(src, dataEnd))\n dst := add(dst, 32)\n }\n value2 := array\n value3 := abi_decode_array_uint256_fromMemory(srcEnd, dataEnd)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function abi_encode_array_uint256(value, pos)\n {\n pos := pos\n let srcPtr := value\n let i := 0\n for { } lt(i, 0x02) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, 0x20)\n srcPtr := add(srcPtr, 0x20)\n }\n }\n function abi_encode_tuple_t_array$_t_uint256_$2_memory_ptr_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_t_array$_t_uint256_$2_memory_ptr_t_array$_t_uint256_$12_memory_ptr__to_t_array$_t_uint256_$2_memory_ptr_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_t_array$_t_uint256_$2_memory_ptr_t_array$_t_uint256_$12_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 640)\n abi_encode_array_uint256(value0, headStart)\n let pos := add(headStart, 64)\n pos := pos\n let srcPtr := value1\n let i := 0\n for { } lt(i, 0x02) { i := add(i, 1) }\n {\n abi_encode_array_uint256(mload(srcPtr), pos)\n pos := add(pos, 64)\n srcPtr := add(srcPtr, 0x20)\n }\n abi_encode_array_uint256(value2, add(headStart, 192))\n let pos_1 := add(headStart, 256)\n pos_1 := pos_1\n let srcPtr_1 := value3\n let i_1 := 0\n for { } lt(i_1, 0x0c) { i_1 := add(i_1, 1) }\n {\n mstore(pos_1, mload(srcPtr_1))\n pos_1 := add(pos_1, 0x20)\n srcPtr_1 := add(srcPtr_1, 0x20)\n }\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_bool_fromMemory(headStart)\n }\n function abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint256__to_t_uint256_t_uint256__fromStack_library_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_stringliteral_b95c2f31a6045566300565f2774af75c15f58eae84f1e4dafcb6cd16a89e425e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Identity id mismatch\")\n tail := add(headStart, 96)\n }\n function abi_decode_tuple_t_struct$_Roots_$1390_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := slt(sub(dataEnd, headStart), 96)\n if _1 { revert(0, 0) }\n _1 := 0\n let memPtr := _1\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 96)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n let value := _1\n value := mload(headStart)\n mstore(memPtr, value)\n let value_1 := _1\n value_1 := mload(add(headStart, 32))\n mstore(add(memPtr, 32), value_1)\n let value_2 := _1\n value_2 := mload(add(headStart, 64))\n mstore(add(memPtr, 64), value_2)\n value0 := memPtr\n }\n function abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint64_t_uint256__to_t_uint256_t_uint64_t_uint256__fromStack_library_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n }\n function abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n end := _1\n }\n function abi_encode_tuple_t_string_calldata_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, 64)\n mstore(add(headStart, 64), value1)\n calldatacopy(add(headStart, 96), value0, value1)\n mstore(add(add(headStart, value1), 96), 0)\n tail := add(add(headStart, and(add(value1, 31), not(31))), 96)\n mstore(add(headStart, 0x20), and(value2, sub(shl(160, 1), 1)))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": { + "@iden3/contracts/lib/IdentityLib.sol": { + "IdentityLib": [ + { + "length": 20, + "start": 1758 + }, + { + "length": 20, + "start": 1899 + }, + { + "length": 20, + "start": 2505 + }, + { + "length": 20, + "start": 2719 + }, + { + "length": 20, + "start": 2981 + }, + { + "length": 20, + "start": 3616 + }, + { + "length": 20, + "start": 3725 + }, + { + "length": 20, + "start": 4675 + }, + { + "length": 20, + "start": 5159 + }, + { + "length": 20, + "start": 5354 + }, + { + "length": 20, + "start": 5793 + }, + { + "length": 20, + "start": 5872 + }, + { + "length": 20, + "start": 5997 + }, + { + "length": 20, + "start": 6137 + }, + { + "length": 20, + "start": 6223 + }, + { + "length": 20, + "start": 6384 + }, + { + "length": 20, + "start": 6936 + }, + { + "length": 20, + "start": 7044 + }, + { + "length": 20, + "start": 8625 + }, + { + "length": 20, + "start": 8863 + }, + { + "length": 20, + "start": 8971 + } + ] + } + }, + "object": "608060405234801561001057600080fd5b50600436106102d55760003560e01c80635d1ca63111610182578063c1e32733116100e9578063e30c3978116100a2578063f2fde38b1161007c578063f2fde38b1461061e578063f84c7c1e14610631578063f8ba8b3914610639578063ffa1ad741461064c57600080fd5b8063e30c3978146105f0578063efc8385a146105f8578063f221b8451461060b57600080fd5b8063c1e327331461059f578063c6365a3b146105b2578063da68a0b1146105ba578063dcdd17c4146105c2578063e23a845a146105d5578063e26ecb0b146105dd57600080fd5b8063ad5778c71161013b578063ad5778c71461050b578063b354c2d81461051e578063b37feda414610531578063b57a40cb14610544578063b5fff0ed14610557578063b8db68711461056a57600080fd5b80635d1ca631146104b8578063715018a6146104c057806379ba5097146104c85780638da5cb5b146104d05780639674cfa4146104f0578063aad72921146104f857600080fd5b80632e1e252f11610241578063406e8b4c116101fa5780634c240f34116101d45780634c240f3414610477578063523b81361461048a578063552c9b7e1461049257806358ada672146104a557600080fd5b8063406e8b4c1461043e57806343e5c52014610451578063443d75341461046457600080fd5b80632e1e252f146103ee578063310d0d5b14610401578063345f83ff146104145780633d59ec60146104275780633df432fc1461042f5780633f0c66481461043757600080fd5b806313e52ae71161029357806313e52ae7146103855780631b87278d1461038d57806326485063146103a05780632afab62f146103c05780632c1d3204146103d35780632d5c4f25146103db57600080fd5b806233058d146102da57806301c85c771461030457806301ffc9a71461031a578063035dfdfe1461033d578063110c96a71461035257806313364fc814610372575b600080fd5b6102ed6102e83660046124a9565b61067d565b6040516102fb929190612566565b60405180910390f35b61030c61074a565b6040519081526020016102fb565b61032d6103283660046125a9565b6107cf565b60405190151581526020016102fb565b61035061034b3660046125d3565b610806565b005b6103656103603660046125ec565b610874565b6040516102fb9190612618565b6103506103803660046125d3565b61089f565b61030c6108b8565b61035061039b3660046125d3565b6108c8565b6103b36103ae3660046124a9565b610993565b6040516102fb9190612665565b61032d6103ce3660046125d3565b610a2c565b61030c610a57565b6103b36103e9366004612678565b610a6a565b6103506103fc3660046125d3565b610b09565b6103b361040f366004612678565b610b70565b6103506104223660046126fc565b610bc7565b61030c610dec565b61030c610dff565b602861030c565b61035061044c3660046127e2565b610e42565b61035061045f366004612913565b610edf565b6102ed6104723660046125d3565b6111ea565b6103506104853660046125d3565b611265565b61030c6112b1565b6103506104a03660046129da565b6112c4565b61032d6104b33660046125d3565b6112da565b61030c6112fb565b610350611305565b610350611319565b6104d8611361565b6040516001600160a01b0390911681526020016102fb565b61030c611396565b610365610506366004612a1b565b6113a9565b6104d8610519366004612a50565b6115c2565b61035061052c3660046125d3565b6115fc565b6102ed61053f3660046125d3565b611648565b6103b36105523660046125d3565b6116c3565b6103506105653660046129da565b611711565b61057d6105783660046125d3565b611723565b60408051825181526020808401519082015291810151908201526060016102fb565b6103b36105ad3660046125d3565b6117cb565b61030c61181b565b61030c61182e565b6103506105d03660046125d3565b611871565b61030c6118a0565b6103b36105eb366004612a84565b6118b3565b6104d8611912565b61032d6106063660046125d3565b61193b565b6103506106193660046125d3565b61195c565b61035061062c366004612aae565b6119bb565b61032d611a40565b610350610647366004612ac9565b611a56565b61067060405180604001604052806005815260200164312e302e3360d81b81525081565b6040516102fb9190612b5c565b6106856123b8565b6106b06040518060800160405280600081526020016000815260200160008152602001600081525090565b6106b8611a70565b604051631f17004d60e31b815260048101919091526001600160401b038416602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__9063f8b80268906044015b600060405180830381865af4158015610719573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526107419190810190612cbf565b91509150915091565b6000610754611a70565b60405163765c2c6160e01b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__9063765c2c61906024015b602060405180830381865af41580156107a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107ca9190612d63565b905090565b60006001600160e01b03198216635d1ca63160e01b148061080057506301ffc9a760e01b6001600160e01b03198316145b92915050565b61080e611a94565b6000610818611ac6565b600083815260058201602052604090819020805460ff19166001179055519091507f192522987419be1c06ca88238df20a35b84c7a5025bbf1e244fac876d2d320ee906108689084815260200190565b60405180910390a15050565b61087c612401565b6000610886611a70565b6001015490506108978482856113a9565b949350505050565b6108a7611a94565b60006108b1611ac6565b9190915550565b60006108c2611ac6565b54919050565b6108d0611a94565b60006108da611ac6565b60008381526006820160205260408120549192506001600160401b039091169081900361091a576040516327522baf60e01b815260040160405180910390fd5b61092381611aea565b600083815260068301602052604090819020805467ffffffffffffffff19169055517f725d312746be14d750d0493aa7960a5aca3c30f98f74b0e07afc8f1a36b355c29061098690859084909182526001600160401b0316602082015260400190565b60405180910390a1505050565b61099b6123b8565b6109a3611a70565b604051637d0aba4f60e01b815260048101919091526001600160401b038316602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__90637d0aba4f906044015b600060405180830381865af4158015610a04573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526108009190810190612d7c565b600080610a37611ac6565b6000938452600601602052505060409020546001600160401b0316151590565b6000610a61611ac6565b60020154905090565b610a726123b8565b610a7a611a70565b60405163d55da6a360e01b81526004810191909152602481018490526044810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063d55da6a3906064015b600060405180830381865af4158015610ada573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b029190810190612d7c565b9392505050565b610b11611a94565b6000610b1b611ac6565b600083815260078201602052604090205490915060ff16610b575760405163dbbaa55f60e01b8152600481018390526024015b60405180910390fd5b600091825260070160205260409020805460ff19169055565b610b786123b8565b610b80611a70565b604051636ac0c5c760e11b81526004810191909152602481018490526044810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063d5818b8e90606401610abd565b6000610bd1611bd4565b805490915060ff600160401b82041615906001600160401b0316600081158015610bf85750825b90506000826001600160401b03166001148015610c145750303b155b905081158015610c22575080155b15610c405760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c6a57845460ff60401b1916600160401b1785555b6001600160a01b038816610c915760405163043103a360e21b815260040160405180910390fd5b6000610ca06020890189612aae565b6001600160a01b031603610cc757604051637eb887b360e01b815260040160405180910390fd5b610ce7610cd76020890189612aae565b61044c60408a0160208b01612db0565b610cf086611bfd565b6000610cfa611ac6565b90508f81600001819055508a816001018190555089816002018190555088816004016040518060400160405280600f81526020016e616e6f6e5f616164686161725f763160881b815250604051610d519190612dcb565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b0319909216919091179055610d8a8f8f611c0e565b610d948d8d611cc4565b508315610ddb57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050505050565b6000610df6611a70565b60010154919050565b6000610e09611a70565b604051631b8bf99b60e21b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90636e2fe66c90602401610789565b610e4a611a70565b6040516359a6069160e01b815260048101919091526001600160a01b0383166024820152306044820152602860648201526001600160f01b03198216608482015273__$068aad146bf104111ba65c4a1de2cd0e23$__906359a606919060a4015b60006040518083038186803b158015610ec357600080fd5b505af4158015610ed7573d6000803e3d6000fd5b505050505050565b815151600003610f055781516040516302a47c2f60e31b8152610b4e9190600401612b5c565b6000806000808560200151806020019051810190610f239190612e39565b93509350935093506000604051806080016040528085815260200184815260200183815260200160405180610180016040528088600081518110610f6957610f69612ef3565b6020026020010151815260200188600181518110610f8957610f89612ef3565b6020026020010151815260200188600281518110610fa957610fa9612ef3565b6020026020010151815260200188600381518110610fc957610fc9612ef3565b6020026020010151815260200188600481518110610fe957610fe9612ef3565b602002602001015181526020018860058151811061100957611009612ef3565b602002602001015181526020018860068151811061102957611029612ef3565b602002602001015181526020018860078151811061104957611049612ef3565b602002602001015181526020018860088151811061106957611069612ef3565b602002602001015181526020018860098151811061108957611089612ef3565b6020026020010151815260200188600a815181106110a9576110a9612ef3565b6020026020010151815260200188600b815181106110c9576110c9612ef3565b6020026020010151815250815250905060006110e3611ac6565b905060008160040189600001516040516110fd9190612dcb565b908152604051908190036020019020546001600160a01b0316905080611136576040516301dcf1ab60e31b815260040160405180910390fd5b806001600160a01b0316638cbac0fa84600001518560200151866040015187606001516040518563ffffffff1660e01b81526004016111789493929190612f2c565b602060405180830381865afa158015611195573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111b99190612fb1565b6111d65760405163b4b32e6f60e01b815260040160405180910390fd5b6111df83611d25565b505050505050505050565b6111f26123b8565b61121d6040518060800160405280600081526020016000815260200160008152602001600081525090565b611225611a70565b60405163a3018d7960e01b815260048101919091526024810184905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063a3018d79906044016106fc565b61126d611a94565b6000611277611ac6565b600381018390556040518381529091507fb69b4c35c29def0ac05e4ac2258986b58de5ae03feeea1802c95f4e0b5794cf190602001610868565b60006112bb611a70565b609a0154919050565b6112cc611a94565b6112d68282611c0e565b5050565b60006112e4611ac6565b600092835260050160205250604090205460ff1690565b60006108c2611a70565b61130d611a94565b6113176000611db2565b565b3380611323611912565b6001600160a01b0316146113555760405163118cdaa760e01b81526001600160a01b0382166004820152602401610b4e565b61135e81611db2565b50565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b60006113a0611a70565b609b0154919050565b6113b1612401565b6113b9611a70565b5484146113ff5760405162461bcd60e51b8152602060048201526014602482015273092c8cadce8d2e8f240d2c840dad2e6dac2e8c6d60631b6044820152606401610b4e565b6000611409611a70565b604051630b1a9cd360e01b815260048101919091526024810185905273__$068aad146bf104111ba65c4a1de2cd0e23$__90630b1a9cd390604401606060405180830381865af4158015611461573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114859190612fcc565b6040805160808101825286815282516020808301919091528301518183015290820151606082015290915060006114ba611a70565b6020840151604051630b2bcd1b60e11b815260048101929092526001600160401b0387166024830152604482015273__$068aad146bf104111ba65c4a1de2cd0e23$__906316579a3690606401600060405180830381865af4158015611524573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261154c9190810190612d7c565b6040805161010081018252825181526020808401511515818301528284015182840152606080850151908301526080808501519083015260a08085015115159083015260c0808501519083015260e093840151938201939093528151808301909252938152908101929092525095945050505050565b60006115cc611ac6565b600401826040516115dd9190612dcb565b908152604051908190036020019020546001600160a01b031692915050565b611604611a94565b600061160e611ac6565b600281018390556040518381529091507ff007a02ba428e63fa98b65269e70f9a9db847e0a839049a2f31f06928226773490602001610868565b6116506123b8565b61167b6040518060800160405280600081526020016000815260200160008152602001600081525090565b611683611a70565b604051636ad1d8a760e11b815260048101919091526024810184905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063d5a3b14e906044016106fc565b6116cb6123b8565b6116d3611a70565b604051620cf08960e41b815260048101919091526024810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__9062cf0890906044016109e7565b611719611a94565b6112d68282611cc4565b61174760405180606001604052806000815260200160008152602001600081525090565b61174f611a70565b604051630b1a9cd360e01b815260048101919091526024810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__90630b1a9cd390604401606060405180830381865af41580156117a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108009190612fcc565b6117d36123b8565b6117db611a70565b6040516397ac539160e01b815260048101919091526024810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__906397ac5391906044016109e7565b6000611825611a70565b609c0154919050565b6000611838611a70565b604051631e75e7f360e01b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90631e75e7f390602401610789565b611879611a94565b6000611883611ac6565b60009283526007016020525060409020805460ff19166001179055565b60006118aa611ac6565b60010154905090565b6118bb6123b8565b6118c3611a70565b604051630b2bcd1b60e11b815260048101919091526001600160401b03841660248201526044810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__906316579a3690606401610abd565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c00611386565b6000611945611ac6565b600092835260070160205250604090205460ff1690565b611964611a94565b600061196e611ac6565b600083815260058201602052604090205490915060ff166119a2576040516356b6133160e11b815260040160405180910390fd5b600091825260050160205260409020805460ff19169055565b6119c3611a94565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b0383169081178255611a07611361565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6000611a4a611a70565b6002015460ff16919050565b611a5e611a94565b611a6a84848484611dea565b50505050565b7f3018a310c36c4f8228f09bf3b1822685cf0971daa8265a58ca807c4a4daba40090565b33611a9d611361565b6001600160a01b0316146113175760405163118cdaa760e01b8152336004820152602401610b4e565b7f45045675f3efe2ec0ccfad8aa4c678179d3e20b95a34ad9d981fab6f95ba1e0090565b611af2611a70565b604051638ad7195d60e01b815260048101919091526001600160401b038216602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__90638ad7195d9060440160006040518083038186803b158015611b4d57600080fd5b505af4158015611b61573d6000803e3d6000fd5b50505050611b6d611a70565b60405163175ba3e960e11b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90632eb747d29060240160006040518083038186803b158015611bb957600080fd5b505af4158015611bcd573d6000803e3d6000fd5b5050505050565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610800565b611c05611f42565b61135e81611f67565b6000611c18611ac6565b905060005b82811015611a6a576001826005016000868685818110611c3f57611c3f612ef3565b90506020020135815260200190815260200160002060006101000a81548160ff0219169083151502179055507f192522987419be1c06ca88238df20a35b84c7a5025bbf1e244fac876d2d320ee848483818110611c9e57611c9e612ef3565b90506020020135604051611cb491815260200190565b60405180910390a1600101611c1d565b6000611cce611ac6565b905060005b82811015611a6a576001826007016000868685818110611cf557611cf5612ef3565b60209081029290920135835250810191909152604001600020805460ff1916911515919091179055600101611cd3565b60608181015180516020820151604083015193830151608084015160a085015160c086015160e08701516101008801516101208901516101408a0151610160909a0151989a97999798969795969495939492939192909190611d8f8a8a8d8f898d8d8a8a8f611f99565b611d998b82612121565b611da38a8a612272565b50505050505050505050505050565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556112d68261232d565b6000611df4611ac6565b9050838214611e20576040516355c5b3e360e11b81526004810185905260248101839052604401610b4e565b60005b84811015610ed757838382818110611e3d57611e3d612ef3565b9050602002016020810190611e529190612aae565b82600401878784818110611e6857611e68612ef3565b9050602002810190611e7a919061302b565b604051611e88929190613071565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790557f3f04312ecef010d1cb9901bb8602db84b7b52fddcef458e04bd8e83a7fc035a4868683818110611eea57611eea612ef3565b9050602002810190611efc919061302b565b868685818110611f0e57611f0e612ef3565b9050602002016020810190611f239190612aae565b604051611f3293929190613081565b60405180910390a1600101611e23565b611f4a61239e565b61131757604051631afcd79f60e31b815260040160405180910390fd5b611f6f611f42565b6001600160a01b03811661135557604051631e4fbdf760e01b815260006004820152602401610b4e565b6000611fa3611ac6565b90508a600003611fc657604051634978c15760e11b815260040160405180910390fd5b89600003611fe757604051639d34ba4f60e01b815260040160405180910390fd5b805487146120085760405163d2cee05560e01b815260040160405180910390fd5b8060020154841461202c576040516381d6039360e01b815260040160405180910390fd5b806003015483146120505760405163fe0c887b60e01b815260040160405180910390fd5b600081600101548761206291906130c2565b905080861461208e57604051633abb8c7960e11b81526004810182905260248101879052604401610b4e565b4286116120ae5760405163b67a771360e01b815260040160405180910390fd5b600089815260058301602052604090205460ff166120df576040516356b6133160e11b815260040160405180910390fd5b600083815260078301602052604090205460ff166121135760405163dbbaa55f60e01b815260048101849052602401610b4e565b505050505050505050505050565b806001600160401b0316600003612156576040516337f969b360e11b81526001600160401b0382166004820152602401610b4e565b6000612160611ac6565b60008481526006820160205260409020549091506001600160401b031680156122415761218b611a70565b604051638ad7195d60e01b815260048101919091526001600160401b038216602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__90638ad7195d9060440160006040518083038186803b1580156121e657600080fd5b505af41580156121fa573d6000803e3d6000fd5b5050604080518781526001600160401b03851660208201527f725d312746be14d750d0493aa7960a5aca3c30f98f74b0e07afc8f1a36b355c2935001905060405180910390a15b5060009283526006016020526040909120805467ffffffffffffffff19166001600160401b03909216919091179055565b61227a611a70565b6040516306fb157560e01b81526004810191909152602481018390526044810182905273__$068aad146bf104111ba65c4a1de2cd0e23$__906306fb15759060640160006040518083038186803b1580156122d457600080fd5b505af41580156122e8573d6000803e3d6000fd5b505050506122f4611a70565b60405163175ba3e960e11b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90632eb747d290602401610eab565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60006123a8611bd4565b54600160401b900460ff16919050565b6040518061010001604052806000815260200160001515815260200160608152602001600081526020016000815260200160001515815260200160008152602001600081525090565b60405180604001604052806124376040518060800160405280600081526020016000815260200160008152602001600081525090565b81526020016124886040518061010001604052806000815260200160001515815260200160608152602001600081526020016000815260200160001515815260200160008152602001600081525090565b905290565b80356001600160401b03811681146124a457600080fd5b919050565b6000602082840312156124bb57600080fd5b610b028261248d565b805182526020808201511515818401526040808301516101009185018290528051918501829052600092019082906101208601905b8083101561251c57835182526020820191506020840193506001830192506124f9565b50606085015160608701526080850151608087015260a0850151925061254660a087018415159052565b60c085015160c087015260e085015160e087015280935050505092915050565b60a08152600061257960a08301856124c4565b9050610b026020830184805182526020810151602083015260408101516040830152606081015160608301525050565b6000602082840312156125bb57600080fd5b81356001600160e01b031981168114610b0257600080fd5b6000602082840312156125e557600080fd5b5035919050565b600080604083850312156125ff57600080fd5b8235915061260f6020840161248d565b90509250929050565b6020815261264b602082018351805182526020810151602083015260408101516040830152606081015160608301525050565b6000602083015160a08084015261089760c08401826124c4565b602081526000610b0260208301846124c4565b6000806040838503121561268b57600080fd5b50508035926020909101359150565b60008083601f8401126126ac57600080fd5b5081356001600160401b038111156126c357600080fd5b6020830191508360208260051b85010111156126de57600080fd5b9250929050565b80356001600160a01b03811681146124a457600080fd5b6000806000806000806000806000808a8c0361012081121561271d57600080fd5b8b359a5060208c01356001600160401b0381111561273a57600080fd5b6127468e828f0161269a565b909b5099505060408c01356001600160401b0381111561276557600080fd5b6127718e828f0161269a565b90995097505060608c0135955060808c0135945061279160a08d016126e5565b9350604060bf19820112156127a557600080fd5b5060c08b0191506127b96101008c016126e5565b90509295989b9194979a5092959850565b80356001600160f01b0319811681146124a457600080fd5b600080604083850312156127f557600080fd5b6127fe836126e5565b915061260f602084016127ca565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b03811182821017156128445761284461280c565b60405290565b60405161010081016001600160401b03811182821017156128445761284461280c565b604051601f8201601f191681016001600160401b03811182821017156128955761289561280c565b604052919050565b600082601f8301126128ae57600080fd5b8135602083016000806001600160401b038411156128ce576128ce61280c565b50601f8301601f19166020016128e38161286d565b9150508281528583830111156128f857600080fd5b82826020830137600092810160200192909252509392505050565b6000806040838503121561292657600080fd5b82356001600160401b0381111561293c57600080fd5b83016040818603121561294e57600080fd5b612956612822565b81356001600160401b0381111561296c57600080fd5b6129788782850161289d565b82525060208201356001600160401b0381111561299457600080fd5b6129a08782850161289d565b602083015250809350505060208301356001600160401b038111156129c457600080fd5b6129d08582860161289d565b9150509250929050565b600080602083850312156129ed57600080fd5b82356001600160401b03811115612a0357600080fd5b612a0f8582860161269a565b90969095509350505050565b600080600060608486031215612a3057600080fd5b8335925060208401359150612a476040850161248d565b90509250925092565b600060208284031215612a6257600080fd5b81356001600160401b03811115612a7857600080fd5b6108978482850161289d565b60008060408385031215612a9757600080fd5b612aa08361248d565b946020939093013593505050565b600060208284031215612ac057600080fd5b610b02826126e5565b60008060008060408587031215612adf57600080fd5b84356001600160401b03811115612af557600080fd5b612b018782880161269a565b90955093505060208501356001600160401b03811115612b2057600080fd5b612b2c8782880161269a565b95989497509550505050565b60005b83811015612b53578181015183820152602001612b3b565b50506000910152565b6020815260008251806020840152612b7b816040850160208701612b38565b601f01601f19169190910160400192915050565b805180151581146124a457600080fd5b600082601f830112612bb057600080fd5b81516001600160401b03811115612bc957612bc961280c565b8060051b612bd96020820161286d565b91825260208185018101929081019086841115612bf557600080fd5b6020860192505b83831015612c17578251825260209283019290910190612bfc565b9695505050505050565b60006101008284031215612c3457600080fd5b612c3c61284a565b825181529050612c4e60208301612b8f565b602082015260408201516001600160401b03811115612c6c57600080fd5b612c7884828501612b9f565b6040830152506060828101519082015260808083015190820152612c9e60a08301612b8f565b60a082015260c0828101519082015260e09182015191810191909152919050565b60008082840360a0811215612cd357600080fd5b83516001600160401b03811115612ce957600080fd5b612cf586828701612c21565b9350506080601f1982011215612d0a57600080fd5b50604051608081016001600160401b0381118282101715612d2d57612d2d61280c565b60409081526020858101518352858201519083015260608086015191830191909152608090940151938101939093525092909150565b600060208284031215612d7557600080fd5b5051919050565b600060208284031215612d8e57600080fd5b81516001600160401b03811115612da457600080fd5b61089784828501612c21565b600060208284031215612dc257600080fd5b610b02826127ca565b60008251612ddd818460208701612b38565b9190910192915050565b600082601f830112612df857600080fd5b612e02604061286d565b806040840185811115612e1457600080fd5b845b81811015612e2e578051845260209384019301612e16565b509095945050505050565b6000806000806101208587031215612e5057600080fd5b84516001600160401b03811115612e6657600080fd5b612e7287828801612b9f565b945050612e828660208701612de7565b925085607f860112612e9357600080fd5b6040612e9e8161286d565b8060e0880189811115612eb057600080fd5b606089015b81811015612ed657612ec78b82612de7565b84526020909301928401612eb5565b50819550612ee48a82612de7565b94505050505092959194509250565b634e487b7160e01b600052603260045260246000fd5b8060005b6002811015611a6a578151845260209384019390910190600101612f0d565b6102808101612f3b8287612f09565b604082018560005b6002811015612f6d57612f57838351612f09565b6040929092019160209190910190600101612f43565b505050612f7d60c0830185612f09565b61010082018360005b600c811015612fa5578151835260209283019290910190600101612f86565b50505095945050505050565b600060208284031215612fc357600080fd5b610b0282612b8f565b60006060828403128015612fdf57600080fd5b50604051600090606081016001600160401b03811182821017156130055761300561280c565b604090815284518252602080860151908301529384015193810193909352509092915050565b6000808335601e1984360301811261304257600080fd5b8301803591506001600160401b0382111561305c57600080fd5b6020019150368190038213156126de57600080fd5b8183823760009101908152919050565b6040815282604082015282846060830137600060608483018101919091526001600160a01b03929092166020820152601f909201601f191690910101919050565b8082018082111561080057634e487b7160e01b600052601160045260246000fdfea26469706673582212207af07f575585db98c5935ebd7c28c901b4415e40af41d5263b2bfef8980403ce64736f6c634300081b0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2D5 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5D1CA631 GT PUSH2 0x182 JUMPI DUP1 PUSH4 0xC1E32733 GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xE30C3978 GT PUSH2 0xA2 JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x61E JUMPI DUP1 PUSH4 0xF84C7C1E EQ PUSH2 0x631 JUMPI DUP1 PUSH4 0xF8BA8B39 EQ PUSH2 0x639 JUMPI DUP1 PUSH4 0xFFA1AD74 EQ PUSH2 0x64C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x5F0 JUMPI DUP1 PUSH4 0xEFC8385A EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0xF221B845 EQ PUSH2 0x60B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC1E32733 EQ PUSH2 0x59F JUMPI DUP1 PUSH4 0xC6365A3B EQ PUSH2 0x5B2 JUMPI DUP1 PUSH4 0xDA68A0B1 EQ PUSH2 0x5BA JUMPI DUP1 PUSH4 0xDCDD17C4 EQ PUSH2 0x5C2 JUMPI DUP1 PUSH4 0xE23A845A EQ PUSH2 0x5D5 JUMPI DUP1 PUSH4 0xE26ECB0B EQ PUSH2 0x5DD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAD5778C7 GT PUSH2 0x13B JUMPI DUP1 PUSH4 0xAD5778C7 EQ PUSH2 0x50B JUMPI DUP1 PUSH4 0xB354C2D8 EQ PUSH2 0x51E JUMPI DUP1 PUSH4 0xB37FEDA4 EQ PUSH2 0x531 JUMPI DUP1 PUSH4 0xB57A40CB EQ PUSH2 0x544 JUMPI DUP1 PUSH4 0xB5FFF0ED EQ PUSH2 0x557 JUMPI DUP1 PUSH4 0xB8DB6871 EQ PUSH2 0x56A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x4B8 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x4C0 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x4C8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x4D0 JUMPI DUP1 PUSH4 0x9674CFA4 EQ PUSH2 0x4F0 JUMPI DUP1 PUSH4 0xAAD72921 EQ PUSH2 0x4F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2E1E252F GT PUSH2 0x241 JUMPI DUP1 PUSH4 0x406E8B4C GT PUSH2 0x1FA JUMPI DUP1 PUSH4 0x4C240F34 GT PUSH2 0x1D4 JUMPI DUP1 PUSH4 0x4C240F34 EQ PUSH2 0x477 JUMPI DUP1 PUSH4 0x523B8136 EQ PUSH2 0x48A JUMPI DUP1 PUSH4 0x552C9B7E EQ PUSH2 0x492 JUMPI DUP1 PUSH4 0x58ADA672 EQ PUSH2 0x4A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x406E8B4C EQ PUSH2 0x43E JUMPI DUP1 PUSH4 0x43E5C520 EQ PUSH2 0x451 JUMPI DUP1 PUSH4 0x443D7534 EQ PUSH2 0x464 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2E1E252F EQ PUSH2 0x3EE JUMPI DUP1 PUSH4 0x310D0D5B EQ PUSH2 0x401 JUMPI DUP1 PUSH4 0x345F83FF EQ PUSH2 0x414 JUMPI DUP1 PUSH4 0x3D59EC60 EQ PUSH2 0x427 JUMPI DUP1 PUSH4 0x3DF432FC EQ PUSH2 0x42F JUMPI DUP1 PUSH4 0x3F0C6648 EQ PUSH2 0x437 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x13E52AE7 GT PUSH2 0x293 JUMPI DUP1 PUSH4 0x13E52AE7 EQ PUSH2 0x385 JUMPI DUP1 PUSH4 0x1B87278D EQ PUSH2 0x38D JUMPI DUP1 PUSH4 0x26485063 EQ PUSH2 0x3A0 JUMPI DUP1 PUSH4 0x2AFAB62F EQ PUSH2 0x3C0 JUMPI DUP1 PUSH4 0x2C1D3204 EQ PUSH2 0x3D3 JUMPI DUP1 PUSH4 0x2D5C4F25 EQ PUSH2 0x3DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x33058D EQ PUSH2 0x2DA JUMPI DUP1 PUSH4 0x1C85C77 EQ PUSH2 0x304 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x31A JUMPI DUP1 PUSH4 0x35DFDFE EQ PUSH2 0x33D JUMPI DUP1 PUSH4 0x110C96A7 EQ PUSH2 0x352 JUMPI DUP1 PUSH4 0x13364FC8 EQ PUSH2 0x372 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2ED PUSH2 0x2E8 CALLDATASIZE PUSH1 0x4 PUSH2 0x24A9 JUMP JUMPDEST PUSH2 0x67D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FB SWAP3 SWAP2 SWAP1 PUSH2 0x2566 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x30C PUSH2 0x74A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2FB JUMP JUMPDEST PUSH2 0x32D PUSH2 0x328 CALLDATASIZE PUSH1 0x4 PUSH2 0x25A9 JUMP JUMPDEST PUSH2 0x7CF JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2FB JUMP JUMPDEST PUSH2 0x350 PUSH2 0x34B CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x806 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x365 PUSH2 0x360 CALLDATASIZE PUSH1 0x4 PUSH2 0x25EC JUMP JUMPDEST PUSH2 0x874 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FB SWAP2 SWAP1 PUSH2 0x2618 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x380 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x89F JUMP JUMPDEST PUSH2 0x30C PUSH2 0x8B8 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x39B CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x8C8 JUMP JUMPDEST PUSH2 0x3B3 PUSH2 0x3AE CALLDATASIZE PUSH1 0x4 PUSH2 0x24A9 JUMP JUMPDEST PUSH2 0x993 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FB SWAP2 SWAP1 PUSH2 0x2665 JUMP JUMPDEST PUSH2 0x32D PUSH2 0x3CE CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0xA2C JUMP JUMPDEST PUSH2 0x30C PUSH2 0xA57 JUMP JUMPDEST PUSH2 0x3B3 PUSH2 0x3E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x2678 JUMP JUMPDEST PUSH2 0xA6A JUMP JUMPDEST PUSH2 0x350 PUSH2 0x3FC CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0xB09 JUMP JUMPDEST PUSH2 0x3B3 PUSH2 0x40F CALLDATASIZE PUSH1 0x4 PUSH2 0x2678 JUMP JUMPDEST PUSH2 0xB70 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x422 CALLDATASIZE PUSH1 0x4 PUSH2 0x26FC JUMP JUMPDEST PUSH2 0xBC7 JUMP JUMPDEST PUSH2 0x30C PUSH2 0xDEC JUMP JUMPDEST PUSH2 0x30C PUSH2 0xDFF JUMP JUMPDEST PUSH1 0x28 PUSH2 0x30C JUMP JUMPDEST PUSH2 0x350 PUSH2 0x44C CALLDATASIZE PUSH1 0x4 PUSH2 0x27E2 JUMP JUMPDEST PUSH2 0xE42 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x45F CALLDATASIZE PUSH1 0x4 PUSH2 0x2913 JUMP JUMPDEST PUSH2 0xEDF JUMP JUMPDEST PUSH2 0x2ED PUSH2 0x472 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x11EA JUMP JUMPDEST PUSH2 0x350 PUSH2 0x485 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x1265 JUMP JUMPDEST PUSH2 0x30C PUSH2 0x12B1 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x4A0 CALLDATASIZE PUSH1 0x4 PUSH2 0x29DA JUMP JUMPDEST PUSH2 0x12C4 JUMP JUMPDEST PUSH2 0x32D PUSH2 0x4B3 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x12DA JUMP JUMPDEST PUSH2 0x30C PUSH2 0x12FB JUMP JUMPDEST PUSH2 0x350 PUSH2 0x1305 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x1319 JUMP JUMPDEST PUSH2 0x4D8 PUSH2 0x1361 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2FB JUMP JUMPDEST PUSH2 0x30C PUSH2 0x1396 JUMP JUMPDEST PUSH2 0x365 PUSH2 0x506 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A1B JUMP JUMPDEST PUSH2 0x13A9 JUMP JUMPDEST PUSH2 0x4D8 PUSH2 0x519 CALLDATASIZE PUSH1 0x4 PUSH2 0x2A50 JUMP JUMPDEST PUSH2 0x15C2 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x52C CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x15FC JUMP JUMPDEST PUSH2 0x2ED PUSH2 0x53F CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x1648 JUMP JUMPDEST PUSH2 0x3B3 PUSH2 0x552 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x16C3 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x565 CALLDATASIZE PUSH1 0x4 PUSH2 0x29DA JUMP JUMPDEST PUSH2 0x1711 JUMP JUMPDEST PUSH2 0x57D PUSH2 0x578 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x1723 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP2 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x2FB JUMP JUMPDEST PUSH2 0x3B3 PUSH2 0x5AD CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x17CB JUMP JUMPDEST PUSH2 0x30C PUSH2 0x181B JUMP JUMPDEST PUSH2 0x30C PUSH2 0x182E JUMP JUMPDEST PUSH2 0x350 PUSH2 0x5D0 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x1871 JUMP JUMPDEST PUSH2 0x30C PUSH2 0x18A0 JUMP JUMPDEST PUSH2 0x3B3 PUSH2 0x5EB CALLDATASIZE PUSH1 0x4 PUSH2 0x2A84 JUMP JUMPDEST PUSH2 0x18B3 JUMP JUMPDEST PUSH2 0x4D8 PUSH2 0x1912 JUMP JUMPDEST PUSH2 0x32D PUSH2 0x606 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x193B JUMP JUMPDEST PUSH2 0x350 PUSH2 0x619 CALLDATASIZE PUSH1 0x4 PUSH2 0x25D3 JUMP JUMPDEST PUSH2 0x195C JUMP JUMPDEST PUSH2 0x350 PUSH2 0x62C CALLDATASIZE PUSH1 0x4 PUSH2 0x2AAE JUMP JUMPDEST PUSH2 0x19BB JUMP JUMPDEST PUSH2 0x32D PUSH2 0x1A40 JUMP JUMPDEST PUSH2 0x350 PUSH2 0x647 CALLDATASIZE PUSH1 0x4 PUSH2 0x2AC9 JUMP JUMPDEST PUSH2 0x1A56 JUMP JUMPDEST PUSH2 0x670 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x312E302E33 PUSH1 0xD8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2FB SWAP2 SWAP1 PUSH2 0x2B5C JUMP JUMPDEST PUSH2 0x685 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0x6B0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x6B8 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1F17004D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xF8B80268 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x719 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x741 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2CBF JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x754 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x765C2C61 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x765C2C61 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x7A6 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x7CA SWAP2 SWAP1 PUSH2 0x2D63 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5D1CA631 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x800 JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x80E PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x818 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE MLOAD SWAP1 SWAP2 POP PUSH32 0x192522987419BE1C06CA88238DF20A35B84C7A5025BBF1E244FAC876D2D320EE SWAP1 PUSH2 0x868 SWAP1 DUP5 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0x87C PUSH2 0x2401 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x886 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP1 POP PUSH2 0x897 DUP5 DUP3 DUP6 PUSH2 0x13A9 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x8A7 PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8B1 PUSH2 0x1AC6 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 SSTORE POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8C2 PUSH2 0x1AC6 JUMP JUMPDEST SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x8D0 PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8DA PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0x91A JUMPI PUSH1 0x40 MLOAD PUSH4 0x27522BAF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x923 DUP2 PUSH2 0x1AEA JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x6 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE MLOAD PUSH32 0x725D312746BE14D750D0493AA7960A5ACA3C30F98F74B0E07AFC8F1A36B355C2 SWAP1 PUSH2 0x986 SWAP1 DUP6 SWAP1 DUP5 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x99B PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0x9A3 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7D0ABA4F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x7D0ABA4F SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xA04 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x800 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2D7C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xA37 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0x6 ADD PUSH1 0x20 MSTORE POP POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA61 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x2 ADD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xA72 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0xA7A PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD55DA6A3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xD55DA6A3 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xADA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xB02 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2D7C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xB11 PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xB1B PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x7 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0xB57 JUMPI PUSH1 0x40 MLOAD PUSH4 0xDBBAA55F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xB78 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0xB80 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6AC0C5C7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xD5818B8E SWAP1 PUSH1 0x64 ADD PUSH2 0xABD JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBD1 PUSH2 0x1BD4 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0xBF8 JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0xC14 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0xC22 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0xC40 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0xC6A JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND PUSH2 0xC91 JUMPI PUSH1 0x40 MLOAD PUSH4 0x43103A3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0xCA0 PUSH1 0x20 DUP10 ADD DUP10 PUSH2 0x2AAE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SUB PUSH2 0xCC7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7EB887B3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCE7 PUSH2 0xCD7 PUSH1 0x20 DUP10 ADD DUP10 PUSH2 0x2AAE JUMP JUMPDEST PUSH2 0x44C PUSH1 0x40 DUP11 ADD PUSH1 0x20 DUP12 ADD PUSH2 0x2DB0 JUMP JUMPDEST PUSH2 0xCF0 DUP7 PUSH2 0x1BFD JUMP JUMPDEST PUSH1 0x0 PUSH2 0xCFA PUSH2 0x1AC6 JUMP JUMPDEST SWAP1 POP DUP16 DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP DUP11 DUP2 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP10 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP9 DUP2 PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xF DUP2 MSTORE PUSH1 0x20 ADD PUSH15 0x616E6F6E5F616164686161725F7631 PUSH1 0x88 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD PUSH2 0xD51 SWAP2 SWAP1 PUSH2 0x2DCB JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0xD8A DUP16 DUP16 PUSH2 0x1C0E JUMP JUMPDEST PUSH2 0xD94 DUP14 DUP14 PUSH2 0x1CC4 JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0xDDB JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDF6 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE09 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1B8BF99B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x6E2FE66C SWAP1 PUSH1 0x24 ADD PUSH2 0x789 JUMP JUMPDEST PUSH2 0xE4A PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x59A60691 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x59A60691 SWAP1 PUSH1 0xA4 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xEC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xED7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD MLOAD PUSH1 0x0 SUB PUSH2 0xF05 JUMPI DUP2 MLOAD PUSH1 0x40 MLOAD PUSH4 0x2A47C2F PUSH1 0xE3 SHL DUP2 MSTORE PUSH2 0xB4E SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x2B5C JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP6 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0xF23 SWAP2 SWAP1 PUSH2 0x2E39 JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH2 0x180 ADD PUSH1 0x40 MSTORE DUP1 DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0xF69 JUMPI PUSH2 0xF69 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0xF89 JUMPI PUSH2 0xF89 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x2 DUP2 MLOAD DUP2 LT PUSH2 0xFA9 JUMPI PUSH2 0xFA9 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x3 DUP2 MLOAD DUP2 LT PUSH2 0xFC9 JUMPI PUSH2 0xFC9 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x4 DUP2 MLOAD DUP2 LT PUSH2 0xFE9 JUMPI PUSH2 0xFE9 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x5 DUP2 MLOAD DUP2 LT PUSH2 0x1009 JUMPI PUSH2 0x1009 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x6 DUP2 MLOAD DUP2 LT PUSH2 0x1029 JUMPI PUSH2 0x1029 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x7 DUP2 MLOAD DUP2 LT PUSH2 0x1049 JUMPI PUSH2 0x1049 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x8 DUP2 MLOAD DUP2 LT PUSH2 0x1069 JUMPI PUSH2 0x1069 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x9 DUP2 MLOAD DUP2 LT PUSH2 0x1089 JUMPI PUSH2 0x1089 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0xA DUP2 MLOAD DUP2 LT PUSH2 0x10A9 JUMPI PUSH2 0x10A9 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0xB DUP2 MLOAD DUP2 LT PUSH2 0x10C9 JUMPI PUSH2 0x10C9 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE POP DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 PUSH2 0x10E3 PUSH2 0x1AC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x4 ADD DUP10 PUSH1 0x0 ADD MLOAD PUSH1 0x40 MLOAD PUSH2 0x10FD SWAP2 SWAP1 PUSH2 0x2DCB JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP1 PUSH2 0x1136 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1DCF1AB PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x8CBAC0FA DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x1178 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x2F2C JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x1195 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x11B9 SWAP2 SWAP1 PUSH2 0x2FB1 JUMP JUMPDEST PUSH2 0x11D6 JUMPI PUSH1 0x40 MLOAD PUSH4 0xB4B32E6F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x11DF DUP4 PUSH2 0x1D25 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x11F2 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0x121D PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x1225 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA3018D79 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xA3018D79 SWAP1 PUSH1 0x44 ADD PUSH2 0x6FC JUMP JUMPDEST PUSH2 0x126D PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1277 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x3 DUP2 ADD DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE SWAP1 SWAP2 POP PUSH32 0xB69B4C35C29DEF0AC05E4AC2258986B58DE5AE03FEEEA1802C95F4E0B5794CF1 SWAP1 PUSH1 0x20 ADD PUSH2 0x868 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12BB PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x9A ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x12CC PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x12D6 DUP3 DUP3 PUSH2 0x1C0E JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12E4 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x5 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x8C2 PUSH2 0x1A70 JUMP JUMPDEST PUSH2 0x130D PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1317 PUSH1 0x0 PUSH2 0x1DB2 JUMP JUMPDEST JUMP JUMPDEST CALLER DUP1 PUSH2 0x1323 PUSH2 0x1912 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1355 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xB4E JUMP JUMPDEST PUSH2 0x135E DUP2 PUSH2 0x1DB2 JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x13A0 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x9B ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x13B1 PUSH2 0x2401 JUMP JUMPDEST PUSH2 0x13B9 PUSH2 0x1A70 JUMP JUMPDEST SLOAD DUP5 EQ PUSH2 0x13FF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x92C8CADCE8D2E8F240D2C840DAD2E6DAC2E8C6D PUSH1 0x63 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xB4E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1409 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB1A9CD3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB1A9CD3 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1461 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x1485 SWAP2 SWAP1 PUSH2 0x2FCC JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE DUP3 MLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 ADD MLOAD DUP2 DUP4 ADD MSTORE SWAP1 DUP3 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 PUSH2 0x14BA PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xB2BCD1B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x16579A36 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1524 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x154C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x2D7C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD ISZERO ISZERO DUP2 DUP4 ADD MSTORE DUP3 DUP5 ADD MLOAD DUP3 DUP5 ADD MSTORE PUSH1 0x60 DUP1 DUP6 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP6 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xA0 DUP1 DUP6 ADD MLOAD ISZERO ISZERO SWAP1 DUP4 ADD MSTORE PUSH1 0xC0 DUP1 DUP6 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xE0 SWAP4 DUP5 ADD MLOAD SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP4 DUP2 MSTORE SWAP1 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15CC PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x4 ADD DUP3 PUSH1 0x40 MLOAD PUSH2 0x15DD SWAP2 SWAP1 PUSH2 0x2DCB JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1604 PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x160E PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x2 DUP2 ADD DUP4 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE SWAP1 SWAP2 POP PUSH32 0xF007A02BA428E63FA98B65269E70F9A9DB847E0A839049A2F31F069282267734 SWAP1 PUSH1 0x20 ADD PUSH2 0x868 JUMP JUMPDEST PUSH2 0x1650 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0x167B PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x1683 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6AD1D8A7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xD5A3B14E SWAP1 PUSH1 0x44 ADD PUSH2 0x6FC JUMP JUMPDEST PUSH2 0x16CB PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0x16D3 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xCF089 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH3 0xCF0890 SWAP1 PUSH1 0x44 ADD PUSH2 0x9E7 JUMP JUMPDEST PUSH2 0x1719 PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x12D6 DUP3 DUP3 PUSH2 0x1CC4 JUMP JUMPDEST PUSH2 0x1747 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x174F PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB1A9CD3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB1A9CD3 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x17A7 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x800 SWAP2 SWAP1 PUSH2 0x2FCC JUMP JUMPDEST PUSH2 0x17D3 PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0x17DB PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x97AC5391 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x97AC5391 SWAP1 PUSH1 0x44 ADD PUSH2 0x9E7 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1825 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x9C ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1838 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E75E7F3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x1E75E7F3 SWAP1 PUSH1 0x24 ADD PUSH2 0x789 JUMP JUMPDEST PUSH2 0x1879 PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1883 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x7 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18AA PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x18BB PUSH2 0x23B8 JUMP JUMPDEST PUSH2 0x18C3 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB2BCD1B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x16579A36 SWAP1 PUSH1 0x64 ADD PUSH2 0xABD JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 PUSH2 0x1386 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1945 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x7 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH2 0x1964 PUSH2 0x1A94 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x196E PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x5 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF AND PUSH2 0x19A2 JUMPI PUSH1 0x40 MLOAD PUSH4 0x56B61331 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x5 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x19C3 PUSH2 0x1A94 JUMP JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR DUP3 SSTORE PUSH2 0x1A07 PUSH2 0x1361 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1A4A PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x1A5E PUSH2 0x1A94 JUMP JUMPDEST PUSH2 0x1A6A DUP5 DUP5 DUP5 DUP5 PUSH2 0x1DEA JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0x3018A310C36C4F8228F09BF3B1822685CF0971DAA8265A58CA807C4A4DABA400 SWAP1 JUMP JUMPDEST CALLER PUSH2 0x1A9D PUSH2 0x1361 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x1317 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xB4E JUMP JUMPDEST PUSH32 0x45045675F3EFE2EC0CCFAD8AA4C678179D3E20B95A34AD9D981FAB6F95BA1E00 SWAP1 JUMP JUMPDEST PUSH2 0x1AF2 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8AD7195D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x8AD7195D SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1B4D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1B61 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1B6D PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x175BA3E9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x2EB747D2 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1BB9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1BCD JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 PUSH2 0x800 JUMP JUMPDEST PUSH2 0x1C05 PUSH2 0x1F42 JUMP JUMPDEST PUSH2 0x135E DUP2 PUSH2 0x1F67 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C18 PUSH2 0x1AC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A6A JUMPI PUSH1 0x1 DUP3 PUSH1 0x5 ADD PUSH1 0x0 DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x1C3F JUMPI PUSH2 0x1C3F PUSH2 0x2EF3 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0xFF MUL NOT AND SWAP1 DUP4 ISZERO ISZERO MUL OR SWAP1 SSTORE POP PUSH32 0x192522987419BE1C06CA88238DF20A35B84C7A5025BBF1E244FAC876D2D320EE DUP5 DUP5 DUP4 DUP2 DUP2 LT PUSH2 0x1C9E JUMPI PUSH2 0x1C9E PUSH2 0x2EF3 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD CALLDATALOAD PUSH1 0x40 MLOAD PUSH2 0x1CB4 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 ADD PUSH2 0x1C1D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1CCE PUSH2 0x1AC6 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x1A6A JUMPI PUSH1 0x1 DUP3 PUSH1 0x7 ADD PUSH1 0x0 DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x1CF5 JUMPI PUSH2 0x1CF5 PUSH2 0x2EF3 JUMP JUMPDEST PUSH1 0x20 SWAP1 DUP2 MUL SWAP3 SWAP1 SWAP3 ADD CALLDATALOAD DUP4 MSTORE POP DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 ADD PUSH1 0x0 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH1 0x1 ADD PUSH2 0x1CD3 JUMP JUMPDEST PUSH1 0x60 DUP2 DUP2 ADD MLOAD DUP1 MLOAD PUSH1 0x20 DUP3 ADD MLOAD PUSH1 0x40 DUP4 ADD MLOAD SWAP4 DUP4 ADD MLOAD PUSH1 0x80 DUP5 ADD MLOAD PUSH1 0xA0 DUP6 ADD MLOAD PUSH1 0xC0 DUP7 ADD MLOAD PUSH1 0xE0 DUP8 ADD MLOAD PUSH2 0x100 DUP9 ADD MLOAD PUSH2 0x120 DUP10 ADD MLOAD PUSH2 0x140 DUP11 ADD MLOAD PUSH2 0x160 SWAP1 SWAP11 ADD MLOAD SWAP9 SWAP11 SWAP8 SWAP10 SWAP8 SWAP9 SWAP7 SWAP8 SWAP6 SWAP7 SWAP5 SWAP6 SWAP4 SWAP5 SWAP3 SWAP4 SWAP2 SWAP3 SWAP1 SWAP2 SWAP1 PUSH2 0x1D8F DUP11 DUP11 DUP14 DUP16 DUP10 DUP14 DUP14 DUP11 DUP11 DUP16 PUSH2 0x1F99 JUMP JUMPDEST PUSH2 0x1D99 DUP12 DUP3 PUSH2 0x2121 JUMP JUMPDEST PUSH2 0x1DA3 DUP11 DUP11 PUSH2 0x2272 JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH2 0x12D6 DUP3 PUSH2 0x232D JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1DF4 PUSH2 0x1AC6 JUMP JUMPDEST SWAP1 POP DUP4 DUP3 EQ PUSH2 0x1E20 JUMPI PUSH1 0x40 MLOAD PUSH4 0x55C5B3E3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0xB4E JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0xED7 JUMPI DUP4 DUP4 DUP3 DUP2 DUP2 LT PUSH2 0x1E3D JUMPI PUSH2 0x1E3D PUSH2 0x2EF3 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1E52 SWAP2 SWAP1 PUSH2 0x2AAE JUMP JUMPDEST DUP3 PUSH1 0x4 ADD DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x1E68 JUMPI PUSH2 0x1E68 PUSH2 0x2EF3 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1E7A SWAP2 SWAP1 PUSH2 0x302B JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1E88 SWAP3 SWAP2 SWAP1 PUSH2 0x3071 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH32 0x3F04312ECEF010D1CB9901BB8602DB84B7B52FDDCEF458E04BD8E83A7FC035A4 DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0x1EEA JUMPI PUSH2 0x1EEA PUSH2 0x2EF3 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1EFC SWAP2 SWAP1 PUSH2 0x302B JUMP JUMPDEST DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x1F0E JUMPI PUSH2 0x1F0E PUSH2 0x2EF3 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1F23 SWAP2 SWAP1 PUSH2 0x2AAE JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1F32 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3081 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 ADD PUSH2 0x1E23 JUMP JUMPDEST PUSH2 0x1F4A PUSH2 0x239E JUMP JUMPDEST PUSH2 0x1317 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1F6F PUSH2 0x1F42 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x1355 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xB4E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1FA3 PUSH2 0x1AC6 JUMP JUMPDEST SWAP1 POP DUP11 PUSH1 0x0 SUB PUSH2 0x1FC6 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4978C157 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP10 PUSH1 0x0 SUB PUSH2 0x1FE7 JUMPI PUSH1 0x40 MLOAD PUSH4 0x9D34BA4F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD DUP8 EQ PUSH2 0x2008 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD2CEE055 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x2 ADD SLOAD DUP5 EQ PUSH2 0x202C JUMPI PUSH1 0x40 MLOAD PUSH4 0x81D60393 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x3 ADD SLOAD DUP4 EQ PUSH2 0x2050 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFE0C887B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP2 PUSH1 0x1 ADD SLOAD DUP8 PUSH2 0x2062 SWAP2 SWAP1 PUSH2 0x30C2 JUMP JUMPDEST SWAP1 POP DUP1 DUP7 EQ PUSH2 0x208E JUMPI PUSH1 0x40 MLOAD PUSH4 0x3ABB8C79 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0xB4E JUMP JUMPDEST TIMESTAMP DUP7 GT PUSH2 0x20AE JUMPI PUSH1 0x40 MLOAD PUSH4 0xB67A7713 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP10 DUP2 MSTORE PUSH1 0x5 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x20DF JUMPI PUSH1 0x40 MLOAD PUSH4 0x56B61331 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0x7 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND PUSH2 0x2113 JUMPI PUSH1 0x40 MLOAD PUSH4 0xDBBAA55F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xB4E JUMP JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 SUB PUSH2 0x2156 JUMPI PUSH1 0x40 MLOAD PUSH4 0x37F969B3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xB4E JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2160 PUSH2 0x1AC6 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x6 DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP1 ISZERO PUSH2 0x2241 JUMPI PUSH2 0x218B PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8AD7195D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x8AD7195D SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x21E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x21FA JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x725D312746BE14D750D0493AA7960A5ACA3C30F98F74B0E07AFC8F1A36B355C2 SWAP4 POP ADD SWAP1 POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x6 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x227A PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6FB1575 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x6FB1575 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x22D4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x22E8 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x22F4 PUSH2 0x1A70 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x175BA3E9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x2EB747D2 SWAP1 PUSH1 0x24 ADD PUSH2 0xEAB JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 DUP3 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP3 AND SWAP2 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23A8 PUSH2 0x1BD4 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x2437 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x2488 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x24A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x24BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB02 DUP3 PUSH2 0x248D JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD ISZERO ISZERO DUP2 DUP5 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH2 0x100 SWAP2 DUP6 ADD DUP3 SWAP1 MSTORE DUP1 MLOAD SWAP2 DUP6 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP3 ADD SWAP1 DUP3 SWAP1 PUSH2 0x120 DUP7 ADD SWAP1 JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x251C JUMPI DUP4 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x1 DUP4 ADD SWAP3 POP PUSH2 0x24F9 JUMP JUMPDEST POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0x80 DUP8 ADD MSTORE PUSH1 0xA0 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x2546 PUSH1 0xA0 DUP8 ADD DUP5 ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xC0 DUP8 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH1 0xE0 DUP8 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x2579 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x24C4 JUMP JUMPDEST SWAP1 POP PUSH2 0xB02 PUSH1 0x20 DUP4 ADD DUP5 DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xB02 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x25E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x25FF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x260F PUSH1 0x20 DUP5 ADD PUSH2 0x248D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH2 0x264B PUSH1 0x20 DUP3 ADD DUP4 MLOAD DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0xA0 DUP1 DUP5 ADD MSTORE PUSH2 0x897 PUSH1 0xC0 DUP5 ADD DUP3 PUSH2 0x24C4 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xB02 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x24C4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x268B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x26AC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x26C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x26DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x24A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP11 DUP13 SUB PUSH2 0x120 DUP2 SLT ISZERO PUSH2 0x271D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP12 CALLDATALOAD SWAP11 POP PUSH1 0x20 DUP13 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x273A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2746 DUP15 DUP3 DUP16 ADD PUSH2 0x269A JUMP JUMPDEST SWAP1 SWAP12 POP SWAP10 POP POP PUSH1 0x40 DUP13 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2765 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2771 DUP15 DUP3 DUP16 ADD PUSH2 0x269A JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP POP PUSH1 0x60 DUP13 ADD CALLDATALOAD SWAP6 POP PUSH1 0x80 DUP13 ADD CALLDATALOAD SWAP5 POP PUSH2 0x2791 PUSH1 0xA0 DUP14 ADD PUSH2 0x26E5 JUMP JUMPDEST SWAP4 POP PUSH1 0x40 PUSH1 0xBF NOT DUP3 ADD SLT ISZERO PUSH2 0x27A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xC0 DUP12 ADD SWAP2 POP PUSH2 0x27B9 PUSH2 0x100 DUP13 ADD PUSH2 0x26E5 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x24A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x27F5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x27FE DUP4 PUSH2 0x26E5 JUMP JUMPDEST SWAP2 POP PUSH2 0x260F PUSH1 0x20 DUP5 ADD PUSH2 0x27CA 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 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2844 JUMPI PUSH2 0x2844 PUSH2 0x280C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x100 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2844 JUMPI PUSH2 0x2844 PUSH2 0x280C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2895 JUMPI PUSH2 0x2895 PUSH2 0x280C JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x28AE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 GT ISZERO PUSH2 0x28CE JUMPI PUSH2 0x28CE PUSH2 0x280C JUMP JUMPDEST POP PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x28E3 DUP2 PUSH2 0x286D JUMP JUMPDEST SWAP2 POP POP DUP3 DUP2 MSTORE DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x28F8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2926 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x293C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x40 DUP2 DUP7 SUB SLT ISZERO PUSH2 0x294E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2956 PUSH2 0x2822 JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x296C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2978 DUP8 DUP3 DUP6 ADD PUSH2 0x289D JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2994 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29A0 DUP8 DUP3 DUP6 ADD PUSH2 0x289D JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP DUP1 SWAP4 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x29C4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x29D0 DUP6 DUP3 DUP7 ADD PUSH2 0x289D JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x29ED JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A03 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2A0F DUP6 DUP3 DUP7 ADD PUSH2 0x269A JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x2A30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x2A47 PUSH1 0x40 DUP6 ADD PUSH2 0x248D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A62 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2A78 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x897 DUP5 DUP3 DUP6 ADD PUSH2 0x289D JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x2A97 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2AA0 DUP4 PUSH2 0x248D JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2AC0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB02 DUP3 PUSH2 0x26E5 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2ADF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2AF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B01 DUP8 DUP3 DUP9 ADD PUSH2 0x269A JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2B20 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2B2C DUP8 DUP3 DUP9 ADD PUSH2 0x269A JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x2B53 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x2B3B JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 DUP3 MLOAD DUP1 PUSH1 0x20 DUP5 ADD MSTORE PUSH2 0x2B7B DUP2 PUSH1 0x40 DUP6 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x2B38 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP2 SWAP1 SWAP2 ADD PUSH1 0x40 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x24A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2BB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2BC9 JUMPI PUSH2 0x2BC9 PUSH2 0x280C JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH2 0x2BD9 PUSH1 0x20 DUP3 ADD PUSH2 0x286D JUMP JUMPDEST SWAP2 DUP3 MSTORE PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD SWAP3 SWAP1 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x2BF5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0x2C17 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x2BFC JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2C34 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C3C PUSH2 0x284A JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE SWAP1 POP PUSH2 0x2C4E PUSH1 0x20 DUP4 ADD PUSH2 0x2B8F JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2C6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2C78 DUP5 DUP3 DUP6 ADD PUSH2 0x2B9F JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x2C9E PUSH1 0xA0 DUP4 ADD PUSH2 0x2B8F JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 SWAP2 DUP3 ADD MLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 SUB PUSH1 0xA0 DUP2 SLT ISZERO PUSH2 0x2CD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2CE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2CF5 DUP7 DUP3 DUP8 ADD PUSH2 0x2C21 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH1 0x1F NOT DUP3 ADD SLT ISZERO PUSH2 0x2D0A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x2D2D JUMPI PUSH2 0x2D2D PUSH2 0x280C JUMP JUMPDEST PUSH1 0x40 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP6 DUP2 ADD MLOAD DUP4 MSTORE DUP6 DUP3 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP7 ADD MLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 SWAP1 SWAP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D75 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2D8E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2DA4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x897 DUP5 DUP3 DUP6 ADD PUSH2 0x2C21 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2DC2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB02 DUP3 PUSH2 0x27CA JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x2DDD DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x2B38 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x2DF8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E02 PUSH1 0x40 PUSH2 0x286D JUMP JUMPDEST DUP1 PUSH1 0x40 DUP5 ADD DUP6 DUP2 GT ISZERO PUSH2 0x2E14 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2E2E JUMPI DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 ADD PUSH2 0x2E16 JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x120 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x2E50 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x2E66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x2E72 DUP8 DUP3 DUP9 ADD PUSH2 0x2B9F JUMP JUMPDEST SWAP5 POP POP PUSH2 0x2E82 DUP7 PUSH1 0x20 DUP8 ADD PUSH2 0x2DE7 JUMP JUMPDEST SWAP3 POP DUP6 PUSH1 0x7F DUP7 ADD SLT PUSH2 0x2E93 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 PUSH2 0x2E9E DUP2 PUSH2 0x286D JUMP JUMPDEST DUP1 PUSH1 0xE0 DUP9 ADD DUP10 DUP2 GT ISZERO PUSH2 0x2EB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 DUP10 ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x2ED6 JUMPI PUSH2 0x2EC7 DUP12 DUP3 PUSH2 0x2DE7 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 DUP5 ADD PUSH2 0x2EB5 JUMP JUMPDEST POP DUP2 SWAP6 POP PUSH2 0x2EE4 DUP11 DUP3 PUSH2 0x2DE7 JUMP JUMPDEST SWAP5 POP POP POP POP 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 DUP1 PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP2 LT ISZERO PUSH2 0x1A6A JUMPI DUP2 MLOAD DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2F0D JUMP JUMPDEST PUSH2 0x280 DUP2 ADD PUSH2 0x2F3B DUP3 DUP8 PUSH2 0x2F09 JUMP JUMPDEST PUSH1 0x40 DUP3 ADD DUP6 PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP2 LT ISZERO PUSH2 0x2F6D JUMPI PUSH2 0x2F57 DUP4 DUP4 MLOAD PUSH2 0x2F09 JUMP JUMPDEST PUSH1 0x40 SWAP3 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2F43 JUMP JUMPDEST POP POP POP PUSH2 0x2F7D PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x2F09 JUMP JUMPDEST PUSH2 0x100 DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST PUSH1 0xC DUP2 LT ISZERO PUSH2 0x2FA5 JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x2F86 JUMP JUMPDEST POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2FC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xB02 DUP3 PUSH2 0x2B8F JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x2FDF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x0 SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3005 JUMPI PUSH2 0x3005 PUSH2 0x280C JUMP JUMPDEST PUSH1 0x40 SWAP1 DUP2 MSTORE DUP5 MLOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP7 ADD MLOAD SWAP1 DUP4 ADD MSTORE SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x3042 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x305C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x26DE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE DUP3 DUP5 PUSH1 0x60 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x60 DUP5 DUP4 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x800 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH27 0xF07F575585DB98C5935EBD7C28C901B4415E40AF41D5263B2BFEF8 SWAP9 DIV SUB 0xCE PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "1526:15776:38:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4302:266:7;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5238:155;;;:::i;:::-;;;2331:25:46;;;2319:2;2304:18;5238:155:7;2185:177:46;11023:213:7;;;;;;:::i;:::-;;:::i;:::-;;;2823:14:46;;2816:22;2798:41;;2786:2;2771:18;11023:213:7;2658:187:46;6193:268:38;;;;;;:::i;:::-;;:::i;:::-;;9166:289:7;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4311:213:38:-;;;;;;:::i;:::-;;:::i;10186:136::-;;;:::i;5642:434::-;;;;;;:::i;:::-;;:::i;3812:210:7:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4910:240:38:-;;;;;;:::i;:::-;;:::i;10797:134::-;;;:::i;6618:237:7:-;;;;;;:::i;:::-;;:::i;11840:284:38:-;;;;;;:::i;:::-;;:::i;3071:239:7:-;;;;;;:::i;:::-;;:::i;3273:1032:38:-;;;;;;:::i;:::-;;:::i;8816:144:7:-;;;:::i;3419:145::-;;;:::i;1347:87::-;1425:2;1347:87;;1571:256;;;;;;:::i;:::-;;:::i;8322:1764:38:-;;;;;;:::i;:::-;;:::i;6076:251:7:-;;;;;;:::i;:::-;;:::i;4643:261:38:-;;;;;;:::i;:::-;;:::i;7998:164:7:-;;;:::i;6612:146:38:-;;;;;;:::i;:::-;;:::i;10524:175::-;;;;;;:::i;:::-;;:::i;7550:108:7:-;;;:::i;3155:101:13:-;;;:::i;3257:229:12:-;;;:::i;2441:144:13:-;;;:::i;:::-;;;-1:-1:-1;;;;;10062:32:46;;;10044:51;;10032:2;10017:18;2441:144:13;9898:203:46;8273:174:7;;;:::i;9709:1216::-;;;;;;:::i;:::-;;:::i;7886:192:38:-;;;;;;:::i;:::-;;:::i;5264:255::-;;;;;;:::i;:::-;;:::i;2528::7:-;;;;;;:::i;:::-;;:::i;2062:199::-;;;;;;:::i;:::-;;:::i;11609:122:38:-;;;;;;:::i;:::-;;:::i;7294:176:7:-;;;;;;:::i;:::-;;:::i;:::-;;;;11066:13:46;;11048:32;;11136:4;11124:17;;;11118:24;11096:20;;;11089:54;11187:17;;;11181:24;11159:20;;;11152:54;11036:2;11021:18;7294:176:7;10856:356:46;5628:181:7;;;;;;:::i;:::-;;:::i;8547:162::-;;;:::i;6962:143::-;;;:::i;11274:202:38:-;;;;;;:::i;:::-;;:::i;11033:138::-;;;:::i;4869:250:7:-;;;;;;:::i;:::-;;:::i;2038:168:12:-;;;:::i;12316:160:38:-;;;;;;:::i;:::-;;:::i;6881:324::-;;;;;;:::i;:::-;;:::i;2524:247:12:-;;;;;;:::i;:::-;;:::i;7761:135:7:-;;;:::i;7456:226:38:-;;;;;;:::i;:::-;;:::i;1655:40::-;;;;;;;;;;;;;;;-1:-1:-1;;;1655:40:38;;;;;;;;;;;;:::i;4302:266:7:-;4410:19;;:::i;:::-;4431:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4431:28:7;4478:25;:23;:25::i;:::-;:83;;-1:-1:-1;;;4478:83:7;;;;;13355:25:46;;;;-1:-1:-1;;;;;13416:31:46;;13396:18;;;13389:59;4478:66:7;;;;13328:18:46;;4478:83:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4478:83:7;;;;;;;;;;;;:::i;:::-;4471:90;;;;4302:266;;;:::o;5238:155::-;5301:7;5327:25;:23;:25::i;:::-;:59;;-1:-1:-1;;;5327:59:7;;;;;2331:25:46;;;;5327:57:7;;;;2304:18:46;;5327:59:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5320:66;;5238:155;:::o;11023:213::-;11108:4;-1:-1:-1;;;;;;11143:46:7;;-1:-1:-1;;;11143:46:7;;:86;;-1:-1:-1;;;;;;;;;;862:40:26;;;11193:36:7;11124:105;11023:213;-1:-1:-1;;11023:213:7:o;6193:268:38:-;2334:13:13;:11;:13::i;:::-;6269:44:38::1;6316:40;:38;:40::i;:::-;6366:33;::::0;;;:18:::1;::::0;::::1;:33;::::0;;;;;;:40;;-1:-1:-1;;6366:40:38::1;6402:4;6366:40;::::0;;6421:33;6269:87;;-1:-1:-1;6421:33:38::1;::::0;::::1;::::0;6385:13;2331:25:46;;2319:2;2304:18;;2185:177;6421:33:38::1;;;;;;;;6259:202;6193:268:::0;:::o;9166:289:7:-;9264:23;;:::i;:::-;9299:19;9321:25;:23;:25::i;:::-;:55;;;;-1:-1:-1;9393:55:7;9425:2;9321:55;9442:5;9393:31;:55::i;:::-;9386:62;9166:289;-1:-1:-1;;;;9166:289:7:o;4311:213:38:-;2334:13:13;:11;:13::i;:::-;4389:44:38::1;4436:40;:38;:40::i;:::-;4486:31:::0;;;;-1:-1:-1;4311:213:38:o;10186:136::-;10235:7;10261:40;:38;:40::i;:::-;:54;;10186:136;-1:-1:-1;10186:136:38:o;5642:434::-;2334:13:13;:11;:13::i;:::-;5716:44:38::1;5763:40;:38;:40::i;:::-;5813:12;5828:41:::0;;;:30:::1;::::0;::::1;:41;::::0;;;;;5716:87;;-1:-1:-1;;;;;;5828:41:38;;::::1;::::0;5883:10;;;5879:46:::1;;5902:23;;-1:-1:-1::0;;;5902:23:38::1;;;;;;;;;;;5879:46;5935:29;5958:5;5935:22;:29::i;:::-;6018:1;5974:41:::0;;;:30:::1;::::0;::::1;:41;::::0;;;;;;:45;;-1:-1:-1;;5974:45:38::1;::::0;;6034:35;::::1;::::0;::::1;::::0;6005:9;;6063:5;;13355:25:46;;;-1:-1:-1;;;;;13416:31:46;13411:2;13396:18;;13389:59;13343:2;13328:18;;13152:302;6034:35:38::1;;;;;;;;5706:370;;5642:434:::0;:::o;3812:210:7:-;3907:19;;:::i;:::-;3945:25;:23;:25::i;:::-;:70;;-1:-1:-1;;;3945:70:7;;;;;13355:25:46;;;;-1:-1:-1;;;;;13416:31:46;;13396:18;;;13389:59;3945:53:7;;;;13328:18:46;;3945:70:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3945:70:7;;;;;;;;;;;;:::i;4910:240:38:-;4977:4;4993:44;5040:40;:38;:40::i;:::-;5097:41;;;;:30;;:41;;-1:-1:-1;;5097:41:38;;;;-1:-1:-1;;;;;5097:41:38;:46;;;4910:240::o;10797:134::-;10845:7;10871:40;:38;:40::i;:::-;:53;;;10864:60;;10797:134;:::o;6618:237:7:-;6735:19;;:::i;:::-;6773:25;:23;:25::i;:::-;:75;;-1:-1:-1;;;6773:75:7;;;;;17978:25:46;;;;18019:18;;;18012:34;;;18062:18;;;18055:34;;;6773:53:7;;;;17951:18:46;;6773:75:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6773:75:7;;;;;;;;;;;;:::i;:::-;6766:82;6618:237;-1:-1:-1;;;6618:237:7:o;11840:284:38:-;2334:13:13;:11;:13::i;:::-;11911:44:38::1;11958:40;:38;:40::i;:::-;12013:23;::::0;;;:12:::1;::::0;::::1;:23;::::0;;;;;11911:87;;-1:-1:-1;12013:23:38::1;;12008:68;;12045:31;::::0;-1:-1:-1;;;12045:31:38;;::::1;::::0;::::1;2331:25:46::0;;;2304:18;;12045:31:38::1;;;;;;;;12008:68;12112:5;12086:23:::0;;;:12:::1;;:23;::::0;;;;:31;;-1:-1:-1;;12086:31:38::1;::::0;;11840:284::o;3071:239:7:-;3189:19;;:::i;:::-;3227:25;:23;:25::i;:::-;:76;;-1:-1:-1;;;3227:76:7;;;;;17978:25:46;;;;18019:18;;;18012:34;;;18062:18;;;18055:34;;;3227:54:7;;;;17951:18:46;;3227:76:7;17745:350:46;3273:1032:38;4158:30:14;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:14;-1:-1:-1;;;4302:15:14;;;4301:16;;-1:-1:-1;;;;;4348:14:14;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1;;;;;4788:16:14;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:14;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:14;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:14;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:14;-1:-1:-1;;;5011:22:14;;;4977:67;-1:-1:-1;;;;;3613:33:38;::::1;3609:70;;3655:24;;-1:-1:-1::0;;;3655:24:38::1;;;;;;;;;;;3609:70;3727:1;3693:22;;::::0;::::1;:9:::0;:22:::1;:::i;:::-;-1:-1:-1::0;;;;;3693:36:38::1;::::0;3689:78:::1;;3738:29;;-1:-1:-1::0;;;3738:29:38::1;;;;;;;;;;;3689:78;3778:58;3795:22;;::::0;::::1;:9:::0;:22:::1;:::i;:::-;3819:16;::::0;;;::::1;::::0;::::1;;:::i;3778:58::-;3846:21;3861:5;3846:14;:21::i;:::-;3878:44;3925:40;:38;:40::i;:::-;3878:87;;3993:13;3975:1;:15;;:31;;;;4035:14;4016:1;:16;;:33;;;;4076:12;4059:1;:14;;:29;;;;4186:19;4142:1;:23;;4166:16;;;;;;;;;;;;;-1:-1:-1::0;;;4166:16:38::1;;::::0;4142:41:::1;;;;;;:::i;:::-;::::0;;;::::1;::::0;;;;;::::1;::::0;;;:63;;-1:-1:-1;;;;;4142:63:38;;;::::1;-1:-1:-1::0;;;;;;4142:63:38;;::::1;::::0;;;::::1;::::0;;4216:42:::1;4241:16:::0;;4216:24:::1;:42::i;:::-;4268:30;4287:10;;4268:18;:30::i;:::-;3599:706;5068:14:14::0;5064:101;;;5098:23;;-1:-1:-1;;;;5098:23:14;;;5140:14;;-1:-1:-1;18736:50:46;;5140:14:14;;18724:2:46;18709:18;5140:14:14;;;;;;;5064:101;4092:1079;;;;;3273:1032:38;;;;;;;;;;:::o;8816:144:7:-;8872:7;8898:25;:23;:25::i;:::-;:55;;;;8816:144;-1:-1:-1;8816:144:7:o;3419:145::-;3477:7;3503:25;:23;:25::i;:::-;:54;;-1:-1:-1;;;3503:54:7;;;;;2331:25:46;;;;3503:52:7;;;;2304:18:46;;3503:54:7;2185:177:46;1571:256:7;1659:25;:23;:25::i;:::-;:161;;-1:-1:-1;;;1659:161:7;;;;;19085:25:46;;;;-1:-1:-1;;;;;19146:32:46;;19126:18;;;19119:60;1758:4:7;19195:18:46;;;19188:60;1425:2:7;19264:18:46;;;19257:34;-1:-1:-1;;;;;;19328:28:46;;19307:19;;;19300:57;1659:45:7;;;;19057:19:46;;1659:161:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1571:256;;:::o;8322:1764:38:-;8473:25;;8467:39;8473:25;8467:44;8463:136;;8562:25;;8534:54;;-1:-1:-1;;;8534:54:38;;;;8562:25;8534:54;;;:::i;8463:136::-;8623:23;8660:20;8694:23;8731:20;8775:15;:21;;;8764:85;;;;;;;;;;;;:::i;:::-;8609:240;;;;;;;;8860:83;8946:535;;;;;;;;9015:2;8946:535;;;;9035:2;8946:535;;;;9055:2;8946:535;;;;;;;;;;;;9097:6;9104:1;9097:9;;;;;;;;:::i;:::-;;;;;;;8946:535;;;;9128:6;9135:1;9128:9;;;;;;;;:::i;:::-;;;;;;;8946:535;;;;9159:6;9166:1;9159:9;;;;;;;;:::i;:::-;;;;;;;8946:535;;;;9190:6;9197:1;9190:9;;;;;;;;:::i;:::-;;;;;;;8946:535;;;;9221:6;9228:1;9221:9;;;;;;;;:::i;:::-;;;;;;;8946:535;;;;9252:6;9259:1;9252:9;;;;;;;;:::i;:::-;;;;;;;8946:535;;;;9283:6;9290:1;9283:9;;;;;;;;:::i;:::-;;;;;;;8946:535;;;;9314:6;9321:1;9314:9;;;;;;;;:::i;:::-;;;;;;;8946:535;;;;9345:6;9352:1;9345:9;;;;;;;;:::i;:::-;;;;;;;8946:535;;;;9376:6;9383:1;9376:9;;;;;;;;:::i;:::-;;;;;;;8946:535;;;;9407:6;9414:2;9407:10;;;;;;;;:::i;:::-;;;;;;;8946:535;;;;9439:6;9446:2;9439:10;;;;;;;;:::i;:::-;;;;;;;8946:535;;;;;;8860:621;;9492:44;9539:40;:38;:40::i;:::-;9492:87;;9589:16;9608:1;:23;;9632:15;:25;;;9608:50;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;9608:50:38;;-1:-1:-1;9608:50:38;9668:75;;9717:15;;-1:-1:-1;;;9717:15:38;;;;;;;;;;;9668:75;9798:8;-1:-1:-1;;;;;9770:49:38;;9837:12;:14;;;9869:12;:14;;;9901:12;:14;;;9933:12;:23;;;9770:200;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9752:286;;10002:25;;-1:-1:-1;;;10002:25:38;;;;;;;;;;;9752:286;10048:31;10066:12;10048:17;:31::i;:::-;8453:1633;;;;;;;8322:1764;;:::o;6076:251:7:-;6177:19;;:::i;:::-;6198:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6198:28:7;6245:25;:23;:25::i;:::-;:75;;-1:-1:-1;;;6245:75:7;;;;;23253:25:46;;;;23294:18;;;23287:34;;;6245:60:7;;;;23226:18:46;;6245:75:7;23048:279:46;4643:261:38;2334:13:13;:11;:13::i;:::-;4719:44:38::1;4766:40;:38;:40::i;:::-;4816:15;::::0;::::1;:31:::0;;;4862:35:::1;::::0;2331:25:46;;;4719:87:38;;-1:-1:-1;4862:35:38::1;::::0;2319:2:46;2304:18;4862:35:38::1;2185:177:46::0;7998:164:7;8059:7;8085:25;:23;:25::i;:::-;:59;;:70;;7998:164;-1:-1:-1;7998:164:7:o;6612:146:38:-;2334:13:13;:11;:13::i;:::-;6709:42:38::1;6734:16;;6709:24;:42::i;:::-;6612:146:::0;;:::o;10524:175::-;10597:4;10620:40;:38;:40::i;:::-;:72;;;;:57;;:72;;-1:-1:-1;10620:72:38;;;;;;;10524:175::o;7550:108:7:-;7588:7;7614:25;:23;:25::i;3155:101:13:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;3257:229:12:-;966:10:15;;3352:14:12;:12;:14::i;:::-;-1:-1:-1;;;;;3352:24:12;;3348:96;;3399:34;;-1:-1:-1;;;3399:34:12;;-1:-1:-1;;;;;10062:32:46;;3399:34:12;;;10044:51:46;10017:18;;3399:34:12;9898:203:46;3348:96:12;3453:26;3472:6;3453:18;:26::i;:::-;3299:187;3257:229::o;2441:144:13:-;2487:7;;1313:22;2533:20;2570:8;-1:-1:-1;;;;;2570:8:13;;2441:144;-1:-1:-1;;2441:144:13:o;8273:174:7:-;8339:7;8365:25;:23;:25::i;:::-;:75;;;;8273:174;-1:-1:-1;8273:174:7:o;9709:1216::-;9842:23;;:::i;:::-;9891:25;:23;:25::i;:::-;:37;9885:43;;9877:76;;;;-1:-1:-1;;;9877:76:7;;23534:2:46;9877:76:7;;;23516:21:46;23573:2;23553:18;;;23546:30;-1:-1:-1;;;23592:18:46;;;23585:50;23652:18;;9877:76:7;23332:344:46;9877:76:7;9963:41;10007:25;:23;:25::i;:::-;:83;;-1:-1:-1;;;10007:83:7;;;;;23253:25:46;;;;23294:18;;;23287:34;;;10007:76:7;;;;23226:18:46;;10007:83:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10141:232;;;;;;;;;;;10269:27;;10141:232;;;;;;;;10330:32;;;10141:232;;;;10213:26;;;;10141:232;;;;9963:127;;-1:-1:-1;10100:38:7;10408:25;:23;:25::i;:::-;10500:32;;;;10408:134;;-1:-1:-1;;;10408:134:7;;;;;24686:25:46;;;;-1:-1:-1;;;;;24747:31:46;;24727:18;;;24720:59;24795:18;;;24788:34;10408:59:7;;;;24659:18:46;;10408:134:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10408:134:7;;;;;;;;;;;;:::i;:::-;10571:279;;;;;;;;10597:6;;10571:279;;;10628:11;;;;10571:279;;;;;;10663:10;;;;10571:279;;;;;10694:7;;;;10571:279;;;;;10722:7;;;;10571:279;;;;;10757:14;;;;10571:279;;;;;;;10795:10;;;;10571:279;;;;;10829:10;;;;10571:279;;;;;;;10868:50;;;;;;;;;;;;;;;;;;-1:-1:-1;10868:50:7;9709:1216;-1:-1:-1;;;;;9709:1216:7:o;7886:192:38:-;7972:7;7998:40;:38;:40::i;:::-;:62;;8061:9;7998:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;7998:73:38;;7886:192;-1:-1:-1;;7886:192:38:o;5264:255::-;2334:13:13;:11;:13::i;:::-;5338:44:38::1;5385:40;:38;:40::i;:::-;5435:14;::::0;::::1;:29:::0;;;5479:33:::1;::::0;2331:25:46;;;5338:87:38;;-1:-1:-1;5479:33:38::1;::::0;2319:2:46;2304:18;5479:33:38::1;2185:177:46::0;2528:255:7;2631:19;;:::i;:::-;2652:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2652:28:7;2699:25;:23;:25::i;:::-;:77;;-1:-1:-1;;;2699:77:7;;;;;23253:25:46;;;;23294:18;;;23287:34;;;2699:61:7;;;;23226:18:46;;2699:77:7;23048:279:46;2062:199:7;2152:19;;:::i;:::-;2190:25;:23;:25::i;:::-;:64;;-1:-1:-1;;;2190:64:7;;;;;23253:25:46;;;;23294:18;;;23287:34;;;2190:48:7;;;;23226:18:46;;2190:64:7;23048:279:46;11609:122:38;2334:13:13;:11;:13::i;:::-;11694:30:38::1;11713:10;;11694:18;:30::i;7294:176:7:-:0;7363:24;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;7363:24:7;7406:25;:23;:25::i;:::-;:57;;-1:-1:-1;;;7406:57:7;;;;;23253:25:46;;;;23294:18;;;23287:34;;;7406:50:7;;;;23226:18:46;;7406:57:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;5628:181::-;5702:19;;:::i;:::-;5740:25;:23;:25::i;:::-;:62;;-1:-1:-1;;;5740:62:7;;;;;23253:25:46;;;;23294:18;;;23287:34;;;5740:47:7;;;;23226:18:46;;5740:62:7;23048:279:46;8547:162:7;8607:7;8633:25;:23;:25::i;:::-;:69;;;;8547:162;-1:-1:-1;8547:162:7:o;6962:143::-;7019:7;7045:25;:23;:25::i;:::-;:53;;-1:-1:-1;;;7045:53:7;;;;;2331:25:46;;;;7045:51:7;;;;2304:18:46;;7045:53:7;2185:177:46;11274:202:38;2334:13:13;:11;:13::i;:::-;11342:44:38::1;11389:40;:38;:40::i;:::-;11439:23;::::0;;;:12:::1;;:23;::::0;-1:-1:-1;11439:23:38;;;:30;;-1:-1:-1;;11439:30:38::1;11465:4;11439:30;::::0;;11274:202::o;11033:138::-;11083:7;11109:40;:38;:40::i;:::-;:55;;;11102:62;;11033:138;:::o;4869:250:7:-;4992:19;;:::i;:::-;5030:25;:23;:25::i;:::-;:82;;-1:-1:-1;;;5030:82:7;;;;;24686:25:46;;;;-1:-1:-1;;;;;24747:31:46;;24727:18;;;24720:59;24795:18;;;24788:34;;;5030:59:7;;;;24659:18:46;;5030:82:7;24455:373:46;2038:168:12;2091:7;;1676:27;2142:25;1545:174;12316:160:38;12384:4;12407:40;:38;:40::i;:::-;:62;;;;:51;;:62;;-1:-1:-1;12407:62:38;;;;;;;12316:160::o;6881:324::-;2334:13:13;:11;:13::i;:::-;6960:44:38::1;7007:40;:38;:40::i;:::-;7062:33;::::0;;;:18:::1;::::0;::::1;:33;::::0;;;;;6960:87;;-1:-1:-1;7062:33:38::1;;7057:91;;7118:19;;-1:-1:-1::0;;;7118:19:38::1;;;;;;;;;;;7057:91;7193:5;7157:33:::0;;;:18:::1;;:33;::::0;;;;:41;;-1:-1:-1;;7157:41:38::1;::::0;;6881:324::o;2524:247:12:-;2334:13:13;:11;:13::i;:::-;1676:27:12;2680:26;;-1:-1:-1;;;;;;2680:26:12::1;-1:-1:-1::0;;;;;2680:26:12;::::1;::::0;;::::1;::::0;;2746:7:::1;:5;:7::i;:::-;-1:-1:-1::0;;;;;2721:43:12::1;;;;;;;;;;;2603:168;2524:247:::0;:::o;7761:135:7:-;7814:4;7837:25;:23;:25::i;:::-;:52;;;;;;7761:135;-1:-1:-1;7761:135:7:o;7456:226:38:-;2334:13:13;:11;:13::i;:::-;7617:58:38::1;7645:10;;7657:17;;7617:27;:58::i;:::-;7456:226:::0;;;;:::o;1071:175:7:-;1203:27;;1071:175::o;2658:162:13:-;966:10:15;2717:7:13;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:13;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:13;;966:10:15;2763:40:13;;;10044:51:46;10017:18;;2763:40:13;9898:203:46;2807:255:38;3004:42;;2807:255::o;12606:184::-;12671:25;:23;:25::i;:::-;:53;;-1:-1:-1;;;12671:53:38;;;;;13355:25:46;;;;-1:-1:-1;;;;;13416:31:46;;13396:18;;;13389:59;12671:46:38;;;;13328:18:46;;12671:53:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12734:25;:23;:25::i;:::-;:49;;-1:-1:-1;;;12734:49:38;;;;;2331:25:46;;;;12734:47:38;;;;2304:18:46;;12734:49:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12606:184;:::o;9071:205:14:-;9129:30;;3147:66;9186:27;8819:122;1847:127:13;6929:20:14;:18;:20::i;:::-;1929:38:13::1;1954:12;1929:24;:38::i;12796:376:38:-:0;12886:44;12933:40;:38;:40::i;:::-;12886:87;;12988:9;12983:183;13003:27;;;12983:183;;;13093:4;13051:1;:18;;:39;13070:16;;13087:1;13070:19;;;;;;;:::i;:::-;;;;;;;13051:39;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;13116:39;13135:16;;13152:1;13135:19;;;;;;;:::i;:::-;;;;;;;13116:39;;;;2331:25:46;;2319:2;2304:18;;2185:177;13116:39:38;;;;;;;;13032:3;;12983:183;;17012:288;17090:44;17137:40;:38;:40::i;:::-;17090:87;;17192:9;17187:107;17207:21;;;17187:107;;;17279:4;17249:1;:12;;:27;17262:10;;17273:1;17262:13;;;;;;;:::i;:::-;;;;;;;;;;17249:27;;-1:-1:-1;17249:27:38;;;;;;;;-1:-1:-1;17249:27:38;:34;;-1:-1:-1;;17249:34:38;;;;;;;;;;-1:-1:-1;17230:3:38;17187:107;;13808:1140;13955:16;;;;;:19;;;14004;;;14053;;;;14102;;;;14154;;;;14208;;;;14257;;;;14310;;;;14360;;;;14412;;;;14465:20;;;;14527;;;;;13955:19;;14004;;14053;;14102;;14154;;14208;;14257;;14310;;14360;;14412;;14465:20;14559:281;14053:19;14102;14004;13955;14310;14154;14208;14412;14465:20;14257:19;14559:21;:281::i;:::-;14850:41;14864:9;14875:15;14850:13;:41::i;:::-;14901:40;14920:9;14931;14901:18;:40::i;:::-;13924:1024;;;;;;;;;;;;13808:1140;:::o;2955:222:12:-;1676:27;3104:22;;-1:-1:-1;;;;;;3104:22:12;;;3136:34;3161:8;3136:24;:34::i;13178:624:38:-;13324:44;13371:40;:38;:40::i;:::-;13324:87;-1:-1:-1;13425:45:38;;;13421:142;;13493:59;;-1:-1:-1;;;13493:59:38;;;;;23253:25:46;;;23294:18;;;23287:34;;;23226:18;;13493:59:38;23048:279:46;13421:142:38;13577:9;13572:224;13592:21;;;13572:224;;;13675:17;;13693:1;13675:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13634:1;:23;;13658:10;;13669:1;13658:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;13634:38;;;;;;;:::i;:::-;;;;;;;;;;;;;;:61;;-1:-1:-1;;;;;13634:61:38;;;;-1:-1:-1;;;;;;13634:61:38;;;;;;;;;13715:70;13749:10;;13760:1;13749:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;13764:17;;13782:1;13764:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13715:70;;;;;;;;:::i;:::-;;;;;;;;13615:3;;13572:224;;7082:141:14;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:14;;;;;;;;;;;1980:235:13;6929:20:14;:18;:20::i;:::-;-1:-1:-1;;;;;2076:26:13;::::1;2072:95;;2125:31;::::0;-1:-1:-1;;;2125:31:13;;2153:1:::1;2125:31;::::0;::::1;10044:51:46::0;10017:18;;2125:31:13::1;9898:203:46::0;15003:1215:38;15354:44;15401:40;:38;:40::i;:::-;15354:87;;15455:9;15468:1;15455:14;15451:45;;15478:18;;-1:-1:-1;;;15478:18:38;;;;;;;;;;;15451:45;15510:9;15523:1;15510:14;15506:45;;15533:18;;-1:-1:-1;;;15533:18:38;;;;;;;;;;;15506:45;15582:15;;15565:32;;15561:67;;15606:22;;-1:-1:-1;;;15606:22:38;;;;;;;;;;;15561:67;15658:1;:14;;;15642:12;:30;15638:64;;15681:21;;-1:-1:-1;;;15681:21:38;;;;;;;;;;;15638:64;15733:1;:15;;;15716:13;:32;15712:67;;15757:22;;-1:-1:-1;;;15757:22:38;;;;;;;;;;;15712:67;15790:26;15834:1;:16;;;15819:12;:31;;;;:::i;:::-;15790:60;;15882:18;15864:14;:36;15860:131;;15923:57;;-1:-1:-1;;;15923:57:38;;;;;23253:25:46;;;23294:18;;;23287:34;;;23226:18;;15923:57:38;23048:279:46;15860:131:38;16022:15;16004:14;:33;16000:60;;16046:14;;-1:-1:-1;;;16046:14:38;;;;;;;;;;;16000:60;16075:30;;;;:18;;;:30;;;;;;;;16070:63;;16114:19;;-1:-1:-1;;;16114:19:38;;;;;;;;;;;16070:63;16148:23;;;;:12;;;:23;;;;;;;;16143:68;;16180:31;;-1:-1:-1;;;16180:31:38;;;;;2331:25:46;;;2304:18;;16180:31:38;2185:177:46;16143:68:38;15344:874;;15003:1215;;;;;;;;;;:::o;16422:584::-;16510:15;-1:-1:-1;;;;;16510:20:38;16529:1;16510:20;16506:72;;16539:39;;-1:-1:-1;;;16539:39:38;;-1:-1:-1;;;;;18754:31:46;;16539:39:38;;;18736:50:46;18709:18;;16539:39:38;18583:209:46;16506:72:38;16588:44;16635:40;:38;:40::i;:::-;16685:20;16708:41;;;:30;;;:41;;;;;;16588:87;;-1:-1:-1;;;;;;16708:41:38;16763:18;;16759:172;;16797:25;:23;:25::i;:::-;:61;;-1:-1:-1;;;16797:61:38;;;;;13355:25:46;;;;-1:-1:-1;;;;;13416:31:46;;13396:18;;;13389:59;16797:46:38;;;;13328:18:46;;16797:61:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16877:43:38;;;13355:25:46;;;-1:-1:-1;;;;;13416:31:46;;13411:2;13396:18;;13389:59;16877:43:38;;-1:-1:-1;13328:18:46;;-1:-1:-1;16877:43:38;;;;;;;16759:172;-1:-1:-1;16940:41:38;;;;:30;;:41;;;;;;:59;;-1:-1:-1;;16940:59:38;-1:-1:-1;;;;;16940:59:38;;;;;;;;;16422:584::o;16224:192::-;16295:25;:23;:25::i;:::-;:55;;-1:-1:-1;;;16295:55:38;;;;;17978:25:46;;;;18019:18;;;18012:34;;;18062:18;;;18055:34;;;16295:47:38;;;;17951:18:46;;16295:55:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16360:25;:23;:25::i;:::-;:49;;-1:-1:-1;;;16360:49:38;;;;;2331:25:46;;;;16360:47:38;;;;2304:18:46;;16360:49:38;2185:177:46;3774:248:13;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:13;;-1:-1:-1;;;;;3941:19:13;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;8485:120:14:-;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:14;;;;;;-1:-1:-1;8485:120:14:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:171:46:-;81:20;;-1:-1:-1;;;;;130:30:46;;120:41;;110:69;;175:1;172;165:12;110:69;14:171;;;:::o;190:184::-;248:6;301:2;289:9;280:7;276:23;272:32;269:52;;;317:1;314;307:12;269:52;340:28;358:9;340:28;:::i;475:1033::-;590:12;;578:25;;666:4;655:16;;;649:23;642:31;635:39;619:14;;;612:63;721:4;710:16;;;704:23;562:6;743:14;;;736:30;;;815:19;;553:16;;;843:20;;;523:3;;917:23;;523:3;;890;881:13;;;968:179;982:6;979:1;976:13;968:179;;;1051:6;1045:13;1038:5;1031:28;1092:4;1085:5;1081:16;1072:25;;1132:4;1124:6;1120:17;1110:27;;1004:1;1001;997:9;992:14;;968:179;;;972:3;1196:4;1189:5;1185:16;1179:23;1172:4;1167:3;1163:14;1156:47;1252:4;1245:5;1241:16;1235:23;1228:4;1223:3;1219:14;1212:47;1307:4;1300:5;1296:16;1290:23;1268:45;;1322:47;1363:4;1358:3;1354:14;1338;449:13;442:21;430:34;;379:91;1322:47;1418:4;1411:5;1407:16;1401:23;1394:4;1389:3;1385:14;1378:47;1474:4;1467:5;1463:16;1457:23;1450:4;1445:3;1441:14;1434:47;1497:5;1490:12;;;;;475:1033;;;;:::o;1780:400::-;2037:3;2026:9;2019:22;2000:4;2058:52;2105:3;2094:9;2090:19;2082:6;2058:52;:::i;:::-;2050:60;;2119:55;2170:2;2159:9;2155:18;2147:6;1594:5;1588:12;1583:3;1576:25;1650:4;1643:5;1639:16;1633:23;1626:4;1621:3;1617:14;1610:47;1706:4;1699:5;1695:16;1689:23;1682:4;1677:3;1673:14;1666:47;1762:4;1755:5;1751:16;1745:23;1738:4;1733:3;1729:14;1722:47;;;1513:262;2367:286;2425:6;2478:2;2466:9;2457:7;2453:23;2449:32;2446:52;;;2494:1;2491;2484:12;2446:52;2520:23;;-1:-1:-1;;;;;;2572:32:46;;2562:43;;2552:71;;2619:1;2616;2609:12;2850:226;2909:6;2962:2;2950:9;2941:7;2937:23;2933:32;2930:52;;;2978:1;2975;2968:12;2930:52;-1:-1:-1;3023:23:46;;2850:226;-1:-1:-1;2850:226:46:o;3081:298::-;3148:6;3156;3209:2;3197:9;3188:7;3184:23;3180:32;3177:52;;;3225:1;3222;3215:12;3177:52;3270:23;;;-1:-1:-1;3336:37:46;3369:2;3354:18;;3336:37;:::i;:::-;3326:47;;3081:298;;;;;:::o;3384:444::-;3579:2;3568:9;3561:21;3591:62;3649:2;3638:9;3634:18;3625:6;3619:13;1594:5;1588:12;1583:3;1576:25;1650:4;1643:5;1639:16;1633:23;1626:4;1621:3;1617:14;1610:47;1706:4;1699:5;1695:16;1689:23;1682:4;1677:3;1673:14;1666:47;1762:4;1755:5;1751:16;1745:23;1738:4;1733:3;1729:14;1722:47;;;1513:262;3591:62;3542:4;3700:2;3692:6;3688:15;3682:22;3742:4;3735;3724:9;3720:20;3713:34;3764:58;3817:3;3806:9;3802:19;3788:12;3764:58;:::i;3833:252::-;4008:2;3997:9;3990:21;3971:4;4028:51;4075:2;4064:9;4060:18;4052:6;4028:51;:::i;4090:346::-;4158:6;4166;4219:2;4207:9;4198:7;4194:23;4190:32;4187:52;;;4235:1;4232;4225:12;4187:52;-1:-1:-1;;4280:23:46;;;4400:2;4385:18;;;4372:32;;-1:-1:-1;4090:346:46:o;4441:367::-;4504:8;4514:6;4568:3;4561:4;4553:6;4549:17;4545:27;4535:55;;4586:1;4583;4576:12;4535:55;-1:-1:-1;4609:20:46;;-1:-1:-1;;;;;4641:30:46;;4638:50;;;4684:1;4681;4674:12;4638:50;4721:4;4713:6;4709:17;4697:29;;4781:3;4774:4;4764:6;4761:1;4757:14;4749:6;4745:27;4741:38;4738:47;4735:67;;;4798:1;4795;4788:12;4735:67;4441:367;;;;;:::o;4813:173::-;4881:20;;-1:-1:-1;;;;;4930:31:46;;4920:42;;4910:70;;4976:1;4973;4966:12;4991:1435;5197:6;5205;5213;5221;5229;5237;5245;5253;5261;5269;5313:9;5304:7;5300:23;5343:3;5339:2;5335:12;5332:32;;;5360:1;5357;5350:12;5332:32;5405:23;;;-1:-1:-1;5503:2:46;5488:18;;5475:32;-1:-1:-1;;;;;5519:30:46;;5516:50;;;5562:1;5559;5552:12;5516:50;5601:70;5663:7;5654:6;5643:9;5639:22;5601:70;:::i;:::-;5690:8;;-1:-1:-1;5575:96:46;-1:-1:-1;;5778:2:46;5763:18;;5750:32;-1:-1:-1;;;;;5794:32:46;;5791:52;;;5839:1;5836;5829:12;5791:52;5878:72;5942:7;5931:8;5920:9;5916:24;5878:72;:::i;:::-;5969:8;;-1:-1:-1;5852:98:46;-1:-1:-1;;6077:2:46;6062:18;;6049:32;;-1:-1:-1;6180:3:46;6165:19;;6152:33;;-1:-1:-1;6230:39:46;6264:3;6249:19;;6230:39;:::i;:::-;6220:49;-1:-1:-1;6304:2:46;-1:-1:-1;;6285:17:46;;6281:26;6278:46;;;6320:1;6317;6310:12;6278:46;;6358:3;6347:9;6343:19;6333:29;;6381:39;6415:3;6404:9;6400:19;6381:39;:::i;:::-;6371:49;;4991:1435;;;;;;;;;;;;;:::o;6431:168::-;6498:20;;-1:-1:-1;;;;;;6547:27:46;;6537:38;;6527:66;;6589:1;6586;6579:12;6604:258;6671:6;6679;6732:2;6720:9;6711:7;6707:23;6703:32;6700:52;;;6748:1;6745;6738:12;6700:52;6771:29;6790:9;6771:29;:::i;:::-;6761:39;;6819:37;6852:2;6841:9;6837:18;6819:37;:::i;6867:127::-;6928:10;6923:3;6919:20;6916:1;6909:31;6959:4;6956:1;6949:15;6983:4;6980:1;6973:15;6999:251;7071:2;7065:9;;;7101:15;;-1:-1:-1;;;;;7131:34:46;;7167:22;;;7128:62;7125:88;;;7193:18;;:::i;:::-;7229:2;7222:22;6999:251;:::o;7255:255::-;7327:2;7321:9;7369:6;7357:19;;-1:-1:-1;;;;;7391:34:46;;7427:22;;;7388:62;7385:88;;;7453:18;;:::i;7515:275::-;7586:2;7580:9;7651:2;7632:13;;-1:-1:-1;;7628:27:46;7616:40;;-1:-1:-1;;;;;7671:34:46;;7707:22;;;7668:62;7665:88;;;7733:18;;:::i;:::-;7769:2;7762:22;7515:275;;-1:-1:-1;7515:275:46:o;7795:636::-;7838:5;7891:3;7884:4;7876:6;7872:17;7868:27;7858:55;;7909:1;7906;7899:12;7858:55;7949:6;7936:20;7988:4;7980:6;7976:17;8017:1;8039:7;-1:-1:-1;;;;;8061:6:46;8058:30;8055:56;;;8091:18;;:::i;:::-;-1:-1:-1;8157:2:46;8136:15;;-1:-1:-1;;8132:29:46;8163:4;8128:40;8188:21;8128:40;8188:21;:::i;:::-;8177:32;;;8234:6;8225:7;8218:23;8274:3;8265:6;8260:3;8256:16;8253:25;8250:45;;;8291:1;8288;8281:12;8250:45;8342:6;8337:3;8330:4;8321:7;8317:18;8304:45;8398:1;8369:20;;;8391:4;8365:31;8358:42;;;;-1:-1:-1;8373:7:46;7795:636;-1:-1:-1;;;7795:636:46:o;8436:1015::-;8547:6;8555;8608:2;8596:9;8587:7;8583:23;8579:32;8576:52;;;8624:1;8621;8614:12;8576:52;8664:9;8651:23;-1:-1:-1;;;;;8689:6:46;8686:30;8683:50;;;8729:1;8726;8719:12;8683:50;8752:22;;8808:2;8790:16;;;8786:25;8783:45;;;8824:1;8821;8814:12;8783:45;8850:22;;:::i;:::-;8910:2;8897:16;-1:-1:-1;;;;;8928:8:46;8925:32;8922:52;;;8970:1;8967;8960:12;8922:52;8997:45;9034:7;9023:8;9019:2;9015:17;8997:45;:::i;:::-;8990:5;8983:60;;9089:2;9085;9081:11;9068:25;-1:-1:-1;;;;;9108:8:46;9105:32;9102:52;;;9150:1;9147;9140:12;9102:52;9186:45;9223:7;9212:8;9208:2;9204:17;9186:45;:::i;:::-;9181:2;9174:5;9170:14;9163:69;;9251:5;9241:15;;;;9309:2;9298:9;9294:18;9281:32;-1:-1:-1;;;;;9328:8:46;9325:32;9322:52;;;9370:1;9367;9360:12;9322:52;9393;9437:7;9426:8;9415:9;9411:24;9393:52;:::i;:::-;9383:62;;;8436:1015;;;;;:::o;9456:437::-;9542:6;9550;9603:2;9591:9;9582:7;9578:23;9574:32;9571:52;;;9619:1;9616;9609:12;9571:52;9659:9;9646:23;-1:-1:-1;;;;;9684:6:46;9681:30;9678:50;;;9724:1;9721;9714:12;9678:50;9763:70;9825:7;9816:6;9805:9;9801:22;9763:70;:::i;:::-;9852:8;;9737:96;;-1:-1:-1;9456:437:46;-1:-1:-1;;;;9456:437:46:o;10106:418::-;10182:6;10190;10198;10251:2;10239:9;10230:7;10226:23;10222:32;10219:52;;;10267:1;10264;10257:12;10219:52;10312:23;;;-1:-1:-1;10432:2:46;10417:18;;10404:32;;-1:-1:-1;10481:37:46;10514:2;10499:18;;10481:37;:::i;:::-;10471:47;;10106:418;;;;;:::o;10529:322::-;10598:6;10651:2;10639:9;10630:7;10626:23;10622:32;10619:52;;;10667:1;10664;10657:12;10619:52;10707:9;10694:23;-1:-1:-1;;;;;10732:6:46;10729:30;10726:50;;;10772:1;10769;10762:12;10726:50;10795;10837:7;10828:6;10817:9;10813:22;10795:50;:::i;11217:298::-;11284:6;11292;11345:2;11333:9;11324:7;11320:23;11316:32;11313:52;;;11361:1;11358;11351:12;11313:52;11384:28;11402:9;11384:28;:::i;:::-;11374:38;11481:2;11466:18;;;;11453:32;;-1:-1:-1;;;11217:298:46:o;11520:186::-;11579:6;11632:2;11620:9;11611:7;11607:23;11603:32;11600:52;;;11648:1;11645;11638:12;11600:52;11671:29;11690:9;11671:29;:::i;11711:780::-;11845:6;11853;11861;11869;11922:2;11910:9;11901:7;11897:23;11893:32;11890:52;;;11938:1;11935;11928:12;11890:52;11978:9;11965:23;-1:-1:-1;;;;;12003:6:46;12000:30;11997:50;;;12043:1;12040;12033:12;11997:50;12082:70;12144:7;12135:6;12124:9;12120:22;12082:70;:::i;:::-;12171:8;;-1:-1:-1;12056:96:46;-1:-1:-1;;12259:2:46;12244:18;;12231:32;-1:-1:-1;;;;;12275:32:46;;12272:52;;;12320:1;12317;12310:12;12272:52;12359:72;12423:7;12412:8;12401:9;12397:24;12359:72;:::i;:::-;11711:780;;;;-1:-1:-1;12450:8:46;-1:-1:-1;;;;11711:780:46:o;12496:250::-;12581:1;12591:113;12605:6;12602:1;12599:13;12591:113;;;12681:11;;;12675:18;12662:11;;;12655:39;12627:2;12620:10;12591:113;;;-1:-1:-1;;12738:1:46;12720:16;;12713:27;12496:250::o;12751:396::-;12900:2;12889:9;12882:21;12863:4;12932:6;12926:13;12975:6;12970:2;12959:9;12955:18;12948:34;12991:79;13063:6;13058:2;13047:9;13043:18;13038:2;13030:6;13026:15;12991:79;:::i;:::-;13131:2;13110:15;-1:-1:-1;;13106:29:46;13091:45;;;;13138:2;13087:54;;12751:396;-1:-1:-1;;12751:396:46:o;13459:164::-;13535:13;;13584;;13577:21;13567:32;;13557:60;;13613:1;13610;13603:12;13628:772;13693:5;13746:3;13739:4;13731:6;13727:17;13723:27;13713:55;;13764:1;13761;13754:12;13713:55;13797:6;13791:13;-1:-1:-1;;;;;13819:6:46;13816:30;13813:56;;;13849:18;;:::i;:::-;13895:6;13892:1;13888:14;13922:30;13946:4;13942:2;13938:13;13922:30;:::i;:::-;13988:19;;;14032:4;14064:15;;;14060:26;;;14023:14;;;;14098:15;;;14095:35;;;14126:1;14123;14116:12;14095:35;14162:4;14154:6;14150:17;14139:28;;14176:193;14192:6;14187:3;14184:15;14176:193;;;14284:10;;14307:18;;14354:4;14209:14;;;;14345;;;;14176:193;;;14387:7;13628:772;-1:-1:-1;;;;;;13628:772:46:o;14405:1087::-;14468:5;14516:6;14504:9;14499:3;14495:19;14491:32;14488:52;;;14536:1;14533;14526:12;14488:52;14558:22;;:::i;:::-;14625:16;;14650:22;;14549:31;-1:-1:-1;14704:46:46;14746:2;14731:18;;14704:46;:::i;:::-;14699:2;14692:5;14688:14;14681:70;14795:2;14784:9;14780:18;14774:25;-1:-1:-1;;;;;14814:6:46;14811:30;14808:50;;;14854:1;14851;14844:12;14808:50;14890:68;14954:3;14945:6;14934:9;14930:22;14890:68;:::i;:::-;14885:2;14874:14;;14867:92;-1:-1:-1;15025:2:46;15010:18;;;15004:25;15045:14;;;15038:31;15135:3;15120:19;;;15114:26;15156:15;;;15149:32;15214:47;15256:3;15241:19;;15214:47;:::i;:::-;15208:3;15197:15;;15190:72;15328:3;15313:19;;;15307:26;15349:15;;;15342:32;15440:3;15425:19;;;15419:26;15461:15;;;15454:32;;;;15201:5;14405:1087;-1:-1:-1;14405:1087:46:o;15497:1158::-;15626:6;15634;15678:9;15669:7;15665:23;15708:3;15704:2;15700:12;15697:32;;;15725:1;15722;15715:12;15697:32;15758:9;15752:16;-1:-1:-1;;;;;15783:6:46;15780:30;15777:50;;;15823:1;15820;15813:12;15777:50;15846:67;15905:7;15896:6;15885:9;15881:22;15846:67;:::i;:::-;15836:77;-1:-1:-1;;15947:4:46;-1:-1:-1;;15929:16:46;;15925:27;15922:47;;;15965:1;15962;15955:12;15922:47;-1:-1:-1;16018:2:46;16012:9;16060:4;16048:17;;-1:-1:-1;;;;;16080:34:46;;16116:22;;;16077:62;16074:88;;;16142:18;;:::i;:::-;16178:2;16171:22;;;16255:2;16240:18;;;16234:25;16268:21;;16340:18;;;16334:25;16375:15;;;16368:32;16466:2;16451:18;;;16445:25;16486:15;;;16479:32;;;;16577:4;16562:20;;;16556:27;16599:15;;;16592:32;;;;-1:-1:-1;15497:1158:46;16275:6;;-1:-1:-1;15497:1158:46:o;16873:230::-;16943:6;16996:2;16984:9;16975:7;16971:23;16967:32;16964:52;;;17012:1;17009;17002:12;16964:52;-1:-1:-1;17057:16:46;;16873:230;-1:-1:-1;16873:230:46:o;17384:356::-;17477:6;17530:2;17518:9;17509:7;17505:23;17501:32;17498:52;;;17546:1;17543;17536:12;17498:52;17579:9;17573:16;-1:-1:-1;;;;;17604:6:46;17601:30;17598:50;;;17644:1;17641;17634:12;17598:50;17667:67;17726:7;17717:6;17706:9;17702:22;17667:67;:::i;18100:184::-;18158:6;18211:2;18199:9;18190:7;18186:23;18182:32;18179:52;;;18227:1;18224;18217:12;18179:52;18250:28;18268:9;18250:28;:::i;18289:289::-;18420:3;18458:6;18452:13;18474:66;18533:6;18528:3;18521:4;18513:6;18509:17;18474:66;:::i;:::-;18556:16;;;;;18289:289;-1:-1:-1;;18289:289:46:o;19368:620::-;19429:5;19482:3;19475:4;19467:6;19463:17;19459:27;19449:55;;19500:1;19497;19490:12;19449:55;19601:19;19579:2;19601:19;:::i;:::-;19644:3;19682:2;19674:6;19670:15;19708:3;19700:6;19697:15;19694:35;;;19725:1;19722;19715:12;19694:35;19749:6;19764:193;19780:6;19775:3;19772:15;19764:193;;;19872:10;;19895:18;;19942:4;19933:14;;;;19797;19764:193;;;-1:-1:-1;19975:7:46;;19368:620;-1:-1:-1;;;;;19368:620:46:o;19993:1209::-;20207:6;20215;20223;20231;20284:3;20272:9;20263:7;20259:23;20255:33;20252:53;;;20301:1;20298;20291:12;20252:53;20334:9;20328:16;-1:-1:-1;;;;;20359:6:46;20356:30;20353:50;;;20399:1;20396;20389:12;20353:50;20422:72;20486:7;20477:6;20466:9;20462:22;20422:72;:::i;:::-;20412:82;;;20513:64;20569:7;20564:2;20553:9;20549:18;20513:64;:::i;:::-;20503:74;;20621:7;20615:3;20604:9;20600:19;20596:33;20586:61;;20643:1;20640;20633:12;20586:61;20722:2;20744:19;20722:2;20744:19;:::i;:::-;20785:3;20826;20815:9;20811:19;20853:7;20845:6;20842:19;20839:39;;;20874:1;20871;20864:12;20839:39;20913:2;20902:9;20898:18;20925:176;20941:6;20936:3;20933:15;20925:176;;;21009:49;21050:7;21045:3;21009:49;:::i;:::-;20997:62;;21088:2;21079:12;;;;20958:14;;20925:176;;;20929:3;21120:5;21110:15;;21144:52;21188:7;21180:6;21144:52;:::i;:::-;21134:62;;;;;;19993:1209;;;;;;;:::o;21207:127::-;21268:10;21263:3;21259:20;21256:1;21249:31;21299:4;21296:1;21289:15;21323:4;21320:1;21313:15;21339:303;21432:5;21455:1;21465:171;21479:4;21476:1;21473:11;21465:171;;;21538:13;;21526:26;;21581:4;21572:14;;;;21609:17;;;;21499:1;21492:9;21465:171;;21647:1189;22097:3;22082:19;;22110:43;22086:9;22135:6;22110:43;:::i;:::-;22188:2;22177:9;22173:18;22233:6;22257:1;22267:187;22281:4;22278:1;22275:11;22267:187;;;22328:44;22368:3;22359:6;22353:13;22328:44;:::i;:::-;22401:2;22392:12;;;;;22439:4;22427:17;;;;;22301:1;22294:9;22267:187;;;22271:3;;;22463:53;22511:3;22500:9;22496:19;22488:6;22463:53;:::i;:::-;22553:3;22542:9;22538:19;22605:6;22631:1;22641:189;22657:4;22652:3;22649:13;22641:189;;;22722:15;;22708:30;;22771:4;22760:16;;;;22801:19;;;;22681:1;22672:11;22641:189;;;22645:3;;;21647:1189;;;;;;;:::o;22841:202::-;22908:6;22961:2;22949:9;22940:7;22936:23;22932:32;22929:52;;;22977:1;22974;22967:12;22929:52;23000:37;23027:9;23000:37;:::i;23681:769::-;23774:6;23834:2;23822:9;23813:7;23809:23;23805:32;23849:2;23846:22;;;23864:1;23861;23854:12;23846:22;-1:-1:-1;23934:2:46;23928:9;23883:1;;23976:2;23964:15;;-1:-1:-1;;;;;23994:34:46;;24030:22;;;23991:62;23988:88;;;24056:18;;:::i;:::-;24092:2;24085:22;;;24149:16;;24174:21;;24262:2;24247:18;;;24241:25;24282:15;;;24275:32;24359:18;;;24353:25;24394:15;;;24387:32;;;;-1:-1:-1;24181:6:46;;23681:769;-1:-1:-1;;23681:769:46:o;25086:522::-;25164:4;25170:6;25230:11;25217:25;25324:2;25320:7;25309:8;25293:14;25289:29;25285:43;25265:18;25261:68;25251:96;;25343:1;25340;25333:12;25251:96;25370:33;;25422:20;;;-1:-1:-1;;;;;;25454:30:46;;25451:50;;;25497:1;25494;25487:12;25451:50;25530:4;25518:17;;-1:-1:-1;25561:14:46;25557:27;;;25547:38;;25544:58;;;25598:1;25595;25588:12;25613:273;25798:6;25790;25785:3;25772:33;25754:3;25824:16;;25849:13;;;25824:16;25613:273;-1:-1:-1;25613:273:46:o;25891:489::-;26078:2;26067:9;26060:21;26117:6;26112:2;26101:9;26097:18;26090:34;26174:6;26166;26161:2;26150:9;26146:18;26133:48;26230:1;26225:2;26201:22;;;26197:31;;26190:42;;;;-1:-1:-1;;;;;26341:32:46;;;;26334:4;26319:20;;26312:62;26293:2;26272:15;;;-1:-1:-1;;26268:29:46;26253:45;;;26249:54;;;-1:-1:-1;25891:489:46:o;26385:222::-;26450:9;;;26471:10;;;26468:133;;;26523:10;26518:3;26514:20;26511:1;26504:31;26558:4;26555:1;26548:15;26586:4;26583:1;26576:15" + }, + "methodIdentifiers": { + "VERSION()": "ffa1ad74", + "acceptOwnership()": "79ba5097", + "addPublicKeyHash(uint256)": "035dfdfe", + "addPublicKeyHashesBatch(uint256[])": "552c9b7e", + "addQrVersion(uint256)": "dcdd17c4", + "addQrVersionBatch(uint256[])": "b5fff0ed", + "anonAadhaarVerifiers(string)": "ad5778c7", + "getClaimProof(uint256)": "b57a40cb", + "getClaimProofByRoot(uint256,uint256)": "310d0d5b", + "getClaimProofWithStateInfo(uint256)": "b37feda4", + "getClaimsTreeRoot()": "3df432fc", + "getExpirationTime()": "e23a845a", + "getId()": "5d1ca631", + "getIsOldStateGenesis()": "f84c7c1e", + "getLatestPublishedClaimsRoot()": "523b8136", + "getLatestPublishedRevocationsRoot()": "9674cfa4", + "getLatestPublishedRootsRoot()": "c6365a3b", + "getLatestPublishedState()": "3d59ec60", + "getNullifierSeed()": "13e52ae7", + "getRevocationProof(uint64)": "26485063", + "getRevocationProofByRoot(uint64,uint256)": "e26ecb0b", + "getRevocationProofWithStateInfo(uint64)": "0033058d", + "getRevocationStatus(uint256,uint64)": "110c96a7", + "getRevocationStatusByIdAndState(uint256,uint256,uint64)": "aad72921", + "getRevocationsTreeRoot()": "01c85c77", + "getRootProof(uint256)": "c1e32733", + "getRootProofByRoot(uint256,uint256)": "2d5c4f25", + "getRootProofWithStateInfo(uint256)": "443d7534", + "getRootsByState(uint256)": "b8db6871", + "getRootsTreeRoot()": "da68a0b1", + "getSmtDepth()": "3f0c6648", + "getTemplateRoot()": "2c1d3204", + "initialize(address,bytes2)": "406e8b4c", + "initializeIssuer(uint256,uint256[],uint256[],uint256,uint256,address,(address,bytes2),address)": "345f83ff", + "nullifierExists(uint256)": "2afab62f", + "owner()": "8da5cb5b", + "pendingOwner()": "e30c3978", + "publicKeyHashExists(uint256)": "58ada672", + "qrVersionSupported(uint256)": "efc8385a", + "removePublicKeyHash(uint256)": "f221b845", + "removeQrVersion(uint256)": "2e1e252f", + "renounceOwnership()": "715018a6", + "revokeCredential(uint256)": "1b87278d", + "setIssuerDidHash(uint256)": "4c240f34", + "setNullifierSeed(uint256)": "13364fc8", + "setTemplateRoot(uint256)": "b354c2d8", + "supportsInterface(bytes4)": "01ffc9a7", + "transferOwnership(address)": "f2fde38b", + "updateAnonAadhaarVerifiers(string[],address[])": "f8ba8b39", + "verifyAadhaar((string,bytes),bytes)": "43e5c520" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidAnonAadhaarProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"provided\",\"type\":\"uint256\"}],\"name\":\"InvalidExpirationDate\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidHashIndex\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidHashValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidIssuerDidHash\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNullifierSeed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPubKeyHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"}],\"name\":\"InvalidRevocationNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidStateContractAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTemplateRoot\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidVerifierAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length2\",\"type\":\"uint256\"}],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"circuitId\",\"type\":\"string\"}],\"name\":\"NoAnonAadhaarCircuitIdFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoVerifierSet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NullifierDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProofExpired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"qrVersion\",\"type\":\"uint256\"}],\"name\":\"UnsupportedQrVersion\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"circuitId\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"verifierAddress\",\"type\":\"address\"}],\"name\":\"AnonAadhaarCircuitVerifierUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nullifier\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"}],\"name\":\"CredentialRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"issuerDidHash\",\"type\":\"uint256\"}],\"name\":\"IssuerDidHashUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"publicKeyHash\",\"type\":\"uint256\"}],\"name\":\"PublicKeyHashAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"templateRoot\",\"type\":\"uint256\"}],\"name\":\"TemplateRootUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"publicKeyHash\",\"type\":\"uint256\"}],\"name\":\"addPublicKeyHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"publicKeysHashes\",\"type\":\"uint256[]\"}],\"name\":\"addPublicKeyHashesBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"qrVersion\",\"type\":\"uint256\"}],\"name\":\"addQrVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"qrVersions\",\"type\":\"uint256[]\"}],\"name\":\"addQrVersionBatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"circuitId\",\"type\":\"string\"}],\"name\":\"anonAadhaarVerifiers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimIndexHash\",\"type\":\"uint256\"}],\"name\":\"getClaimProof\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimIndexHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getClaimProofByRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimIndexHash\",\"type\":\"uint256\"}],\"name\":\"getClaimProofWithStateInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimsTreeRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExpirationTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIsOldStateGenesis\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedClaimsRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedRevocationsRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedRootsRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedState\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNullifierSeed\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationProof\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getRevocationProofByRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationProofWithStateInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationStatus\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootOfRoots\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.IdentityStateRoots\",\"name\":\"issuer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.Proof\",\"name\":\"mtp\",\"type\":\"tuple\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.CredentialStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationStatusByIdAndState\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootOfRoots\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.IdentityStateRoots\",\"name\":\"issuer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.Proof\",\"name\":\"mtp\",\"type\":\"tuple\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.CredentialStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRevocationsTreeRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rootsTreeRoot\",\"type\":\"uint256\"}],\"name\":\"getRootProof\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getRootProofByRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rootsTreeRoot\",\"type\":\"uint256\"}],\"name\":\"getRootProofWithStateInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"}],\"name\":\"getRootsByState\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.Roots\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootsTreeRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSmtDepth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTemplateRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateContractAddr\",\"type\":\"address\"},{\"internalType\":\"bytes2\",\"name\":\"idType\",\"type\":\"bytes2\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nullifierSeed\",\"type\":\"uint256\"},{\"internalType\":\"uint256[]\",\"name\":\"publicKeysHashes\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"qrVersions\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"templateRoot\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"anonAadhaarVerifier\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"stateAddress\",\"type\":\"address\"},{\"internalType\":\"bytes2\",\"name\":\"idType\",\"type\":\"bytes2\"}],\"internalType\":\"struct AnonAadhaarCredentialIssuer.StateInfo\",\"name\":\"stateInfo\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"initializeIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nullifier\",\"type\":\"uint256\"}],\"name\":\"nullifierExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"publicKeyHash\",\"type\":\"uint256\"}],\"name\":\"publicKeyHashExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"qrVersion\",\"type\":\"uint256\"}],\"name\":\"qrVersionSupported\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"publicKeyHash\",\"type\":\"uint256\"}],\"name\":\"removePublicKeyHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"qrVersion\",\"type\":\"uint256\"}],\"name\":\"removeQrVersion\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nullifier\",\"type\":\"uint256\"}],\"name\":\"revokeCredential\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"issuerDidHash\",\"type\":\"uint256\"}],\"name\":\"setIssuerDidHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nullifierSeed\",\"type\":\"uint256\"}],\"name\":\"setNullifierSeed\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateRoot\",\"type\":\"uint256\"}],\"name\":\"setTemplateRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"circuitIds\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"verifierAddresses\",\"type\":\"address[]\"}],\"name\":\"updateAnonAadhaarVerifiers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"circuitId\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct AnonAadhaarCredentialIssuer.CredentialProof\",\"name\":\"credentialProof\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"passportSignatureProof\",\"type\":\"bytes\"}],\"name\":\"verifyAadhaar\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Address ownership credential issuer. This issuer issues non-merklized credentials in a decentralized manner.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"addPublicKeyHash(uint256)\":{\"params\":{\"publicKeyHash\":\"The public key hash to add.\"}},\"addPublicKeyHashesBatch(uint256[])\":{\"params\":{\"publicKeysHashes\":\"The array of public key hashes to add.\"}},\"addQrVersion(uint256)\":{\"params\":{\"qrVersion\":\"The QR version to add.\"}},\"addQrVersionBatch(uint256[])\":{\"params\":{\"qrVersions\":\"The array of QR versions to add.\"}},\"anonAadhaarVerifiers(string)\":{\"params\":{\"circuitId\":\"The circuit id identifier.\"},\"returns\":{\"_0\":\"The anonAadhaar verifier address.\"}},\"constructor\":{\"details\":\"Prevents direct initialization of the implementation contract.\"},\"getClaimProof(uint256)\":{\"details\":\"Retrieve Claim inclusion or non-inclusion proof for a given claim index.\",\"params\":{\"claimIndexHash\":\"- hash of Claim Index\"},\"returns\":{\"_0\":\"The ClaimsTree inclusion or non-inclusion proof for the claim\"}},\"getClaimProofByRoot(uint256,uint256)\":{\"details\":\"Retrieve Claim inclusion or non-inclusion proof for a given claim index by target root.\",\"params\":{\"claimIndexHash\":\"- hash of Claim Index\",\"root\":\"- root of the tree\"},\"returns\":{\"_0\":\"The ClaimsTree inclusion or non-inclusion proof for the claim\"}},\"getClaimProofWithStateInfo(uint256)\":{\"details\":\"Retrieve Claim inclusion or non-inclusion proof for a given claim index with state info.\",\"params\":{\"claimIndexHash\":\"- hash of Claim Index\"},\"returns\":{\"_0\":\"The ClaimsTree inclusion or non-inclusion proof for the claim and state info.\"}},\"getClaimsTreeRoot()\":{\"details\":\"Retrieve ClaimsTree latest root.\",\"returns\":{\"_0\":\"The latest ClaimsTree root\"}},\"getExpirationTime()\":{\"returns\":{\"_0\":\"The expiration time.\"}},\"getId()\":{\"details\":\"returns identity Id\",\"returns\":{\"_0\":\"uint256 Id\"}},\"getIsOldStateGenesis()\":{\"details\":\"returns isOldStateGenesis flag\",\"returns\":{\"_0\":\"bool isOldStateGenesis\"}},\"getLatestPublishedClaimsRoot()\":{\"details\":\"returns latest published claims tree root\",\"returns\":{\"_0\":\"claimsRoot\"}},\"getLatestPublishedRevocationsRoot()\":{\"details\":\"returns latest published revocation tree root\",\"returns\":{\"_0\":\"revocationsRoot\"}},\"getLatestPublishedRootsRoot()\":{\"details\":\"returns latest published roots tree root\",\"returns\":{\"_0\":\"rootsRoot\"}},\"getLatestPublishedState()\":{\"details\":\"returns identity latest state\",\"returns\":{\"_0\":\"uint256 identityLatestState\"}},\"getNullifierSeed()\":{\"returns\":{\"_0\":\"The nullifier seed.\"}},\"getRevocationProof(uint64)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given revocation nonce.\",\"params\":{\"revocationNonce\":\"- revocation nonce\"},\"returns\":{\"_0\":\"The RevocationsTree inclusion or non-inclusion proof for the revocation nonce\"}},\"getRevocationProofByRoot(uint64,uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given revocation nonce by target root.\",\"params\":{\"revocationNonce\":\"- revocation nonce\",\"root\":\"- root of the tree\"},\"returns\":{\"_0\":\"The RevocationsTree inclusion or non-inclusion proof for the revocation nonce\"}},\"getRevocationProofWithStateInfo(uint64)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given revocation nonce with state info.\",\"params\":{\"revocationNonce\":\"- revocation nonce\"},\"returns\":{\"_0\":\"The RevocationsTree inclusion or non-inclusion proof for the revocation nonce and state info.\"}},\"getRevocationStatus(uint256,uint64)\":{\"details\":\"returns revocation status of a claim using given revocation nonce\",\"params\":{\"id\":\"Issuer's identifier\",\"nonce\":\"Revocation nonce\"},\"returns\":{\"_0\":\"CredentialStatus\"}},\"getRevocationStatusByIdAndState(uint256,uint256,uint64)\":{\"details\":\"returns revocation status of a claim using given revocation nonce, id and state\",\"params\":{\"id\":\"Issuer's identifier\",\"nonce\":\"Revocation nonce\",\"state\":\"of the Issuer\"},\"returns\":{\"_0\":\"CredentialStatus\"}},\"getRevocationsTreeRoot()\":{\"details\":\"Retrieve RevocationsTree latest root.\",\"returns\":{\"_0\":\"The latest RevocationsTree root\"}},\"getRootProof(uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot.\",\"params\":{\"rootsTreeRoot\":\"- roots tree root\"},\"returns\":{\"_0\":\"The RootsTree inclusion or non-inclusion proof for the roots tree root\"}},\"getRootProofByRoot(uint256,uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given claimsTreeRoot by target root.\",\"params\":{\"claimsTreeRoot\":\"- claims tree root\",\"root\":\"- root of the tree\"},\"returns\":{\"_0\":\"The RootsTree inclusion or non-inclusion proof for the claim tree root\"}},\"getRootProofWithStateInfo(uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot with state info.\",\"params\":{\"rootsTreeRoot\":\"- roots tree root\"},\"returns\":{\"_0\":\"The RootsTree inclusion or non-inclusion proof for the claim tree root and state info.\"}},\"getRootsByState(uint256)\":{\"details\":\"returns historical claimsTree roots, revocationsTree roots, rootsTree roots by state\",\"params\":{\"state\":\"identity state\"},\"returns\":{\"_0\":\"set of roots\"}},\"getRootsTreeRoot()\":{\"details\":\"Retrieve RootsTree latest root.\",\"returns\":{\"_0\":\"The latest RootsTree root\"}},\"getSmtDepth()\":{\"details\":\"Get configured Identity SMT depth.\",\"returns\":{\"_0\":\"depth of the SMT\"}},\"getTemplateRoot()\":{\"returns\":{\"_0\":\"The template root.\"}},\"initialize(address,bytes2)\":{\"details\":\"Initialization of IdentityLib library\",\"params\":{\"_stateContractAddr\":\"- address of the State contract\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"publicKeyHashExists(uint256)\":{\"params\":{\"publicKeyHash\":\"The public key hash to check.\"},\"returns\":{\"_0\":\"True if the public key hash exists, false otherwise.\"}},\"qrVersionSupported(uint256)\":{\"params\":{\"qrVersion\":\"The QR version to check.\"},\"returns\":{\"_0\":\"True if the QR version is supported, false otherwise.\"}},\"removePublicKeyHash(uint256)\":{\"params\":{\"publicKeyHash\":\"The public key hash to remove.\"}},\"removeQrVersion(uint256)\":{\"params\":{\"qrVersion\":\"The QR version to remove.\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"revokeCredential(uint256)\":{\"params\":{\"nullifier\":\"credential nullifier.\"}},\"setIssuerDidHash(uint256)\":{\"params\":{\"issuerDidHash\":\"The new issuer DID hash.\"}},\"setTemplateRoot(uint256)\":{\"params\":{\"templateRoot\":\"The new template root.\"}},\"supportsInterface(bytes4)\":{\"details\":\"supportsInterface. Check if the contract supports the interface\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"},\"updateAnonAadhaarVerifiers(string[],address[])\":{\"details\":\"Updates the AnonAadhar circuit verifiers for a specific circuit identifiers.\",\"params\":{\"circuitIds\":\"The AnonAadhar circuit identifiers.\",\"verifierAddresses\":\"The new AnonAadhar circuit verifier addresses.\"}},\"verifyAadhaar((string,bytes),bytes)\":{\"params\":{\"credentialProof\":\"Credential proof for the passport credential\",\"passportSignatureProof\":\"Signature proof of the validation of the passport credential\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addPublicKeyHash(uint256)\":{\"notice\":\"Adds a public key hash.\"},\"addPublicKeyHashesBatch(uint256[])\":{\"notice\":\"Adds multiple public key hashes in a batch.\"},\"addQrVersion(uint256)\":{\"notice\":\"Adds a QR version.\"},\"addQrVersionBatch(uint256[])\":{\"notice\":\"Adds multiple QR versions in a batch.\"},\"anonAadhaarVerifiers(string)\":{\"notice\":\"Retrieves the anonAadhaar verifier address for a given circuit id.\"},\"constructor\":{\"notice\":\"Constructor that disables initializers.\"},\"getExpirationTime()\":{\"notice\":\"Returns the expiration time.\"},\"getNullifierSeed()\":{\"notice\":\"Returns the nullifier seed.\"},\"getTemplateRoot()\":{\"notice\":\"Returns the template root.\"},\"publicKeyHashExists(uint256)\":{\"notice\":\"Returns if the public key hash exists.\"},\"qrVersionSupported(uint256)\":{\"notice\":\"Checks if a QR version is supported.\"},\"removePublicKeyHash(uint256)\":{\"notice\":\"Removes a public key hash.\"},\"removeQrVersion(uint256)\":{\"notice\":\"Removes a QR version.\"},\"revokeCredential(uint256)\":{\"notice\":\"Revoke credential and remove nullifier.\"},\"setIssuerDidHash(uint256)\":{\"notice\":\"Updates the issuer DID hash.\"},\"setTemplateRoot(uint256)\":{\"notice\":\"Updates the template root.\"},\"verifyAadhaar((string,bytes),bytes)\":{\"notice\":\"Verifies the passport credential.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/verifiers/AnonAadhaarCredentialIssuer.sol\":\"AnonAadhaarCredentialIssuer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/interfaces/ICircuitValidator.sol\":{\"keccak256\":\"0xb69c84a4f46354a301c1971f8c518de42370003ab48d8a75d80b46de736371b8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://692c396954d2c5912ddd137b0ee1ab20f6962204213ae122cb34705a25e89cf2\",\"dweb:/ipfs/QmdpEkCHeu6dbsfDmxzSUKwtfndXoGZrPgy1M3Ly81p3Hi\"]},\"@iden3/contracts/interfaces/IIdentifiable.sol\":{\"keccak256\":\"0x622cb97ad95adc38d5b3138fa9ee14b38f11f541c6976687309d61b1d2f2e607\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6e21fa8dccc84d47f0db37fb5747f4d1514187cf4d94ec5fbc54e9ad3f520f74\",\"dweb:/ipfs/QmXM34XGaASwW3QdrbSJXHmwfVurnDdyuYbbiW8wsKaxH3\"]},\"@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol\":{\"keccak256\":\"0x88aa3921c23502bfa297133354aaff8b2428fb49082f3e1644458956a73b06f5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0dd69acd52723b03751f383ec2f0f6772197c8b100a525cb40448ac4f25bdc42\",\"dweb:/ipfs/QmVcugmmLC3hoHzvCe5nEx7GT1jTKcriKbtB4PZ3LEwnrE\"]},\"@iden3/contracts/interfaces/IState.sol\":{\"keccak256\":\"0x9ad1637f51eefacb8b80afab1a2568389da02142dfd0bddf2a769f8fe118f1d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://41253a4bb51672482bfb1207ccae04f5a173e47872f52240f5b94f0e24ccd64a\",\"dweb:/ipfs/QmfC7LpzWsUtPrDJvtT3swQ52nCZGVMC4SRtFVx3qZ5RFU\"]},\"@iden3/contracts/interfaces/IZKPVerifier.sol\":{\"keccak256\":\"0x7e8f95b76c8588dcba937e1213f7743f4b3e061f0968d74794c80f32395cfecd\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://e879818eecd469e7fc7a2b359fe9146d18820c2b85dca9055756fc9fd3afafe5\",\"dweb:/ipfs/QmXzfbLz9aoafm31DdYT8zh6uFGAacxRJ8yeaL1YWBuMgJ\"]},\"@iden3/contracts/lib/ArrayUtils.sol\":{\"keccak256\":\"0x7c5e3f9c56e8e80811db1f1336a1e37c657947f44687451e5a1d6bd12e9e6141\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c9497d8d8fe9fc2b2c9d61bbdfa5a4eb881ddf8948bbc099024e5026fadd6846\",\"dweb:/ipfs/Qmczkk8FLcxpM91ZAWpixowBEdq64YVLke3ZqVDt3NkYiT\"]},\"@iden3/contracts/lib/GenesisUtils.sol\":{\"keccak256\":\"0xcd0456a57885d39010095d9642a4cbf8d723e975af6e3a7bcce6d2ed9d8adc05\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dd03b9ab5422c9b715399ea889e68a7e85b1caa0a74a1f7238dc1a8377f32a6e\",\"dweb:/ipfs/QmUUvKPdP6KuciKjKi9jKkiT4EezjdfdfJsAGaqfFCdRR2\"]},\"@iden3/contracts/lib/IdentityBase.sol\":{\"keccak256\":\"0xf8d2962e1838b9c850e887cd52736545b8d4228b14a1d64eb9ce5d8f53501b6f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://06dd87da9c644be8abe583c1c066d0926c860b110940b173f1a42f6766c20f52\",\"dweb:/ipfs/QmfK64Jf613m2eU1Dz6M7R6rjjKfCzscvyXdaoerw7kr4v\"]},\"@iden3/contracts/lib/IdentityLib.sol\":{\"keccak256\":\"0x1bbb8fbe53fcc817c216b4fd1fed3936ab6659bf83ceb7cb10fa474bcc8812f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1ee97a30fcba35d3c269b58b628c9114df4b915ff413c6f2b85f2a2454a9b54e\",\"dweb:/ipfs/QmbopmBVWniJcMLdFMHg7wkRwC2uTpRNXWLLAuCKUaAFcD\"]},\"@iden3/contracts/lib/Poseidon.sol\":{\"keccak256\":\"0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539\",\"dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc\"]},\"@iden3/contracts/lib/PrimitiveTypeUtils.sol\":{\"keccak256\":\"0x3126dd4b236d36112a66f54ae70e791d153480248ab485373b4259b2498b7235\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f704ec7d5ee0bb109532a32f75d0457213c0852797a257392a95b64ed63b8b3a\",\"dweb:/ipfs/QmSAAH9gecdDxtrf52Pyq73g61GsKwPnBWYH1gzTiWUn3s\"]},\"@iden3/contracts/lib/SmtLib.sol\":{\"keccak256\":\"0x9c67be9b7d045ded48a63bd827a5bdc3f2255c68f9640bae41eef074640f1779\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f2b2452120f5b2b2c5589fcf58183f7d800d3f8a2c202ebdc3b69815bcfb2aa\",\"dweb:/ipfs/QmbnvLnfJaKL3eqt1CfXofsiLJ7G3nYTawUEqGpCazWbrQ\"]},\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"contracts/interfaces/IAnonAadhaarCircuitVerifier.sol\":{\"keccak256\":\"0x1c070e9eaede49926900fa6a880f69f6be689a0e83a436384fb36dc61bd3baad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2db04d475a20ecb3157df8e78e5241076ca250e776c5f0adf1f3f7ce34b051bf\",\"dweb:/ipfs/QmWtz5THuYEd7kptfm3PZ4Lbr2jRLBpdhtckL7i6XRStAR\"]},\"contracts/verifiers/AnonAadhaarCredentialIssuer.sol\":{\"keccak256\":\"0xab73c67b7544b69c1fe77ffac3eb0cb451d78e4a948e40fc1f4a349e2a38ba21\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6758d19078210fe341eb2207456520f3350effe0b020523dad8c7d6366a0d8a4\",\"dweb:/ipfs/QmNy1PHauuxZpfgFKWSLeN3KhVbWFmMqxYGj2Bqpijmxam\"]},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xf75784dfc94ea43668eb195d5690a1dde1b6eda62017e73a3899721583821d29\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://ca16cef8b94f3ac75d376489a668618f6c4595a906b939d674a883f4bf426014\",\"dweb:/ipfs/QmceGU7qhyFLSejaj6i4dEtMzXDCSF3aYDtW1UeKjXQaRn\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/verifiers/PassportCredentialIssuer.sol": { + "PassportCredentialIssuer": { + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "currentDate", + "type": "uint256" + } + ], + "name": "CurrentDateExpired", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "currentDate", + "type": "uint256" + } + ], + "name": "CurrentDateInFuture", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "imageHash", + "type": "bytes32" + } + ], + "name": "ImageHashIsNotWhitelisted", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidAttestation", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidAttestationUserDataLength", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidCredentialProof", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "hashIndex", + "type": "uint256" + } + ], + "name": "InvalidHashIndex", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "hashValue", + "type": "uint256" + } + ], + "name": "InvalidHashValue", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidIssuerDidHash", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "linkId1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "linkId2", + "type": "uint256" + } + ], + "name": "InvalidLinkId", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidPassportSignatureProof", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "revocationNonce", + "type": "uint64" + } + ], + "name": "InvalidRevocationNonce", + "type": "error" + }, + { + "inputs": [], + "name": "InvalidSignerAddress", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "InvalidSignerPassportSignatureProof", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "templateRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "expectedTemplateRoot", + "type": "uint256" + } + ], + "name": "InvalidTemplateRoot", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "transactor", + "type": "address" + } + ], + "name": "InvalidTransactor", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "issuanceDate", + "type": "uint256" + } + ], + "name": "IssuanceDateExpired", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "issuanceDate", + "type": "uint256" + } + ], + "name": "IssuanceDateInFuture", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "length1", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length2", + "type": "uint256" + } + ], + "name": "LengthMismatch", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "circuitId", + "type": "string" + } + ], + "name": "NoCredentialCircuitIdFound", + "type": "error" + }, + { + "inputs": [], + "name": "NoVerifierSet", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "nullifier", + "type": "uint256" + } + ], + "name": "NullifierDoesNotExist", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "OwnableInvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "OwnableUnauthorizedAccount", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "circuitId", + "type": "string" + }, + { + "indexed": false, + "internalType": "address", + "name": "verifier", + "type": "address" + } + ], + "name": "CredentialCircuitVerifierUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "nullifier", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint64", + "name": "revocationNonce", + "type": "uint64" + } + ], + "name": "CredentialRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "EIP712DomainChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "expirationTime", + "type": "uint256" + } + ], + "name": "ExpirationTimeUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "maxFutureTime", + "type": "uint256" + } + ], + "name": "MaxFutureTimeUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferStarted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "SignerAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "tampletRoot", + "type": "uint256" + } + ], + "name": "TemplateRootUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "transactor", + "type": "address" + } + ], + "name": "TransactorAdded", + "type": "event" + }, + { + "inputs": [], + "name": "DOMAIN_VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "PASSPORT_CREDENTIAL_MESSAGE_TYPEHASH", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "acceptOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "imageHash", + "type": "bytes32" + } + ], + "name": "addImageHashToWhitelist", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "attestation", + "type": "bytes" + } + ], + "name": "addSigner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "transactor", + "type": "address" + } + ], + "name": "addTransactor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "circuitId", + "type": "string" + } + ], + "name": "credentialVerifiers", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "eip712Domain", + "outputs": [ + { + "internalType": "bytes1", + "name": "fields", + "type": "bytes1" + }, + { + "internalType": "string", + "name": "name", + "type": "string" + }, + { + "internalType": "string", + "name": "version", + "type": "string" + }, + { + "internalType": "uint256", + "name": "chainId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "verifyingContract", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "uint256[]", + "name": "extensions", + "type": "uint256[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "claimIndexHash", + "type": "uint256" + } + ], + "name": "getClaimProof", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "claimIndexHash", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + } + ], + "name": "getClaimProofByRoot", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "claimIndexHash", + "type": "uint256" + } + ], + "name": "getClaimProofWithStateInfo", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootsRoot", + "type": "uint256" + } + ], + "internalType": "struct IdentityLib.StateInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getClaimsTreeRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getExpirationTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getIsOldStateGenesis", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getIssuerDIDHash", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestPublishedClaimsRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestPublishedRevocationsRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestPublishedRootsRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getLatestPublishedState", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getMaxFutureTime", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "revocationNonce", + "type": "uint64" + } + ], + "name": "getRevocationProof", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "revocationNonce", + "type": "uint64" + }, + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + } + ], + "name": "getRevocationProofByRoot", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint64", + "name": "revocationNonce", + "type": "uint64" + } + ], + "name": "getRevocationProofWithStateInfo", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootsRoot", + "type": "uint256" + } + ], + "internalType": "struct IdentityLib.StateInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + } + ], + "name": "getRevocationStatus", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootOfRoots", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.IdentityStateRoots", + "name": "issuer", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.Proof", + "name": "mtp", + "type": "tuple" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.CredentialStatus", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "id", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint64", + "name": "nonce", + "type": "uint64" + } + ], + "name": "getRevocationStatusByIdAndState", + "outputs": [ + { + "components": [ + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootOfRoots", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.IdentityStateRoots", + "name": "issuer", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.Proof", + "name": "mtp", + "type": "tuple" + } + ], + "internalType": "struct IOnchainCredentialStatusResolver.CredentialStatus", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRevocationsTreeRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "rootsTreeRoot", + "type": "uint256" + } + ], + "name": "getRootProof", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "claimsTreeRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + } + ], + "name": "getRootProofByRoot", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "rootsTreeRoot", + "type": "uint256" + } + ], + "name": "getRootProofWithStateInfo", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "root", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "existence", + "type": "bool" + }, + { + "internalType": "uint256[]", + "name": "siblings", + "type": "uint256[]" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "auxExistence", + "type": "bool" + }, + { + "internalType": "uint256", + "name": "auxIndex", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "auxValue", + "type": "uint256" + } + ], + "internalType": "struct SmtLib.Proof", + "name": "", + "type": "tuple" + }, + { + "components": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "claimsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootsRoot", + "type": "uint256" + } + ], + "internalType": "struct IdentityLib.StateInfo", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "state", + "type": "uint256" + } + ], + "name": "getRootsByState", + "outputs": [ + { + "components": [ + { + "internalType": "uint256", + "name": "claimsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "revocationsRoot", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "rootsRoot", + "type": "uint256" + } + ], + "internalType": "struct IdentityLib.Roots", + "name": "", + "type": "tuple" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getRootsTreeRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSigners", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getSmtDepth", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "getTemplateRoot", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getTransactors", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_stateContractAddr", + "type": "address" + }, + { + "internalType": "bytes2", + "name": "idType", + "type": "bytes2" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "expirationTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "maxFutureTime", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "templateRoot", + "type": "uint256" + }, + { + "internalType": "string[]", + "name": "credentialCircuitIds", + "type": "string[]" + }, + { + "internalType": "address[]", + "name": "credentialVerifierAddresses", + "type": "address[]" + }, + { + "components": [ + { + "internalType": "address", + "name": "stateAddress", + "type": "address" + }, + { + "internalType": "bytes2", + "name": "idType", + "type": "bytes2" + } + ], + "internalType": "struct PassportCredentialIssuer.StateInfo", + "name": "stateInfo", + "type": "tuple" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "contract IAttestationValidator", + "name": "validator", + "type": "address" + } + ], + "name": "initializeIssuer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "imageHash", + "type": "bytes32" + } + ], + "name": "isWhitelistedImageHash", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "nullifier", + "type": "uint256" + } + ], + "name": "nullifierExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pendingOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "imageHash", + "type": "bytes32" + } + ], + "name": "removeImageHashFromWhitelist", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "removeSigner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "transactor", + "type": "address" + } + ], + "name": "removeTransactor", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "nullifier", + "type": "uint256" + } + ], + "name": "revokeCredential", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract IAttestationValidator", + "name": "validator", + "type": "address" + } + ], + "name": "setAttestationValidator", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "expirationTime", + "type": "uint256" + } + ], + "name": "setExpirationTime", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "issuerDidHash", + "type": "uint256" + } + ], + "name": "setIssuerDIDHash", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "maxFutureTime", + "type": "uint256" + } + ], + "name": "setMaxFutureTime", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "templateRoot", + "type": "uint256" + } + ], + "name": "setTemplateRoot", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string[]", + "name": "circuitIds", + "type": "string[]" + }, + { + "internalType": "address[]", + "name": "verifierAddresses", + "type": "address[]" + } + ], + "name": "updateCredentialVerifiers", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "components": [ + { + "internalType": "string", + "name": "circuitId", + "type": "string" + }, + { + "internalType": "bytes", + "name": "proof", + "type": "bytes" + } + ], + "internalType": "struct PassportCredentialIssuer.CredentialProof", + "name": "credentialProof", + "type": "tuple" + }, + { + "internalType": "bytes", + "name": "passportSignatureProof", + "type": "bytes" + } + ], + "name": "verifyPassport", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": { + "@_16239": { + "entryPoint": null, + "id": 16239, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_disableInitializers_5190": { + "entryPoint": 26, + "id": 5190, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_getInitializableStorage_5235": { + "entryPoint": null, + "id": 5235, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_initializableStorageSlot_5221": { + "entryPoint": null, + "id": 5221, + "parameterSlots": 0, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:216:46", + "nodeType": "YulBlock", + "src": "0:216:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "113:101:46", + "nodeType": "YulBlock", + "src": "113:101:46", + "statements": [ + { + "nativeSrc": "123:26:46", + "nodeType": "YulAssignment", + "src": "123:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "135:9:46", + "nodeType": "YulIdentifier", + "src": "135:9:46" + }, + { + "kind": "number", + "nativeSrc": "146:2:46", + "nodeType": "YulLiteral", + "src": "146:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "131:3:46", + "nodeType": "YulIdentifier", + "src": "131:3:46" + }, + "nativeSrc": "131:18:46", + "nodeType": "YulFunctionCall", + "src": "131:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "123:4:46", + "nodeType": "YulIdentifier", + "src": "123:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "165:9:46", + "nodeType": "YulIdentifier", + "src": "165:9:46" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "180:6:46", + "nodeType": "YulIdentifier", + "src": "180:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "196:2:46", + "nodeType": "YulLiteral", + "src": "196:2:46", + "type": "", + "value": "64" + }, + { + "kind": "number", + "nativeSrc": "200:1:46", + "nodeType": "YulLiteral", + "src": "200:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "192:3:46", + "nodeType": "YulIdentifier", + "src": "192:3:46" + }, + "nativeSrc": "192:10:46", + "nodeType": "YulFunctionCall", + "src": "192:10:46" + }, + { + "kind": "number", + "nativeSrc": "204:1:46", + "nodeType": "YulLiteral", + "src": "204:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "188:3:46", + "nodeType": "YulIdentifier", + "src": "188:3:46" + }, + "nativeSrc": "188:18:46", + "nodeType": "YulFunctionCall", + "src": "188:18:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "176:3:46", + "nodeType": "YulIdentifier", + "src": "176:3:46" + }, + "nativeSrc": "176:31:46", + "nodeType": "YulFunctionCall", + "src": "176:31:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "158:6:46", + "nodeType": "YulIdentifier", + "src": "158:6:46" + }, + "nativeSrc": "158:50:46", + "nodeType": "YulFunctionCall", + "src": "158:50:46" + }, + "nativeSrc": "158:50:46", + "nodeType": "YulExpressionStatement", + "src": "158:50:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", + "nativeSrc": "14:200:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "82:9:46", + "nodeType": "YulTypedName", + "src": "82:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "93:6:46", + "nodeType": "YulTypedName", + "src": "93:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "104:4:46", + "nodeType": "YulTypedName", + "src": "104:4:46", + "type": "" + } + ], + "src": "14:200:46" + } + ] + }, + "contents": "{\n { }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(64, 1), 1)))\n }\n}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "linkReferences": { + "@iden3/contracts/lib/IdentityLib.sol": { + "IdentityLib": [ + { + "length": 20, + "start": 2306 + }, + { + "length": 20, + "start": 2447 + }, + { + "length": 20, + "start": 3042 + }, + { + "length": 20, + "start": 3277 + }, + { + "length": 20, + "start": 3512 + }, + { + "length": 20, + "start": 3598 + }, + { + "length": 20, + "start": 3707 + }, + { + "length": 20, + "start": 3878 + }, + { + "length": 20, + "start": 5063 + }, + { + "length": 20, + "start": 5258 + }, + { + "length": 20, + "start": 5656 + }, + { + "length": 20, + "start": 5735 + }, + { + "length": 20, + "start": 5842 + }, + { + "length": 20, + "start": 6074 + }, + { + "length": 20, + "start": 6160 + }, + { + "length": 20, + "start": 6265 + }, + { + "length": 20, + "start": 7607 + }, + { + "length": 20, + "start": 7715 + }, + { + "length": 20, + "start": 11203 + }, + { + "length": 20, + "start": 11441 + }, + { + "length": 20, + "start": 11549 + } + ] + } + }, + "object": "6080604052348015600f57600080fd5b506016601a565b60ca565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560695760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c75780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6140ae806100d96000396000f3fe608060405234801561001057600080fd5b50600436106103825760003560e01c806384b0196e116101de578063badf055d1161010f578063e26ecb0b116100ad578063f2fde38b1161007c578063f2fde38b14610776578063f84c7c1e14610789578063fa78d88c14610791578063ffa1ad74146107a457600080fd5b8063e26ecb0b14610735578063e30c397814610748578063e633436f14610750578063e7c25d231461076357600080fd5b8063c6365a3b116100e9578063c6365a3b146106f6578063da68a0b1146106fe578063da93654014610706578063e23a845a1461072d57600080fd5b8063badf055d146106bd578063c0cc365d146106d0578063c1e32733146106e357600080fd5b8063aad729211161017c578063b354c2d811610156578063b354c2d81461064f578063b37feda414610662578063b57a40cb14610675578063b8db68711461068857600080fd5b8063aad72921146105f8578063acb8cc491461060b578063b1af19e71461063c57600080fd5b80638da5cb5b116101b85780638da5cb5b146105b557806394cf795e146105d55780639674cfa4146105dd578063a635c785146105e557600080fd5b806384b0196e146105745780638a03c1661461058f5780638a684553146105a257600080fd5b80632e798ec1116102b8578063523b813611610256578063715018a611610230578063715018a61461054957806376dfc7761461055157806376ee7b491461055957806379ba50971461056c57600080fd5b8063523b8136146105265780635d1ca6311461052e57806370f4f9df1461053657600080fd5b80633df432fc116102925780633df432fc146104f15780633f0c6648146104f9578063406e8b4c14610500578063443d75341461051357600080fd5b80632e798ec1146104c3578063310d0d5b146104d65780633d59ec60146104e957600080fd5b80631f0f4f7a116103255780632afab62f116102ff5780632afab62f146104805780632c1d3204146104935780632d26b3091461049b5780632d5c4f25146104b057600080fd5b80631f0f4f7a1461043a57806323aafe3b1461044d578063264850631461046057600080fd5b806305417f791161036157806305417f79146103ea5780630e316ab7146103f2578063110c96a7146104075780631b87278d1461042757600080fd5b806233058d1461038757806301c85c77146103b157806301ffc9a7146103c7575b600080fd5b61039a610395366004613087565b6107c8565b6040516103a8929190613144565b60405180910390f35b6103b9610895565b6040519081526020016103a8565b6103da6103d5366004613187565b61091a565b60405190151581526020016103a8565b6103b9610951565b6104056104003660046131d1565b610964565b005b61041a6104153660046131ee565b610985565b6040516103a8919061321a565b610405610435366004613267565b6109b0565b6104056104483660046131d1565b610a83565b61040561045b366004613267565b610aa0565b61047361046e366004613087565b610ad3565b6040516103a89190613280565b6103da61048e366004613267565b610b6c565b6103b9610b97565b6104a3610baa565b6040516103a89190613293565b6104736104be3660046132df565b610bbf565b6104056104d1366004613267565b610c5e565b6104736104e43660046132df565b610caa565b6103b9610d01565b6103b9610d14565b60286103b9565b61040561050e366004613319565b610d57565b61039a610521366004613267565b610df4565b6103b9610e6f565b6103b9610e82565b6104056105443660046131d1565b610e92565b610405610ef4565b6103b9610f08565b610405610567366004613456565b610f1b565b61040561109e565b61057c6110e6565b6040516103a897969594939291906134da565b61040561059d366004613267565b611192565b6104056105b03660046131d1565b6111a4565b6105bd6111d9565b6040516001600160a01b0390911681526020016103a8565b6104a361120e565b6103b9611223565b6105bd6105f3366004613456565b611236565b61041a610606366004613572565b611270565b61062f604051806040016040528060058152602001640312e302e360dc1b81525081565b6040516103a891906135a7565b61040561064a366004613267565b611489565b61040561065d366004613267565b6114a1565b61039a610670366004613267565b6114e6565b610473610683366004613267565b611561565b61069b610696366004613267565b6115af565b60408051825181526020808401519082015291810151908201526060016103a8565b6104056106cb3660046135fe565b611657565b6104056106de366004613267565b611671565b6104736106f1366004613267565b6116b3565b6103b9611703565b6103b9611716565b6103b97f0d2a15c3140485b6db2a8c0f755486294daaae1eabcdd518f6beaf8e4ab4d83481565b6103b9611759565b61047361074336600461366d565b611763565b6105bd6117c2565b61040561075e366004613697565b6117eb565b610405610771366004613765565b6119ba565b6104056107843660046131d1565b611b65565b6103da611bea565b6103da61079f366004613267565b611c00565b61062f60405180604001604052806005815260200164312e302e3360d81b81525081565b6107d0612f96565b6107fb6040518060800160405280600081526020016000815260200160008152602001600081525090565b610803611c21565b604051631f17004d60e31b815260048101919091526001600160401b038416602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__9063f8b80268906044015b600060405180830381865af4158015610864573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261088c919081019061395c565b91509150915091565b600061089f611c21565b60405163765c2c6160e01b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__9063765c2c61906024015b602060405180830381865af41580156108f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109159190613a00565b905090565b60006001600160e01b03198216635d1ca63160e01b148061094b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061095b611c45565b600b0154905090565b61096c611c69565b61098181610978611c45565b60040190611c9b565b5050565b61098d612fdf565b6000610997611c21565b6001015490506109a8848285611270565b949350505050565b6109b8611c69565b60006109c2611c45565b6000838152600a820160205260408120549192506001600160401b0390911690819003610a0a57604051635204776960e01b8152600481018490526024015b60405180910390fd5b610a1381611cb0565b6000838152600a8301602052604090819020805467ffffffffffffffff19169055517f725d312746be14d750d0493aa7960a5aca3c30f98f74b0e07afc8f1a36b355c290610a7690859084909182526001600160401b0316602082015260400190565b60405180910390a1505050565b610a8b611c69565b61098181610a97611c45565b60080190611c9b565b610aa8611c69565b6000610ab2611c45565b60009283526007016020526040909120805460ff1916911515919091179055565b610adb612f96565b610ae3611c21565b604051637d0aba4f60e01b815260048101919091526001600160401b038316602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__90637d0aba4f906044015b600060405180830381865af4158015610b44573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261094b9190810190613a19565b600080610b77611c45565b6000938452600a01602052505060409020546001600160401b0316151590565b6000610ba1611c45565b60010154905090565b6060610915610bb7611c45565b600801611d9a565b610bc7612f96565b610bcf611c21565b60405163d55da6a360e01b81526004810191909152602481018490526044810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063d55da6a3906064015b600060405180830381865af4158015610c2f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c579190810190613a19565b9392505050565b610c66611c69565b80610c6f611c45565b600201556040518181527f73293f7b4f3fe4eeb423f647c95d70844d99749a80c8a93aa4c3d4996a63bc4a906020015b60405180910390a150565b610cb2612f96565b610cba611c21565b604051636ac0c5c760e11b81526004810191909152602481018490526044810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063d5818b8e90606401610c12565b6000610d0b611c21565b60010154919050565b6000610d1e611c21565b604051631b8bf99b60e21b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90636e2fe66c906024016108d4565b610d5f611c21565b6040516359a6069160e01b815260048101919091526001600160a01b0383166024820152306044820152602860648201526001600160f01b03198216608482015273__$068aad146bf104111ba65c4a1de2cd0e23$__906359a606919060a4015b60006040518083038186803b158015610dd857600080fd5b505af4158015610dec573d6000803e3d6000fd5b505050505050565b610dfc612f96565b610e276040518060800160405280600081526020016000815260200160008152602001600081525090565b610e2f611c21565b60405163a3018d7960e01b815260048101919091526024810184905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063a3018d7990604401610847565b6000610e79611c21565b609a0154919050565b6000610e8c611c21565b54919050565b610e9a611c69565b6000610ea4611c45565b9050610eb36008820183611da7565b506040516001600160a01b03831681527f0a33c33ca5c931f5cbdaa4137c8b7f3ea632aa05390959f913c410776733061b9060200160405180910390a15050565b610efc611c69565b610f066000611dbc565b565b6000610f12611c45565b60020154905090565b610f23611df4565b6000610f2d611c45565b6006810154604051634cc3a4a560e01b8152919250600091829182916001600160a01b0390911690634cc3a4a590610f699088906004016135a7565b6000604051808303816000875af1158015610f88573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fb09190810190613a92565b925092509250610fbf82611c00565b610fdf57604051638338dba560e01b815260048101839052602401610a01565b80610ffd5760405163bd8ba84d60e01b815260040160405180910390fd5b6014835110156110205760405163025198d560e31b815260040160405180910390fd5b60148301516001600160a01b03811661104c57604051634501a91960e01b815260040160405180910390fd5b6110596004860182611da7565b506040516001600160a01b03821681527f47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f249060200160405180910390a1505050505050565b33806110a86117c2565b6001600160a01b0316146110da5760405163118cdaa760e01b81526001600160a01b0382166004820152602401610a01565b6110e381611dbc565b50565b60006060808280808381600080516020614059833981519152805490915015801561111357506001810154155b6111575760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610a01565b61115f611e28565b611167611eeb565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b61119a611c69565b6001610ab2611c45565b6111ac611c69565b806111b5611c45565b60060180546001600160a01b0319166001600160a01b039290921691909117905550565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b606061091561121b611c45565b600401611d9a565b600061122d611c21565b609b0154919050565b6000611240611c45565b600301826040516112519190613adf565b908152604051908190036020019020546001600160a01b031692915050565b611278612fdf565b611280611c21565b5484146112c65760405162461bcd60e51b8152602060048201526014602482015273092c8cadce8d2e8f240d2c840dad2e6dac2e8c6d60631b6044820152606401610a01565b60006112d0611c21565b604051630b1a9cd360e01b815260048101919091526024810185905273__$068aad146bf104111ba65c4a1de2cd0e23$__90630b1a9cd390604401606060405180830381865af4158015611328573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134c9190613afb565b604080516080810182528681528251602080830191909152830151818301529082015160608201529091506000611381611c21565b6020840151604051630b2bcd1b60e11b815260048101929092526001600160401b0387166024830152604482015273__$068aad146bf104111ba65c4a1de2cd0e23$__906316579a3690606401600060405180830381865af41580156113eb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114139190810190613a19565b6040805161010081018252825181526020808401511515818301528284015182840152606080850151908301526080808501519083015260a08085015115159083015260c0808501519083015260e093840151938201939093528151808301909252938152908101929092525095945050505050565b611491611c69565b8061149a611c45565b600b015550565b6114a9611c69565b806114b2611c45565b600101556040518181527ff007a02ba428e63fa98b65269e70f9a9db847e0a839049a2f31f06928226773490602001610c9f565b6114ee612f96565b6115196040518060800160405280600081526020016000815260200160008152602001600081525090565b611521611c21565b604051636ad1d8a760e11b815260048101919091526024810184905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063d5a3b14e90604401610847565b611569612f96565b611571611c21565b604051620cf08960e41b815260048101919091526024810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__9062cf089090604401610b27565b6115d360405180606001604052806000815260200160008152602001600081525090565b6115db611c21565b604051630b1a9cd360e01b815260048101919091526024810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__90630b1a9cd390604401606060405180830381865af4158015611633573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094b9190613afb565b61165f611c69565b61166b84848484611f2a565b50505050565b611679611c69565b80611682611c45565b556040518181527f7f7f3071c3c286700c199acae2fe071beb4a63dae1afff85186fa75d18090ae890602001610c9f565b6116bb612f96565b6116c3611c21565b6040516397ac539160e01b815260048101919091526024810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__906397ac539190604401610b27565b600061170d611c21565b609c0154919050565b6000611720611c21565b604051631e75e7f360e01b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90631e75e7f3906024016108d4565b6000610e8c611c45565b61176b612f96565b611773611c21565b604051630b2bcd1b60e11b815260048101919091526001600160401b03841660248201526044810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__906316579a3690606401610c12565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006111fe565b60006117f5612082565b805490915060ff600160401b82041615906001600160401b031660008115801561181c5750825b90506000826001600160401b031660011480156118385750303b155b905081158015611846575080155b156118645760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561188e57845460ff60401b1916600160401b1785555b6118ae61189e60208a018a6131d1565b61050e60408b0160208c01613b5a565b6118b7876120ab565b60006118c1611c45565b90508f81600001819055508e81600201819055508d8160010181905550868160060160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506119566040518060400160405280601081526020016f50617373706f7274497373756572563160801b815250604051806040016040528060058152602001640312e302e360dc1b8152506120bc565b6119628d8d8d8d611f2a565b5083156119a957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050505050565b8151516000036119e0578151604051631d44e47160e21b8152610a0191906004016135a7565b60008060008085602001518060200190518101906119fe9190613bbc565b93509350935093506000604051806080016040528085815260200184815260200183815260200160405180610100016040528088600081518110611a4457611a44613c76565b6020026020010151815260200188600181518110611a6457611a64613c76565b6020026020010151815260200188600281518110611a8457611a84613c76565b6020026020010151815260200188600381518110611aa457611aa4613c76565b6020026020010151815260200188600481518110611ac457611ac4613c76565b6020026020010151815260200188600581518110611ae457611ae4613c76565b6020026020010151815260200188600681518110611b0457611b04613c76565b6020026020010151815260200188600781518110611b2457611b24613c76565b60200260200101518152508152509050600086806020019051810190611b4a9190613c8c565b9050611b5b886000015183836120ce565b5050505050505050565b611b6d611c69565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b0383169081178255611bb16111d9565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6000611bf4611c21565b6002015460ff16919050565b6000611c0a611c45565b600092835260070160205250604090205460ff1690565b7f3018a310c36c4f8228f09bf3b1822685cf0971daa8265a58ca807c4a4daba40090565b7f405d73f251ed6c997b1c097c46d2f830c946626e510c12346d80e7c5a4dad30090565b33611c726111d9565b6001600160a01b031614610f065760405163118cdaa760e01b8152336004820152602401610a01565b6000610c57836001600160a01b0384166120f0565b611cb8611c21565b604051638ad7195d60e01b815260048101919091526001600160401b038216602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__90638ad7195d9060440160006040518083038186803b158015611d1357600080fd5b505af4158015611d27573d6000803e3d6000fd5b50505050611d33611c21565b60405163175ba3e960e11b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90632eb747d29060240160006040518083038186803b158015611d7f57600080fd5b505af4158015611d93573d6000803e3d6000fd5b5050505050565b60606000610c57836121e3565b6000610c57836001600160a01b03841661223f565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556109818261228e565b611e0933611e00611c45565b600801906122ff565b610f0657604051631d83d27f60e01b8152336004820152602401610a01565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102805460609160008051602061405983398151915291611e6790613d2a565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9390613d2a565b8015611ee05780601f10611eb557610100808354040283529160200191611ee0565b820191906000526020600020905b815481529060010190602001808311611ec357829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103805460609160008051602061405983398151915291611e6790613d2a565b6000611f34611c45565b9050838214611f60576040516355c5b3e360e11b81526004810185905260248101839052604401610a01565b60005b84811015610dec57838382818110611f7d57611f7d613c76565b9050602002016020810190611f9291906131d1565b82600301878784818110611fa857611fa8613c76565b9050602002810190611fba9190613d64565b604051611fc8929190613daa565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790557f5d864db8d88e9085fd5e7752a2094701e558355b75b561c00174d27aefd3e28986868381811061202a5761202a613c76565b905060200281019061203c9190613d64565b86868581811061204e5761204e613c76565b905060200201602081019061206391906131d1565b60405161207293929190613dba565b60405180910390a1600101611f63565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0061094b565b6120b3612321565b6110e381612346565b6120c4612321565b6109818282612378565b6120d883836123d9565b6120e1816124d1565b6120eb8282612545565b505050565b600081815260018301602052604081205480156121d9576000612114600183613e11565b855490915060009061212890600190613e11565b905080821461218d57600086600001828154811061214857612148613c76565b906000526020600020015490508087600001848154811061216b5761216b613c76565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061219e5761219e613e24565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061094b565b600091505061094b565b60608160000180548060200260200160405190810160405280929190818152602001828054801561223357602002820191906000526020600020905b81548152602001906001019080831161221f575b50505050509050919050565b60008181526001830160205260408120546122865750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561094b565b50600061094b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6001600160a01b03811660009081526001830160205260408120541515610c57565b6123296125b4565b610f0657604051631afcd79f60e31b815260040160405180910390fd5b61234e612321565b6001600160a01b0381166110da57604051631e4fbdf760e01b815260006004820152602401610a01565b612380612321565b6000805160206140598339815191527fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1026123ba8482613e81565b50600381016123c98382613e81565b5060008082556001909101555050565b60006123e3611c45565b9050600081600301846040516123f99190613adf565b908152604051908190036020019020546001600160a01b0316905080612432576040516301dcf1ab60e31b815260040160405180910390fd5b806001600160a01b031663c9219a7a84600001518560200151866040015187606001516040518563ffffffff1660e01b81526004016124749493929190613f62565b602060405180830381865afa158015612491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b59190613fe7565b61166b576040516281723b60e21b815260040160405180910390fd5b6000806124e6836000015184602001516125ce565b91509150816125085760405163df2b56ff60e01b815260040160405180910390fd5b61251d81612514611c45565b600401906122ff565b6120eb57604051631432861160e31b81526001600160a01b0382166004820152602401610a01565b600061255083612678565b905060008260000151602001519050612594826000015183602001518460400151856060015186608001518760a00151896000015160000151888a60e001516127e9565b6125a2818360c00151612a5a565b61166b82600001518360200151612bab565b60006125be612082565b54600160401b900460ff16919050565b600080600061263f7f0d2a15c3140485b6db2a8c0f755486294daaae1eabcdd518f6beaf8e4ab4d83486600001518760200151604051602001612624939291909283526020830191909152604082015260600190565b60405160208183030381529060405280519060200120612c66565b905060008061264e8387612c93565b509092509050600081600381111561266857612668614002565b14945090925050505b9250929050565b6126c960405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160401b03168152602001600081525090565b60405180610100016040528083606001516000600881106126ec576126ec613c76565b60200201518152602001836060015160016008811061270d5761270d613c76565b60200201518152602001836060015160046008811061272e5761272e613c76565b60200201518152602001836060015160036008811061274f5761274f613c76565b60200201518152602001836060015160056008811061277057612770613c76565b60200201518152602001836060015160026008811061279157612791613c76565b6020020151815260200183606001516007600881106127b2576127b2613c76565b60200201516001600160401b0316815260200183606001516006600881106127dc576127dc613c76565b6020020151905292915050565b60006127f3611c45565b90508960000361281957604051631b1aad8760e11b8152600481018b9052602401610a01565b8860000361283d57604051634bdc991b60e11b8152600481018a9052602401610a01565b8060010154861461287157600181015460405163e748379160e01b8152610a01918891600401918252602082015260400190565b84841461289e576040516001621d0d8360e21b031981526004810185905260248101869052604401610a01565b60006207a1208811156128c0576128b988630121eac0614018565b90506128d1565b6128ce886301312d00614018565b90505b60008060006128ee8560000154426128e99190613e11565b612ce0565b9194509250905060008161290384606461402b565b61290f8661271061402b565b6129199190614018565b6129239190614018565b90508481111561294957604051635d5e30bf60e01b8152600481018d9052602401610a01565b60008060006129618960020154426128e99190614018565b9194509250905060008161297684606461402b565b6129828661271061402b565b61298c9190614018565b6129969190614018565b9050808911156129bd578f6040516353f3b14160e01b8152600401610a0191815260200190565b50505050505050504282600001548a6129d69190614018565b10156129f75760405162bd09f160e11b8152600481018a9052602401610a01565b6002820154612a069042614018565b891115612a295760405163d818833560e01b8152600481018a9052602401610a01565b8282600b015414612a4d5760405163fe0c887b60e01b815260040160405180910390fd5b5050505050505050505050565b806001600160401b0316600003612a8f576040516337f969b360e11b81526001600160401b0382166004820152602401610a01565b6000612a99611c45565b6000848152600a820160205260409020549091506001600160401b03168015612b7a57612ac4611c21565b604051638ad7195d60e01b815260048101919091526001600160401b038216602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__90638ad7195d9060440160006040518083038186803b158015612b1f57600080fd5b505af4158015612b33573d6000803e3d6000fd5b5050604080518781526001600160401b03851660208201527f725d312746be14d750d0493aa7960a5aca3c30f98f74b0e07afc8f1a36b355c2935001905060405180910390a15b506000928352600a016020526040909120805467ffffffffffffffff19166001600160401b03909216919091179055565b612bb3611c21565b6040516306fb157560e01b81526004810191909152602481018390526044810182905273__$068aad146bf104111ba65c4a1de2cd0e23$__906306fb15759060640160006040518083038186803b158015612c0d57600080fd5b505af4158015612c21573d6000803e3d6000fd5b50505050612c2d611c21565b60405163175ba3e960e11b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90632eb747d290602401610dc0565b600061094b612c73612cff565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060008351604103612ccd5760208401516040850151606086015160001a612cbf88828585612d09565b955095509550505050612cd9565b50508151600091506002905b9250925092565b60008080612cf2620151808504612dd8565b9196909550909350915050565b6000610915612e74565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115612d445750600091506003905082612dce565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612d98573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612dc457506000925060019150829050612dce565b9250600091508190505b9450945094915050565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281612e3557612e35614042565b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612e9f612ee8565b612ea7612f52565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600060008051602061405983398151915281612f02611e28565b805190915015612f1a57805160209091012092915050565b81548015612f29579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600060008051602061405983398151915281612f6c611eeb565b805190915015612f8457805160209091012092915050565b60018201548015612f29579392505050565b6040518061010001604052806000815260200160001515815260200160608152602001600081526020016000815260200160001515815260200160008152602001600081525090565b60405180604001604052806130156040518060800160405280600081526020016000815260200160008152602001600081525090565b81526020016130666040518061010001604052806000815260200160001515815260200160608152602001600081526020016000815260200160001515815260200160008152602001600081525090565b905290565b80356001600160401b038116811461308257600080fd5b919050565b60006020828403121561309957600080fd5b610c578261306b565b805182526020808201511515818401526040808301516101009185018290528051918501829052600092019082906101208601905b808310156130fa57835182526020820191506020840193506001830192506130d7565b50606085015160608701526080850151608087015260a0850151925061312460a087018415159052565b60c085015160c087015260e085015160e087015280935050505092915050565b60a08152600061315760a08301856130a2565b9050610c576020830184805182526020810151602083015260408101516040830152606081015160608301525050565b60006020828403121561319957600080fd5b81356001600160e01b031981168114610c5757600080fd5b6001600160a01b03811681146110e357600080fd5b8035613082816131b1565b6000602082840312156131e357600080fd5b8135610c57816131b1565b6000806040838503121561320157600080fd5b823591506132116020840161306b565b90509250929050565b6020815261324d602082018351805182526020810151602083015260408101516040830152606081015160608301525050565b6000602083015160a0808401526109a860c08401826130a2565b60006020828403121561327957600080fd5b5035919050565b602081526000610c5760208301846130a2565b602080825282518282018190526000918401906040840190835b818110156132d45783516001600160a01b03168352602093840193909201916001016132ad565b509095945050505050565b600080604083850312156132f257600080fd5b50508035926020909101359150565b80356001600160f01b03198116811461308257600080fd5b6000806040838503121561332c57600080fd5b8235613337816131b1565b915061321160208401613301565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561337d5761337d613345565b60405290565b60405161010081016001600160401b038111828210171561337d5761337d613345565b604051601f8201601f191681016001600160401b03811182821017156133ce576133ce613345565b604052919050565b60006001600160401b038211156133ef576133ef613345565b50601f01601f191660200190565b600082601f83011261340e57600080fd5b8135602083016000613427613422846133d6565b6133a6565b905082815285838301111561343b57600080fd5b82826020830137600092810160200192909252509392505050565b60006020828403121561346857600080fd5b81356001600160401b0381111561347e57600080fd5b6109a8848285016133fd565b60005b838110156134a557818101518382015260200161348d565b50506000910152565b600081518084526134c681602086016020860161348a565b601f01601f19169290920160200192915050565b60ff60f81b8816815260e0602082015260006134f960e08301896134ae565b828103604084015261350b81896134ae565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b81811015613561578351835260209384019390920191600101613543565b50909b9a5050505050505050505050565b60008060006060848603121561358757600080fd5b833592506020840135915061359e6040850161306b565b90509250925092565b602081526000610c5760208301846134ae565b60008083601f8401126135cc57600080fd5b5081356001600160401b038111156135e357600080fd5b6020830191508360208260051b850101111561267157600080fd5b6000806000806040858703121561361457600080fd5b84356001600160401b0381111561362a57600080fd5b613636878288016135ba565b90955093505060208501356001600160401b0381111561365557600080fd5b613661878288016135ba565b95989497509550505050565b6000806040838503121561368057600080fd5b6136898361306b565b946020939093013593505050565b6000806000806000806000806000808a8c036101208112156136b857600080fd5b8b359a5060208c0135995060408c0135985060608c01356001600160401b038111156136e357600080fd5b6136ef8e828f016135ba565b90995097505060808c01356001600160401b0381111561370e57600080fd5b61371a8e828f016135ba565b9097509550506040609f198201121561373257600080fd5b5060a08b01925061374560e08c016131c6565b91506137546101008c016131c6565b90509295989b9194979a5092959850565b6000806040838503121561377857600080fd5b82356001600160401b0381111561378e57600080fd5b8301604081860312156137a057600080fd5b6137a861335b565b81356001600160401b038111156137be57600080fd5b6137ca878285016133fd565b82525060208201356001600160401b038111156137e657600080fd5b6137f2878285016133fd565b602083015250809350505060208301356001600160401b0381111561381657600080fd5b613822858286016133fd565b9150509250929050565b8051801515811461308257600080fd5b600082601f83011261384d57600080fd5b81516001600160401b0381111561386657613866613345565b8060051b613876602082016133a6565b9182526020818501810192908101908684111561389257600080fd5b6020860192505b838310156138b4578251825260209283019290910190613899565b9695505050505050565b600061010082840312156138d157600080fd5b6138d9613383565b8251815290506138eb6020830161382c565b602082015260408201516001600160401b0381111561390957600080fd5b6139158482850161383c565b604083015250606082810151908201526080808301519082015261393b60a0830161382c565b60a082015260c0828101519082015260e09182015191810191909152919050565b60008082840360a081121561397057600080fd5b83516001600160401b0381111561398657600080fd5b613992868287016138be565b9350506080601f19820112156139a757600080fd5b50604051608081016001600160401b03811182821017156139ca576139ca613345565b60409081526020858101518352858201519083015260608086015191830191909152608090940151938101939093525092909150565b600060208284031215613a1257600080fd5b5051919050565b600060208284031215613a2b57600080fd5b81516001600160401b03811115613a4157600080fd5b6109a8848285016138be565b600082601f830112613a5e57600080fd5b8151613a6c613422826133d6565b818152846020838601011115613a8157600080fd5b6109a882602083016020870161348a565b600080600060608486031215613aa757600080fd5b83516001600160401b03811115613abd57600080fd5b613ac986828701613a4d565b9350506020840151915061359e6040850161382c565b60008251613af181846020870161348a565b9190910192915050565b60006060828403128015613b0e57600080fd5b50604051600090606081016001600160401b0381118282101715613b3457613b34613345565b604090815284518252602080860151908301529384015193810193909352509092915050565b600060208284031215613b6c57600080fd5b610c5782613301565b600082601f830112613b8657600080fd5b613b9060406133a6565b806040840185811115613ba257600080fd5b845b818110156132d4578051845260209384019301613ba4565b6000806000806101208587031215613bd357600080fd5b84516001600160401b03811115613be957600080fd5b613bf58782880161383c565b945050613c058660208701613b75565b925085607f860112613c1657600080fd5b6040613c21816133a6565b8060e0880189811115613c3357600080fd5b606089015b81811015613c5957613c4a8b82613b75565b84526020909301928401613c38565b50819550613c678a82613b75565b94505050505092959194509250565b634e487b7160e01b600052603260045260246000fd5b600060208284031215613c9e57600080fd5b81516001600160401b03811115613cb457600080fd5b82018084036060811215613cc757600080fd5b613ccf61335b565b6040821215613cdd57600080fd5b613ce561335b565b83518152602080850151908201528152604083015191506001600160401b03821115613d1057600080fd5b613d1c86838501613a4d565b602082015295945050505050565b600181811c90821680613d3e57607f821691505b602082108103613d5e57634e487b7160e01b600052602260045260246000fd5b50919050565b6000808335601e19843603018112613d7b57600080fd5b8301803591506001600160401b03821115613d9557600080fd5b60200191503681900382131561267157600080fd5b8183823760009101908152919050565b6040815282604082015282846060830137600060608483018101919091526001600160a01b03929092166020820152601f909201601f191690910101919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561094b5761094b613dfb565b634e487b7160e01b600052603160045260246000fd5b601f8211156120eb57806000526020600020601f840160051c81016020851015613e615750805b601f840160051c820191505b81811015611d935760008155600101613e6d565b81516001600160401b03811115613e9a57613e9a613345565b613eae81613ea88454613d2a565b84613e3a565b6020601f821160018114613ee25760008315613eca5750848201515b600019600385901b1c1916600184901b178455611d93565b600084815260208120601f198516915b82811015613f125787850151825560209485019460019092019101613ef2565b5084821015613f305786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b8060005b600281101561166b578151845260209384019390910190600101613f43565b6102008101613f718287613f3f565b604082018560005b6002811015613fa357613f8d838351613f3f565b6040929092019160209190910190600101613f79565b505050613fb360c0830185613f3f565b61010082018360005b6008811015613fdb578151835260209283019290910190600101613fbc565b50505095945050505050565b600060208284031215613ff957600080fd5b610c578261382c565b634e487b7160e01b600052602160045260246000fd5b8082018082111561094b5761094b613dfb565b808202811582820484141761094b5761094b613dfb565b634e487b7160e01b600052601260045260246000fdfea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100a2646970667358221220c81406f600bcfed96da6855cee7d976ee887c848f4d28d49de3c547bbc54d5d664736f6c634300081b0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x16 PUSH1 0x1A JUMP JUMPDEST PUSH1 0xCA JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH9 0x10000000000000000 SWAP1 DIV PUSH1 0xFF AND ISZERO PUSH1 0x69 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 AND EQ PUSH1 0xC7 JUMPI DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 DUP2 OR DUP3 SSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP JUMP JUMPDEST PUSH2 0x40AE DUP1 PUSH2 0xD9 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 0x382 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x84B0196E GT PUSH2 0x1DE JUMPI DUP1 PUSH4 0xBADF055D GT PUSH2 0x10F JUMPI DUP1 PUSH4 0xE26ECB0B GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x776 JUMPI DUP1 PUSH4 0xF84C7C1E EQ PUSH2 0x789 JUMPI DUP1 PUSH4 0xFA78D88C EQ PUSH2 0x791 JUMPI DUP1 PUSH4 0xFFA1AD74 EQ PUSH2 0x7A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE26ECB0B EQ PUSH2 0x735 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x748 JUMPI DUP1 PUSH4 0xE633436F EQ PUSH2 0x750 JUMPI DUP1 PUSH4 0xE7C25D23 EQ PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC6365A3B GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xC6365A3B EQ PUSH2 0x6F6 JUMPI DUP1 PUSH4 0xDA68A0B1 EQ PUSH2 0x6FE JUMPI DUP1 PUSH4 0xDA936540 EQ PUSH2 0x706 JUMPI DUP1 PUSH4 0xE23A845A EQ PUSH2 0x72D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBADF055D EQ PUSH2 0x6BD JUMPI DUP1 PUSH4 0xC0CC365D EQ PUSH2 0x6D0 JUMPI DUP1 PUSH4 0xC1E32733 EQ PUSH2 0x6E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAAD72921 GT PUSH2 0x17C JUMPI DUP1 PUSH4 0xB354C2D8 GT PUSH2 0x156 JUMPI DUP1 PUSH4 0xB354C2D8 EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0xB37FEDA4 EQ PUSH2 0x662 JUMPI DUP1 PUSH4 0xB57A40CB EQ PUSH2 0x675 JUMPI DUP1 PUSH4 0xB8DB6871 EQ PUSH2 0x688 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAAD72921 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0xACB8CC49 EQ PUSH2 0x60B JUMPI DUP1 PUSH4 0xB1AF19E7 EQ PUSH2 0x63C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x5B5 JUMPI DUP1 PUSH4 0x94CF795E EQ PUSH2 0x5D5 JUMPI DUP1 PUSH4 0x9674CFA4 EQ PUSH2 0x5DD JUMPI DUP1 PUSH4 0xA635C785 EQ PUSH2 0x5E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x84B0196E EQ PUSH2 0x574 JUMPI DUP1 PUSH4 0x8A03C166 EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x8A684553 EQ PUSH2 0x5A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2E798EC1 GT PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x523B8136 GT PUSH2 0x256 JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x230 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x549 JUMPI DUP1 PUSH4 0x76DFC776 EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0x76EE7B49 EQ PUSH2 0x559 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x56C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x523B8136 EQ PUSH2 0x526 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x52E JUMPI DUP1 PUSH4 0x70F4F9DF EQ PUSH2 0x536 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3DF432FC GT PUSH2 0x292 JUMPI DUP1 PUSH4 0x3DF432FC EQ PUSH2 0x4F1 JUMPI DUP1 PUSH4 0x3F0C6648 EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x406E8B4C EQ PUSH2 0x500 JUMPI DUP1 PUSH4 0x443D7534 EQ PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2E798EC1 EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0x310D0D5B EQ PUSH2 0x4D6 JUMPI DUP1 PUSH4 0x3D59EC60 EQ PUSH2 0x4E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1F0F4F7A GT PUSH2 0x325 JUMPI DUP1 PUSH4 0x2AFAB62F GT PUSH2 0x2FF JUMPI DUP1 PUSH4 0x2AFAB62F EQ PUSH2 0x480 JUMPI DUP1 PUSH4 0x2C1D3204 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0x2D26B309 EQ PUSH2 0x49B JUMPI DUP1 PUSH4 0x2D5C4F25 EQ PUSH2 0x4B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1F0F4F7A EQ PUSH2 0x43A JUMPI DUP1 PUSH4 0x23AAFE3B EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0x26485063 EQ PUSH2 0x460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5417F79 GT PUSH2 0x361 JUMPI DUP1 PUSH4 0x5417F79 EQ PUSH2 0x3EA JUMPI DUP1 PUSH4 0xE316AB7 EQ PUSH2 0x3F2 JUMPI DUP1 PUSH4 0x110C96A7 EQ PUSH2 0x407 JUMPI DUP1 PUSH4 0x1B87278D EQ PUSH2 0x427 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x33058D EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0x1C85C77 EQ PUSH2 0x3B1 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x3C7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39A PUSH2 0x395 CALLDATASIZE PUSH1 0x4 PUSH2 0x3087 JUMP JUMPDEST PUSH2 0x7C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP3 SWAP2 SWAP1 PUSH2 0x3144 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3B9 PUSH2 0x895 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A8 JUMP JUMPDEST PUSH2 0x3DA PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3187 JUMP JUMPDEST PUSH2 0x91A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A8 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x951 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x400 CALLDATASIZE PUSH1 0x4 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0x964 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x41A PUSH2 0x415 CALLDATASIZE PUSH1 0x4 PUSH2 0x31EE JUMP JUMPDEST PUSH2 0x985 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x321A JUMP JUMPDEST PUSH2 0x405 PUSH2 0x435 CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x9B0 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x448 CALLDATASIZE PUSH1 0x4 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0xA83 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x45B CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0xAA0 JUMP JUMPDEST PUSH2 0x473 PUSH2 0x46E CALLDATASIZE PUSH1 0x4 PUSH2 0x3087 JUMP JUMPDEST PUSH2 0xAD3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x3280 JUMP JUMPDEST PUSH2 0x3DA PUSH2 0x48E CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0xB6C JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0xB97 JUMP JUMPDEST PUSH2 0x4A3 PUSH2 0xBAA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x3293 JUMP JUMPDEST PUSH2 0x473 PUSH2 0x4BE CALLDATASIZE PUSH1 0x4 PUSH2 0x32DF JUMP JUMPDEST PUSH2 0xBBF JUMP JUMPDEST PUSH2 0x405 PUSH2 0x4D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0xC5E JUMP JUMPDEST PUSH2 0x473 PUSH2 0x4E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x32DF JUMP JUMPDEST PUSH2 0xCAA JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0xD01 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0xD14 JUMP JUMPDEST PUSH1 0x28 PUSH2 0x3B9 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x50E CALLDATASIZE PUSH1 0x4 PUSH2 0x3319 JUMP JUMPDEST PUSH2 0xD57 JUMP JUMPDEST PUSH2 0x39A PUSH2 0x521 CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0xDF4 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0xE6F JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0xE82 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x544 CALLDATASIZE PUSH1 0x4 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0xE92 JUMP JUMPDEST PUSH2 0x405 PUSH2 0xEF4 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0xF08 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x567 CALLDATASIZE PUSH1 0x4 PUSH2 0x3456 JUMP JUMPDEST PUSH2 0xF1B JUMP JUMPDEST PUSH2 0x405 PUSH2 0x109E JUMP JUMPDEST PUSH2 0x57C PUSH2 0x10E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x34DA JUMP JUMPDEST PUSH2 0x405 PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x1192 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x5B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0x11A4 JUMP JUMPDEST PUSH2 0x5BD PUSH2 0x11D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A8 JUMP JUMPDEST PUSH2 0x4A3 PUSH2 0x120E JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x1223 JUMP JUMPDEST PUSH2 0x5BD PUSH2 0x5F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3456 JUMP JUMPDEST PUSH2 0x1236 JUMP JUMPDEST PUSH2 0x41A PUSH2 0x606 CALLDATASIZE PUSH1 0x4 PUSH2 0x3572 JUMP JUMPDEST PUSH2 0x1270 JUMP JUMPDEST PUSH2 0x62F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x312E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x35A7 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x64A CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x1489 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x65D CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x14A1 JUMP JUMPDEST PUSH2 0x39A PUSH2 0x670 CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x14E6 JUMP JUMPDEST PUSH2 0x473 PUSH2 0x683 CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x1561 JUMP JUMPDEST PUSH2 0x69B PUSH2 0x696 CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x15AF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP2 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x3A8 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x6CB CALLDATASIZE PUSH1 0x4 PUSH2 0x35FE JUMP JUMPDEST PUSH2 0x1657 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x6DE CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x1671 JUMP JUMPDEST PUSH2 0x473 PUSH2 0x6F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x16B3 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x1703 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x1716 JUMP JUMPDEST PUSH2 0x3B9 PUSH32 0xD2A15C3140485B6DB2A8C0F755486294DAAAE1EABCDD518F6BEAF8E4AB4D834 DUP2 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x1759 JUMP JUMPDEST PUSH2 0x473 PUSH2 0x743 CALLDATASIZE PUSH1 0x4 PUSH2 0x366D JUMP JUMPDEST PUSH2 0x1763 JUMP JUMPDEST PUSH2 0x5BD PUSH2 0x17C2 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x75E CALLDATASIZE PUSH1 0x4 PUSH2 0x3697 JUMP JUMPDEST PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x405 PUSH2 0x771 CALLDATASIZE PUSH1 0x4 PUSH2 0x3765 JUMP JUMPDEST PUSH2 0x19BA JUMP JUMPDEST PUSH2 0x405 PUSH2 0x784 CALLDATASIZE PUSH1 0x4 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0x1B65 JUMP JUMPDEST PUSH2 0x3DA PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0x3DA PUSH2 0x79F CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x1C00 JUMP JUMPDEST PUSH2 0x62F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x312E302E33 PUSH1 0xD8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x7D0 PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0x7FB PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x803 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1F17004D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xF8B80268 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x864 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x88C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x395C JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89F PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x765C2C61 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x765C2C61 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x8F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x915 SWAP2 SWAP1 PUSH2 0x3A00 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5D1CA631 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x94B JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x95B PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0xB ADD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x96C PUSH2 0x1C69 JUMP JUMPDEST PUSH2 0x981 DUP2 PUSH2 0x978 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x4 ADD SWAP1 PUSH2 0x1C9B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x98D PUSH2 0x2FDF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x997 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP1 POP PUSH2 0x9A8 DUP5 DUP3 DUP6 PUSH2 0x1270 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x9B8 PUSH2 0x1C69 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9C2 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xA DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0xA0A JUMPI PUSH1 0x40 MLOAD PUSH4 0x52047769 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA13 DUP2 PUSH2 0x1CB0 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xA DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE MLOAD PUSH32 0x725D312746BE14D750D0493AA7960A5ACA3C30F98F74B0E07AFC8F1A36B355C2 SWAP1 PUSH2 0xA76 SWAP1 DUP6 SWAP1 DUP5 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0xA8B PUSH2 0x1C69 JUMP JUMPDEST PUSH2 0x981 DUP2 PUSH2 0xA97 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x8 ADD SWAP1 PUSH2 0x1C9B JUMP JUMPDEST PUSH2 0xAA8 PUSH2 0x1C69 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAB2 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xADB PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0xAE3 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7D0ABA4F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x7D0ABA4F SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xB44 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x94B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3A19 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xB77 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0xA ADD PUSH1 0x20 MSTORE POP POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBA1 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x915 PUSH2 0xBB7 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x8 ADD PUSH2 0x1D9A JUMP JUMPDEST PUSH2 0xBC7 PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0xBCF PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD55DA6A3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xD55DA6A3 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xC2F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC57 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3A19 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xC66 PUSH2 0x1C69 JUMP JUMPDEST DUP1 PUSH2 0xC6F PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x2 ADD SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x73293F7B4F3FE4EEB423F647C95D70844D99749A80C8A93AA4C3D4996A63BC4A SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xCB2 PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0xCBA PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6AC0C5C7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xD5818B8E SWAP1 PUSH1 0x64 ADD PUSH2 0xC12 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD0B PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD1E PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1B8BF99B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x6E2FE66C SWAP1 PUSH1 0x24 ADD PUSH2 0x8D4 JUMP JUMPDEST PUSH2 0xD5F PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x59A60691 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x59A60691 SWAP1 PUSH1 0xA4 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xDEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xDFC PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0xE27 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0xE2F PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA3018D79 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xA3018D79 SWAP1 PUSH1 0x44 ADD PUSH2 0x847 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE79 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x9A ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE8C PUSH2 0x1C21 JUMP JUMPDEST SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE9A PUSH2 0x1C69 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEA4 PUSH2 0x1C45 JUMP JUMPDEST SWAP1 POP PUSH2 0xEB3 PUSH1 0x8 DUP3 ADD DUP4 PUSH2 0x1DA7 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH32 0xA33C33CA5C931F5CBDAA4137C8B7F3EA632AA05390959F913C410776733061B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0xEFC PUSH2 0x1C69 JUMP JUMPDEST PUSH2 0xF06 PUSH1 0x0 PUSH2 0x1DBC JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF12 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x2 ADD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xF23 PUSH2 0x1DF4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2D PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x4CC3A4A5 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4CC3A4A5 SWAP1 PUSH2 0xF69 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x35A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xFB0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3A92 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0xFBF DUP3 PUSH2 0x1C00 JUMP JUMPDEST PUSH2 0xFDF JUMPI PUSH1 0x40 MLOAD PUSH4 0x8338DBA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST DUP1 PUSH2 0xFFD JUMPI PUSH1 0x40 MLOAD PUSH4 0xBD8BA84D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x14 DUP4 MLOAD LT ISZERO PUSH2 0x1020 JUMPI PUSH1 0x40 MLOAD PUSH4 0x25198D5 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x14 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x104C JUMPI PUSH1 0x40 MLOAD PUSH4 0x4501A919 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1059 PUSH1 0x4 DUP7 ADD DUP3 PUSH2 0x1DA7 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP2 MSTORE PUSH32 0x47D1C22A25BB3A5D4E481B9B1E6944C2EADE3181A0A20B495ED61D35B5323F24 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST CALLER DUP1 PUSH2 0x10A8 PUSH2 0x17C2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x10DA JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x10E3 DUP2 PUSH2 0x1DBC JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 DUP3 DUP1 DUP1 DUP4 DUP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4059 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD SWAP1 SWAP2 POP ISZERO DUP1 ISZERO PUSH2 0x1113 JUMPI POP PUSH1 0x1 DUP2 ADD SLOAD ISZERO JUMPDEST PUSH2 0x1157 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 0x1152540DCC4C8E88155B9A5B9A5D1A585B1A5E9959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x115F PUSH2 0x1E28 JUMP JUMPDEST PUSH2 0x1167 PUSH2 0x1EEB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0xF PUSH1 0xF8 SHL SWAP13 SWAP4 SWAP12 POP SWAP2 SWAP10 POP CHAINID SWAP9 POP ADDRESS SWAP8 POP SWAP6 POP SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH2 0x119A PUSH2 0x1C69 JUMP JUMPDEST PUSH1 0x1 PUSH2 0xAB2 PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x11AC PUSH2 0x1C69 JUMP JUMPDEST DUP1 PUSH2 0x11B5 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x6 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x915 PUSH2 0x121B PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x4 ADD PUSH2 0x1D9A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x122D PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x9B ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1240 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x3 ADD DUP3 PUSH1 0x40 MLOAD PUSH2 0x1251 SWAP2 SWAP1 PUSH2 0x3ADF JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1278 PUSH2 0x2FDF JUMP JUMPDEST PUSH2 0x1280 PUSH2 0x1C21 JUMP JUMPDEST SLOAD DUP5 EQ PUSH2 0x12C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x92C8CADCE8D2E8F240D2C840DAD2E6DAC2E8C6D PUSH1 0x63 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12D0 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB1A9CD3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB1A9CD3 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1328 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x134C SWAP2 SWAP1 PUSH2 0x3AFB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE DUP3 MLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 ADD MLOAD DUP2 DUP4 ADD MSTORE SWAP1 DUP3 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 PUSH2 0x1381 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xB2BCD1B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x16579A36 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x13EB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1413 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3A19 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD ISZERO ISZERO DUP2 DUP4 ADD MSTORE DUP3 DUP5 ADD MLOAD DUP3 DUP5 ADD MSTORE PUSH1 0x60 DUP1 DUP6 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP6 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xA0 DUP1 DUP6 ADD MLOAD ISZERO ISZERO SWAP1 DUP4 ADD MSTORE PUSH1 0xC0 DUP1 DUP6 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xE0 SWAP4 DUP5 ADD MLOAD SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP4 DUP2 MSTORE SWAP1 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1491 PUSH2 0x1C69 JUMP JUMPDEST DUP1 PUSH2 0x149A PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0xB ADD SSTORE POP JUMP JUMPDEST PUSH2 0x14A9 PUSH2 0x1C69 JUMP JUMPDEST DUP1 PUSH2 0x14B2 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x1 ADD SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xF007A02BA428E63FA98B65269E70F9A9DB847E0A839049A2F31F069282267734 SWAP1 PUSH1 0x20 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH2 0x14EE PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0x1519 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x1521 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6AD1D8A7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xD5A3B14E SWAP1 PUSH1 0x44 ADD PUSH2 0x847 JUMP JUMPDEST PUSH2 0x1569 PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0x1571 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xCF089 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH3 0xCF0890 SWAP1 PUSH1 0x44 ADD PUSH2 0xB27 JUMP JUMPDEST PUSH2 0x15D3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x15DB PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB1A9CD3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB1A9CD3 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1633 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x94B SWAP2 SWAP1 PUSH2 0x3AFB JUMP JUMPDEST PUSH2 0x165F PUSH2 0x1C69 JUMP JUMPDEST PUSH2 0x166B DUP5 DUP5 DUP5 DUP5 PUSH2 0x1F2A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1679 PUSH2 0x1C69 JUMP JUMPDEST DUP1 PUSH2 0x1682 PUSH2 0x1C45 JUMP JUMPDEST SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x7F7F3071C3C286700C199ACAE2FE071BEB4A63DAE1AFFF85186FA75D18090AE8 SWAP1 PUSH1 0x20 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH2 0x16BB PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0x16C3 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x97AC5391 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x97AC5391 SWAP1 PUSH1 0x44 ADD PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x170D PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x9C ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1720 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E75E7F3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x1E75E7F3 SWAP1 PUSH1 0x24 ADD PUSH2 0x8D4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE8C PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x176B PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0x1773 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB2BCD1B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x16579A36 SWAP1 PUSH1 0x64 ADD PUSH2 0xC12 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17F5 PUSH2 0x2082 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x181C JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x1838 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x1846 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x1864 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x188E JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x18AE PUSH2 0x189E PUSH1 0x20 DUP11 ADD DUP11 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0x50E PUSH1 0x40 DUP12 ADD PUSH1 0x20 DUP13 ADD PUSH2 0x3B5A JUMP JUMPDEST PUSH2 0x18B7 DUP8 PUSH2 0x20AB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18C1 PUSH2 0x1C45 JUMP JUMPDEST SWAP1 POP DUP16 DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP DUP15 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP14 DUP2 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP7 DUP2 PUSH1 0x6 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x1956 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD PUSH16 0x50617373706F72744973737565725631 PUSH1 0x80 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x312E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP PUSH2 0x20BC JUMP JUMPDEST PUSH2 0x1962 DUP14 DUP14 DUP14 DUP14 PUSH2 0x1F2A JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x19A9 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD MLOAD PUSH1 0x0 SUB PUSH2 0x19E0 JUMPI DUP2 MLOAD PUSH1 0x40 MLOAD PUSH4 0x1D44E471 PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0xA01 SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x35A7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP6 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x19FE SWAP2 SWAP1 PUSH2 0x3BBC JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1A44 JUMPI PUSH2 0x1A44 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1A64 JUMPI PUSH2 0x1A64 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x2 DUP2 MLOAD DUP2 LT PUSH2 0x1A84 JUMPI PUSH2 0x1A84 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x3 DUP2 MLOAD DUP2 LT PUSH2 0x1AA4 JUMPI PUSH2 0x1AA4 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x4 DUP2 MLOAD DUP2 LT PUSH2 0x1AC4 JUMPI PUSH2 0x1AC4 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x5 DUP2 MLOAD DUP2 LT PUSH2 0x1AE4 JUMPI PUSH2 0x1AE4 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x6 DUP2 MLOAD DUP2 LT PUSH2 0x1B04 JUMPI PUSH2 0x1B04 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x7 DUP2 MLOAD DUP2 LT PUSH2 0x1B24 JUMPI PUSH2 0x1B24 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE POP DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1B4A SWAP2 SWAP1 PUSH2 0x3C8C JUMP JUMPDEST SWAP1 POP PUSH2 0x1B5B DUP9 PUSH1 0x0 ADD MLOAD DUP4 DUP4 PUSH2 0x20CE JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1B6D PUSH2 0x1C69 JUMP JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR DUP3 SSTORE PUSH2 0x1BB1 PUSH2 0x11D9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BF4 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0A PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x7 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH32 0x3018A310C36C4F8228F09BF3B1822685CF0971DAA8265A58CA807C4A4DABA400 SWAP1 JUMP JUMPDEST PUSH32 0x405D73F251ED6C997B1C097C46D2F830C946626E510C12346D80E7C5A4DAD300 SWAP1 JUMP JUMPDEST CALLER PUSH2 0x1C72 PUSH2 0x11D9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF06 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC57 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x20F0 JUMP JUMPDEST PUSH2 0x1CB8 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8AD7195D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x8AD7195D SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1D27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1D33 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x175BA3E9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x2EB747D2 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1D93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xC57 DUP4 PUSH2 0x21E3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC57 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x223F JUMP JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH2 0x981 DUP3 PUSH2 0x228E JUMP JUMPDEST PUSH2 0x1E09 CALLER PUSH2 0x1E00 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x8 ADD SWAP1 PUSH2 0x22FF JUMP JUMPDEST PUSH2 0xF06 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1D83D27F PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH32 0xA16A46D94261C7517CC8FF89F61C0CE93598E3C849801011DEE649A6A557D102 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4059 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x1E67 SWAP1 PUSH2 0x3D2A JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1E93 SWAP1 PUSH2 0x3D2A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1EE0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1EB5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1EE0 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1EC3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH32 0xA16A46D94261C7517CC8FF89F61C0CE93598E3C849801011DEE649A6A557D103 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4059 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x1E67 SWAP1 PUSH2 0x3D2A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F34 PUSH2 0x1C45 JUMP JUMPDEST SWAP1 POP DUP4 DUP3 EQ PUSH2 0x1F60 JUMPI PUSH1 0x40 MLOAD PUSH4 0x55C5B3E3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0xDEC JUMPI DUP4 DUP4 DUP3 DUP2 DUP2 LT PUSH2 0x1F7D JUMPI PUSH2 0x1F7D PUSH2 0x3C76 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1F92 SWAP2 SWAP1 PUSH2 0x31D1 JUMP JUMPDEST DUP3 PUSH1 0x3 ADD DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x1FA8 JUMPI PUSH2 0x1FA8 PUSH2 0x3C76 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1FBA SWAP2 SWAP1 PUSH2 0x3D64 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FC8 SWAP3 SWAP2 SWAP1 PUSH2 0x3DAA JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH32 0x5D864DB8D88E9085FD5E7752A2094701E558355B75B561C00174D27AEFD3E289 DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0x202A JUMPI PUSH2 0x202A PUSH2 0x3C76 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x203C SWAP2 SWAP1 PUSH2 0x3D64 JUMP JUMPDEST DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x204E JUMPI PUSH2 0x204E PUSH2 0x3C76 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2063 SWAP2 SWAP1 PUSH2 0x31D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2072 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3DBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 ADD PUSH2 0x1F63 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 PUSH2 0x94B JUMP JUMPDEST PUSH2 0x20B3 PUSH2 0x2321 JUMP JUMPDEST PUSH2 0x10E3 DUP2 PUSH2 0x2346 JUMP JUMPDEST PUSH2 0x20C4 PUSH2 0x2321 JUMP JUMPDEST PUSH2 0x981 DUP3 DUP3 PUSH2 0x2378 JUMP JUMPDEST PUSH2 0x20D8 DUP4 DUP4 PUSH2 0x23D9 JUMP JUMPDEST PUSH2 0x20E1 DUP2 PUSH2 0x24D1 JUMP JUMPDEST PUSH2 0x20EB DUP3 DUP3 PUSH2 0x2545 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x21D9 JUMPI PUSH1 0x0 PUSH2 0x2114 PUSH1 0x1 DUP4 PUSH2 0x3E11 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2128 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3E11 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 EQ PUSH2 0x218D JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2148 JUMPI PUSH2 0x2148 PUSH2 0x3C76 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x216B JUMPI PUSH2 0x216B PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x219E JUMPI PUSH2 0x219E PUSH2 0x3E24 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x94B JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x94B JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x2233 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x221F JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x2286 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x94B JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x94B JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 DUP3 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP3 AND SWAP2 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xC57 JUMP JUMPDEST PUSH2 0x2329 PUSH2 0x25B4 JUMP JUMPDEST PUSH2 0xF06 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x234E PUSH2 0x2321 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x10DA JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x2380 PUSH2 0x2321 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4059 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH32 0xA16A46D94261C7517CC8FF89F61C0CE93598E3C849801011DEE649A6A557D102 PUSH2 0x23BA DUP5 DUP3 PUSH2 0x3E81 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD PUSH2 0x23C9 DUP4 DUP3 PUSH2 0x3E81 JUMP JUMPDEST POP PUSH1 0x0 DUP1 DUP3 SSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E3 PUSH2 0x1C45 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 ADD DUP5 PUSH1 0x40 MLOAD PUSH2 0x23F9 SWAP2 SWAP1 PUSH2 0x3ADF JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP1 PUSH2 0x2432 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1DCF1AB PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC9219A7A DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2474 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F62 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2491 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24B5 SWAP2 SWAP1 PUSH2 0x3FE7 JUMP JUMPDEST PUSH2 0x166B JUMPI PUSH1 0x40 MLOAD PUSH3 0x81723B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x24E6 DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x25CE JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x2508 JUMPI PUSH1 0x40 MLOAD PUSH4 0xDF2B56FF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x251D DUP2 PUSH2 0x2514 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x4 ADD SWAP1 PUSH2 0x22FF JUMP JUMPDEST PUSH2 0x20EB JUMPI PUSH1 0x40 MLOAD PUSH4 0x14328611 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2550 DUP4 PUSH2 0x2678 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x20 ADD MLOAD SWAP1 POP PUSH2 0x2594 DUP3 PUSH1 0x0 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP6 PUSH1 0x60 ADD MLOAD DUP7 PUSH1 0x80 ADD MLOAD DUP8 PUSH1 0xA0 ADD MLOAD DUP10 PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD DUP9 DUP11 PUSH1 0xE0 ADD MLOAD PUSH2 0x27E9 JUMP JUMPDEST PUSH2 0x25A2 DUP2 DUP4 PUSH1 0xC0 ADD MLOAD PUSH2 0x2A5A JUMP JUMPDEST PUSH2 0x166B DUP3 PUSH1 0x0 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x2BAB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25BE PUSH2 0x2082 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x263F PUSH32 0xD2A15C3140485B6DB2A8C0F755486294DAAAE1EABCDD518F6BEAF8E4AB4D834 DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2624 SWAP4 SWAP3 SWAP2 SWAP1 SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x2C66 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x264E DUP4 DUP8 PUSH2 0x2C93 JUMP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2668 JUMPI PUSH2 0x2668 PUSH2 0x4002 JUMP JUMPDEST EQ SWAP5 POP SWAP1 SWAP3 POP POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x26C9 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x0 PUSH1 0x8 DUP2 LT PUSH2 0x26EC JUMPI PUSH2 0x26EC PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0x8 DUP2 LT PUSH2 0x270D JUMPI PUSH2 0x270D PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x4 PUSH1 0x8 DUP2 LT PUSH2 0x272E JUMPI PUSH2 0x272E PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x3 PUSH1 0x8 DUP2 LT PUSH2 0x274F JUMPI PUSH2 0x274F PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x5 PUSH1 0x8 DUP2 LT PUSH2 0x2770 JUMPI PUSH2 0x2770 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x2 PUSH1 0x8 DUP2 LT PUSH2 0x2791 JUMPI PUSH2 0x2791 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x7 PUSH1 0x8 DUP2 LT PUSH2 0x27B2 JUMPI PUSH2 0x27B2 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x6 PUSH1 0x8 DUP2 LT PUSH2 0x27DC JUMPI PUSH2 0x27DC PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD SWAP1 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27F3 PUSH2 0x1C45 JUMP JUMPDEST SWAP1 POP DUP10 PUSH1 0x0 SUB PUSH2 0x2819 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1B1AAD87 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST DUP9 PUSH1 0x0 SUB PUSH2 0x283D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4BDC991B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD DUP7 EQ PUSH2 0x2871 JUMPI PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0xE7483791 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xA01 SWAP2 DUP9 SWAP2 PUSH1 0x4 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST DUP5 DUP5 EQ PUSH2 0x289E JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0x1D0D83 PUSH1 0xE2 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x7A120 DUP9 GT ISZERO PUSH2 0x28C0 JUMPI PUSH2 0x28B9 DUP9 PUSH4 0x121EAC0 PUSH2 0x4018 JUMP JUMPDEST SWAP1 POP PUSH2 0x28D1 JUMP JUMPDEST PUSH2 0x28CE DUP9 PUSH4 0x1312D00 PUSH2 0x4018 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x28EE DUP6 PUSH1 0x0 ADD SLOAD TIMESTAMP PUSH2 0x28E9 SWAP2 SWAP1 PUSH2 0x3E11 JUMP JUMPDEST PUSH2 0x2CE0 JUMP JUMPDEST SWAP2 SWAP5 POP SWAP3 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0x2903 DUP5 PUSH1 0x64 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x290F DUP7 PUSH2 0x2710 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x2919 SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST PUSH2 0x2923 SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST SWAP1 POP DUP5 DUP2 GT ISZERO PUSH2 0x2949 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5D5E30BF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2961 DUP10 PUSH1 0x2 ADD SLOAD TIMESTAMP PUSH2 0x28E9 SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST SWAP2 SWAP5 POP SWAP3 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0x2976 DUP5 PUSH1 0x64 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x2982 DUP7 PUSH2 0x2710 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x298C SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST PUSH2 0x2996 SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST SWAP1 POP DUP1 DUP10 GT ISZERO PUSH2 0x29BD JUMPI DUP16 PUSH1 0x40 MLOAD PUSH4 0x53F3B141 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA01 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP POP POP POP POP POP POP POP TIMESTAMP DUP3 PUSH1 0x0 ADD SLOAD DUP11 PUSH2 0x29D6 SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST LT ISZERO PUSH2 0x29F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0xBD09F1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH2 0x2A06 SWAP1 TIMESTAMP PUSH2 0x4018 JUMP JUMPDEST DUP10 GT ISZERO PUSH2 0x2A29 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD8188335 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST DUP3 DUP3 PUSH1 0xB ADD SLOAD EQ PUSH2 0x2A4D JUMPI PUSH1 0x40 MLOAD PUSH4 0xFE0C887B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 SUB PUSH2 0x2A8F JUMPI PUSH1 0x40 MLOAD PUSH4 0x37F969B3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A99 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xA DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP1 ISZERO PUSH2 0x2B7A JUMPI PUSH2 0x2AC4 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8AD7195D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x8AD7195D SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x2B33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x725D312746BE14D750D0493AA7960A5ACA3C30F98F74B0E07AFC8F1A36B355C2 SWAP4 POP ADD SWAP1 POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0xA ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2BB3 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6FB1575 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x6FB1575 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x2C21 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2C2D PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x175BA3E9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x2EB747D2 SWAP1 PUSH1 0x24 ADD PUSH2 0xDC0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x94B PUSH2 0x2C73 PUSH2 0x2CFF JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x22 DUP3 ADD MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 SUB PUSH2 0x2CCD JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x2CBF DUP9 DUP3 DUP6 DUP6 PUSH2 0x2D09 JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x2CD9 JUMP JUMPDEST POP POP DUP2 MLOAD PUSH1 0x0 SWAP2 POP PUSH1 0x2 SWAP1 JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x2CF2 PUSH3 0x15180 DUP6 DIV PUSH2 0x2DD8 JUMP JUMPDEST SWAP2 SWAP7 SWAP1 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x915 PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP5 GT ISZERO PUSH2 0x2D44 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x2DCE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP11 SWAP1 MSTORE PUSH1 0xFF DUP10 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D98 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2DC4 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x2DCE JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP DUP2 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 PUSH3 0x264965 DUP2 ADD DUP3 PUSH3 0x23AB1 PUSH1 0x4 DUP4 MUL SDIV SWAP1 POP PUSH1 0x4 PUSH1 0x3 PUSH3 0x23AB1 DUP4 MUL ADD SDIV SWAP1 SWAP2 SUB SWAP1 PUSH1 0x0 PUSH3 0x164B09 PUSH2 0xFA0 PUSH1 0x1 DUP6 ADD MUL SDIV SWAP1 POP PUSH1 0x4 PUSH2 0x5B5 DUP3 MUL SDIV DUP4 SUB PUSH1 0x1F ADD SWAP3 POP PUSH1 0x0 PUSH2 0x98F DUP5 PUSH1 0x50 MUL DUP2 PUSH2 0x2E35 JUMPI PUSH2 0x2E35 PUSH2 0x4042 JUMP JUMPDEST SDIV SWAP1 POP PUSH1 0x0 PUSH1 0x50 PUSH2 0x98F DUP4 MUL SDIV DUP6 SUB SWAP1 POP PUSH1 0xB DUP3 SDIV PUSH1 0x30 NOT SWAP5 SWAP1 SWAP5 ADD PUSH1 0x64 MUL SWAP3 SWAP1 SWAP3 ADD DUP4 ADD SWAP10 PUSH1 0x2 PUSH1 0xC SWAP1 SWAP5 MUL SWAP1 SWAP2 SUB SWAP3 SWAP1 SWAP3 ADD SWAP8 POP SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH2 0x2E9F PUSH2 0x2EE8 JUMP JUMPDEST PUSH2 0x2EA7 PUSH2 0x2F52 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4059 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 PUSH2 0x2F02 PUSH2 0x1E28 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x2F1A JUMPI DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 SLOAD DUP1 ISZERO PUSH2 0x2F29 JUMPI SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC5D2460186F7233C927E7DB2DCC703C0E500B653CA82273B7BFAD8045D85A470 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4059 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 PUSH2 0x2F6C PUSH2 0x1EEB JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x2F84 JUMPI DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD DUP1 ISZERO PUSH2 0x2F29 JUMPI SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x3015 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3066 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3082 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3099 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC57 DUP3 PUSH2 0x306B JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD ISZERO ISZERO DUP2 DUP5 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH2 0x100 SWAP2 DUP6 ADD DUP3 SWAP1 MSTORE DUP1 MLOAD SWAP2 DUP6 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP3 ADD SWAP1 DUP3 SWAP1 PUSH2 0x120 DUP7 ADD SWAP1 JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x30FA JUMPI DUP4 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x1 DUP4 ADD SWAP3 POP PUSH2 0x30D7 JUMP JUMPDEST POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0x80 DUP8 ADD MSTORE PUSH1 0xA0 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x3124 PUSH1 0xA0 DUP8 ADD DUP5 ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xC0 DUP8 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH1 0xE0 DUP8 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3157 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x30A2 JUMP JUMPDEST SWAP1 POP PUSH2 0xC57 PUSH1 0x20 DUP4 ADD DUP5 DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xC57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x10E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3082 DUP2 PUSH2 0x31B1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xC57 DUP2 PUSH2 0x31B1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x3211 PUSH1 0x20 DUP5 ADD PUSH2 0x306B JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH2 0x324D PUSH1 0x20 DUP3 ADD DUP4 MLOAD DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0xA0 DUP1 DUP5 ADD MSTORE PUSH2 0x9A8 PUSH1 0xC0 DUP5 ADD DUP3 PUSH2 0x30A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xC57 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x30A2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 ADD SWAP1 PUSH1 0x40 DUP5 ADD SWAP1 DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x32D4 JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x32AD JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x32F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x3082 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x332C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3337 DUP2 PUSH2 0x31B1 JUMP JUMPDEST SWAP2 POP PUSH2 0x3211 PUSH1 0x20 DUP5 ADD PUSH2 0x3301 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 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x337D JUMPI PUSH2 0x337D PUSH2 0x3345 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x100 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x337D JUMPI PUSH2 0x337D PUSH2 0x3345 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x33CE JUMPI PUSH2 0x33CE PUSH2 0x3345 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x33EF JUMPI PUSH2 0x33EF PUSH2 0x3345 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x340E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 PUSH2 0x3427 PUSH2 0x3422 DUP5 PUSH2 0x33D6 JUMP JUMPDEST PUSH2 0x33A6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x343B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3468 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x347E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9A8 DUP5 DUP3 DUP6 ADD PUSH2 0x33FD JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x34A5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x348D JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x34C6 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x348A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF PUSH1 0xF8 SHL DUP9 AND DUP2 MSTORE PUSH1 0xE0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x34F9 PUSH1 0xE0 DUP4 ADD DUP10 PUSH2 0x34AE JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x350B DUP2 DUP10 PUSH2 0x34AE JUMP JUMPDEST PUSH1 0x60 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP5 ADD DUP7 SWAP1 MSTORE DUP4 DUP2 SUB PUSH1 0xC0 DUP6 ADD MSTORE DUP5 MLOAD DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP8 ADD SWAP4 POP SWAP1 SWAP2 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3561 JUMPI DUP4 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x3543 JUMP JUMPDEST POP SWAP1 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x359E PUSH1 0x40 DUP6 ADD PUSH2 0x306B JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xC57 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x34AE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x35CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x35E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x2671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3614 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x362A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3636 DUP8 DUP3 DUP9 ADD PUSH2 0x35BA JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3655 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3661 DUP8 DUP3 DUP9 ADD PUSH2 0x35BA JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3680 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3689 DUP4 PUSH2 0x306B JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP11 DUP13 SUB PUSH2 0x120 DUP2 SLT ISZERO PUSH2 0x36B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP12 CALLDATALOAD SWAP11 POP PUSH1 0x20 DUP13 ADD CALLDATALOAD SWAP10 POP PUSH1 0x40 DUP13 ADD CALLDATALOAD SWAP9 POP PUSH1 0x60 DUP13 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x36E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x36EF DUP15 DUP3 DUP16 ADD PUSH2 0x35BA JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP POP PUSH1 0x80 DUP13 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x370E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x371A DUP15 DUP3 DUP16 ADD PUSH2 0x35BA JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP POP PUSH1 0x40 PUSH1 0x9F NOT DUP3 ADD SLT ISZERO PUSH2 0x3732 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xA0 DUP12 ADD SWAP3 POP PUSH2 0x3745 PUSH1 0xE0 DUP13 ADD PUSH2 0x31C6 JUMP JUMPDEST SWAP2 POP PUSH2 0x3754 PUSH2 0x100 DUP13 ADD PUSH2 0x31C6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3778 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x378E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x40 DUP2 DUP7 SUB SLT ISZERO PUSH2 0x37A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x37A8 PUSH2 0x335B JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x37BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x37CA DUP8 DUP3 DUP6 ADD PUSH2 0x33FD JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x37E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x37F2 DUP8 DUP3 DUP6 ADD PUSH2 0x33FD JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP DUP1 SWAP4 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3816 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3822 DUP6 DUP3 DUP7 ADD PUSH2 0x33FD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3082 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x384D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3866 JUMPI PUSH2 0x3866 PUSH2 0x3345 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH2 0x3876 PUSH1 0x20 DUP3 ADD PUSH2 0x33A6 JUMP JUMPDEST SWAP2 DUP3 MSTORE PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD SWAP3 SWAP1 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x3892 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0x38B4 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3899 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x38D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38D9 PUSH2 0x3383 JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE SWAP1 POP PUSH2 0x38EB PUSH1 0x20 DUP4 ADD PUSH2 0x382C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3909 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3915 DUP5 DUP3 DUP6 ADD PUSH2 0x383C JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x393B PUSH1 0xA0 DUP4 ADD PUSH2 0x382C JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 SWAP2 DUP3 ADD MLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 SUB PUSH1 0xA0 DUP2 SLT ISZERO PUSH2 0x3970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3992 DUP7 DUP3 DUP8 ADD PUSH2 0x38BE JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH1 0x1F NOT DUP3 ADD SLT ISZERO PUSH2 0x39A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x39CA JUMPI PUSH2 0x39CA PUSH2 0x3345 JUMP JUMPDEST PUSH1 0x40 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP6 DUP2 ADD MLOAD DUP4 MSTORE DUP6 DUP3 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP7 ADD MLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 SWAP1 SWAP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3A41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9A8 DUP5 DUP3 DUP6 ADD PUSH2 0x38BE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3A5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x3A6C PUSH2 0x3422 DUP3 PUSH2 0x33D6 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3A81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9A8 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x348A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3AA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3ABD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3AC9 DUP7 DUP3 DUP8 ADD PUSH2 0x3A4D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH2 0x359E PUSH1 0x40 DUP6 ADD PUSH2 0x382C JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3AF1 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x348A JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x3B0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x0 SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3B34 JUMPI PUSH2 0x3B34 PUSH2 0x3345 JUMP JUMPDEST PUSH1 0x40 SWAP1 DUP2 MSTORE DUP5 MLOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP7 ADD MLOAD SWAP1 DUP4 ADD MSTORE SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC57 DUP3 PUSH2 0x3301 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3B86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3B90 PUSH1 0x40 PUSH2 0x33A6 JUMP JUMPDEST DUP1 PUSH1 0x40 DUP5 ADD DUP6 DUP2 GT ISZERO PUSH2 0x3BA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x32D4 JUMPI DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 ADD PUSH2 0x3BA4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x120 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3BD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3BE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3BF5 DUP8 DUP3 DUP9 ADD PUSH2 0x383C JUMP JUMPDEST SWAP5 POP POP PUSH2 0x3C05 DUP7 PUSH1 0x20 DUP8 ADD PUSH2 0x3B75 JUMP JUMPDEST SWAP3 POP DUP6 PUSH1 0x7F DUP7 ADD SLT PUSH2 0x3C16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 PUSH2 0x3C21 DUP2 PUSH2 0x33A6 JUMP JUMPDEST DUP1 PUSH1 0xE0 DUP9 ADD DUP10 DUP2 GT ISZERO PUSH2 0x3C33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 DUP10 ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3C59 JUMPI PUSH2 0x3C4A DUP12 DUP3 PUSH2 0x3B75 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 DUP5 ADD PUSH2 0x3C38 JUMP JUMPDEST POP DUP2 SWAP6 POP PUSH2 0x3C67 DUP11 DUP3 PUSH2 0x3B75 JUMP JUMPDEST SWAP5 POP POP POP POP 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 PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3CB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP1 DUP5 SUB PUSH1 0x60 DUP2 SLT ISZERO PUSH2 0x3CC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3CCF PUSH2 0x335B JUMP JUMPDEST PUSH1 0x40 DUP3 SLT ISZERO PUSH2 0x3CDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3CE5 PUSH2 0x335B JUMP JUMPDEST DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x40 DUP4 ADD MLOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3D10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D1C DUP7 DUP4 DUP6 ADD PUSH2 0x3A4D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3D3E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3D5E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x3D7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3D95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x2671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE DUP3 DUP5 PUSH1 0x60 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x60 DUP5 DUP4 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x94B JUMPI PUSH2 0x94B PUSH2 0x3DFB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x20EB JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x3E61 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1D93 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3E6D JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3E9A JUMPI PUSH2 0x3E9A PUSH2 0x3345 JUMP JUMPDEST PUSH2 0x3EAE DUP2 PUSH2 0x3EA8 DUP5 SLOAD PUSH2 0x3D2A JUMP JUMPDEST DUP5 PUSH2 0x3E3A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3EE2 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x3ECA JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x1D93 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3F12 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x3EF2 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x3F30 JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP2 LT ISZERO PUSH2 0x166B JUMPI DUP2 MLOAD DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3F43 JUMP JUMPDEST PUSH2 0x200 DUP2 ADD PUSH2 0x3F71 DUP3 DUP8 PUSH2 0x3F3F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD DUP6 PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP2 LT ISZERO PUSH2 0x3FA3 JUMPI PUSH2 0x3F8D DUP4 DUP4 MLOAD PUSH2 0x3F3F JUMP JUMPDEST PUSH1 0x40 SWAP3 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3F79 JUMP JUMPDEST POP POP POP PUSH2 0x3FB3 PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x3F3F JUMP JUMPDEST PUSH2 0x100 DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST PUSH1 0x8 DUP2 LT ISZERO PUSH2 0x3FDB JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3FBC JUMP JUMPDEST POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3FF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC57 DUP3 PUSH2 0x382C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x94B JUMPI PUSH2 0x94B PUSH2 0x3DFB JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x94B JUMPI PUSH2 0x94B PUSH2 0x3DFB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG1 PUSH11 0x46D94261C7517CC8FF89F6 SHR 0xC 0xE9 CALLDATALOAD SWAP9 0xE3 0xC8 BLOBHASH DUP1 LT GT 0xDE 0xE6 BLOBHASH 0xA6 0xA5 JUMPI 0xD1 STOP LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 EQ MOD 0xF6 STOP 0xBC INVALID 0xD9 PUSH14 0xA6855CEE7D976EE887C848F4D28D BLOBHASH 0xDE EXTCODECOPY SLOAD PUSH28 0xBC54D5D664736F6C634300081B003300000000000000000000000000 ", + "sourceMap": "2021:23542:39:-:0;;;6309:53;;;;;;;;;-1:-1:-1;6333:22:39;:20;:22::i;:::-;2021:23542;;7709:422:14;3147:66;7898:15;;;;;;;7894:76;;;7936:23;;-1:-1:-1;;;7936:23:14;;;;;;;;;;;7894:76;7983:14;;-1:-1:-1;;;;;7983:14:14;;;:34;7979:146;;8033:33;;-1:-1:-1;;;;;;8033:33:14;-1:-1:-1;;;;;8033:33:14;;;;;8085:29;;158:50:46;;;8085:29:14;;146:2:46;131:18;8085:29:14;;;;;;;7979:146;7758:373;7709:422::o;14:200:46:-;2021:23542:39;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@DOMAIN_VERSION_16103": { + "entryPoint": null, + "id": 16103, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@PASSPORT_CREDENTIAL_MESSAGE_TYPEHASH_16112": { + "entryPoint": null, + "id": 16112, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@VERSION_16099": { + "entryPoint": null, + "id": 16099, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_EIP712NameHash_5573": { + "entryPoint": 12008, + "id": 5573, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_EIP712Name_5505": { + "entryPoint": 7720, + "id": 5505, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_EIP712VersionHash_5625": { + "entryPoint": 12114, + "id": 5625, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_EIP712Version_5521": { + "entryPoint": 7915, + "id": 5521, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@__EIP712_init_5339": { + "entryPoint": 8380, + "id": 5339, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@__EIP712_init_unchained_5379": { + "entryPoint": 9080, + "id": 5379, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@__Ownable_init_4828": { + "entryPoint": 8363, + "id": 4828, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@__Ownable_init_unchained_4855": { + "entryPoint": 9030, + "id": 4855, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_addHashAndTransit_17153": { + "entryPoint": 11179, + "id": 17153, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_add_12324": { + "entryPoint": 8767, + "id": 12324, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_afterProofsSubmit_17419": { + "entryPoint": 9541, + "id": 17419, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_buildDomainSeparator_5412": { + "entryPoint": 11892, + "id": 5412, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_checkInitializing_5144": { + "entryPoint": 8993, + "id": 5144, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_checkOwner_4896": { + "entryPoint": 7273, + "id": 4896, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_checkTransactor_16915": { + "entryPoint": 7668, + "id": 16915, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@_contains_12470": { + "entryPoint": null, + "id": 12470, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_daysToDate_13263": { + "entryPoint": 11736, + "id": 13263, + "parameterSlots": 1, + "returnSlots": 3 + }, + "@_domainSeparatorV4_5389": { + "entryPoint": 11519, + "id": 5389, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_extractProofInputs_17539": { + "entryPoint": 9848, + "id": 17539, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_getEIP712Storage_5323": { + "entryPoint": null, + "id": 5323, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getIdentityBaseStorage_855": { + "entryPoint": 7201, + "id": 855, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getInitializableStorage_5235": { + "entryPoint": 8322, + "id": 5235, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getOwnable2StepStorage_4662": { + "entryPoint": null, + "id": 4662, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getOwnableStorage_4799": { + "entryPoint": null, + "id": 4799, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_getPassportCredentialIssuerStorage_16192": { + "entryPoint": 7237, + "id": 16192, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_hashTypedDataV4_5428": { + "entryPoint": 11366, + "id": 5428, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_initializableStorageSlot_5221": { + "entryPoint": null, + "id": 5221, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_isInitializing_5212": { + "entryPoint": 9652, + "id": 5212, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_msgSender_5264": { + "entryPoint": null, + "id": 5264, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@_recoverPassportSignatureProofSigner_17362": { + "entryPoint": 9678, + "id": 17362, + "parameterSlots": 2, + "returnSlots": 2 + }, + "@_remove_12408": { + "entryPoint": 8432, + "id": 12408, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@_revokeClaimAndTransit_17172": { + "entryPoint": 7344, + "id": 17172, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_setNullifier_17226": { + "entryPoint": 10842, + "id": 17226, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_transferOwnership_4748": { + "entryPoint": 7612, + "id": 4748, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_transferOwnership_4967": { + "entryPoint": 8846, + "id": 4967, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@_updateCredentialVerifiers_17483": { + "entryPoint": 7978, + "id": 17483, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@_validatePublicInputs_17131": { + "entryPoint": 10217, + "id": 17131, + "parameterSlots": 9, + "returnSlots": 0 + }, + "@_values_12515": { + "entryPoint": 8675, + "id": 12515, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@_verifyCredentialProof_17278": { + "entryPoint": 9177, + "id": 17278, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@_verifyPassportCredential_16941": { + "entryPoint": 8398, + "id": 16941, + "parameterSlots": 3, + "returnSlots": 0 + }, + "@_verifySignature_17316": { + "entryPoint": 9425, + "id": 17316, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@acceptOwnership_4772": { + "entryPoint": 4254, + "id": 4772, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@addImageHashToWhitelist_16821": { + "entryPoint": 4498, + "id": 16821, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@addSigner_16405": { + "entryPoint": 3867, + "id": 16405, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@addTransactor_16445": { + "entryPoint": 3730, + "id": 16445, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@add_12680": { + "entryPoint": 7591, + "id": 12680, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@contains_12747": { + "entryPoint": 8959, + "id": 12747, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@credentialVerifiers_16598": { + "entryPoint": 4662, + "id": 16598, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@eip712Domain_5489": { + "entryPoint": 4326, + "id": 5489, + "parameterSlots": 0, + "returnSlots": 7 + }, + "@getClaimProofByRoot_944": { + "entryPoint": 3242, + "id": 944, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getClaimProofWithStateInfo_924": { + "entryPoint": 5350, + "id": 924, + "parameterSlots": 1, + "returnSlots": 2 + }, + "@getClaimProof_904": { + "entryPoint": 5473, + "id": 904, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getClaimsTreeRoot_957": { + "entryPoint": 3348, + "id": 957, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getExpirationTime_16470": { + "entryPoint": 5977, + "id": 16470, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getId_1126": { + "entryPoint": 3714, + "id": 1126, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getIsOldStateGenesis_1138": { + "entryPoint": 7146, + "id": 1138, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getIssuerDIDHash_16881": { + "entryPoint": 2385, + "id": 16881, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getLatestPublishedClaimsRoot_1151": { + "entryPoint": 3695, + "id": 1151, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getLatestPublishedRevocationsRoot_1164": { + "entryPoint": 4643, + "id": 1164, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getLatestPublishedRootsRoot_1177": { + "entryPoint": 5891, + "id": 1177, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getLatestPublishedState_1189": { + "entryPoint": 3329, + "id": 1189, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getMaxFutureTime_16530": { + "entryPoint": 3848, + "id": 16530, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getRevocationProofByRoot_1014": { + "entryPoint": 5987, + "id": 1014, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRevocationProofWithStateInfo_994": { + "entryPoint": 1992, + "id": 994, + "parameterSlots": 1, + "returnSlots": 2 + }, + "@getRevocationProof_974": { + "entryPoint": 2771, + "id": 974, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getRevocationStatusByIdAndState_1304": { + "entryPoint": 4720, + "id": 1304, + "parameterSlots": 3, + "returnSlots": 1 + }, + "@getRevocationStatus_1214": { + "entryPoint": 2437, + "id": 1214, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRevocationsTreeRoot_1027": { + "entryPoint": 2197, + "id": 1027, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getRootProofByRoot_1084": { + "entryPoint": 3007, + "id": 1084, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@getRootProofWithStateInfo_1064": { + "entryPoint": 3572, + "id": 1064, + "parameterSlots": 1, + "returnSlots": 2 + }, + "@getRootProof_1044": { + "entryPoint": 5811, + "id": 1044, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getRootsByState_1114": { + "entryPoint": 5551, + "id": 1114, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@getRootsTreeRoot_1097": { + "entryPoint": 5910, + "id": 1097, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getSigners_16419": { + "entryPoint": 4622, + "id": 16419, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getSmtDepth_864": { + "entryPoint": null, + "id": 864, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getTemplateRoot_16500": { + "entryPoint": 2967, + "id": 16500, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@getTransactors_16459": { + "entryPoint": 2986, + "id": 16459, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@initializeIssuer_16326": { + "entryPoint": 6123, + "id": 16326, + "parameterSlots": 10, + "returnSlots": 0 + }, + "@initialize_887": { + "entryPoint": 3415, + "id": 887, + "parameterSlots": 2, + "returnSlots": 0 + }, + "@isWhitelistedImageHash_16804": { + "entryPoint": 7168, + "id": 16804, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@nullifierExists_16667": { + "entryPoint": 2924, + "id": 16667, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@owner_4879": { + "entryPoint": 4569, + "id": 4879, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@pendingOwner_4696": { + "entryPoint": 6082, + "id": 4696, + "parameterSlots": 0, + "returnSlots": 1 + }, + "@removeImageHashFromWhitelist_16838": { + "entryPoint": 2720, + "id": 16838, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@removeSigner_16854": { + "entryPoint": 2404, + "id": 16854, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@removeTransactor_16870": { + "entryPoint": 2691, + "id": 16870, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@remove_12707": { + "entryPoint": 7323, + "id": 12707, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@renounceOwnership_4910": { + "entryPoint": 3828, + "id": 4910, + "parameterSlots": 0, + "returnSlots": 0 + }, + "@revokeCredential_16646": { + "entryPoint": 2480, + "id": 16646, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setAttestationValidator_16565": { + "entryPoint": 4516, + "id": 16565, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setExpirationTime_16489": { + "entryPoint": 5745, + "id": 16489, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setIssuerDIDHash_16896": { + "entryPoint": 5257, + "id": 16896, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setMaxFutureTime_16549": { + "entryPoint": 3166, + "id": 16549, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@setTemplateRoot_16519": { + "entryPoint": 5281, + "id": 16519, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@supportsInterface_1326": { + "entryPoint": 2330, + "id": 1326, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@supportsInterface_8726": { + "entryPoint": null, + "id": 8726, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@timestampToDate_13347": { + "entryPoint": 11488, + "id": 13347, + "parameterSlots": 1, + "returnSlots": 3 + }, + "@toTypedDataHash_8702": { + "entryPoint": null, + "id": 8702, + "parameterSlots": 2, + "returnSlots": 1 + }, + "@transferOwnership_4724": { + "entryPoint": 7013, + "id": 4724, + "parameterSlots": 1, + "returnSlots": 0 + }, + "@tryRecover_8343": { + "entryPoint": 11411, + "id": 8343, + "parameterSlots": 2, + "returnSlots": 3 + }, + "@tryRecover_8531": { + "entryPoint": 11529, + "id": 8531, + "parameterSlots": 4, + "returnSlots": 3 + }, + "@updateCredentialVerifiers_16583": { + "entryPoint": 5719, + "id": 16583, + "parameterSlots": 4, + "returnSlots": 0 + }, + "@values_12819": { + "entryPoint": 7578, + "id": 12819, + "parameterSlots": 1, + "returnSlots": 1 + }, + "@verifyPassport_16789": { + "entryPoint": 6586, + "id": 16789, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_decode_address": { + "entryPoint": 12742, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_array_string_calldata_dyn_calldata": { + "entryPoint": 13754, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_array_uint256_dyn_fromMemory": { + "entryPoint": 14396, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_array_uint256_fromMemory": { + "entryPoint": 15221, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_bool_fromMemory": { + "entryPoint": 14380, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_bytes": { + "entryPoint": 13309, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_bytes2": { + "entryPoint": 13057, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_decode_bytes_fromMemory": { + "entryPoint": 14925, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_struct_Proof_fromMemory": { + "entryPoint": 14526, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_address": { + "entryPoint": 12753, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_addresst_bytes2": { + "entryPoint": 13081, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptr": { + "entryPoint": 13822, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$2_memory_ptrt_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptrt_array$_t_uint256_$2_memory_ptr_fromMemory": { + "entryPoint": 15292, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_decode_tuple_t_bool_fromMemory": { + "entryPoint": 16359, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes2": { + "entryPoint": 15194, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes32": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes4": { + "entryPoint": 12679, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes_memory_ptr": { + "entryPoint": 13398, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_bytes_memory_ptrt_bytes32t_bool_fromMemory": { + "entryPoint": 14994, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_contract$_IAttestationValidator_$14634": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_string_memory_ptr": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_CredentialProof_$16133_memory_ptrt_bytes_memory_ptr": { + "entryPoint": 14181, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_struct$_PassportSignatureProof_$16128_memory_ptr_fromMemory": { + "entryPoint": 15500, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_Proof_$2979_memory_ptr_fromMemory": { + "entryPoint": 14873, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_struct$_Proof_$2979_memory_ptrt_struct$_StateInfo_$1400_memory_ptr_fromMemory": { + "entryPoint": 14684, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_struct$_Roots_$1390_memory_ptr_fromMemory": { + "entryPoint": 15099, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256": { + "entryPoint": 12903, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256_fromMemory": { + "entryPoint": 14848, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint256t_uint256": { + "entryPoint": 13023, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint256t_uint256t_uint256t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_struct$_StateInfo_$16117_calldata_ptrt_addresst_contract$_IAttestationValidator_$14634": { + "entryPoint": 13975, + "id": null, + "parameterSlots": 2, + "returnSlots": 10 + }, + "abi_decode_tuple_t_uint256t_uint256t_uint64": { + "entryPoint": 13682, + "id": null, + "parameterSlots": 2, + "returnSlots": 3 + }, + "abi_decode_tuple_t_uint256t_uint64": { + "entryPoint": 12782, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_tuple_t_uint64": { + "entryPoint": 12423, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_uint64t_uint256": { + "entryPoint": 13933, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "abi_decode_uint64": { + "entryPoint": 12395, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_array_uint256": { + "entryPoint": 16191, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_bool": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_string": { + "entryPoint": 13486, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_struct_Proof": { + "entryPoint": 12450, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_struct_StateInfo": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 15786, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed": { + "entryPoint": 15071, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 12947, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_array$_t_uint256_$2_memory_ptr_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_t_array$_t_uint256_$2_memory_ptr_t_array$_t_uint256_$8_memory_ptr__to_t_array$_t_uint256_$2_memory_ptr_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_t_array$_t_uint256_$2_memory_ptr_t_array$_t_uint256_$8_memory_ptr__fromStack_reversed": { + "entryPoint": 16226, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__to_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed": { + "entryPoint": 13530, + "id": null, + "parameterSlots": 8, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 5, + "returnSlots": 1 + }, + "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_calldata_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed": { + "entryPoint": 15802, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": 13735, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_2e5045ff73280aa8e8acd8c82710f23812497f87f7f576e2220a2ddd0d45eade__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_stringliteral_b95c2f31a6045566300565f2774af75c15f58eae84f1e4dafcb6cd16a89e425e__to_t_string_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_CredentialStatus_$133_memory_ptr__to_t_struct$_CredentialStatus_$133_memory_ptr__fromStack_reversed": { + "entryPoint": 12826, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr__to_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_address_t_address_t_uint256_t_bytes2__to_t_uint256_t_address_t_address_t_uint256_t_bytes2__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 6, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint256__to_t_uint256_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint64__to_t_uint256_t_uint64__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint64_t_uint256__to_t_uint256_t_uint64_t_uint256__fromStack_library_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr__fromStack_reversed": { + "entryPoint": 12928, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__fromStack_reversed": { + "entryPoint": 12612, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_struct$_Roots_$1390_memory_ptr__to_t_struct$_Roots_$1390_memory_ptr__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint256_t_uint64__to_t_uint256_t_uint64__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 3, + "returnSlots": 1 + }, + "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "access_calldata_tail_t_string_calldata_ptr": { + "entryPoint": 15716, + "id": null, + "parameterSlots": 2, + "returnSlots": 2 + }, + "allocate_memory": { + "entryPoint": 13222, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "allocate_memory_4237": { + "entryPoint": 13147, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "allocate_memory_4238": { + "entryPoint": 13187, + "id": null, + "parameterSlots": 0, + "returnSlots": 1 + }, + "array_allocation_size_bytes": { + "entryPoint": 13270, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "array_dataslot_string_storage": { + "entryPoint": null, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "checked_add_t_uint256": { + "entryPoint": 16408, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_mul_t_uint256": { + "entryPoint": 16427, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "checked_sub_t_uint256": { + "entryPoint": 15889, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "clean_up_bytearray_end_slots_string_storage": { + "entryPoint": 15930, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage": { + "entryPoint": 16001, + "id": null, + "parameterSlots": 2, + "returnSlots": 0 + }, + "copy_memory_to_memory_with_cleanup": { + "entryPoint": 13450, + "id": null, + "parameterSlots": 3, + "returnSlots": 0 + }, + "extract_byte_array_length": { + "entryPoint": 15658, + "id": null, + "parameterSlots": 1, + "returnSlots": 1 + }, + "extract_used_part_and_set_length_of_short_byte_array": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "panic_error_0x11": { + "entryPoint": 15867, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x12": { + "entryPoint": 16450, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x21": { + "entryPoint": 16386, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x31": { + "entryPoint": 15908, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x32": { + "entryPoint": 15478, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "panic_error_0x41": { + "entryPoint": 13125, + "id": null, + "parameterSlots": 0, + "returnSlots": 0 + }, + "validator_revert_address": { + "entryPoint": 12721, + "id": null, + "parameterSlots": 1, + "returnSlots": 0 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:36669:46", + "nodeType": "YulBlock", + "src": "0:36669:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "62:123:46", + "nodeType": "YulBlock", + "src": "62:123:46", + "statements": [ + { + "nativeSrc": "72:29:46", + "nodeType": "YulAssignment", + "src": "72:29:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "94:6:46", + "nodeType": "YulIdentifier", + "src": "94:6:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "81:12:46", + "nodeType": "YulIdentifier", + "src": "81:12:46" + }, + "nativeSrc": "81:20:46", + "nodeType": "YulFunctionCall", + "src": "81:20:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "72:5:46", + "nodeType": "YulIdentifier", + "src": "72:5:46" + } + ] + }, + { + "body": { + "nativeSrc": "163:16:46", + "nodeType": "YulBlock", + "src": "163:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "172:1:46", + "nodeType": "YulLiteral", + "src": "172:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "175:1:46", + "nodeType": "YulLiteral", + "src": "175:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "165:6:46", + "nodeType": "YulIdentifier", + "src": "165:6:46" + }, + "nativeSrc": "165:12:46", + "nodeType": "YulFunctionCall", + "src": "165:12:46" + }, + "nativeSrc": "165:12:46", + "nodeType": "YulExpressionStatement", + "src": "165:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "123:5:46", + "nodeType": "YulIdentifier", + "src": "123:5:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "134:5:46", + "nodeType": "YulIdentifier", + "src": "134:5:46" + }, + { + "kind": "number", + "nativeSrc": "141:18:46", + "nodeType": "YulLiteral", + "src": "141:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "130:3:46", + "nodeType": "YulIdentifier", + "src": "130:3:46" + }, + "nativeSrc": "130:30:46", + "nodeType": "YulFunctionCall", + "src": "130:30:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "120:2:46", + "nodeType": "YulIdentifier", + "src": "120:2:46" + }, + "nativeSrc": "120:41:46", + "nodeType": "YulFunctionCall", + "src": "120:41:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "113:6:46", + "nodeType": "YulIdentifier", + "src": "113:6:46" + }, + "nativeSrc": "113:49:46", + "nodeType": "YulFunctionCall", + "src": "113:49:46" + }, + "nativeSrc": "110:69:46", + "nodeType": "YulIf", + "src": "110:69:46" + } + ] + }, + "name": "abi_decode_uint64", + "nativeSrc": "14:171:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "41:6:46", + "nodeType": "YulTypedName", + "src": "41:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "52:5:46", + "nodeType": "YulTypedName", + "src": "52:5:46", + "type": "" + } + ], + "src": "14:171:46" + }, + { + "body": { + "nativeSrc": "259:115:46", + "nodeType": "YulBlock", + "src": "259:115:46", + "statements": [ + { + "body": { + "nativeSrc": "305:16:46", + "nodeType": "YulBlock", + "src": "305:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "314:1:46", + "nodeType": "YulLiteral", + "src": "314:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "317:1:46", + "nodeType": "YulLiteral", + "src": "317:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "307:6:46", + "nodeType": "YulIdentifier", + "src": "307:6:46" + }, + "nativeSrc": "307:12:46", + "nodeType": "YulFunctionCall", + "src": "307:12:46" + }, + "nativeSrc": "307:12:46", + "nodeType": "YulExpressionStatement", + "src": "307:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "280:7:46", + "nodeType": "YulIdentifier", + "src": "280:7:46" + }, + { + "name": "headStart", + "nativeSrc": "289:9:46", + "nodeType": "YulIdentifier", + "src": "289:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "276:3:46", + "nodeType": "YulIdentifier", + "src": "276:3:46" + }, + "nativeSrc": "276:23:46", + "nodeType": "YulFunctionCall", + "src": "276:23:46" + }, + { + "kind": "number", + "nativeSrc": "301:2:46", + "nodeType": "YulLiteral", + "src": "301:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "272:3:46", + "nodeType": "YulIdentifier", + "src": "272:3:46" + }, + "nativeSrc": "272:32:46", + "nodeType": "YulFunctionCall", + "src": "272:32:46" + }, + "nativeSrc": "269:52:46", + "nodeType": "YulIf", + "src": "269:52:46" + }, + { + "nativeSrc": "330:38:46", + "nodeType": "YulAssignment", + "src": "330:38:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "358:9:46", + "nodeType": "YulIdentifier", + "src": "358:9:46" + } + ], + "functionName": { + "name": "abi_decode_uint64", + "nativeSrc": "340:17:46", + "nodeType": "YulIdentifier", + "src": "340:17:46" + }, + "nativeSrc": "340:28:46", + "nodeType": "YulFunctionCall", + "src": "340:28:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "330:6:46", + "nodeType": "YulIdentifier", + "src": "330:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint64", + "nativeSrc": "190:184:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "225:9:46", + "nodeType": "YulTypedName", + "src": "225:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "236:7:46", + "nodeType": "YulTypedName", + "src": "236:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "248:6:46", + "nodeType": "YulTypedName", + "src": "248:6:46", + "type": "" + } + ], + "src": "190:184:46" + }, + { + "body": { + "nativeSrc": "420:50:46", + "nodeType": "YulBlock", + "src": "420:50:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "437:3:46", + "nodeType": "YulIdentifier", + "src": "437:3:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "456:5:46", + "nodeType": "YulIdentifier", + "src": "456:5:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "449:6:46", + "nodeType": "YulIdentifier", + "src": "449:6:46" + }, + "nativeSrc": "449:13:46", + "nodeType": "YulFunctionCall", + "src": "449:13:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "442:6:46", + "nodeType": "YulIdentifier", + "src": "442:6:46" + }, + "nativeSrc": "442:21:46", + "nodeType": "YulFunctionCall", + "src": "442:21:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "430:6:46", + "nodeType": "YulIdentifier", + "src": "430:6:46" + }, + "nativeSrc": "430:34:46", + "nodeType": "YulFunctionCall", + "src": "430:34:46" + }, + "nativeSrc": "430:34:46", + "nodeType": "YulExpressionStatement", + "src": "430:34:46" + } + ] + }, + "name": "abi_encode_bool", + "nativeSrc": "379:91:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "404:5:46", + "nodeType": "YulTypedName", + "src": "404:5:46", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "411:3:46", + "nodeType": "YulTypedName", + "src": "411:3:46", + "type": "" + } + ], + "src": "379:91:46" + }, + { + "body": { + "nativeSrc": "531:977:46", + "nodeType": "YulBlock", + "src": "531:977:46", + "statements": [ + { + "nativeSrc": "541:28:46", + "nodeType": "YulVariableDeclaration", + "src": "541:28:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "557:3:46", + "nodeType": "YulIdentifier", + "src": "557:3:46" + }, + { + "kind": "number", + "nativeSrc": "562:6:46", + "nodeType": "YulLiteral", + "src": "562:6:46", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "553:3:46", + "nodeType": "YulIdentifier", + "src": "553:3:46" + }, + "nativeSrc": "553:16:46", + "nodeType": "YulFunctionCall", + "src": "553:16:46" + }, + "variables": [ + { + "name": "tail", + "nativeSrc": "545:4:46", + "nodeType": "YulTypedName", + "src": "545:4:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "585:3:46", + "nodeType": "YulIdentifier", + "src": "585:3:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "596:5:46", + "nodeType": "YulIdentifier", + "src": "596:5:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "590:5:46", + "nodeType": "YulIdentifier", + "src": "590:5:46" + }, + "nativeSrc": "590:12:46", + "nodeType": "YulFunctionCall", + "src": "590:12:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "578:6:46", + "nodeType": "YulIdentifier", + "src": "578:6:46" + }, + "nativeSrc": "578:25:46", + "nodeType": "YulFunctionCall", + "src": "578:25:46" + }, + "nativeSrc": "578:25:46", + "nodeType": "YulExpressionStatement", + "src": "578:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "623:3:46", + "nodeType": "YulIdentifier", + "src": "623:3:46" + }, + { + "kind": "number", + "nativeSrc": "628:4:46", + "nodeType": "YulLiteral", + "src": "628:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "619:3:46", + "nodeType": "YulIdentifier", + "src": "619:3:46" + }, + "nativeSrc": "619:14:46", + "nodeType": "YulFunctionCall", + "src": "619:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "659:5:46", + "nodeType": "YulIdentifier", + "src": "659:5:46" + }, + { + "kind": "number", + "nativeSrc": "666:4:46", + "nodeType": "YulLiteral", + "src": "666:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "655:3:46", + "nodeType": "YulIdentifier", + "src": "655:3:46" + }, + "nativeSrc": "655:16:46", + "nodeType": "YulFunctionCall", + "src": "655:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "649:5:46", + "nodeType": "YulIdentifier", + "src": "649:5:46" + }, + "nativeSrc": "649:23:46", + "nodeType": "YulFunctionCall", + "src": "649:23:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "642:6:46", + "nodeType": "YulIdentifier", + "src": "642:6:46" + }, + "nativeSrc": "642:31:46", + "nodeType": "YulFunctionCall", + "src": "642:31:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "635:6:46", + "nodeType": "YulIdentifier", + "src": "635:6:46" + }, + "nativeSrc": "635:39:46", + "nodeType": "YulFunctionCall", + "src": "635:39:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "612:6:46", + "nodeType": "YulIdentifier", + "src": "612:6:46" + }, + "nativeSrc": "612:63:46", + "nodeType": "YulFunctionCall", + "src": "612:63:46" + }, + "nativeSrc": "612:63:46", + "nodeType": "YulExpressionStatement", + "src": "612:63:46" + }, + { + "nativeSrc": "684:43:46", + "nodeType": "YulVariableDeclaration", + "src": "684:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "714:5:46", + "nodeType": "YulIdentifier", + "src": "714:5:46" + }, + { + "kind": "number", + "nativeSrc": "721:4:46", + "nodeType": "YulLiteral", + "src": "721:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "710:3:46", + "nodeType": "YulIdentifier", + "src": "710:3:46" + }, + "nativeSrc": "710:16:46", + "nodeType": "YulFunctionCall", + "src": "710:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "704:5:46", + "nodeType": "YulIdentifier", + "src": "704:5:46" + }, + "nativeSrc": "704:23:46", + "nodeType": "YulFunctionCall", + "src": "704:23:46" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "688:12:46", + "nodeType": "YulTypedName", + "src": "688:12:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "747:3:46", + "nodeType": "YulIdentifier", + "src": "747:3:46" + }, + { + "kind": "number", + "nativeSrc": "752:4:46", + "nodeType": "YulLiteral", + "src": "752:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "743:3:46", + "nodeType": "YulIdentifier", + "src": "743:3:46" + }, + "nativeSrc": "743:14:46", + "nodeType": "YulFunctionCall", + "src": "743:14:46" + }, + { + "kind": "number", + "nativeSrc": "759:6:46", + "nodeType": "YulLiteral", + "src": "759:6:46", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "736:6:46", + "nodeType": "YulIdentifier", + "src": "736:6:46" + }, + "nativeSrc": "736:30:46", + "nodeType": "YulFunctionCall", + "src": "736:30:46" + }, + "nativeSrc": "736:30:46", + "nodeType": "YulExpressionStatement", + "src": "736:30:46" + }, + { + "nativeSrc": "775:17:46", + "nodeType": "YulVariableDeclaration", + "src": "775:17:46", + "value": { + "name": "tail", + "nativeSrc": "788:4:46", + "nodeType": "YulIdentifier", + "src": "788:4:46" + }, + "variables": [ + { + "name": "pos_1", + "nativeSrc": "779:5:46", + "nodeType": "YulTypedName", + "src": "779:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "801:33:46", + "nodeType": "YulVariableDeclaration", + "src": "801:33:46", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "821:12:46", + "nodeType": "YulIdentifier", + "src": "821:12:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "815:5:46", + "nodeType": "YulIdentifier", + "src": "815:5:46" + }, + "nativeSrc": "815:19:46", + "nodeType": "YulFunctionCall", + "src": "815:19:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "805:6:46", + "nodeType": "YulTypedName", + "src": "805:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "tail", + "nativeSrc": "850:4:46", + "nodeType": "YulIdentifier", + "src": "850:4:46" + }, + { + "name": "length", + "nativeSrc": "856:6:46", + "nodeType": "YulIdentifier", + "src": "856:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "843:6:46", + "nodeType": "YulIdentifier", + "src": "843:6:46" + }, + "nativeSrc": "843:20:46", + "nodeType": "YulFunctionCall", + "src": "843:20:46" + }, + "nativeSrc": "843:20:46", + "nodeType": "YulExpressionStatement", + "src": "843:20:46" + }, + { + "nativeSrc": "872:22:46", + "nodeType": "YulAssignment", + "src": "872:22:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "885:3:46", + "nodeType": "YulIdentifier", + "src": "885:3:46" + }, + { + "kind": "number", + "nativeSrc": "890:3:46", + "nodeType": "YulLiteral", + "src": "890:3:46", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "881:3:46", + "nodeType": "YulIdentifier", + "src": "881:3:46" + }, + "nativeSrc": "881:13:46", + "nodeType": "YulFunctionCall", + "src": "881:13:46" + }, + "variableNames": [ + { + "name": "pos_1", + "nativeSrc": "872:5:46", + "nodeType": "YulIdentifier", + "src": "872:5:46" + } + ] + }, + { + "nativeSrc": "903:37:46", + "nodeType": "YulVariableDeclaration", + "src": "903:37:46", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "921:12:46", + "nodeType": "YulIdentifier", + "src": "921:12:46" + }, + { + "kind": "number", + "nativeSrc": "935:4:46", + "nodeType": "YulLiteral", + "src": "935:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "917:3:46", + "nodeType": "YulIdentifier", + "src": "917:3:46" + }, + "nativeSrc": "917:23:46", + "nodeType": "YulFunctionCall", + "src": "917:23:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "907:6:46", + "nodeType": "YulTypedName", + "src": "907:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "949:10:46", + "nodeType": "YulVariableDeclaration", + "src": "949:10:46", + "value": { + "kind": "number", + "nativeSrc": "958:1:46", + "nodeType": "YulLiteral", + "src": "958:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "953:1:46", + "nodeType": "YulTypedName", + "src": "953:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "1017:130:46", + "nodeType": "YulBlock", + "src": "1017:130:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos_1", + "nativeSrc": "1038:5:46", + "nodeType": "YulIdentifier", + "src": "1038:5:46" + }, + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "1051:6:46", + "nodeType": "YulIdentifier", + "src": "1051:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1045:5:46", + "nodeType": "YulIdentifier", + "src": "1045:5:46" + }, + "nativeSrc": "1045:13:46", + "nodeType": "YulFunctionCall", + "src": "1045:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1031:6:46", + "nodeType": "YulIdentifier", + "src": "1031:6:46" + }, + "nativeSrc": "1031:28:46", + "nodeType": "YulFunctionCall", + "src": "1031:28:46" + }, + "nativeSrc": "1031:28:46", + "nodeType": "YulExpressionStatement", + "src": "1031:28:46" + }, + { + "nativeSrc": "1072:25:46", + "nodeType": "YulAssignment", + "src": "1072:25:46", + "value": { + "arguments": [ + { + "name": "pos_1", + "nativeSrc": "1085:5:46", + "nodeType": "YulIdentifier", + "src": "1085:5:46" + }, + { + "kind": "number", + "nativeSrc": "1092:4:46", + "nodeType": "YulLiteral", + "src": "1092:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1081:3:46", + "nodeType": "YulIdentifier", + "src": "1081:3:46" + }, + "nativeSrc": "1081:16:46", + "nodeType": "YulFunctionCall", + "src": "1081:16:46" + }, + "variableNames": [ + { + "name": "pos_1", + "nativeSrc": "1072:5:46", + "nodeType": "YulIdentifier", + "src": "1072:5:46" + } + ] + }, + { + "nativeSrc": "1110:27:46", + "nodeType": "YulAssignment", + "src": "1110:27:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "1124:6:46", + "nodeType": "YulIdentifier", + "src": "1124:6:46" + }, + { + "kind": "number", + "nativeSrc": "1132:4:46", + "nodeType": "YulLiteral", + "src": "1132:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1120:3:46", + "nodeType": "YulIdentifier", + "src": "1120:3:46" + }, + "nativeSrc": "1120:17:46", + "nodeType": "YulFunctionCall", + "src": "1120:17:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "1110:6:46", + "nodeType": "YulIdentifier", + "src": "1110:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "979:1:46", + "nodeType": "YulIdentifier", + "src": "979:1:46" + }, + { + "name": "length", + "nativeSrc": "982:6:46", + "nodeType": "YulIdentifier", + "src": "982:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "976:2:46", + "nodeType": "YulIdentifier", + "src": "976:2:46" + }, + "nativeSrc": "976:13:46", + "nodeType": "YulFunctionCall", + "src": "976:13:46" + }, + "nativeSrc": "968:179:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "990:18:46", + "nodeType": "YulBlock", + "src": "990:18:46", + "statements": [ + { + "nativeSrc": "992:14:46", + "nodeType": "YulAssignment", + "src": "992:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "1001:1:46", + "nodeType": "YulIdentifier", + "src": "1001:1:46" + }, + { + "kind": "number", + "nativeSrc": "1004:1:46", + "nodeType": "YulLiteral", + "src": "1004:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "997:3:46", + "nodeType": "YulIdentifier", + "src": "997:3:46" + }, + "nativeSrc": "997:9:46", + "nodeType": "YulFunctionCall", + "src": "997:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "992:1:46", + "nodeType": "YulIdentifier", + "src": "992:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "972:3:46", + "nodeType": "YulBlock", + "src": "972:3:46", + "statements": [] + }, + "src": "968:179:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1167:3:46", + "nodeType": "YulIdentifier", + "src": "1167:3:46" + }, + { + "kind": "number", + "nativeSrc": "1172:4:46", + "nodeType": "YulLiteral", + "src": "1172:4:46", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1163:3:46", + "nodeType": "YulIdentifier", + "src": "1163:3:46" + }, + "nativeSrc": "1163:14:46", + "nodeType": "YulFunctionCall", + "src": "1163:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1189:5:46", + "nodeType": "YulIdentifier", + "src": "1189:5:46" + }, + { + "kind": "number", + "nativeSrc": "1196:4:46", + "nodeType": "YulLiteral", + "src": "1196:4:46", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1185:3:46", + "nodeType": "YulIdentifier", + "src": "1185:3:46" + }, + "nativeSrc": "1185:16:46", + "nodeType": "YulFunctionCall", + "src": "1185:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1179:5:46", + "nodeType": "YulIdentifier", + "src": "1179:5:46" + }, + "nativeSrc": "1179:23:46", + "nodeType": "YulFunctionCall", + "src": "1179:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1156:6:46", + "nodeType": "YulIdentifier", + "src": "1156:6:46" + }, + "nativeSrc": "1156:47:46", + "nodeType": "YulFunctionCall", + "src": "1156:47:46" + }, + "nativeSrc": "1156:47:46", + "nodeType": "YulExpressionStatement", + "src": "1156:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1223:3:46", + "nodeType": "YulIdentifier", + "src": "1223:3:46" + }, + { + "kind": "number", + "nativeSrc": "1228:4:46", + "nodeType": "YulLiteral", + "src": "1228:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1219:3:46", + "nodeType": "YulIdentifier", + "src": "1219:3:46" + }, + "nativeSrc": "1219:14:46", + "nodeType": "YulFunctionCall", + "src": "1219:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1245:5:46", + "nodeType": "YulIdentifier", + "src": "1245:5:46" + }, + { + "kind": "number", + "nativeSrc": "1252:4:46", + "nodeType": "YulLiteral", + "src": "1252:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1241:3:46", + "nodeType": "YulIdentifier", + "src": "1241:3:46" + }, + "nativeSrc": "1241:16:46", + "nodeType": "YulFunctionCall", + "src": "1241:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1235:5:46", + "nodeType": "YulIdentifier", + "src": "1235:5:46" + }, + "nativeSrc": "1235:23:46", + "nodeType": "YulFunctionCall", + "src": "1235:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1212:6:46", + "nodeType": "YulIdentifier", + "src": "1212:6:46" + }, + "nativeSrc": "1212:47:46", + "nodeType": "YulFunctionCall", + "src": "1212:47:46" + }, + "nativeSrc": "1212:47:46", + "nodeType": "YulExpressionStatement", + "src": "1212:47:46" + }, + { + "nativeSrc": "1268:45:46", + "nodeType": "YulVariableDeclaration", + "src": "1268:45:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1300:5:46", + "nodeType": "YulIdentifier", + "src": "1300:5:46" + }, + { + "kind": "number", + "nativeSrc": "1307:4:46", + "nodeType": "YulLiteral", + "src": "1307:4:46", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1296:3:46", + "nodeType": "YulIdentifier", + "src": "1296:3:46" + }, + "nativeSrc": "1296:16:46", + "nodeType": "YulFunctionCall", + "src": "1296:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1290:5:46", + "nodeType": "YulIdentifier", + "src": "1290:5:46" + }, + "nativeSrc": "1290:23:46", + "nodeType": "YulFunctionCall", + "src": "1290:23:46" + }, + "variables": [ + { + "name": "memberValue0_1", + "nativeSrc": "1272:14:46", + "nodeType": "YulTypedName", + "src": "1272:14:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memberValue0_1", + "nativeSrc": "1338:14:46", + "nodeType": "YulIdentifier", + "src": "1338:14:46" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1358:3:46", + "nodeType": "YulIdentifier", + "src": "1358:3:46" + }, + { + "kind": "number", + "nativeSrc": "1363:4:46", + "nodeType": "YulLiteral", + "src": "1363:4:46", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1354:3:46", + "nodeType": "YulIdentifier", + "src": "1354:3:46" + }, + "nativeSrc": "1354:14:46", + "nodeType": "YulFunctionCall", + "src": "1354:14:46" + } + ], + "functionName": { + "name": "abi_encode_bool", + "nativeSrc": "1322:15:46", + "nodeType": "YulIdentifier", + "src": "1322:15:46" + }, + "nativeSrc": "1322:47:46", + "nodeType": "YulFunctionCall", + "src": "1322:47:46" + }, + "nativeSrc": "1322:47:46", + "nodeType": "YulExpressionStatement", + "src": "1322:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1389:3:46", + "nodeType": "YulIdentifier", + "src": "1389:3:46" + }, + { + "kind": "number", + "nativeSrc": "1394:4:46", + "nodeType": "YulLiteral", + "src": "1394:4:46", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1385:3:46", + "nodeType": "YulIdentifier", + "src": "1385:3:46" + }, + "nativeSrc": "1385:14:46", + "nodeType": "YulFunctionCall", + "src": "1385:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1411:5:46", + "nodeType": "YulIdentifier", + "src": "1411:5:46" + }, + { + "kind": "number", + "nativeSrc": "1418:4:46", + "nodeType": "YulLiteral", + "src": "1418:4:46", + "type": "", + "value": "0xc0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1407:3:46", + "nodeType": "YulIdentifier", + "src": "1407:3:46" + }, + "nativeSrc": "1407:16:46", + "nodeType": "YulFunctionCall", + "src": "1407:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1401:5:46", + "nodeType": "YulIdentifier", + "src": "1401:5:46" + }, + "nativeSrc": "1401:23:46", + "nodeType": "YulFunctionCall", + "src": "1401:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1378:6:46", + "nodeType": "YulIdentifier", + "src": "1378:6:46" + }, + "nativeSrc": "1378:47:46", + "nodeType": "YulFunctionCall", + "src": "1378:47:46" + }, + "nativeSrc": "1378:47:46", + "nodeType": "YulExpressionStatement", + "src": "1378:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1445:3:46", + "nodeType": "YulIdentifier", + "src": "1445:3:46" + }, + { + "kind": "number", + "nativeSrc": "1450:4:46", + "nodeType": "YulLiteral", + "src": "1450:4:46", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1441:3:46", + "nodeType": "YulIdentifier", + "src": "1441:3:46" + }, + "nativeSrc": "1441:14:46", + "nodeType": "YulFunctionCall", + "src": "1441:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1467:5:46", + "nodeType": "YulIdentifier", + "src": "1467:5:46" + }, + { + "kind": "number", + "nativeSrc": "1474:4:46", + "nodeType": "YulLiteral", + "src": "1474:4:46", + "type": "", + "value": "0xe0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1463:3:46", + "nodeType": "YulIdentifier", + "src": "1463:3:46" + }, + "nativeSrc": "1463:16:46", + "nodeType": "YulFunctionCall", + "src": "1463:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1457:5:46", + "nodeType": "YulIdentifier", + "src": "1457:5:46" + }, + "nativeSrc": "1457:23:46", + "nodeType": "YulFunctionCall", + "src": "1457:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1434:6:46", + "nodeType": "YulIdentifier", + "src": "1434:6:46" + }, + "nativeSrc": "1434:47:46", + "nodeType": "YulFunctionCall", + "src": "1434:47:46" + }, + "nativeSrc": "1434:47:46", + "nodeType": "YulExpressionStatement", + "src": "1434:47:46" + }, + { + "nativeSrc": "1490:12:46", + "nodeType": "YulAssignment", + "src": "1490:12:46", + "value": { + "name": "pos_1", + "nativeSrc": "1497:5:46", + "nodeType": "YulIdentifier", + "src": "1497:5:46" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "1490:3:46", + "nodeType": "YulIdentifier", + "src": "1490:3:46" + } + ] + } + ] + }, + "name": "abi_encode_struct_Proof", + "nativeSrc": "475:1033:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "508:5:46", + "nodeType": "YulTypedName", + "src": "508:5:46", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "515:3:46", + "nodeType": "YulTypedName", + "src": "515:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "523:3:46", + "nodeType": "YulTypedName", + "src": "523:3:46", + "type": "" + } + ], + "src": "475:1033:46" + }, + { + "body": { + "nativeSrc": "1566:209:46", + "nodeType": "YulBlock", + "src": "1566:209:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1583:3:46", + "nodeType": "YulIdentifier", + "src": "1583:3:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1594:5:46", + "nodeType": "YulIdentifier", + "src": "1594:5:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1588:5:46", + "nodeType": "YulIdentifier", + "src": "1588:5:46" + }, + "nativeSrc": "1588:12:46", + "nodeType": "YulFunctionCall", + "src": "1588:12:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1576:6:46", + "nodeType": "YulIdentifier", + "src": "1576:6:46" + }, + "nativeSrc": "1576:25:46", + "nodeType": "YulFunctionCall", + "src": "1576:25:46" + }, + "nativeSrc": "1576:25:46", + "nodeType": "YulExpressionStatement", + "src": "1576:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1621:3:46", + "nodeType": "YulIdentifier", + "src": "1621:3:46" + }, + { + "kind": "number", + "nativeSrc": "1626:4:46", + "nodeType": "YulLiteral", + "src": "1626:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1617:3:46", + "nodeType": "YulIdentifier", + "src": "1617:3:46" + }, + "nativeSrc": "1617:14:46", + "nodeType": "YulFunctionCall", + "src": "1617:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1643:5:46", + "nodeType": "YulIdentifier", + "src": "1643:5:46" + }, + { + "kind": "number", + "nativeSrc": "1650:4:46", + "nodeType": "YulLiteral", + "src": "1650:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1639:3:46", + "nodeType": "YulIdentifier", + "src": "1639:3:46" + }, + "nativeSrc": "1639:16:46", + "nodeType": "YulFunctionCall", + "src": "1639:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1633:5:46", + "nodeType": "YulIdentifier", + "src": "1633:5:46" + }, + "nativeSrc": "1633:23:46", + "nodeType": "YulFunctionCall", + "src": "1633:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1610:6:46", + "nodeType": "YulIdentifier", + "src": "1610:6:46" + }, + "nativeSrc": "1610:47:46", + "nodeType": "YulFunctionCall", + "src": "1610:47:46" + }, + "nativeSrc": "1610:47:46", + "nodeType": "YulExpressionStatement", + "src": "1610:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1677:3:46", + "nodeType": "YulIdentifier", + "src": "1677:3:46" + }, + { + "kind": "number", + "nativeSrc": "1682:4:46", + "nodeType": "YulLiteral", + "src": "1682:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1673:3:46", + "nodeType": "YulIdentifier", + "src": "1673:3:46" + }, + "nativeSrc": "1673:14:46", + "nodeType": "YulFunctionCall", + "src": "1673:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1699:5:46", + "nodeType": "YulIdentifier", + "src": "1699:5:46" + }, + { + "kind": "number", + "nativeSrc": "1706:4:46", + "nodeType": "YulLiteral", + "src": "1706:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1695:3:46", + "nodeType": "YulIdentifier", + "src": "1695:3:46" + }, + "nativeSrc": "1695:16:46", + "nodeType": "YulFunctionCall", + "src": "1695:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1689:5:46", + "nodeType": "YulIdentifier", + "src": "1689:5:46" + }, + "nativeSrc": "1689:23:46", + "nodeType": "YulFunctionCall", + "src": "1689:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1666:6:46", + "nodeType": "YulIdentifier", + "src": "1666:6:46" + }, + "nativeSrc": "1666:47:46", + "nodeType": "YulFunctionCall", + "src": "1666:47:46" + }, + "nativeSrc": "1666:47:46", + "nodeType": "YulExpressionStatement", + "src": "1666:47:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "1733:3:46", + "nodeType": "YulIdentifier", + "src": "1733:3:46" + }, + { + "kind": "number", + "nativeSrc": "1738:4:46", + "nodeType": "YulLiteral", + "src": "1738:4:46", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1729:3:46", + "nodeType": "YulIdentifier", + "src": "1729:3:46" + }, + "nativeSrc": "1729:14:46", + "nodeType": "YulFunctionCall", + "src": "1729:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "1755:5:46", + "nodeType": "YulIdentifier", + "src": "1755:5:46" + }, + { + "kind": "number", + "nativeSrc": "1762:4:46", + "nodeType": "YulLiteral", + "src": "1762:4:46", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "1751:3:46", + "nodeType": "YulIdentifier", + "src": "1751:3:46" + }, + "nativeSrc": "1751:16:46", + "nodeType": "YulFunctionCall", + "src": "1751:16:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "1745:5:46", + "nodeType": "YulIdentifier", + "src": "1745:5:46" + }, + "nativeSrc": "1745:23:46", + "nodeType": "YulFunctionCall", + "src": "1745:23:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "1722:6:46", + "nodeType": "YulIdentifier", + "src": "1722:6:46" + }, + "nativeSrc": "1722:47:46", + "nodeType": "YulFunctionCall", + "src": "1722:47:46" + }, + "nativeSrc": "1722:47:46", + "nodeType": "YulExpressionStatement", + "src": "1722:47:46" + } + ] + }, + "name": "abi_encode_struct_StateInfo", + "nativeSrc": "1513:262:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "1550:5:46", + "nodeType": "YulTypedName", + "src": "1550:5:46", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "1557:3:46", + "nodeType": "YulTypedName", + "src": "1557:3:46", + "type": "" + } + ], + "src": "1513:262:46" + }, + { + "body": { + "nativeSrc": "2009:171:46", + "nodeType": "YulBlock", + "src": "2009:171:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2026:9:46", + "nodeType": "YulIdentifier", + "src": "2026:9:46" + }, + { + "kind": "number", + "nativeSrc": "2037:3:46", + "nodeType": "YulLiteral", + "src": "2037:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2019:6:46", + "nodeType": "YulIdentifier", + "src": "2019:6:46" + }, + "nativeSrc": "2019:22:46", + "nodeType": "YulFunctionCall", + "src": "2019:22:46" + }, + "nativeSrc": "2019:22:46", + "nodeType": "YulExpressionStatement", + "src": "2019:22:46" + }, + { + "nativeSrc": "2050:60:46", + "nodeType": "YulAssignment", + "src": "2050:60:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2082:6:46", + "nodeType": "YulIdentifier", + "src": "2082:6:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2094:9:46", + "nodeType": "YulIdentifier", + "src": "2094:9:46" + }, + { + "kind": "number", + "nativeSrc": "2105:3:46", + "nodeType": "YulLiteral", + "src": "2105:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2090:3:46", + "nodeType": "YulIdentifier", + "src": "2090:3:46" + }, + "nativeSrc": "2090:19:46", + "nodeType": "YulFunctionCall", + "src": "2090:19:46" + } + ], + "functionName": { + "name": "abi_encode_struct_Proof", + "nativeSrc": "2058:23:46", + "nodeType": "YulIdentifier", + "src": "2058:23:46" + }, + "nativeSrc": "2058:52:46", + "nodeType": "YulFunctionCall", + "src": "2058:52:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2050:4:46", + "nodeType": "YulIdentifier", + "src": "2050:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "2147:6:46", + "nodeType": "YulIdentifier", + "src": "2147:6:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2159:9:46", + "nodeType": "YulIdentifier", + "src": "2159:9:46" + }, + { + "kind": "number", + "nativeSrc": "2170:2:46", + "nodeType": "YulLiteral", + "src": "2170:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2155:3:46", + "nodeType": "YulIdentifier", + "src": "2155:3:46" + }, + "nativeSrc": "2155:18:46", + "nodeType": "YulFunctionCall", + "src": "2155:18:46" + } + ], + "functionName": { + "name": "abi_encode_struct_StateInfo", + "nativeSrc": "2119:27:46", + "nodeType": "YulIdentifier", + "src": "2119:27:46" + }, + "nativeSrc": "2119:55:46", + "nodeType": "YulFunctionCall", + "src": "2119:55:46" + }, + "nativeSrc": "2119:55:46", + "nodeType": "YulExpressionStatement", + "src": "2119:55:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__fromStack_reversed", + "nativeSrc": "1780:400:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "1970:9:46", + "nodeType": "YulTypedName", + "src": "1970:9:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "1981:6:46", + "nodeType": "YulTypedName", + "src": "1981:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "1989:6:46", + "nodeType": "YulTypedName", + "src": "1989:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2000:4:46", + "nodeType": "YulTypedName", + "src": "2000:4:46", + "type": "" + } + ], + "src": "1780:400:46" + }, + { + "body": { + "nativeSrc": "2286:76:46", + "nodeType": "YulBlock", + "src": "2286:76:46", + "statements": [ + { + "nativeSrc": "2296:26:46", + "nodeType": "YulAssignment", + "src": "2296:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2308:9:46", + "nodeType": "YulIdentifier", + "src": "2308:9:46" + }, + { + "kind": "number", + "nativeSrc": "2319:2:46", + "nodeType": "YulLiteral", + "src": "2319:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2304:3:46", + "nodeType": "YulIdentifier", + "src": "2304:3:46" + }, + "nativeSrc": "2304:18:46", + "nodeType": "YulFunctionCall", + "src": "2304:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2296:4:46", + "nodeType": "YulIdentifier", + "src": "2296:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2338:9:46", + "nodeType": "YulIdentifier", + "src": "2338:9:46" + }, + { + "name": "value0", + "nativeSrc": "2349:6:46", + "nodeType": "YulIdentifier", + "src": "2349:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2331:6:46", + "nodeType": "YulIdentifier", + "src": "2331:6:46" + }, + "nativeSrc": "2331:25:46", + "nodeType": "YulFunctionCall", + "src": "2331:25:46" + }, + "nativeSrc": "2331:25:46", + "nodeType": "YulExpressionStatement", + "src": "2331:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nativeSrc": "2185:177:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2255:9:46", + "nodeType": "YulTypedName", + "src": "2255:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2266:6:46", + "nodeType": "YulTypedName", + "src": "2266:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2277:4:46", + "nodeType": "YulTypedName", + "src": "2277:4:46", + "type": "" + } + ], + "src": "2185:177:46" + }, + { + "body": { + "nativeSrc": "2436:217:46", + "nodeType": "YulBlock", + "src": "2436:217:46", + "statements": [ + { + "body": { + "nativeSrc": "2482:16:46", + "nodeType": "YulBlock", + "src": "2482:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2491:1:46", + "nodeType": "YulLiteral", + "src": "2491:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2494:1:46", + "nodeType": "YulLiteral", + "src": "2494:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2484:6:46", + "nodeType": "YulIdentifier", + "src": "2484:6:46" + }, + "nativeSrc": "2484:12:46", + "nodeType": "YulFunctionCall", + "src": "2484:12:46" + }, + "nativeSrc": "2484:12:46", + "nodeType": "YulExpressionStatement", + "src": "2484:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "2457:7:46", + "nodeType": "YulIdentifier", + "src": "2457:7:46" + }, + { + "name": "headStart", + "nativeSrc": "2466:9:46", + "nodeType": "YulIdentifier", + "src": "2466:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2453:3:46", + "nodeType": "YulIdentifier", + "src": "2453:3:46" + }, + "nativeSrc": "2453:23:46", + "nodeType": "YulFunctionCall", + "src": "2453:23:46" + }, + { + "kind": "number", + "nativeSrc": "2478:2:46", + "nodeType": "YulLiteral", + "src": "2478:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "2449:3:46", + "nodeType": "YulIdentifier", + "src": "2449:3:46" + }, + "nativeSrc": "2449:32:46", + "nodeType": "YulFunctionCall", + "src": "2449:32:46" + }, + "nativeSrc": "2446:52:46", + "nodeType": "YulIf", + "src": "2446:52:46" + }, + { + "nativeSrc": "2507:36:46", + "nodeType": "YulVariableDeclaration", + "src": "2507:36:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2533:9:46", + "nodeType": "YulIdentifier", + "src": "2533:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "2520:12:46", + "nodeType": "YulIdentifier", + "src": "2520:12:46" + }, + "nativeSrc": "2520:23:46", + "nodeType": "YulFunctionCall", + "src": "2520:23:46" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "2511:5:46", + "nodeType": "YulTypedName", + "src": "2511:5:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "2607:16:46", + "nodeType": "YulBlock", + "src": "2607:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2616:1:46", + "nodeType": "YulLiteral", + "src": "2616:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2619:1:46", + "nodeType": "YulLiteral", + "src": "2619:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2609:6:46", + "nodeType": "YulIdentifier", + "src": "2609:6:46" + }, + "nativeSrc": "2609:12:46", + "nodeType": "YulFunctionCall", + "src": "2609:12:46" + }, + "nativeSrc": "2609:12:46", + "nodeType": "YulExpressionStatement", + "src": "2609:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2565:5:46", + "nodeType": "YulIdentifier", + "src": "2565:5:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2576:5:46", + "nodeType": "YulIdentifier", + "src": "2576:5:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2587:3:46", + "nodeType": "YulLiteral", + "src": "2587:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "2592:10:46", + "nodeType": "YulLiteral", + "src": "2592:10:46", + "type": "", + "value": "0xffffffff" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2583:3:46", + "nodeType": "YulIdentifier", + "src": "2583:3:46" + }, + "nativeSrc": "2583:20:46", + "nodeType": "YulFunctionCall", + "src": "2583:20:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2572:3:46", + "nodeType": "YulIdentifier", + "src": "2572:3:46" + }, + "nativeSrc": "2572:32:46", + "nodeType": "YulFunctionCall", + "src": "2572:32:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2562:2:46", + "nodeType": "YulIdentifier", + "src": "2562:2:46" + }, + "nativeSrc": "2562:43:46", + "nodeType": "YulFunctionCall", + "src": "2562:43:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2555:6:46", + "nodeType": "YulIdentifier", + "src": "2555:6:46" + }, + "nativeSrc": "2555:51:46", + "nodeType": "YulFunctionCall", + "src": "2555:51:46" + }, + "nativeSrc": "2552:71:46", + "nodeType": "YulIf", + "src": "2552:71:46" + }, + { + "nativeSrc": "2632:15:46", + "nodeType": "YulAssignment", + "src": "2632:15:46", + "value": { + "name": "value", + "nativeSrc": "2642:5:46", + "nodeType": "YulIdentifier", + "src": "2642:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "2632:6:46", + "nodeType": "YulIdentifier", + "src": "2632:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nativeSrc": "2367:286:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2402:9:46", + "nodeType": "YulTypedName", + "src": "2402:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "2413:7:46", + "nodeType": "YulTypedName", + "src": "2413:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "2425:6:46", + "nodeType": "YulTypedName", + "src": "2425:6:46", + "type": "" + } + ], + "src": "2367:286:46" + }, + { + "body": { + "nativeSrc": "2753:92:46", + "nodeType": "YulBlock", + "src": "2753:92:46", + "statements": [ + { + "nativeSrc": "2763:26:46", + "nodeType": "YulAssignment", + "src": "2763:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2775:9:46", + "nodeType": "YulIdentifier", + "src": "2775:9:46" + }, + { + "kind": "number", + "nativeSrc": "2786:2:46", + "nodeType": "YulLiteral", + "src": "2786:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "2771:3:46", + "nodeType": "YulIdentifier", + "src": "2771:3:46" + }, + "nativeSrc": "2771:18:46", + "nodeType": "YulFunctionCall", + "src": "2771:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "2763:4:46", + "nodeType": "YulIdentifier", + "src": "2763:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "2805:9:46", + "nodeType": "YulIdentifier", + "src": "2805:9:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "2830:6:46", + "nodeType": "YulIdentifier", + "src": "2830:6:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2823:6:46", + "nodeType": "YulIdentifier", + "src": "2823:6:46" + }, + "nativeSrc": "2823:14:46", + "nodeType": "YulFunctionCall", + "src": "2823:14:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2816:6:46", + "nodeType": "YulIdentifier", + "src": "2816:6:46" + }, + "nativeSrc": "2816:22:46", + "nodeType": "YulFunctionCall", + "src": "2816:22:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "2798:6:46", + "nodeType": "YulIdentifier", + "src": "2798:6:46" + }, + "nativeSrc": "2798:41:46", + "nodeType": "YulFunctionCall", + "src": "2798:41:46" + }, + "nativeSrc": "2798:41:46", + "nodeType": "YulExpressionStatement", + "src": "2798:41:46" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "2658:187:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "2722:9:46", + "nodeType": "YulTypedName", + "src": "2722:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "2733:6:46", + "nodeType": "YulTypedName", + "src": "2733:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "2744:4:46", + "nodeType": "YulTypedName", + "src": "2744:4:46", + "type": "" + } + ], + "src": "2658:187:46" + }, + { + "body": { + "nativeSrc": "2895:86:46", + "nodeType": "YulBlock", + "src": "2895:86:46", + "statements": [ + { + "body": { + "nativeSrc": "2959:16:46", + "nodeType": "YulBlock", + "src": "2959:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2968:1:46", + "nodeType": "YulLiteral", + "src": "2968:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "2971:1:46", + "nodeType": "YulLiteral", + "src": "2971:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "2961:6:46", + "nodeType": "YulIdentifier", + "src": "2961:6:46" + }, + "nativeSrc": "2961:12:46", + "nodeType": "YulFunctionCall", + "src": "2961:12:46" + }, + "nativeSrc": "2961:12:46", + "nodeType": "YulExpressionStatement", + "src": "2961:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2918:5:46", + "nodeType": "YulIdentifier", + "src": "2918:5:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "2929:5:46", + "nodeType": "YulIdentifier", + "src": "2929:5:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "2944:3:46", + "nodeType": "YulLiteral", + "src": "2944:3:46", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "2949:1:46", + "nodeType": "YulLiteral", + "src": "2949:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "2940:3:46", + "nodeType": "YulIdentifier", + "src": "2940:3:46" + }, + "nativeSrc": "2940:11:46", + "nodeType": "YulFunctionCall", + "src": "2940:11:46" + }, + { + "kind": "number", + "nativeSrc": "2953:1:46", + "nodeType": "YulLiteral", + "src": "2953:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "2936:3:46", + "nodeType": "YulIdentifier", + "src": "2936:3:46" + }, + "nativeSrc": "2936:19:46", + "nodeType": "YulFunctionCall", + "src": "2936:19:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "2925:3:46", + "nodeType": "YulIdentifier", + "src": "2925:3:46" + }, + "nativeSrc": "2925:31:46", + "nodeType": "YulFunctionCall", + "src": "2925:31:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "2915:2:46", + "nodeType": "YulIdentifier", + "src": "2915:2:46" + }, + "nativeSrc": "2915:42:46", + "nodeType": "YulFunctionCall", + "src": "2915:42:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "2908:6:46", + "nodeType": "YulIdentifier", + "src": "2908:6:46" + }, + "nativeSrc": "2908:50:46", + "nodeType": "YulFunctionCall", + "src": "2908:50:46" + }, + "nativeSrc": "2905:70:46", + "nodeType": "YulIf", + "src": "2905:70:46" + } + ] + }, + "name": "validator_revert_address", + "nativeSrc": "2850:131:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "2884:5:46", + "nodeType": "YulTypedName", + "src": "2884:5:46", + "type": "" + } + ], + "src": "2850:131:46" + }, + { + "body": { + "nativeSrc": "3035:85:46", + "nodeType": "YulBlock", + "src": "3035:85:46", + "statements": [ + { + "nativeSrc": "3045:29:46", + "nodeType": "YulAssignment", + "src": "3045:29:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "3067:6:46", + "nodeType": "YulIdentifier", + "src": "3067:6:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3054:12:46", + "nodeType": "YulIdentifier", + "src": "3054:12:46" + }, + "nativeSrc": "3054:20:46", + "nodeType": "YulFunctionCall", + "src": "3054:20:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3045:5:46", + "nodeType": "YulIdentifier", + "src": "3045:5:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3108:5:46", + "nodeType": "YulIdentifier", + "src": "3108:5:46" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "3083:24:46", + "nodeType": "YulIdentifier", + "src": "3083:24:46" + }, + "nativeSrc": "3083:31:46", + "nodeType": "YulFunctionCall", + "src": "3083:31:46" + }, + "nativeSrc": "3083:31:46", + "nodeType": "YulExpressionStatement", + "src": "3083:31:46" + } + ] + }, + "name": "abi_decode_address", + "nativeSrc": "2986:134:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "3014:6:46", + "nodeType": "YulTypedName", + "src": "3014:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "3025:5:46", + "nodeType": "YulTypedName", + "src": "3025:5:46", + "type": "" + } + ], + "src": "2986:134:46" + }, + { + "body": { + "nativeSrc": "3195:177:46", + "nodeType": "YulBlock", + "src": "3195:177:46", + "statements": [ + { + "body": { + "nativeSrc": "3241:16:46", + "nodeType": "YulBlock", + "src": "3241:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3250:1:46", + "nodeType": "YulLiteral", + "src": "3250:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3253:1:46", + "nodeType": "YulLiteral", + "src": "3253:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3243:6:46", + "nodeType": "YulIdentifier", + "src": "3243:6:46" + }, + "nativeSrc": "3243:12:46", + "nodeType": "YulFunctionCall", + "src": "3243:12:46" + }, + "nativeSrc": "3243:12:46", + "nodeType": "YulExpressionStatement", + "src": "3243:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3216:7:46", + "nodeType": "YulIdentifier", + "src": "3216:7:46" + }, + { + "name": "headStart", + "nativeSrc": "3225:9:46", + "nodeType": "YulIdentifier", + "src": "3225:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3212:3:46", + "nodeType": "YulIdentifier", + "src": "3212:3:46" + }, + "nativeSrc": "3212:23:46", + "nodeType": "YulFunctionCall", + "src": "3212:23:46" + }, + { + "kind": "number", + "nativeSrc": "3237:2:46", + "nodeType": "YulLiteral", + "src": "3237:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3208:3:46", + "nodeType": "YulIdentifier", + "src": "3208:3:46" + }, + "nativeSrc": "3208:32:46", + "nodeType": "YulFunctionCall", + "src": "3208:32:46" + }, + "nativeSrc": "3205:52:46", + "nodeType": "YulIf", + "src": "3205:52:46" + }, + { + "nativeSrc": "3266:36:46", + "nodeType": "YulVariableDeclaration", + "src": "3266:36:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3292:9:46", + "nodeType": "YulIdentifier", + "src": "3292:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3279:12:46", + "nodeType": "YulIdentifier", + "src": "3279:12:46" + }, + "nativeSrc": "3279:23:46", + "nodeType": "YulFunctionCall", + "src": "3279:23:46" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "3270:5:46", + "nodeType": "YulTypedName", + "src": "3270:5:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "3336:5:46", + "nodeType": "YulIdentifier", + "src": "3336:5:46" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "3311:24:46", + "nodeType": "YulIdentifier", + "src": "3311:24:46" + }, + "nativeSrc": "3311:31:46", + "nodeType": "YulFunctionCall", + "src": "3311:31:46" + }, + "nativeSrc": "3311:31:46", + "nodeType": "YulExpressionStatement", + "src": "3311:31:46" + }, + { + "nativeSrc": "3351:15:46", + "nodeType": "YulAssignment", + "src": "3351:15:46", + "value": { + "name": "value", + "nativeSrc": "3361:5:46", + "nodeType": "YulIdentifier", + "src": "3361:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3351:6:46", + "nodeType": "YulIdentifier", + "src": "3351:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nativeSrc": "3125:247:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3161:9:46", + "nodeType": "YulTypedName", + "src": "3161:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3172:7:46", + "nodeType": "YulTypedName", + "src": "3172:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3184:6:46", + "nodeType": "YulTypedName", + "src": "3184:6:46", + "type": "" + } + ], + "src": "3125:247:46" + }, + { + "body": { + "nativeSrc": "3463:212:46", + "nodeType": "YulBlock", + "src": "3463:212:46", + "statements": [ + { + "body": { + "nativeSrc": "3509:16:46", + "nodeType": "YulBlock", + "src": "3509:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "3518:1:46", + "nodeType": "YulLiteral", + "src": "3518:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "3521:1:46", + "nodeType": "YulLiteral", + "src": "3521:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "3511:6:46", + "nodeType": "YulIdentifier", + "src": "3511:6:46" + }, + "nativeSrc": "3511:12:46", + "nodeType": "YulFunctionCall", + "src": "3511:12:46" + }, + "nativeSrc": "3511:12:46", + "nodeType": "YulExpressionStatement", + "src": "3511:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "3484:7:46", + "nodeType": "YulIdentifier", + "src": "3484:7:46" + }, + { + "name": "headStart", + "nativeSrc": "3493:9:46", + "nodeType": "YulIdentifier", + "src": "3493:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "3480:3:46", + "nodeType": "YulIdentifier", + "src": "3480:3:46" + }, + "nativeSrc": "3480:23:46", + "nodeType": "YulFunctionCall", + "src": "3480:23:46" + }, + { + "kind": "number", + "nativeSrc": "3505:2:46", + "nodeType": "YulLiteral", + "src": "3505:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "3476:3:46", + "nodeType": "YulIdentifier", + "src": "3476:3:46" + }, + "nativeSrc": "3476:32:46", + "nodeType": "YulFunctionCall", + "src": "3476:32:46" + }, + "nativeSrc": "3473:52:46", + "nodeType": "YulIf", + "src": "3473:52:46" + }, + { + "nativeSrc": "3534:14:46", + "nodeType": "YulVariableDeclaration", + "src": "3534:14:46", + "value": { + "kind": "number", + "nativeSrc": "3547:1:46", + "nodeType": "YulLiteral", + "src": "3547:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "3538:5:46", + "nodeType": "YulTypedName", + "src": "3538:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "3557:32:46", + "nodeType": "YulAssignment", + "src": "3557:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3579:9:46", + "nodeType": "YulIdentifier", + "src": "3579:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "3566:12:46", + "nodeType": "YulIdentifier", + "src": "3566:12:46" + }, + "nativeSrc": "3566:23:46", + "nodeType": "YulFunctionCall", + "src": "3566:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "3557:5:46", + "nodeType": "YulIdentifier", + "src": "3557:5:46" + } + ] + }, + { + "nativeSrc": "3598:15:46", + "nodeType": "YulAssignment", + "src": "3598:15:46", + "value": { + "name": "value", + "nativeSrc": "3608:5:46", + "nodeType": "YulIdentifier", + "src": "3608:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "3598:6:46", + "nodeType": "YulIdentifier", + "src": "3598:6:46" + } + ] + }, + { + "nativeSrc": "3622:47:46", + "nodeType": "YulAssignment", + "src": "3622:47:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3654:9:46", + "nodeType": "YulIdentifier", + "src": "3654:9:46" + }, + { + "kind": "number", + "nativeSrc": "3665:2:46", + "nodeType": "YulLiteral", + "src": "3665:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3650:3:46", + "nodeType": "YulIdentifier", + "src": "3650:3:46" + }, + "nativeSrc": "3650:18:46", + "nodeType": "YulFunctionCall", + "src": "3650:18:46" + } + ], + "functionName": { + "name": "abi_decode_uint64", + "nativeSrc": "3632:17:46", + "nodeType": "YulIdentifier", + "src": "3632:17:46" + }, + "nativeSrc": "3632:37:46", + "nodeType": "YulFunctionCall", + "src": "3632:37:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "3622:6:46", + "nodeType": "YulIdentifier", + "src": "3622:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint64", + "nativeSrc": "3377:298:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3421:9:46", + "nodeType": "YulTypedName", + "src": "3421:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "3432:7:46", + "nodeType": "YulTypedName", + "src": "3432:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "3444:6:46", + "nodeType": "YulTypedName", + "src": "3444:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "3452:6:46", + "nodeType": "YulTypedName", + "src": "3452:6:46", + "type": "" + } + ], + "src": "3377:298:46" + }, + { + "body": { + "nativeSrc": "3847:277:46", + "nodeType": "YulBlock", + "src": "3847:277:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3864:9:46", + "nodeType": "YulIdentifier", + "src": "3864:9:46" + }, + { + "kind": "number", + "nativeSrc": "3875:2:46", + "nodeType": "YulLiteral", + "src": "3875:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "3857:6:46", + "nodeType": "YulIdentifier", + "src": "3857:6:46" + }, + "nativeSrc": "3857:21:46", + "nodeType": "YulFunctionCall", + "src": "3857:21:46" + }, + "nativeSrc": "3857:21:46", + "nodeType": "YulExpressionStatement", + "src": "3857:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3921:6:46", + "nodeType": "YulIdentifier", + "src": "3921:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3915:5:46", + "nodeType": "YulIdentifier", + "src": "3915:5:46" + }, + "nativeSrc": "3915:13:46", + "nodeType": "YulFunctionCall", + "src": "3915:13:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "3934:9:46", + "nodeType": "YulIdentifier", + "src": "3934:9:46" + }, + { + "kind": "number", + "nativeSrc": "3945:2:46", + "nodeType": "YulLiteral", + "src": "3945:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3930:3:46", + "nodeType": "YulIdentifier", + "src": "3930:3:46" + }, + "nativeSrc": "3930:18:46", + "nodeType": "YulFunctionCall", + "src": "3930:18:46" + } + ], + "functionName": { + "name": "abi_encode_struct_StateInfo", + "nativeSrc": "3887:27:46", + "nodeType": "YulIdentifier", + "src": "3887:27:46" + }, + "nativeSrc": "3887:62:46", + "nodeType": "YulFunctionCall", + "src": "3887:62:46" + }, + "nativeSrc": "3887:62:46", + "nodeType": "YulExpressionStatement", + "src": "3887:62:46" + }, + { + "nativeSrc": "3958:42:46", + "nodeType": "YulVariableDeclaration", + "src": "3958:42:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "3988:6:46", + "nodeType": "YulIdentifier", + "src": "3988:6:46" + }, + { + "kind": "number", + "nativeSrc": "3996:2:46", + "nodeType": "YulLiteral", + "src": "3996:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "3984:3:46", + "nodeType": "YulIdentifier", + "src": "3984:3:46" + }, + "nativeSrc": "3984:15:46", + "nodeType": "YulFunctionCall", + "src": "3984:15:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "3978:5:46", + "nodeType": "YulIdentifier", + "src": "3978:5:46" + }, + "nativeSrc": "3978:22:46", + "nodeType": "YulFunctionCall", + "src": "3978:22:46" + }, + "variables": [ + { + "name": "memberValue0", + "nativeSrc": "3962:12:46", + "nodeType": "YulTypedName", + "src": "3962:12:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4020:9:46", + "nodeType": "YulIdentifier", + "src": "4020:9:46" + }, + { + "kind": "number", + "nativeSrc": "4031:4:46", + "nodeType": "YulLiteral", + "src": "4031:4:46", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4016:3:46", + "nodeType": "YulIdentifier", + "src": "4016:3:46" + }, + "nativeSrc": "4016:20:46", + "nodeType": "YulFunctionCall", + "src": "4016:20:46" + }, + { + "kind": "number", + "nativeSrc": "4038:4:46", + "nodeType": "YulLiteral", + "src": "4038:4:46", + "type": "", + "value": "0xa0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4009:6:46", + "nodeType": "YulIdentifier", + "src": "4009:6:46" + }, + "nativeSrc": "4009:34:46", + "nodeType": "YulFunctionCall", + "src": "4009:34:46" + }, + "nativeSrc": "4009:34:46", + "nodeType": "YulExpressionStatement", + "src": "4009:34:46" + }, + { + "nativeSrc": "4052:66:46", + "nodeType": "YulAssignment", + "src": "4052:66:46", + "value": { + "arguments": [ + { + "name": "memberValue0", + "nativeSrc": "4084:12:46", + "nodeType": "YulIdentifier", + "src": "4084:12:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4102:9:46", + "nodeType": "YulIdentifier", + "src": "4102:9:46" + }, + { + "kind": "number", + "nativeSrc": "4113:3:46", + "nodeType": "YulLiteral", + "src": "4113:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4098:3:46", + "nodeType": "YulIdentifier", + "src": "4098:3:46" + }, + "nativeSrc": "4098:19:46", + "nodeType": "YulFunctionCall", + "src": "4098:19:46" + } + ], + "functionName": { + "name": "abi_encode_struct_Proof", + "nativeSrc": "4060:23:46", + "nodeType": "YulIdentifier", + "src": "4060:23:46" + }, + "nativeSrc": "4060:58:46", + "nodeType": "YulFunctionCall", + "src": "4060:58:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4052:4:46", + "nodeType": "YulIdentifier", + "src": "4052:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_CredentialStatus_$133_memory_ptr__to_t_struct$_CredentialStatus_$133_memory_ptr__fromStack_reversed", + "nativeSrc": "3680:444:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "3816:9:46", + "nodeType": "YulTypedName", + "src": "3816:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "3827:6:46", + "nodeType": "YulTypedName", + "src": "3827:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "3838:4:46", + "nodeType": "YulTypedName", + "src": "3838:4:46", + "type": "" + } + ], + "src": "3680:444:46" + }, + { + "body": { + "nativeSrc": "4199:156:46", + "nodeType": "YulBlock", + "src": "4199:156:46", + "statements": [ + { + "body": { + "nativeSrc": "4245:16:46", + "nodeType": "YulBlock", + "src": "4245:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4254:1:46", + "nodeType": "YulLiteral", + "src": "4254:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4257:1:46", + "nodeType": "YulLiteral", + "src": "4257:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4247:6:46", + "nodeType": "YulIdentifier", + "src": "4247:6:46" + }, + "nativeSrc": "4247:12:46", + "nodeType": "YulFunctionCall", + "src": "4247:12:46" + }, + "nativeSrc": "4247:12:46", + "nodeType": "YulExpressionStatement", + "src": "4247:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4220:7:46", + "nodeType": "YulIdentifier", + "src": "4220:7:46" + }, + { + "name": "headStart", + "nativeSrc": "4229:9:46", + "nodeType": "YulIdentifier", + "src": "4229:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4216:3:46", + "nodeType": "YulIdentifier", + "src": "4216:3:46" + }, + "nativeSrc": "4216:23:46", + "nodeType": "YulFunctionCall", + "src": "4216:23:46" + }, + { + "kind": "number", + "nativeSrc": "4241:2:46", + "nodeType": "YulLiteral", + "src": "4241:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4212:3:46", + "nodeType": "YulIdentifier", + "src": "4212:3:46" + }, + "nativeSrc": "4212:32:46", + "nodeType": "YulFunctionCall", + "src": "4212:32:46" + }, + "nativeSrc": "4209:52:46", + "nodeType": "YulIf", + "src": "4209:52:46" + }, + { + "nativeSrc": "4270:14:46", + "nodeType": "YulVariableDeclaration", + "src": "4270:14:46", + "value": { + "kind": "number", + "nativeSrc": "4283:1:46", + "nodeType": "YulLiteral", + "src": "4283:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "4274:5:46", + "nodeType": "YulTypedName", + "src": "4274:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "4293:32:46", + "nodeType": "YulAssignment", + "src": "4293:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4315:9:46", + "nodeType": "YulIdentifier", + "src": "4315:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4302:12:46", + "nodeType": "YulIdentifier", + "src": "4302:12:46" + }, + "nativeSrc": "4302:23:46", + "nodeType": "YulFunctionCall", + "src": "4302:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "4293:5:46", + "nodeType": "YulIdentifier", + "src": "4293:5:46" + } + ] + }, + { + "nativeSrc": "4334:15:46", + "nodeType": "YulAssignment", + "src": "4334:15:46", + "value": { + "name": "value", + "nativeSrc": "4344:5:46", + "nodeType": "YulIdentifier", + "src": "4344:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4334:6:46", + "nodeType": "YulIdentifier", + "src": "4334:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nativeSrc": "4129:226:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4165:9:46", + "nodeType": "YulTypedName", + "src": "4165:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4176:7:46", + "nodeType": "YulTypedName", + "src": "4176:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4188:6:46", + "nodeType": "YulTypedName", + "src": "4188:6:46", + "type": "" + } + ], + "src": "4129:226:46" + }, + { + "body": { + "nativeSrc": "4430:110:46", + "nodeType": "YulBlock", + "src": "4430:110:46", + "statements": [ + { + "body": { + "nativeSrc": "4476:16:46", + "nodeType": "YulBlock", + "src": "4476:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "4485:1:46", + "nodeType": "YulLiteral", + "src": "4485:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "4488:1:46", + "nodeType": "YulLiteral", + "src": "4488:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "4478:6:46", + "nodeType": "YulIdentifier", + "src": "4478:6:46" + }, + "nativeSrc": "4478:12:46", + "nodeType": "YulFunctionCall", + "src": "4478:12:46" + }, + "nativeSrc": "4478:12:46", + "nodeType": "YulExpressionStatement", + "src": "4478:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "4451:7:46", + "nodeType": "YulIdentifier", + "src": "4451:7:46" + }, + { + "name": "headStart", + "nativeSrc": "4460:9:46", + "nodeType": "YulIdentifier", + "src": "4460:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "4447:3:46", + "nodeType": "YulIdentifier", + "src": "4447:3:46" + }, + "nativeSrc": "4447:23:46", + "nodeType": "YulFunctionCall", + "src": "4447:23:46" + }, + { + "kind": "number", + "nativeSrc": "4472:2:46", + "nodeType": "YulLiteral", + "src": "4472:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "4443:3:46", + "nodeType": "YulIdentifier", + "src": "4443:3:46" + }, + "nativeSrc": "4443:32:46", + "nodeType": "YulFunctionCall", + "src": "4443:32:46" + }, + "nativeSrc": "4440:52:46", + "nodeType": "YulIf", + "src": "4440:52:46" + }, + { + "nativeSrc": "4501:33:46", + "nodeType": "YulAssignment", + "src": "4501:33:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4524:9:46", + "nodeType": "YulIdentifier", + "src": "4524:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "4511:12:46", + "nodeType": "YulIdentifier", + "src": "4511:12:46" + }, + "nativeSrc": "4511:23:46", + "nodeType": "YulFunctionCall", + "src": "4511:23:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "4501:6:46", + "nodeType": "YulIdentifier", + "src": "4501:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32", + "nativeSrc": "4360:180:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4396:9:46", + "nodeType": "YulTypedName", + "src": "4396:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "4407:7:46", + "nodeType": "YulTypedName", + "src": "4407:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "4419:6:46", + "nodeType": "YulTypedName", + "src": "4419:6:46", + "type": "" + } + ], + "src": "4360:180:46" + }, + { + "body": { + "nativeSrc": "4692:105:46", + "nodeType": "YulBlock", + "src": "4692:105:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4709:9:46", + "nodeType": "YulIdentifier", + "src": "4709:9:46" + }, + { + "kind": "number", + "nativeSrc": "4720:2:46", + "nodeType": "YulLiteral", + "src": "4720:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "4702:6:46", + "nodeType": "YulIdentifier", + "src": "4702:6:46" + }, + "nativeSrc": "4702:21:46", + "nodeType": "YulFunctionCall", + "src": "4702:21:46" + }, + "nativeSrc": "4702:21:46", + "nodeType": "YulExpressionStatement", + "src": "4702:21:46" + }, + { + "nativeSrc": "4732:59:46", + "nodeType": "YulAssignment", + "src": "4732:59:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "4764:6:46", + "nodeType": "YulIdentifier", + "src": "4764:6:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4776:9:46", + "nodeType": "YulIdentifier", + "src": "4776:9:46" + }, + { + "kind": "number", + "nativeSrc": "4787:2:46", + "nodeType": "YulLiteral", + "src": "4787:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4772:3:46", + "nodeType": "YulIdentifier", + "src": "4772:3:46" + }, + "nativeSrc": "4772:18:46", + "nodeType": "YulFunctionCall", + "src": "4772:18:46" + } + ], + "functionName": { + "name": "abi_encode_struct_Proof", + "nativeSrc": "4740:23:46", + "nodeType": "YulIdentifier", + "src": "4740:23:46" + }, + "nativeSrc": "4740:51:46", + "nodeType": "YulFunctionCall", + "src": "4740:51:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "4732:4:46", + "nodeType": "YulIdentifier", + "src": "4732:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr__fromStack_reversed", + "nativeSrc": "4545:252:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4661:9:46", + "nodeType": "YulTypedName", + "src": "4661:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4672:6:46", + "nodeType": "YulTypedName", + "src": "4672:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4683:4:46", + "nodeType": "YulTypedName", + "src": "4683:4:46", + "type": "" + } + ], + "src": "4545:252:46" + }, + { + "body": { + "nativeSrc": "4953:486:46", + "nodeType": "YulBlock", + "src": "4953:486:46", + "statements": [ + { + "nativeSrc": "4963:32:46", + "nodeType": "YulVariableDeclaration", + "src": "4963:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "4981:9:46", + "nodeType": "YulIdentifier", + "src": "4981:9:46" + }, + { + "kind": "number", + "nativeSrc": "4992:2:46", + "nodeType": "YulLiteral", + "src": "4992:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "4977:3:46", + "nodeType": "YulIdentifier", + "src": "4977:3:46" + }, + "nativeSrc": "4977:18:46", + "nodeType": "YulFunctionCall", + "src": "4977:18:46" + }, + "variables": [ + { + "name": "tail_1", + "nativeSrc": "4967:6:46", + "nodeType": "YulTypedName", + "src": "4967:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5011:9:46", + "nodeType": "YulIdentifier", + "src": "5011:9:46" + }, + { + "kind": "number", + "nativeSrc": "5022:2:46", + "nodeType": "YulLiteral", + "src": "5022:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5004:6:46", + "nodeType": "YulIdentifier", + "src": "5004:6:46" + }, + "nativeSrc": "5004:21:46", + "nodeType": "YulFunctionCall", + "src": "5004:21:46" + }, + "nativeSrc": "5004:21:46", + "nodeType": "YulExpressionStatement", + "src": "5004:21:46" + }, + { + "nativeSrc": "5034:17:46", + "nodeType": "YulVariableDeclaration", + "src": "5034:17:46", + "value": { + "name": "tail_1", + "nativeSrc": "5045:6:46", + "nodeType": "YulIdentifier", + "src": "5045:6:46" + }, + "variables": [ + { + "name": "pos", + "nativeSrc": "5038:3:46", + "nodeType": "YulTypedName", + "src": "5038:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "5060:27:46", + "nodeType": "YulVariableDeclaration", + "src": "5060:27:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5080:6:46", + "nodeType": "YulIdentifier", + "src": "5080:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5074:5:46", + "nodeType": "YulIdentifier", + "src": "5074:5:46" + }, + "nativeSrc": "5074:13:46", + "nodeType": "YulFunctionCall", + "src": "5074:13:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "5064:6:46", + "nodeType": "YulTypedName", + "src": "5064:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "tail_1", + "nativeSrc": "5103:6:46", + "nodeType": "YulIdentifier", + "src": "5103:6:46" + }, + { + "name": "length", + "nativeSrc": "5111:6:46", + "nodeType": "YulIdentifier", + "src": "5111:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5096:6:46", + "nodeType": "YulIdentifier", + "src": "5096:6:46" + }, + "nativeSrc": "5096:22:46", + "nodeType": "YulFunctionCall", + "src": "5096:22:46" + }, + "nativeSrc": "5096:22:46", + "nodeType": "YulExpressionStatement", + "src": "5096:22:46" + }, + { + "nativeSrc": "5127:25:46", + "nodeType": "YulAssignment", + "src": "5127:25:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5138:9:46", + "nodeType": "YulIdentifier", + "src": "5138:9:46" + }, + { + "kind": "number", + "nativeSrc": "5149:2:46", + "nodeType": "YulLiteral", + "src": "5149:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5134:3:46", + "nodeType": "YulIdentifier", + "src": "5134:3:46" + }, + "nativeSrc": "5134:18:46", + "nodeType": "YulFunctionCall", + "src": "5134:18:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "5127:3:46", + "nodeType": "YulIdentifier", + "src": "5127:3:46" + } + ] + }, + { + "nativeSrc": "5161:29:46", + "nodeType": "YulVariableDeclaration", + "src": "5161:29:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "5179:6:46", + "nodeType": "YulIdentifier", + "src": "5179:6:46" + }, + { + "kind": "number", + "nativeSrc": "5187:2:46", + "nodeType": "YulLiteral", + "src": "5187:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5175:3:46", + "nodeType": "YulIdentifier", + "src": "5175:3:46" + }, + "nativeSrc": "5175:15:46", + "nodeType": "YulFunctionCall", + "src": "5175:15:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "5165:6:46", + "nodeType": "YulTypedName", + "src": "5165:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "5199:10:46", + "nodeType": "YulVariableDeclaration", + "src": "5199:10:46", + "value": { + "kind": "number", + "nativeSrc": "5208:1:46", + "nodeType": "YulLiteral", + "src": "5208:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "5203:1:46", + "nodeType": "YulTypedName", + "src": "5203:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "5267:146:46", + "nodeType": "YulBlock", + "src": "5267:146:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5288:3:46", + "nodeType": "YulIdentifier", + "src": "5288:3:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "5303:6:46", + "nodeType": "YulIdentifier", + "src": "5303:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "5297:5:46", + "nodeType": "YulIdentifier", + "src": "5297:5:46" + }, + "nativeSrc": "5297:13:46", + "nodeType": "YulFunctionCall", + "src": "5297:13:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5320:3:46", + "nodeType": "YulLiteral", + "src": "5320:3:46", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "5325:1:46", + "nodeType": "YulLiteral", + "src": "5325:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "5316:3:46", + "nodeType": "YulIdentifier", + "src": "5316:3:46" + }, + "nativeSrc": "5316:11:46", + "nodeType": "YulFunctionCall", + "src": "5316:11:46" + }, + { + "kind": "number", + "nativeSrc": "5329:1:46", + "nodeType": "YulLiteral", + "src": "5329:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5312:3:46", + "nodeType": "YulIdentifier", + "src": "5312:3:46" + }, + "nativeSrc": "5312:19:46", + "nodeType": "YulFunctionCall", + "src": "5312:19:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5293:3:46", + "nodeType": "YulIdentifier", + "src": "5293:3:46" + }, + "nativeSrc": "5293:39:46", + "nodeType": "YulFunctionCall", + "src": "5293:39:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "5281:6:46", + "nodeType": "YulIdentifier", + "src": "5281:6:46" + }, + "nativeSrc": "5281:52:46", + "nodeType": "YulFunctionCall", + "src": "5281:52:46" + }, + "nativeSrc": "5281:52:46", + "nodeType": "YulExpressionStatement", + "src": "5281:52:46" + }, + { + "nativeSrc": "5346:19:46", + "nodeType": "YulAssignment", + "src": "5346:19:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "5357:3:46", + "nodeType": "YulIdentifier", + "src": "5357:3:46" + }, + { + "kind": "number", + "nativeSrc": "5362:2:46", + "nodeType": "YulLiteral", + "src": "5362:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5353:3:46", + "nodeType": "YulIdentifier", + "src": "5353:3:46" + }, + "nativeSrc": "5353:12:46", + "nodeType": "YulFunctionCall", + "src": "5353:12:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "5346:3:46", + "nodeType": "YulIdentifier", + "src": "5346:3:46" + } + ] + }, + { + "nativeSrc": "5378:25:46", + "nodeType": "YulAssignment", + "src": "5378:25:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "5392:6:46", + "nodeType": "YulIdentifier", + "src": "5392:6:46" + }, + { + "kind": "number", + "nativeSrc": "5400:2:46", + "nodeType": "YulLiteral", + "src": "5400:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5388:3:46", + "nodeType": "YulIdentifier", + "src": "5388:3:46" + }, + "nativeSrc": "5388:15:46", + "nodeType": "YulFunctionCall", + "src": "5388:15:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "5378:6:46", + "nodeType": "YulIdentifier", + "src": "5378:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "5229:1:46", + "nodeType": "YulIdentifier", + "src": "5229:1:46" + }, + { + "name": "length", + "nativeSrc": "5232:6:46", + "nodeType": "YulIdentifier", + "src": "5232:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "5226:2:46", + "nodeType": "YulIdentifier", + "src": "5226:2:46" + }, + "nativeSrc": "5226:13:46", + "nodeType": "YulFunctionCall", + "src": "5226:13:46" + }, + "nativeSrc": "5218:195:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "5240:18:46", + "nodeType": "YulBlock", + "src": "5240:18:46", + "statements": [ + { + "nativeSrc": "5242:14:46", + "nodeType": "YulAssignment", + "src": "5242:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "5251:1:46", + "nodeType": "YulIdentifier", + "src": "5251:1:46" + }, + { + "kind": "number", + "nativeSrc": "5254:1:46", + "nodeType": "YulLiteral", + "src": "5254:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5247:3:46", + "nodeType": "YulIdentifier", + "src": "5247:3:46" + }, + "nativeSrc": "5247:9:46", + "nodeType": "YulFunctionCall", + "src": "5247:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "5242:1:46", + "nodeType": "YulIdentifier", + "src": "5242:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "5222:3:46", + "nodeType": "YulBlock", + "src": "5222:3:46", + "statements": [] + }, + "src": "5218:195:46" + }, + { + "nativeSrc": "5422:11:46", + "nodeType": "YulAssignment", + "src": "5422:11:46", + "value": { + "name": "pos", + "nativeSrc": "5430:3:46", + "nodeType": "YulIdentifier", + "src": "5430:3:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "5422:4:46", + "nodeType": "YulIdentifier", + "src": "5422:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed", + "nativeSrc": "4802:637:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "4922:9:46", + "nodeType": "YulTypedName", + "src": "4922:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "4933:6:46", + "nodeType": "YulTypedName", + "src": "4933:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "4944:4:46", + "nodeType": "YulTypedName", + "src": "4944:4:46", + "type": "" + } + ], + "src": "4802:637:46" + }, + { + "body": { + "nativeSrc": "5531:259:46", + "nodeType": "YulBlock", + "src": "5531:259:46", + "statements": [ + { + "body": { + "nativeSrc": "5577:16:46", + "nodeType": "YulBlock", + "src": "5577:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5586:1:46", + "nodeType": "YulLiteral", + "src": "5586:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5589:1:46", + "nodeType": "YulLiteral", + "src": "5589:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5579:6:46", + "nodeType": "YulIdentifier", + "src": "5579:6:46" + }, + "nativeSrc": "5579:12:46", + "nodeType": "YulFunctionCall", + "src": "5579:12:46" + }, + "nativeSrc": "5579:12:46", + "nodeType": "YulExpressionStatement", + "src": "5579:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "5552:7:46", + "nodeType": "YulIdentifier", + "src": "5552:7:46" + }, + { + "name": "headStart", + "nativeSrc": "5561:9:46", + "nodeType": "YulIdentifier", + "src": "5561:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "5548:3:46", + "nodeType": "YulIdentifier", + "src": "5548:3:46" + }, + "nativeSrc": "5548:23:46", + "nodeType": "YulFunctionCall", + "src": "5548:23:46" + }, + { + "kind": "number", + "nativeSrc": "5573:2:46", + "nodeType": "YulLiteral", + "src": "5573:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "5544:3:46", + "nodeType": "YulIdentifier", + "src": "5544:3:46" + }, + "nativeSrc": "5544:32:46", + "nodeType": "YulFunctionCall", + "src": "5544:32:46" + }, + "nativeSrc": "5541:52:46", + "nodeType": "YulIf", + "src": "5541:52:46" + }, + { + "nativeSrc": "5602:14:46", + "nodeType": "YulVariableDeclaration", + "src": "5602:14:46", + "value": { + "kind": "number", + "nativeSrc": "5615:1:46", + "nodeType": "YulLiteral", + "src": "5615:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "5606:5:46", + "nodeType": "YulTypedName", + "src": "5606:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "5625:32:46", + "nodeType": "YulAssignment", + "src": "5625:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5647:9:46", + "nodeType": "YulIdentifier", + "src": "5647:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5634:12:46", + "nodeType": "YulIdentifier", + "src": "5634:12:46" + }, + "nativeSrc": "5634:23:46", + "nodeType": "YulFunctionCall", + "src": "5634:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "5625:5:46", + "nodeType": "YulIdentifier", + "src": "5625:5:46" + } + ] + }, + { + "nativeSrc": "5666:15:46", + "nodeType": "YulAssignment", + "src": "5666:15:46", + "value": { + "name": "value", + "nativeSrc": "5676:5:46", + "nodeType": "YulIdentifier", + "src": "5676:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "5666:6:46", + "nodeType": "YulIdentifier", + "src": "5666:6:46" + } + ] + }, + { + "nativeSrc": "5690:16:46", + "nodeType": "YulVariableDeclaration", + "src": "5690:16:46", + "value": { + "kind": "number", + "nativeSrc": "5705:1:46", + "nodeType": "YulLiteral", + "src": "5705:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "5694:7:46", + "nodeType": "YulTypedName", + "src": "5694:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "5715:43:46", + "nodeType": "YulAssignment", + "src": "5715:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "5743:9:46", + "nodeType": "YulIdentifier", + "src": "5743:9:46" + }, + { + "kind": "number", + "nativeSrc": "5754:2:46", + "nodeType": "YulLiteral", + "src": "5754:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "5739:3:46", + "nodeType": "YulIdentifier", + "src": "5739:3:46" + }, + "nativeSrc": "5739:18:46", + "nodeType": "YulFunctionCall", + "src": "5739:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5726:12:46", + "nodeType": "YulIdentifier", + "src": "5726:12:46" + }, + "nativeSrc": "5726:32:46", + "nodeType": "YulFunctionCall", + "src": "5726:32:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "5715:7:46", + "nodeType": "YulIdentifier", + "src": "5715:7:46" + } + ] + }, + { + "nativeSrc": "5767:17:46", + "nodeType": "YulAssignment", + "src": "5767:17:46", + "value": { + "name": "value_1", + "nativeSrc": "5777:7:46", + "nodeType": "YulIdentifier", + "src": "5777:7:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "5767:6:46", + "nodeType": "YulIdentifier", + "src": "5767:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nativeSrc": "5444:346:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "5489:9:46", + "nodeType": "YulTypedName", + "src": "5489:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "5500:7:46", + "nodeType": "YulTypedName", + "src": "5500:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "5512:6:46", + "nodeType": "YulTypedName", + "src": "5512:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "5520:6:46", + "nodeType": "YulTypedName", + "src": "5520:6:46", + "type": "" + } + ], + "src": "5444:346:46" + }, + { + "body": { + "nativeSrc": "5843:120:46", + "nodeType": "YulBlock", + "src": "5843:120:46", + "statements": [ + { + "nativeSrc": "5853:29:46", + "nodeType": "YulAssignment", + "src": "5853:29:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "5875:6:46", + "nodeType": "YulIdentifier", + "src": "5875:6:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "5862:12:46", + "nodeType": "YulIdentifier", + "src": "5862:12:46" + }, + "nativeSrc": "5862:20:46", + "nodeType": "YulFunctionCall", + "src": "5862:20:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "5853:5:46", + "nodeType": "YulIdentifier", + "src": "5853:5:46" + } + ] + }, + { + "body": { + "nativeSrc": "5941:16:46", + "nodeType": "YulBlock", + "src": "5941:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5950:1:46", + "nodeType": "YulLiteral", + "src": "5950:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "5953:1:46", + "nodeType": "YulLiteral", + "src": "5953:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "5943:6:46", + "nodeType": "YulIdentifier", + "src": "5943:6:46" + }, + "nativeSrc": "5943:12:46", + "nodeType": "YulFunctionCall", + "src": "5943:12:46" + }, + "nativeSrc": "5943:12:46", + "nodeType": "YulExpressionStatement", + "src": "5943:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5904:5:46", + "nodeType": "YulIdentifier", + "src": "5904:5:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "5915:5:46", + "nodeType": "YulIdentifier", + "src": "5915:5:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "5926:3:46", + "nodeType": "YulLiteral", + "src": "5926:3:46", + "type": "", + "value": "240" + }, + { + "kind": "number", + "nativeSrc": "5931:5:46", + "nodeType": "YulLiteral", + "src": "5931:5:46", + "type": "", + "value": "65535" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "5922:3:46", + "nodeType": "YulIdentifier", + "src": "5922:3:46" + }, + "nativeSrc": "5922:15:46", + "nodeType": "YulFunctionCall", + "src": "5922:15:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "5911:3:46", + "nodeType": "YulIdentifier", + "src": "5911:3:46" + }, + "nativeSrc": "5911:27:46", + "nodeType": "YulFunctionCall", + "src": "5911:27:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "5901:2:46", + "nodeType": "YulIdentifier", + "src": "5901:2:46" + }, + "nativeSrc": "5901:38:46", + "nodeType": "YulFunctionCall", + "src": "5901:38:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "5894:6:46", + "nodeType": "YulIdentifier", + "src": "5894:6:46" + }, + "nativeSrc": "5894:46:46", + "nodeType": "YulFunctionCall", + "src": "5894:46:46" + }, + "nativeSrc": "5891:66:46", + "nodeType": "YulIf", + "src": "5891:66:46" + } + ] + }, + "name": "abi_decode_bytes2", + "nativeSrc": "5795:168:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "5822:6:46", + "nodeType": "YulTypedName", + "src": "5822:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "5833:5:46", + "nodeType": "YulTypedName", + "src": "5833:5:46", + "type": "" + } + ], + "src": "5795:168:46" + }, + { + "body": { + "nativeSrc": "6054:233:46", + "nodeType": "YulBlock", + "src": "6054:233:46", + "statements": [ + { + "body": { + "nativeSrc": "6100:16:46", + "nodeType": "YulBlock", + "src": "6100:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6109:1:46", + "nodeType": "YulLiteral", + "src": "6109:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6112:1:46", + "nodeType": "YulLiteral", + "src": "6112:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6102:6:46", + "nodeType": "YulIdentifier", + "src": "6102:6:46" + }, + "nativeSrc": "6102:12:46", + "nodeType": "YulFunctionCall", + "src": "6102:12:46" + }, + "nativeSrc": "6102:12:46", + "nodeType": "YulExpressionStatement", + "src": "6102:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "6075:7:46", + "nodeType": "YulIdentifier", + "src": "6075:7:46" + }, + { + "name": "headStart", + "nativeSrc": "6084:9:46", + "nodeType": "YulIdentifier", + "src": "6084:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "6071:3:46", + "nodeType": "YulIdentifier", + "src": "6071:3:46" + }, + "nativeSrc": "6071:23:46", + "nodeType": "YulFunctionCall", + "src": "6071:23:46" + }, + { + "kind": "number", + "nativeSrc": "6096:2:46", + "nodeType": "YulLiteral", + "src": "6096:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "6067:3:46", + "nodeType": "YulIdentifier", + "src": "6067:3:46" + }, + "nativeSrc": "6067:32:46", + "nodeType": "YulFunctionCall", + "src": "6067:32:46" + }, + "nativeSrc": "6064:52:46", + "nodeType": "YulIf", + "src": "6064:52:46" + }, + { + "nativeSrc": "6125:36:46", + "nodeType": "YulVariableDeclaration", + "src": "6125:36:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6151:9:46", + "nodeType": "YulIdentifier", + "src": "6151:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "6138:12:46", + "nodeType": "YulIdentifier", + "src": "6138:12:46" + }, + "nativeSrc": "6138:23:46", + "nodeType": "YulFunctionCall", + "src": "6138:23:46" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "6129:5:46", + "nodeType": "YulTypedName", + "src": "6129:5:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "6195:5:46", + "nodeType": "YulIdentifier", + "src": "6195:5:46" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "6170:24:46", + "nodeType": "YulIdentifier", + "src": "6170:24:46" + }, + "nativeSrc": "6170:31:46", + "nodeType": "YulFunctionCall", + "src": "6170:31:46" + }, + "nativeSrc": "6170:31:46", + "nodeType": "YulExpressionStatement", + "src": "6170:31:46" + }, + { + "nativeSrc": "6210:15:46", + "nodeType": "YulAssignment", + "src": "6210:15:46", + "value": { + "name": "value", + "nativeSrc": "6220:5:46", + "nodeType": "YulIdentifier", + "src": "6220:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "6210:6:46", + "nodeType": "YulIdentifier", + "src": "6210:6:46" + } + ] + }, + { + "nativeSrc": "6234:47:46", + "nodeType": "YulAssignment", + "src": "6234:47:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "6266:9:46", + "nodeType": "YulIdentifier", + "src": "6266:9:46" + }, + { + "kind": "number", + "nativeSrc": "6277:2:46", + "nodeType": "YulLiteral", + "src": "6277:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6262:3:46", + "nodeType": "YulIdentifier", + "src": "6262:3:46" + }, + "nativeSrc": "6262:18:46", + "nodeType": "YulFunctionCall", + "src": "6262:18:46" + } + ], + "functionName": { + "name": "abi_decode_bytes2", + "nativeSrc": "6244:17:46", + "nodeType": "YulIdentifier", + "src": "6244:17:46" + }, + "nativeSrc": "6244:37:46", + "nodeType": "YulFunctionCall", + "src": "6244:37:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "6234:6:46", + "nodeType": "YulIdentifier", + "src": "6234:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bytes2", + "nativeSrc": "5968:319:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "6012:9:46", + "nodeType": "YulTypedName", + "src": "6012:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "6023:7:46", + "nodeType": "YulTypedName", + "src": "6023:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "6035:6:46", + "nodeType": "YulTypedName", + "src": "6035:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "6043:6:46", + "nodeType": "YulTypedName", + "src": "6043:6:46", + "type": "" + } + ], + "src": "5968:319:46" + }, + { + "body": { + "nativeSrc": "6324:95:46", + "nodeType": "YulBlock", + "src": "6324:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6341:1:46", + "nodeType": "YulLiteral", + "src": "6341:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6348:3:46", + "nodeType": "YulLiteral", + "src": "6348:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "6353:10:46", + "nodeType": "YulLiteral", + "src": "6353:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "6344:3:46", + "nodeType": "YulIdentifier", + "src": "6344:3:46" + }, + "nativeSrc": "6344:20:46", + "nodeType": "YulFunctionCall", + "src": "6344:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6334:6:46", + "nodeType": "YulIdentifier", + "src": "6334:6:46" + }, + "nativeSrc": "6334:31:46", + "nodeType": "YulFunctionCall", + "src": "6334:31:46" + }, + "nativeSrc": "6334:31:46", + "nodeType": "YulExpressionStatement", + "src": "6334:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6381:1:46", + "nodeType": "YulLiteral", + "src": "6381:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "6384:4:46", + "nodeType": "YulLiteral", + "src": "6384:4:46", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6374:6:46", + "nodeType": "YulIdentifier", + "src": "6374:6:46" + }, + "nativeSrc": "6374:15:46", + "nodeType": "YulFunctionCall", + "src": "6374:15:46" + }, + "nativeSrc": "6374:15:46", + "nodeType": "YulExpressionStatement", + "src": "6374:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6405:1:46", + "nodeType": "YulLiteral", + "src": "6405:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "6408:4:46", + "nodeType": "YulLiteral", + "src": "6408:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "6398:6:46", + "nodeType": "YulIdentifier", + "src": "6398:6:46" + }, + "nativeSrc": "6398:15:46", + "nodeType": "YulFunctionCall", + "src": "6398:15:46" + }, + "nativeSrc": "6398:15:46", + "nodeType": "YulExpressionStatement", + "src": "6398:15:46" + } + ] + }, + "name": "panic_error_0x41", + "nativeSrc": "6292:127:46", + "nodeType": "YulFunctionDefinition", + "src": "6292:127:46" + }, + { + "body": { + "nativeSrc": "6470:205:46", + "nodeType": "YulBlock", + "src": "6470:205:46", + "statements": [ + { + "nativeSrc": "6480:19:46", + "nodeType": "YulAssignment", + "src": "6480:19:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6496:2:46", + "nodeType": "YulLiteral", + "src": "6496:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6490:5:46", + "nodeType": "YulIdentifier", + "src": "6490:5:46" + }, + "nativeSrc": "6490:9:46", + "nodeType": "YulFunctionCall", + "src": "6490:9:46" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "6480:6:46", + "nodeType": "YulIdentifier", + "src": "6480:6:46" + } + ] + }, + { + "nativeSrc": "6508:33:46", + "nodeType": "YulVariableDeclaration", + "src": "6508:33:46", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6530:6:46", + "nodeType": "YulIdentifier", + "src": "6530:6:46" + }, + { + "kind": "number", + "nativeSrc": "6538:2:46", + "nodeType": "YulLiteral", + "src": "6538:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6526:3:46", + "nodeType": "YulIdentifier", + "src": "6526:3:46" + }, + "nativeSrc": "6526:15:46", + "nodeType": "YulFunctionCall", + "src": "6526:15:46" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "6512:10:46", + "nodeType": "YulTypedName", + "src": "6512:10:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6616:22:46", + "nodeType": "YulBlock", + "src": "6616:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6618:16:46", + "nodeType": "YulIdentifier", + "src": "6618:16:46" + }, + "nativeSrc": "6618:18:46", + "nodeType": "YulFunctionCall", + "src": "6618:18:46" + }, + "nativeSrc": "6618:18:46", + "nodeType": "YulExpressionStatement", + "src": "6618:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6559:10:46", + "nodeType": "YulIdentifier", + "src": "6559:10:46" + }, + { + "kind": "number", + "nativeSrc": "6571:18:46", + "nodeType": "YulLiteral", + "src": "6571:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6556:2:46", + "nodeType": "YulIdentifier", + "src": "6556:2:46" + }, + "nativeSrc": "6556:34:46", + "nodeType": "YulFunctionCall", + "src": "6556:34:46" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6595:10:46", + "nodeType": "YulIdentifier", + "src": "6595:10:46" + }, + { + "name": "memPtr", + "nativeSrc": "6607:6:46", + "nodeType": "YulIdentifier", + "src": "6607:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6592:2:46", + "nodeType": "YulIdentifier", + "src": "6592:2:46" + }, + "nativeSrc": "6592:22:46", + "nodeType": "YulFunctionCall", + "src": "6592:22:46" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6553:2:46", + "nodeType": "YulIdentifier", + "src": "6553:2:46" + }, + "nativeSrc": "6553:62:46", + "nodeType": "YulFunctionCall", + "src": "6553:62:46" + }, + "nativeSrc": "6550:88:46", + "nodeType": "YulIf", + "src": "6550:88:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6654:2:46", + "nodeType": "YulLiteral", + "src": "6654:2:46", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "6658:10:46", + "nodeType": "YulIdentifier", + "src": "6658:10:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6647:6:46", + "nodeType": "YulIdentifier", + "src": "6647:6:46" + }, + "nativeSrc": "6647:22:46", + "nodeType": "YulFunctionCall", + "src": "6647:22:46" + }, + "nativeSrc": "6647:22:46", + "nodeType": "YulExpressionStatement", + "src": "6647:22:46" + } + ] + }, + "name": "allocate_memory_4237", + "nativeSrc": "6424:251:46", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "6459:6:46", + "nodeType": "YulTypedName", + "src": "6459:6:46", + "type": "" + } + ], + "src": "6424:251:46" + }, + { + "body": { + "nativeSrc": "6726:209:46", + "nodeType": "YulBlock", + "src": "6726:209:46", + "statements": [ + { + "nativeSrc": "6736:19:46", + "nodeType": "YulAssignment", + "src": "6736:19:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6752:2:46", + "nodeType": "YulLiteral", + "src": "6752:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "6746:5:46", + "nodeType": "YulIdentifier", + "src": "6746:5:46" + }, + "nativeSrc": "6746:9:46", + "nodeType": "YulFunctionCall", + "src": "6746:9:46" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "6736:6:46", + "nodeType": "YulIdentifier", + "src": "6736:6:46" + } + ] + }, + { + "nativeSrc": "6764:37:46", + "nodeType": "YulVariableDeclaration", + "src": "6764:37:46", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "6786:6:46", + "nodeType": "YulIdentifier", + "src": "6786:6:46" + }, + { + "kind": "number", + "nativeSrc": "6794:6:46", + "nodeType": "YulLiteral", + "src": "6794:6:46", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "6782:3:46", + "nodeType": "YulIdentifier", + "src": "6782:3:46" + }, + "nativeSrc": "6782:19:46", + "nodeType": "YulFunctionCall", + "src": "6782:19:46" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "6768:10:46", + "nodeType": "YulTypedName", + "src": "6768:10:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "6876:22:46", + "nodeType": "YulBlock", + "src": "6876:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "6878:16:46", + "nodeType": "YulIdentifier", + "src": "6878:16:46" + }, + "nativeSrc": "6878:18:46", + "nodeType": "YulFunctionCall", + "src": "6878:18:46" + }, + "nativeSrc": "6878:18:46", + "nodeType": "YulExpressionStatement", + "src": "6878:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6819:10:46", + "nodeType": "YulIdentifier", + "src": "6819:10:46" + }, + { + "kind": "number", + "nativeSrc": "6831:18:46", + "nodeType": "YulLiteral", + "src": "6831:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "6816:2:46", + "nodeType": "YulIdentifier", + "src": "6816:2:46" + }, + "nativeSrc": "6816:34:46", + "nodeType": "YulFunctionCall", + "src": "6816:34:46" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "6855:10:46", + "nodeType": "YulIdentifier", + "src": "6855:10:46" + }, + { + "name": "memPtr", + "nativeSrc": "6867:6:46", + "nodeType": "YulIdentifier", + "src": "6867:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "6852:2:46", + "nodeType": "YulIdentifier", + "src": "6852:2:46" + }, + "nativeSrc": "6852:22:46", + "nodeType": "YulFunctionCall", + "src": "6852:22:46" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "6813:2:46", + "nodeType": "YulIdentifier", + "src": "6813:2:46" + }, + "nativeSrc": "6813:62:46", + "nodeType": "YulFunctionCall", + "src": "6813:62:46" + }, + "nativeSrc": "6810:88:46", + "nodeType": "YulIf", + "src": "6810:88:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "6914:2:46", + "nodeType": "YulLiteral", + "src": "6914:2:46", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "6918:10:46", + "nodeType": "YulIdentifier", + "src": "6918:10:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "6907:6:46", + "nodeType": "YulIdentifier", + "src": "6907:6:46" + }, + "nativeSrc": "6907:22:46", + "nodeType": "YulFunctionCall", + "src": "6907:22:46" + }, + "nativeSrc": "6907:22:46", + "nodeType": "YulExpressionStatement", + "src": "6907:22:46" + } + ] + }, + "name": "allocate_memory_4238", + "nativeSrc": "6680:255:46", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "6715:6:46", + "nodeType": "YulTypedName", + "src": "6715:6:46", + "type": "" + } + ], + "src": "6680:255:46" + }, + { + "body": { + "nativeSrc": "6985:230:46", + "nodeType": "YulBlock", + "src": "6985:230:46", + "statements": [ + { + "nativeSrc": "6995:19:46", + "nodeType": "YulAssignment", + "src": "6995:19:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7011:2:46", + "nodeType": "YulLiteral", + "src": "7011:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "7005:5:46", + "nodeType": "YulIdentifier", + "src": "7005:5:46" + }, + "nativeSrc": "7005:9:46", + "nodeType": "YulFunctionCall", + "src": "7005:9:46" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "6995:6:46", + "nodeType": "YulIdentifier", + "src": "6995:6:46" + } + ] + }, + { + "nativeSrc": "7023:58:46", + "nodeType": "YulVariableDeclaration", + "src": "7023:58:46", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "7045:6:46", + "nodeType": "YulIdentifier", + "src": "7045:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "size", + "nativeSrc": "7061:4:46", + "nodeType": "YulIdentifier", + "src": "7061:4:46" + }, + { + "kind": "number", + "nativeSrc": "7067:2:46", + "nodeType": "YulLiteral", + "src": "7067:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7057:3:46", + "nodeType": "YulIdentifier", + "src": "7057:3:46" + }, + "nativeSrc": "7057:13:46", + "nodeType": "YulFunctionCall", + "src": "7057:13:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7076:2:46", + "nodeType": "YulLiteral", + "src": "7076:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "7072:3:46", + "nodeType": "YulIdentifier", + "src": "7072:3:46" + }, + "nativeSrc": "7072:7:46", + "nodeType": "YulFunctionCall", + "src": "7072:7:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7053:3:46", + "nodeType": "YulIdentifier", + "src": "7053:3:46" + }, + "nativeSrc": "7053:27:46", + "nodeType": "YulFunctionCall", + "src": "7053:27:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7041:3:46", + "nodeType": "YulIdentifier", + "src": "7041:3:46" + }, + "nativeSrc": "7041:40:46", + "nodeType": "YulFunctionCall", + "src": "7041:40:46" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "7027:10:46", + "nodeType": "YulTypedName", + "src": "7027:10:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "7156:22:46", + "nodeType": "YulBlock", + "src": "7156:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7158:16:46", + "nodeType": "YulIdentifier", + "src": "7158:16:46" + }, + "nativeSrc": "7158:18:46", + "nodeType": "YulFunctionCall", + "src": "7158:18:46" + }, + "nativeSrc": "7158:18:46", + "nodeType": "YulExpressionStatement", + "src": "7158:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "7099:10:46", + "nodeType": "YulIdentifier", + "src": "7099:10:46" + }, + { + "kind": "number", + "nativeSrc": "7111:18:46", + "nodeType": "YulLiteral", + "src": "7111:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7096:2:46", + "nodeType": "YulIdentifier", + "src": "7096:2:46" + }, + "nativeSrc": "7096:34:46", + "nodeType": "YulFunctionCall", + "src": "7096:34:46" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "7135:10:46", + "nodeType": "YulIdentifier", + "src": "7135:10:46" + }, + { + "name": "memPtr", + "nativeSrc": "7147:6:46", + "nodeType": "YulIdentifier", + "src": "7147:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "7132:2:46", + "nodeType": "YulIdentifier", + "src": "7132:2:46" + }, + "nativeSrc": "7132:22:46", + "nodeType": "YulFunctionCall", + "src": "7132:22:46" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "7093:2:46", + "nodeType": "YulIdentifier", + "src": "7093:2:46" + }, + "nativeSrc": "7093:62:46", + "nodeType": "YulFunctionCall", + "src": "7093:62:46" + }, + "nativeSrc": "7090:88:46", + "nodeType": "YulIf", + "src": "7090:88:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7194:2:46", + "nodeType": "YulLiteral", + "src": "7194:2:46", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "7198:10:46", + "nodeType": "YulIdentifier", + "src": "7198:10:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7187:6:46", + "nodeType": "YulIdentifier", + "src": "7187:6:46" + }, + "nativeSrc": "7187:22:46", + "nodeType": "YulFunctionCall", + "src": "7187:22:46" + }, + "nativeSrc": "7187:22:46", + "nodeType": "YulExpressionStatement", + "src": "7187:22:46" + } + ] + }, + "name": "allocate_memory", + "nativeSrc": "6940:275:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nativeSrc": "6965:4:46", + "nodeType": "YulTypedName", + "src": "6965:4:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nativeSrc": "6974:6:46", + "nodeType": "YulTypedName", + "src": "6974:6:46", + "type": "" + } + ], + "src": "6940:275:46" + }, + { + "body": { + "nativeSrc": "7277:129:46", + "nodeType": "YulBlock", + "src": "7277:129:46", + "statements": [ + { + "body": { + "nativeSrc": "7321:22:46", + "nodeType": "YulBlock", + "src": "7321:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "7323:16:46", + "nodeType": "YulIdentifier", + "src": "7323:16:46" + }, + "nativeSrc": "7323:18:46", + "nodeType": "YulFunctionCall", + "src": "7323:18:46" + }, + "nativeSrc": "7323:18:46", + "nodeType": "YulExpressionStatement", + "src": "7323:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "7293:6:46", + "nodeType": "YulIdentifier", + "src": "7293:6:46" + }, + { + "kind": "number", + "nativeSrc": "7301:18:46", + "nodeType": "YulLiteral", + "src": "7301:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7290:2:46", + "nodeType": "YulIdentifier", + "src": "7290:2:46" + }, + "nativeSrc": "7290:30:46", + "nodeType": "YulFunctionCall", + "src": "7290:30:46" + }, + "nativeSrc": "7287:56:46", + "nodeType": "YulIf", + "src": "7287:56:46" + }, + { + "nativeSrc": "7352:48:46", + "nodeType": "YulAssignment", + "src": "7352:48:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7372:6:46", + "nodeType": "YulIdentifier", + "src": "7372:6:46" + }, + { + "kind": "number", + "nativeSrc": "7380:2:46", + "nodeType": "YulLiteral", + "src": "7380:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7368:3:46", + "nodeType": "YulIdentifier", + "src": "7368:3:46" + }, + "nativeSrc": "7368:15:46", + "nodeType": "YulFunctionCall", + "src": "7368:15:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7389:2:46", + "nodeType": "YulLiteral", + "src": "7389:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "7385:3:46", + "nodeType": "YulIdentifier", + "src": "7385:3:46" + }, + "nativeSrc": "7385:7:46", + "nodeType": "YulFunctionCall", + "src": "7385:7:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "7364:3:46", + "nodeType": "YulIdentifier", + "src": "7364:3:46" + }, + "nativeSrc": "7364:29:46", + "nodeType": "YulFunctionCall", + "src": "7364:29:46" + }, + { + "kind": "number", + "nativeSrc": "7395:4:46", + "nodeType": "YulLiteral", + "src": "7395:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7360:3:46", + "nodeType": "YulIdentifier", + "src": "7360:3:46" + }, + "nativeSrc": "7360:40:46", + "nodeType": "YulFunctionCall", + "src": "7360:40:46" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "7352:4:46", + "nodeType": "YulIdentifier", + "src": "7352:4:46" + } + ] + } + ] + }, + "name": "array_allocation_size_bytes", + "nativeSrc": "7220:186:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nativeSrc": "7257:6:46", + "nodeType": "YulTypedName", + "src": "7257:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nativeSrc": "7268:4:46", + "nodeType": "YulTypedName", + "src": "7268:4:46", + "type": "" + } + ], + "src": "7220:186:46" + }, + { + "body": { + "nativeSrc": "7463:464:46", + "nodeType": "YulBlock", + "src": "7463:464:46", + "statements": [ + { + "body": { + "nativeSrc": "7512:16:46", + "nodeType": "YulBlock", + "src": "7512:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7521:1:46", + "nodeType": "YulLiteral", + "src": "7521:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7524:1:46", + "nodeType": "YulLiteral", + "src": "7524:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7514:6:46", + "nodeType": "YulIdentifier", + "src": "7514:6:46" + }, + "nativeSrc": "7514:12:46", + "nodeType": "YulFunctionCall", + "src": "7514:12:46" + }, + "nativeSrc": "7514:12:46", + "nodeType": "YulExpressionStatement", + "src": "7514:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7491:6:46", + "nodeType": "YulIdentifier", + "src": "7491:6:46" + }, + { + "kind": "number", + "nativeSrc": "7499:4:46", + "nodeType": "YulLiteral", + "src": "7499:4:46", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7487:3:46", + "nodeType": "YulIdentifier", + "src": "7487:3:46" + }, + "nativeSrc": "7487:17:46", + "nodeType": "YulFunctionCall", + "src": "7487:17:46" + }, + { + "name": "end", + "nativeSrc": "7506:3:46", + "nodeType": "YulIdentifier", + "src": "7506:3:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "7483:3:46", + "nodeType": "YulIdentifier", + "src": "7483:3:46" + }, + "nativeSrc": "7483:27:46", + "nodeType": "YulFunctionCall", + "src": "7483:27:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "7476:6:46", + "nodeType": "YulIdentifier", + "src": "7476:6:46" + }, + "nativeSrc": "7476:35:46", + "nodeType": "YulFunctionCall", + "src": "7476:35:46" + }, + "nativeSrc": "7473:55:46", + "nodeType": "YulIf", + "src": "7473:55:46" + }, + { + "nativeSrc": "7537:34:46", + "nodeType": "YulVariableDeclaration", + "src": "7537:34:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7564:6:46", + "nodeType": "YulIdentifier", + "src": "7564:6:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "7551:12:46", + "nodeType": "YulIdentifier", + "src": "7551:12:46" + }, + "nativeSrc": "7551:20:46", + "nodeType": "YulFunctionCall", + "src": "7551:20:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "7541:6:46", + "nodeType": "YulTypedName", + "src": "7541:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "7580:28:46", + "nodeType": "YulVariableDeclaration", + "src": "7580:28:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "7595:6:46", + "nodeType": "YulIdentifier", + "src": "7595:6:46" + }, + { + "kind": "number", + "nativeSrc": "7603:4:46", + "nodeType": "YulLiteral", + "src": "7603:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7591:3:46", + "nodeType": "YulIdentifier", + "src": "7591:3:46" + }, + "nativeSrc": "7591:17:46", + "nodeType": "YulFunctionCall", + "src": "7591:17:46" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "7584:3:46", + "nodeType": "YulTypedName", + "src": "7584:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "7617:16:46", + "nodeType": "YulVariableDeclaration", + "src": "7617:16:46", + "value": { + "kind": "number", + "nativeSrc": "7632:1:46", + "nodeType": "YulLiteral", + "src": "7632:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "array_1", + "nativeSrc": "7621:7:46", + "nodeType": "YulTypedName", + "src": "7621:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "7642:63:46", + "nodeType": "YulAssignment", + "src": "7642:63:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "7697:6:46", + "nodeType": "YulIdentifier", + "src": "7697:6:46" + } + ], + "functionName": { + "name": "array_allocation_size_bytes", + "nativeSrc": "7669:27:46", + "nodeType": "YulIdentifier", + "src": "7669:27:46" + }, + "nativeSrc": "7669:35:46", + "nodeType": "YulFunctionCall", + "src": "7669:35:46" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "7653:15:46", + "nodeType": "YulIdentifier", + "src": "7653:15:46" + }, + "nativeSrc": "7653:52:46", + "nodeType": "YulFunctionCall", + "src": "7653:52:46" + }, + "variableNames": [ + { + "name": "array_1", + "nativeSrc": "7642:7:46", + "nodeType": "YulIdentifier", + "src": "7642:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array_1", + "nativeSrc": "7721:7:46", + "nodeType": "YulIdentifier", + "src": "7721:7:46" + }, + { + "name": "length", + "nativeSrc": "7730:6:46", + "nodeType": "YulIdentifier", + "src": "7730:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7714:6:46", + "nodeType": "YulIdentifier", + "src": "7714:6:46" + }, + "nativeSrc": "7714:23:46", + "nodeType": "YulFunctionCall", + "src": "7714:23:46" + }, + "nativeSrc": "7714:23:46", + "nodeType": "YulExpressionStatement", + "src": "7714:23:46" + }, + { + "body": { + "nativeSrc": "7775:16:46", + "nodeType": "YulBlock", + "src": "7775:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "7784:1:46", + "nodeType": "YulLiteral", + "src": "7784:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "7787:1:46", + "nodeType": "YulLiteral", + "src": "7787:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "7777:6:46", + "nodeType": "YulIdentifier", + "src": "7777:6:46" + }, + "nativeSrc": "7777:12:46", + "nodeType": "YulFunctionCall", + "src": "7777:12:46" + }, + "nativeSrc": "7777:12:46", + "nodeType": "YulExpressionStatement", + "src": "7777:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "7756:3:46", + "nodeType": "YulIdentifier", + "src": "7756:3:46" + }, + { + "name": "length", + "nativeSrc": "7761:6:46", + "nodeType": "YulIdentifier", + "src": "7761:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7752:3:46", + "nodeType": "YulIdentifier", + "src": "7752:3:46" + }, + "nativeSrc": "7752:16:46", + "nodeType": "YulFunctionCall", + "src": "7752:16:46" + }, + { + "name": "end", + "nativeSrc": "7770:3:46", + "nodeType": "YulIdentifier", + "src": "7770:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "7749:2:46", + "nodeType": "YulIdentifier", + "src": "7749:2:46" + }, + "nativeSrc": "7749:25:46", + "nodeType": "YulFunctionCall", + "src": "7749:25:46" + }, + "nativeSrc": "7746:45:46", + "nodeType": "YulIf", + "src": "7746:45:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "array_1", + "nativeSrc": "7817:7:46", + "nodeType": "YulIdentifier", + "src": "7817:7:46" + }, + { + "kind": "number", + "nativeSrc": "7826:4:46", + "nodeType": "YulLiteral", + "src": "7826:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7813:3:46", + "nodeType": "YulIdentifier", + "src": "7813:3:46" + }, + "nativeSrc": "7813:18:46", + "nodeType": "YulFunctionCall", + "src": "7813:18:46" + }, + { + "name": "src", + "nativeSrc": "7833:3:46", + "nodeType": "YulIdentifier", + "src": "7833:3:46" + }, + { + "name": "length", + "nativeSrc": "7838:6:46", + "nodeType": "YulIdentifier", + "src": "7838:6:46" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "7800:12:46", + "nodeType": "YulIdentifier", + "src": "7800:12:46" + }, + "nativeSrc": "7800:45:46", + "nodeType": "YulFunctionCall", + "src": "7800:45:46" + }, + "nativeSrc": "7800:45:46", + "nodeType": "YulExpressionStatement", + "src": "7800:45:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "array_1", + "nativeSrc": "7869:7:46", + "nodeType": "YulIdentifier", + "src": "7869:7:46" + }, + { + "name": "length", + "nativeSrc": "7878:6:46", + "nodeType": "YulIdentifier", + "src": "7878:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7865:3:46", + "nodeType": "YulIdentifier", + "src": "7865:3:46" + }, + "nativeSrc": "7865:20:46", + "nodeType": "YulFunctionCall", + "src": "7865:20:46" + }, + { + "kind": "number", + "nativeSrc": "7887:4:46", + "nodeType": "YulLiteral", + "src": "7887:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "7861:3:46", + "nodeType": "YulIdentifier", + "src": "7861:3:46" + }, + "nativeSrc": "7861:31:46", + "nodeType": "YulFunctionCall", + "src": "7861:31:46" + }, + { + "kind": "number", + "nativeSrc": "7894:1:46", + "nodeType": "YulLiteral", + "src": "7894:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "7854:6:46", + "nodeType": "YulIdentifier", + "src": "7854:6:46" + }, + "nativeSrc": "7854:42:46", + "nodeType": "YulFunctionCall", + "src": "7854:42:46" + }, + "nativeSrc": "7854:42:46", + "nodeType": "YulExpressionStatement", + "src": "7854:42:46" + }, + { + "nativeSrc": "7905:16:46", + "nodeType": "YulAssignment", + "src": "7905:16:46", + "value": { + "name": "array_1", + "nativeSrc": "7914:7:46", + "nodeType": "YulIdentifier", + "src": "7914:7:46" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "7905:5:46", + "nodeType": "YulIdentifier", + "src": "7905:5:46" + } + ] + } + ] + }, + "name": "abi_decode_bytes", + "nativeSrc": "7411:516:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "7437:6:46", + "nodeType": "YulTypedName", + "src": "7437:6:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "7445:3:46", + "nodeType": "YulTypedName", + "src": "7445:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "7453:5:46", + "nodeType": "YulTypedName", + "src": "7453:5:46", + "type": "" + } + ], + "src": "7411:516:46" + }, + { + "body": { + "nativeSrc": "8011:241:46", + "nodeType": "YulBlock", + "src": "8011:241:46", + "statements": [ + { + "body": { + "nativeSrc": "8057:16:46", + "nodeType": "YulBlock", + "src": "8057:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8066:1:46", + "nodeType": "YulLiteral", + "src": "8066:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8069:1:46", + "nodeType": "YulLiteral", + "src": "8069:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8059:6:46", + "nodeType": "YulIdentifier", + "src": "8059:6:46" + }, + "nativeSrc": "8059:12:46", + "nodeType": "YulFunctionCall", + "src": "8059:12:46" + }, + "nativeSrc": "8059:12:46", + "nodeType": "YulExpressionStatement", + "src": "8059:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "8032:7:46", + "nodeType": "YulIdentifier", + "src": "8032:7:46" + }, + { + "name": "headStart", + "nativeSrc": "8041:9:46", + "nodeType": "YulIdentifier", + "src": "8041:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "8028:3:46", + "nodeType": "YulIdentifier", + "src": "8028:3:46" + }, + "nativeSrc": "8028:23:46", + "nodeType": "YulFunctionCall", + "src": "8028:23:46" + }, + { + "kind": "number", + "nativeSrc": "8053:2:46", + "nodeType": "YulLiteral", + "src": "8053:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "8024:3:46", + "nodeType": "YulIdentifier", + "src": "8024:3:46" + }, + "nativeSrc": "8024:32:46", + "nodeType": "YulFunctionCall", + "src": "8024:32:46" + }, + "nativeSrc": "8021:52:46", + "nodeType": "YulIf", + "src": "8021:52:46" + }, + { + "nativeSrc": "8082:37:46", + "nodeType": "YulVariableDeclaration", + "src": "8082:37:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8109:9:46", + "nodeType": "YulIdentifier", + "src": "8109:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "8096:12:46", + "nodeType": "YulIdentifier", + "src": "8096:12:46" + }, + "nativeSrc": "8096:23:46", + "nodeType": "YulFunctionCall", + "src": "8096:23:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "8086:6:46", + "nodeType": "YulTypedName", + "src": "8086:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8162:16:46", + "nodeType": "YulBlock", + "src": "8162:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8171:1:46", + "nodeType": "YulLiteral", + "src": "8171:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "8174:1:46", + "nodeType": "YulLiteral", + "src": "8174:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "8164:6:46", + "nodeType": "YulIdentifier", + "src": "8164:6:46" + }, + "nativeSrc": "8164:12:46", + "nodeType": "YulFunctionCall", + "src": "8164:12:46" + }, + "nativeSrc": "8164:12:46", + "nodeType": "YulExpressionStatement", + "src": "8164:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "8134:6:46", + "nodeType": "YulIdentifier", + "src": "8134:6:46" + }, + { + "kind": "number", + "nativeSrc": "8142:18:46", + "nodeType": "YulLiteral", + "src": "8142:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "8131:2:46", + "nodeType": "YulIdentifier", + "src": "8131:2:46" + }, + "nativeSrc": "8131:30:46", + "nodeType": "YulFunctionCall", + "src": "8131:30:46" + }, + "nativeSrc": "8128:50:46", + "nodeType": "YulIf", + "src": "8128:50:46" + }, + { + "nativeSrc": "8187:59:46", + "nodeType": "YulAssignment", + "src": "8187:59:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "8218:9:46", + "nodeType": "YulIdentifier", + "src": "8218:9:46" + }, + { + "name": "offset", + "nativeSrc": "8229:6:46", + "nodeType": "YulIdentifier", + "src": "8229:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8214:3:46", + "nodeType": "YulIdentifier", + "src": "8214:3:46" + }, + "nativeSrc": "8214:22:46", + "nodeType": "YulFunctionCall", + "src": "8214:22:46" + }, + { + "name": "dataEnd", + "nativeSrc": "8238:7:46", + "nodeType": "YulIdentifier", + "src": "8238:7:46" + } + ], + "functionName": { + "name": "abi_decode_bytes", + "nativeSrc": "8197:16:46", + "nodeType": "YulIdentifier", + "src": "8197:16:46" + }, + "nativeSrc": "8197:49:46", + "nodeType": "YulFunctionCall", + "src": "8197:49:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "8187:6:46", + "nodeType": "YulIdentifier", + "src": "8187:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes_memory_ptr", + "nativeSrc": "7932:320:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "7977:9:46", + "nodeType": "YulTypedName", + "src": "7977:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "7988:7:46", + "nodeType": "YulTypedName", + "src": "7988:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "8000:6:46", + "nodeType": "YulTypedName", + "src": "8000:6:46", + "type": "" + } + ], + "src": "7932:320:46" + }, + { + "body": { + "nativeSrc": "8323:184:46", + "nodeType": "YulBlock", + "src": "8323:184:46", + "statements": [ + { + "nativeSrc": "8333:10:46", + "nodeType": "YulVariableDeclaration", + "src": "8333:10:46", + "value": { + "kind": "number", + "nativeSrc": "8342:1:46", + "nodeType": "YulLiteral", + "src": "8342:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "8337:1:46", + "nodeType": "YulTypedName", + "src": "8337:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "8402:63:46", + "nodeType": "YulBlock", + "src": "8402:63:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "8427:3:46", + "nodeType": "YulIdentifier", + "src": "8427:3:46" + }, + { + "name": "i", + "nativeSrc": "8432:1:46", + "nodeType": "YulIdentifier", + "src": "8432:1:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8423:3:46", + "nodeType": "YulIdentifier", + "src": "8423:3:46" + }, + "nativeSrc": "8423:11:46", + "nodeType": "YulFunctionCall", + "src": "8423:11:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "8446:3:46", + "nodeType": "YulIdentifier", + "src": "8446:3:46" + }, + { + "name": "i", + "nativeSrc": "8451:1:46", + "nodeType": "YulIdentifier", + "src": "8451:1:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8442:3:46", + "nodeType": "YulIdentifier", + "src": "8442:3:46" + }, + "nativeSrc": "8442:11:46", + "nodeType": "YulFunctionCall", + "src": "8442:11:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8436:5:46", + "nodeType": "YulIdentifier", + "src": "8436:5:46" + }, + "nativeSrc": "8436:18:46", + "nodeType": "YulFunctionCall", + "src": "8436:18:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8416:6:46", + "nodeType": "YulIdentifier", + "src": "8416:6:46" + }, + "nativeSrc": "8416:39:46", + "nodeType": "YulFunctionCall", + "src": "8416:39:46" + }, + "nativeSrc": "8416:39:46", + "nodeType": "YulExpressionStatement", + "src": "8416:39:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "8363:1:46", + "nodeType": "YulIdentifier", + "src": "8363:1:46" + }, + { + "name": "length", + "nativeSrc": "8366:6:46", + "nodeType": "YulIdentifier", + "src": "8366:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "8360:2:46", + "nodeType": "YulIdentifier", + "src": "8360:2:46" + }, + "nativeSrc": "8360:13:46", + "nodeType": "YulFunctionCall", + "src": "8360:13:46" + }, + "nativeSrc": "8352:113:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "8374:19:46", + "nodeType": "YulBlock", + "src": "8374:19:46", + "statements": [ + { + "nativeSrc": "8376:15:46", + "nodeType": "YulAssignment", + "src": "8376:15:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "8385:1:46", + "nodeType": "YulIdentifier", + "src": "8385:1:46" + }, + { + "kind": "number", + "nativeSrc": "8388:2:46", + "nodeType": "YulLiteral", + "src": "8388:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8381:3:46", + "nodeType": "YulIdentifier", + "src": "8381:3:46" + }, + "nativeSrc": "8381:10:46", + "nodeType": "YulFunctionCall", + "src": "8381:10:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "8376:1:46", + "nodeType": "YulIdentifier", + "src": "8376:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "8356:3:46", + "nodeType": "YulBlock", + "src": "8356:3:46", + "statements": [] + }, + "src": "8352:113:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nativeSrc": "8485:3:46", + "nodeType": "YulIdentifier", + "src": "8485:3:46" + }, + { + "name": "length", + "nativeSrc": "8490:6:46", + "nodeType": "YulIdentifier", + "src": "8490:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8481:3:46", + "nodeType": "YulIdentifier", + "src": "8481:3:46" + }, + "nativeSrc": "8481:16:46", + "nodeType": "YulFunctionCall", + "src": "8481:16:46" + }, + { + "kind": "number", + "nativeSrc": "8499:1:46", + "nodeType": "YulLiteral", + "src": "8499:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8474:6:46", + "nodeType": "YulIdentifier", + "src": "8474:6:46" + }, + "nativeSrc": "8474:27:46", + "nodeType": "YulFunctionCall", + "src": "8474:27:46" + }, + "nativeSrc": "8474:27:46", + "nodeType": "YulExpressionStatement", + "src": "8474:27:46" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "8257:250:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nativeSrc": "8301:3:46", + "nodeType": "YulTypedName", + "src": "8301:3:46", + "type": "" + }, + { + "name": "dst", + "nativeSrc": "8306:3:46", + "nodeType": "YulTypedName", + "src": "8306:3:46", + "type": "" + }, + { + "name": "length", + "nativeSrc": "8311:6:46", + "nodeType": "YulTypedName", + "src": "8311:6:46", + "type": "" + } + ], + "src": "8257:250:46" + }, + { + "body": { + "nativeSrc": "8562:221:46", + "nodeType": "YulBlock", + "src": "8562:221:46", + "statements": [ + { + "nativeSrc": "8572:26:46", + "nodeType": "YulVariableDeclaration", + "src": "8572:26:46", + "value": { + "arguments": [ + { + "name": "value", + "nativeSrc": "8592:5:46", + "nodeType": "YulIdentifier", + "src": "8592:5:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "8586:5:46", + "nodeType": "YulIdentifier", + "src": "8586:5:46" + }, + "nativeSrc": "8586:12:46", + "nodeType": "YulFunctionCall", + "src": "8586:12:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "8576:6:46", + "nodeType": "YulTypedName", + "src": "8576:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8614:3:46", + "nodeType": "YulIdentifier", + "src": "8614:3:46" + }, + { + "name": "length", + "nativeSrc": "8619:6:46", + "nodeType": "YulIdentifier", + "src": "8619:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "8607:6:46", + "nodeType": "YulIdentifier", + "src": "8607:6:46" + }, + "nativeSrc": "8607:19:46", + "nodeType": "YulFunctionCall", + "src": "8607:19:46" + }, + "nativeSrc": "8607:19:46", + "nodeType": "YulExpressionStatement", + "src": "8607:19:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "8674:5:46", + "nodeType": "YulIdentifier", + "src": "8674:5:46" + }, + { + "kind": "number", + "nativeSrc": "8681:4:46", + "nodeType": "YulLiteral", + "src": "8681:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8670:3:46", + "nodeType": "YulIdentifier", + "src": "8670:3:46" + }, + "nativeSrc": "8670:16:46", + "nodeType": "YulFunctionCall", + "src": "8670:16:46" + }, + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8692:3:46", + "nodeType": "YulIdentifier", + "src": "8692:3:46" + }, + { + "kind": "number", + "nativeSrc": "8697:4:46", + "nodeType": "YulLiteral", + "src": "8697:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8688:3:46", + "nodeType": "YulIdentifier", + "src": "8688:3:46" + }, + "nativeSrc": "8688:14:46", + "nodeType": "YulFunctionCall", + "src": "8688:14:46" + }, + { + "name": "length", + "nativeSrc": "8704:6:46", + "nodeType": "YulIdentifier", + "src": "8704:6:46" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "8635:34:46", + "nodeType": "YulIdentifier", + "src": "8635:34:46" + }, + "nativeSrc": "8635:76:46", + "nodeType": "YulFunctionCall", + "src": "8635:76:46" + }, + "nativeSrc": "8635:76:46", + "nodeType": "YulExpressionStatement", + "src": "8635:76:46" + }, + { + "nativeSrc": "8720:57:46", + "nodeType": "YulAssignment", + "src": "8720:57:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "pos", + "nativeSrc": "8735:3:46", + "nodeType": "YulIdentifier", + "src": "8735:3:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "8748:6:46", + "nodeType": "YulIdentifier", + "src": "8748:6:46" + }, + { + "kind": "number", + "nativeSrc": "8756:2:46", + "nodeType": "YulLiteral", + "src": "8756:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8744:3:46", + "nodeType": "YulIdentifier", + "src": "8744:3:46" + }, + "nativeSrc": "8744:15:46", + "nodeType": "YulFunctionCall", + "src": "8744:15:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "8765:2:46", + "nodeType": "YulLiteral", + "src": "8765:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "8761:3:46", + "nodeType": "YulIdentifier", + "src": "8761:3:46" + }, + "nativeSrc": "8761:7:46", + "nodeType": "YulFunctionCall", + "src": "8761:7:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "8740:3:46", + "nodeType": "YulIdentifier", + "src": "8740:3:46" + }, + "nativeSrc": "8740:29:46", + "nodeType": "YulFunctionCall", + "src": "8740:29:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8731:3:46", + "nodeType": "YulIdentifier", + "src": "8731:3:46" + }, + "nativeSrc": "8731:39:46", + "nodeType": "YulFunctionCall", + "src": "8731:39:46" + }, + { + "kind": "number", + "nativeSrc": "8772:4:46", + "nodeType": "YulLiteral", + "src": "8772:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "8727:3:46", + "nodeType": "YulIdentifier", + "src": "8727:3:46" + }, + "nativeSrc": "8727:50:46", + "nodeType": "YulFunctionCall", + "src": "8727:50:46" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "8720:3:46", + "nodeType": "YulIdentifier", + "src": "8720:3:46" + } + ] + } + ] + }, + "name": "abi_encode_string", + "nativeSrc": "8512:271:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "8539:5:46", + "nodeType": "YulTypedName", + "src": "8539:5:46", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "8546:3:46", + "nodeType": "YulTypedName", + "src": "8546:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "8554:3:46", + "nodeType": "YulTypedName", + "src": "8554:3:46", + "type": "" + } + ], + "src": "8512:271:46" + }, + { + "body": { + "nativeSrc": "9145:881:46", + "nodeType": "YulBlock", + "src": "9145:881:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9162:9:46", + "nodeType": "YulIdentifier", + "src": "9162:9:46" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "9177:6:46", + "nodeType": "YulIdentifier", + "src": "9177:6:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9189:3:46", + "nodeType": "YulLiteral", + "src": "9189:3:46", + "type": "", + "value": "248" + }, + { + "kind": "number", + "nativeSrc": "9194:3:46", + "nodeType": "YulLiteral", + "src": "9194:3:46", + "type": "", + "value": "255" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "9185:3:46", + "nodeType": "YulIdentifier", + "src": "9185:3:46" + }, + "nativeSrc": "9185:13:46", + "nodeType": "YulFunctionCall", + "src": "9185:13:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "9173:3:46", + "nodeType": "YulIdentifier", + "src": "9173:3:46" + }, + "nativeSrc": "9173:26:46", + "nodeType": "YulFunctionCall", + "src": "9173:26:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9155:6:46", + "nodeType": "YulIdentifier", + "src": "9155:6:46" + }, + "nativeSrc": "9155:45:46", + "nodeType": "YulFunctionCall", + "src": "9155:45:46" + }, + "nativeSrc": "9155:45:46", + "nodeType": "YulExpressionStatement", + "src": "9155:45:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9220:9:46", + "nodeType": "YulIdentifier", + "src": "9220:9:46" + }, + { + "kind": "number", + "nativeSrc": "9231:2:46", + "nodeType": "YulLiteral", + "src": "9231:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9216:3:46", + "nodeType": "YulIdentifier", + "src": "9216:3:46" + }, + "nativeSrc": "9216:18:46", + "nodeType": "YulFunctionCall", + "src": "9216:18:46" + }, + { + "kind": "number", + "nativeSrc": "9236:3:46", + "nodeType": "YulLiteral", + "src": "9236:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9209:6:46", + "nodeType": "YulIdentifier", + "src": "9209:6:46" + }, + "nativeSrc": "9209:31:46", + "nodeType": "YulFunctionCall", + "src": "9209:31:46" + }, + "nativeSrc": "9209:31:46", + "nodeType": "YulExpressionStatement", + "src": "9209:31:46" + }, + { + "nativeSrc": "9249:60:46", + "nodeType": "YulVariableDeclaration", + "src": "9249:60:46", + "value": { + "arguments": [ + { + "name": "value1", + "nativeSrc": "9281:6:46", + "nodeType": "YulIdentifier", + "src": "9281:6:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9293:9:46", + "nodeType": "YulIdentifier", + "src": "9293:9:46" + }, + { + "kind": "number", + "nativeSrc": "9304:3:46", + "nodeType": "YulLiteral", + "src": "9304:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9289:3:46", + "nodeType": "YulIdentifier", + "src": "9289:3:46" + }, + "nativeSrc": "9289:19:46", + "nodeType": "YulFunctionCall", + "src": "9289:19:46" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "9263:17:46", + "nodeType": "YulIdentifier", + "src": "9263:17:46" + }, + "nativeSrc": "9263:46:46", + "nodeType": "YulFunctionCall", + "src": "9263:46:46" + }, + "variables": [ + { + "name": "tail_1", + "nativeSrc": "9253:6:46", + "nodeType": "YulTypedName", + "src": "9253:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9329:9:46", + "nodeType": "YulIdentifier", + "src": "9329:9:46" + }, + { + "kind": "number", + "nativeSrc": "9340:2:46", + "nodeType": "YulLiteral", + "src": "9340:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9325:3:46", + "nodeType": "YulIdentifier", + "src": "9325:3:46" + }, + "nativeSrc": "9325:18:46", + "nodeType": "YulFunctionCall", + "src": "9325:18:46" + }, + { + "arguments": [ + { + "name": "tail_1", + "nativeSrc": "9349:6:46", + "nodeType": "YulIdentifier", + "src": "9349:6:46" + }, + { + "name": "headStart", + "nativeSrc": "9357:9:46", + "nodeType": "YulIdentifier", + "src": "9357:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9345:3:46", + "nodeType": "YulIdentifier", + "src": "9345:3:46" + }, + "nativeSrc": "9345:22:46", + "nodeType": "YulFunctionCall", + "src": "9345:22:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9318:6:46", + "nodeType": "YulIdentifier", + "src": "9318:6:46" + }, + "nativeSrc": "9318:50:46", + "nodeType": "YulFunctionCall", + "src": "9318:50:46" + }, + "nativeSrc": "9318:50:46", + "nodeType": "YulExpressionStatement", + "src": "9318:50:46" + }, + { + "nativeSrc": "9377:47:46", + "nodeType": "YulVariableDeclaration", + "src": "9377:47:46", + "value": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "9409:6:46", + "nodeType": "YulIdentifier", + "src": "9409:6:46" + }, + { + "name": "tail_1", + "nativeSrc": "9417:6:46", + "nodeType": "YulIdentifier", + "src": "9417:6:46" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "9391:17:46", + "nodeType": "YulIdentifier", + "src": "9391:17:46" + }, + "nativeSrc": "9391:33:46", + "nodeType": "YulFunctionCall", + "src": "9391:33:46" + }, + "variables": [ + { + "name": "tail_2", + "nativeSrc": "9381:6:46", + "nodeType": "YulTypedName", + "src": "9381:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9444:9:46", + "nodeType": "YulIdentifier", + "src": "9444:9:46" + }, + { + "kind": "number", + "nativeSrc": "9455:2:46", + "nodeType": "YulLiteral", + "src": "9455:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9440:3:46", + "nodeType": "YulIdentifier", + "src": "9440:3:46" + }, + "nativeSrc": "9440:18:46", + "nodeType": "YulFunctionCall", + "src": "9440:18:46" + }, + { + "name": "value3", + "nativeSrc": "9460:6:46", + "nodeType": "YulIdentifier", + "src": "9460:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9433:6:46", + "nodeType": "YulIdentifier", + "src": "9433:6:46" + }, + "nativeSrc": "9433:34:46", + "nodeType": "YulFunctionCall", + "src": "9433:34:46" + }, + "nativeSrc": "9433:34:46", + "nodeType": "YulExpressionStatement", + "src": "9433:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9487:9:46", + "nodeType": "YulIdentifier", + "src": "9487:9:46" + }, + { + "kind": "number", + "nativeSrc": "9498:3:46", + "nodeType": "YulLiteral", + "src": "9498:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9483:3:46", + "nodeType": "YulIdentifier", + "src": "9483:3:46" + }, + "nativeSrc": "9483:19:46", + "nodeType": "YulFunctionCall", + "src": "9483:19:46" + }, + { + "arguments": [ + { + "name": "value4", + "nativeSrc": "9508:6:46", + "nodeType": "YulIdentifier", + "src": "9508:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "9524:3:46", + "nodeType": "YulLiteral", + "src": "9524:3:46", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "9529:1:46", + "nodeType": "YulLiteral", + "src": "9529:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "9520:3:46", + "nodeType": "YulIdentifier", + "src": "9520:3:46" + }, + "nativeSrc": "9520:11:46", + "nodeType": "YulFunctionCall", + "src": "9520:11:46" + }, + { + "kind": "number", + "nativeSrc": "9533:1:46", + "nodeType": "YulLiteral", + "src": "9533:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9516:3:46", + "nodeType": "YulIdentifier", + "src": "9516:3:46" + }, + "nativeSrc": "9516:19:46", + "nodeType": "YulFunctionCall", + "src": "9516:19:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "9504:3:46", + "nodeType": "YulIdentifier", + "src": "9504:3:46" + }, + "nativeSrc": "9504:32:46", + "nodeType": "YulFunctionCall", + "src": "9504:32:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9476:6:46", + "nodeType": "YulIdentifier", + "src": "9476:6:46" + }, + "nativeSrc": "9476:61:46", + "nodeType": "YulFunctionCall", + "src": "9476:61:46" + }, + "nativeSrc": "9476:61:46", + "nodeType": "YulExpressionStatement", + "src": "9476:61:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9557:9:46", + "nodeType": "YulIdentifier", + "src": "9557:9:46" + }, + { + "kind": "number", + "nativeSrc": "9568:3:46", + "nodeType": "YulLiteral", + "src": "9568:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9553:3:46", + "nodeType": "YulIdentifier", + "src": "9553:3:46" + }, + "nativeSrc": "9553:19:46", + "nodeType": "YulFunctionCall", + "src": "9553:19:46" + }, + { + "name": "value5", + "nativeSrc": "9574:6:46", + "nodeType": "YulIdentifier", + "src": "9574:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9546:6:46", + "nodeType": "YulIdentifier", + "src": "9546:6:46" + }, + "nativeSrc": "9546:35:46", + "nodeType": "YulFunctionCall", + "src": "9546:35:46" + }, + "nativeSrc": "9546:35:46", + "nodeType": "YulExpressionStatement", + "src": "9546:35:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "9601:9:46", + "nodeType": "YulIdentifier", + "src": "9601:9:46" + }, + { + "kind": "number", + "nativeSrc": "9612:3:46", + "nodeType": "YulLiteral", + "src": "9612:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9597:3:46", + "nodeType": "YulIdentifier", + "src": "9597:3:46" + }, + "nativeSrc": "9597:19:46", + "nodeType": "YulFunctionCall", + "src": "9597:19:46" + }, + { + "arguments": [ + { + "name": "tail_2", + "nativeSrc": "9622:6:46", + "nodeType": "YulIdentifier", + "src": "9622:6:46" + }, + { + "name": "headStart", + "nativeSrc": "9630:9:46", + "nodeType": "YulIdentifier", + "src": "9630:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "9618:3:46", + "nodeType": "YulIdentifier", + "src": "9618:3:46" + }, + "nativeSrc": "9618:22:46", + "nodeType": "YulFunctionCall", + "src": "9618:22:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9590:6:46", + "nodeType": "YulIdentifier", + "src": "9590:6:46" + }, + "nativeSrc": "9590:51:46", + "nodeType": "YulFunctionCall", + "src": "9590:51:46" + }, + "nativeSrc": "9590:51:46", + "nodeType": "YulExpressionStatement", + "src": "9590:51:46" + }, + { + "nativeSrc": "9650:17:46", + "nodeType": "YulVariableDeclaration", + "src": "9650:17:46", + "value": { + "name": "tail_2", + "nativeSrc": "9661:6:46", + "nodeType": "YulIdentifier", + "src": "9661:6:46" + }, + "variables": [ + { + "name": "pos", + "nativeSrc": "9654:3:46", + "nodeType": "YulTypedName", + "src": "9654:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "9676:27:46", + "nodeType": "YulVariableDeclaration", + "src": "9676:27:46", + "value": { + "arguments": [ + { + "name": "value6", + "nativeSrc": "9696:6:46", + "nodeType": "YulIdentifier", + "src": "9696:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9690:5:46", + "nodeType": "YulIdentifier", + "src": "9690:5:46" + }, + "nativeSrc": "9690:13:46", + "nodeType": "YulFunctionCall", + "src": "9690:13:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "9680:6:46", + "nodeType": "YulTypedName", + "src": "9680:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "tail_2", + "nativeSrc": "9719:6:46", + "nodeType": "YulIdentifier", + "src": "9719:6:46" + }, + { + "name": "length", + "nativeSrc": "9727:6:46", + "nodeType": "YulIdentifier", + "src": "9727:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9712:6:46", + "nodeType": "YulIdentifier", + "src": "9712:6:46" + }, + "nativeSrc": "9712:22:46", + "nodeType": "YulFunctionCall", + "src": "9712:22:46" + }, + "nativeSrc": "9712:22:46", + "nodeType": "YulExpressionStatement", + "src": "9712:22:46" + }, + { + "nativeSrc": "9743:22:46", + "nodeType": "YulAssignment", + "src": "9743:22:46", + "value": { + "arguments": [ + { + "name": "tail_2", + "nativeSrc": "9754:6:46", + "nodeType": "YulIdentifier", + "src": "9754:6:46" + }, + { + "kind": "number", + "nativeSrc": "9762:2:46", + "nodeType": "YulLiteral", + "src": "9762:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9750:3:46", + "nodeType": "YulIdentifier", + "src": "9750:3:46" + }, + "nativeSrc": "9750:15:46", + "nodeType": "YulFunctionCall", + "src": "9750:15:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "9743:3:46", + "nodeType": "YulIdentifier", + "src": "9743:3:46" + } + ] + }, + { + "nativeSrc": "9774:29:46", + "nodeType": "YulVariableDeclaration", + "src": "9774:29:46", + "value": { + "arguments": [ + { + "name": "value6", + "nativeSrc": "9792:6:46", + "nodeType": "YulIdentifier", + "src": "9792:6:46" + }, + { + "kind": "number", + "nativeSrc": "9800:2:46", + "nodeType": "YulLiteral", + "src": "9800:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9788:3:46", + "nodeType": "YulIdentifier", + "src": "9788:3:46" + }, + "nativeSrc": "9788:15:46", + "nodeType": "YulFunctionCall", + "src": "9788:15:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "9778:6:46", + "nodeType": "YulTypedName", + "src": "9778:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "9812:10:46", + "nodeType": "YulVariableDeclaration", + "src": "9812:10:46", + "value": { + "kind": "number", + "nativeSrc": "9821:1:46", + "nodeType": "YulLiteral", + "src": "9821:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "9816:1:46", + "nodeType": "YulTypedName", + "src": "9816:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "9880:120:46", + "nodeType": "YulBlock", + "src": "9880:120:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9901:3:46", + "nodeType": "YulIdentifier", + "src": "9901:3:46" + }, + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "9912:6:46", + "nodeType": "YulIdentifier", + "src": "9912:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "9906:5:46", + "nodeType": "YulIdentifier", + "src": "9906:5:46" + }, + "nativeSrc": "9906:13:46", + "nodeType": "YulFunctionCall", + "src": "9906:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "9894:6:46", + "nodeType": "YulIdentifier", + "src": "9894:6:46" + }, + "nativeSrc": "9894:26:46", + "nodeType": "YulFunctionCall", + "src": "9894:26:46" + }, + "nativeSrc": "9894:26:46", + "nodeType": "YulExpressionStatement", + "src": "9894:26:46" + }, + { + "nativeSrc": "9933:19:46", + "nodeType": "YulAssignment", + "src": "9933:19:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "9944:3:46", + "nodeType": "YulIdentifier", + "src": "9944:3:46" + }, + { + "kind": "number", + "nativeSrc": "9949:2:46", + "nodeType": "YulLiteral", + "src": "9949:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9940:3:46", + "nodeType": "YulIdentifier", + "src": "9940:3:46" + }, + "nativeSrc": "9940:12:46", + "nodeType": "YulFunctionCall", + "src": "9940:12:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "9933:3:46", + "nodeType": "YulIdentifier", + "src": "9933:3:46" + } + ] + }, + { + "nativeSrc": "9965:25:46", + "nodeType": "YulAssignment", + "src": "9965:25:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "9979:6:46", + "nodeType": "YulIdentifier", + "src": "9979:6:46" + }, + { + "kind": "number", + "nativeSrc": "9987:2:46", + "nodeType": "YulLiteral", + "src": "9987:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9975:3:46", + "nodeType": "YulIdentifier", + "src": "9975:3:46" + }, + "nativeSrc": "9975:15:46", + "nodeType": "YulFunctionCall", + "src": "9975:15:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "9965:6:46", + "nodeType": "YulIdentifier", + "src": "9965:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "9842:1:46", + "nodeType": "YulIdentifier", + "src": "9842:1:46" + }, + { + "name": "length", + "nativeSrc": "9845:6:46", + "nodeType": "YulIdentifier", + "src": "9845:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "9839:2:46", + "nodeType": "YulIdentifier", + "src": "9839:2:46" + }, + "nativeSrc": "9839:13:46", + "nodeType": "YulFunctionCall", + "src": "9839:13:46" + }, + "nativeSrc": "9831:169:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "9853:18:46", + "nodeType": "YulBlock", + "src": "9853:18:46", + "statements": [ + { + "nativeSrc": "9855:14:46", + "nodeType": "YulAssignment", + "src": "9855:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "9864:1:46", + "nodeType": "YulIdentifier", + "src": "9864:1:46" + }, + { + "kind": "number", + "nativeSrc": "9867:1:46", + "nodeType": "YulLiteral", + "src": "9867:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "9860:3:46", + "nodeType": "YulIdentifier", + "src": "9860:3:46" + }, + "nativeSrc": "9860:9:46", + "nodeType": "YulFunctionCall", + "src": "9860:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "9855:1:46", + "nodeType": "YulIdentifier", + "src": "9855:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "9835:3:46", + "nodeType": "YulBlock", + "src": "9835:3:46", + "statements": [] + }, + "src": "9831:169:46" + }, + { + "nativeSrc": "10009:11:46", + "nodeType": "YulAssignment", + "src": "10009:11:46", + "value": { + "name": "pos", + "nativeSrc": "10017:3:46", + "nodeType": "YulIdentifier", + "src": "10017:3:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10009:4:46", + "nodeType": "YulIdentifier", + "src": "10009:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__to_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "nativeSrc": "8788:1238:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "9066:9:46", + "nodeType": "YulTypedName", + "src": "9066:9:46", + "type": "" + }, + { + "name": "value6", + "nativeSrc": "9077:6:46", + "nodeType": "YulTypedName", + "src": "9077:6:46", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "9085:6:46", + "nodeType": "YulTypedName", + "src": "9085:6:46", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "9093:6:46", + "nodeType": "YulTypedName", + "src": "9093:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "9101:6:46", + "nodeType": "YulTypedName", + "src": "9101:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "9109:6:46", + "nodeType": "YulTypedName", + "src": "9109:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "9117:6:46", + "nodeType": "YulTypedName", + "src": "9117:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "9125:6:46", + "nodeType": "YulTypedName", + "src": "9125:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "9136:4:46", + "nodeType": "YulTypedName", + "src": "9136:4:46", + "type": "" + } + ], + "src": "8788:1238:46" + }, + { + "body": { + "nativeSrc": "10132:177:46", + "nodeType": "YulBlock", + "src": "10132:177:46", + "statements": [ + { + "body": { + "nativeSrc": "10178:16:46", + "nodeType": "YulBlock", + "src": "10178:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10187:1:46", + "nodeType": "YulLiteral", + "src": "10187:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "10190:1:46", + "nodeType": "YulLiteral", + "src": "10190:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "10180:6:46", + "nodeType": "YulIdentifier", + "src": "10180:6:46" + }, + "nativeSrc": "10180:12:46", + "nodeType": "YulFunctionCall", + "src": "10180:12:46" + }, + "nativeSrc": "10180:12:46", + "nodeType": "YulExpressionStatement", + "src": "10180:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10153:7:46", + "nodeType": "YulIdentifier", + "src": "10153:7:46" + }, + { + "name": "headStart", + "nativeSrc": "10162:9:46", + "nodeType": "YulIdentifier", + "src": "10162:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10149:3:46", + "nodeType": "YulIdentifier", + "src": "10149:3:46" + }, + "nativeSrc": "10149:23:46", + "nodeType": "YulFunctionCall", + "src": "10149:23:46" + }, + { + "kind": "number", + "nativeSrc": "10174:2:46", + "nodeType": "YulLiteral", + "src": "10174:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10145:3:46", + "nodeType": "YulIdentifier", + "src": "10145:3:46" + }, + "nativeSrc": "10145:32:46", + "nodeType": "YulFunctionCall", + "src": "10145:32:46" + }, + "nativeSrc": "10142:52:46", + "nodeType": "YulIf", + "src": "10142:52:46" + }, + { + "nativeSrc": "10203:36:46", + "nodeType": "YulVariableDeclaration", + "src": "10203:36:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10229:9:46", + "nodeType": "YulIdentifier", + "src": "10229:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10216:12:46", + "nodeType": "YulIdentifier", + "src": "10216:12:46" + }, + "nativeSrc": "10216:23:46", + "nodeType": "YulFunctionCall", + "src": "10216:23:46" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "10207:5:46", + "nodeType": "YulTypedName", + "src": "10207:5:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "10273:5:46", + "nodeType": "YulIdentifier", + "src": "10273:5:46" + } + ], + "functionName": { + "name": "validator_revert_address", + "nativeSrc": "10248:24:46", + "nodeType": "YulIdentifier", + "src": "10248:24:46" + }, + "nativeSrc": "10248:31:46", + "nodeType": "YulFunctionCall", + "src": "10248:31:46" + }, + "nativeSrc": "10248:31:46", + "nodeType": "YulExpressionStatement", + "src": "10248:31:46" + }, + { + "nativeSrc": "10288:15:46", + "nodeType": "YulAssignment", + "src": "10288:15:46", + "value": { + "name": "value", + "nativeSrc": "10298:5:46", + "nodeType": "YulIdentifier", + "src": "10298:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "10288:6:46", + "nodeType": "YulIdentifier", + "src": "10288:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_contract$_IAttestationValidator_$14634", + "nativeSrc": "10031:278:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10098:9:46", + "nodeType": "YulTypedName", + "src": "10098:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10109:7:46", + "nodeType": "YulTypedName", + "src": "10109:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10121:6:46", + "nodeType": "YulTypedName", + "src": "10121:6:46", + "type": "" + } + ], + "src": "10031:278:46" + }, + { + "body": { + "nativeSrc": "10415:102:46", + "nodeType": "YulBlock", + "src": "10415:102:46", + "statements": [ + { + "nativeSrc": "10425:26:46", + "nodeType": "YulAssignment", + "src": "10425:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10437:9:46", + "nodeType": "YulIdentifier", + "src": "10437:9:46" + }, + { + "kind": "number", + "nativeSrc": "10448:2:46", + "nodeType": "YulLiteral", + "src": "10448:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10433:3:46", + "nodeType": "YulIdentifier", + "src": "10433:3:46" + }, + "nativeSrc": "10433:18:46", + "nodeType": "YulFunctionCall", + "src": "10433:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "10425:4:46", + "nodeType": "YulIdentifier", + "src": "10425:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10467:9:46", + "nodeType": "YulIdentifier", + "src": "10467:9:46" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "10482:6:46", + "nodeType": "YulIdentifier", + "src": "10482:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10498:3:46", + "nodeType": "YulLiteral", + "src": "10498:3:46", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "10503:1:46", + "nodeType": "YulLiteral", + "src": "10503:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "10494:3:46", + "nodeType": "YulIdentifier", + "src": "10494:3:46" + }, + "nativeSrc": "10494:11:46", + "nodeType": "YulFunctionCall", + "src": "10494:11:46" + }, + { + "kind": "number", + "nativeSrc": "10507:1:46", + "nodeType": "YulLiteral", + "src": "10507:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10490:3:46", + "nodeType": "YulIdentifier", + "src": "10490:3:46" + }, + "nativeSrc": "10490:19:46", + "nodeType": "YulFunctionCall", + "src": "10490:19:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "10478:3:46", + "nodeType": "YulIdentifier", + "src": "10478:3:46" + }, + "nativeSrc": "10478:32:46", + "nodeType": "YulFunctionCall", + "src": "10478:32:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "10460:6:46", + "nodeType": "YulIdentifier", + "src": "10460:6:46" + }, + "nativeSrc": "10460:51:46", + "nodeType": "YulFunctionCall", + "src": "10460:51:46" + }, + "nativeSrc": "10460:51:46", + "nodeType": "YulExpressionStatement", + "src": "10460:51:46" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nativeSrc": "10314:203:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10384:9:46", + "nodeType": "YulTypedName", + "src": "10384:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "10395:6:46", + "nodeType": "YulTypedName", + "src": "10395:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "10406:4:46", + "nodeType": "YulTypedName", + "src": "10406:4:46", + "type": "" + } + ], + "src": "10314:203:46" + }, + { + "body": { + "nativeSrc": "10602:241:46", + "nodeType": "YulBlock", + "src": "10602:241:46", + "statements": [ + { + "body": { + "nativeSrc": "10648:16:46", + "nodeType": "YulBlock", + "src": "10648:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10657:1:46", + "nodeType": "YulLiteral", + "src": "10657:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "10660:1:46", + "nodeType": "YulLiteral", + "src": "10660:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "10650:6:46", + "nodeType": "YulIdentifier", + "src": "10650:6:46" + }, + "nativeSrc": "10650:12:46", + "nodeType": "YulFunctionCall", + "src": "10650:12:46" + }, + "nativeSrc": "10650:12:46", + "nodeType": "YulExpressionStatement", + "src": "10650:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10623:7:46", + "nodeType": "YulIdentifier", + "src": "10623:7:46" + }, + { + "name": "headStart", + "nativeSrc": "10632:9:46", + "nodeType": "YulIdentifier", + "src": "10632:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10619:3:46", + "nodeType": "YulIdentifier", + "src": "10619:3:46" + }, + "nativeSrc": "10619:23:46", + "nodeType": "YulFunctionCall", + "src": "10619:23:46" + }, + { + "kind": "number", + "nativeSrc": "10644:2:46", + "nodeType": "YulLiteral", + "src": "10644:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10615:3:46", + "nodeType": "YulIdentifier", + "src": "10615:3:46" + }, + "nativeSrc": "10615:32:46", + "nodeType": "YulFunctionCall", + "src": "10615:32:46" + }, + "nativeSrc": "10612:52:46", + "nodeType": "YulIf", + "src": "10612:52:46" + }, + { + "nativeSrc": "10673:37:46", + "nodeType": "YulVariableDeclaration", + "src": "10673:37:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10700:9:46", + "nodeType": "YulIdentifier", + "src": "10700:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "10687:12:46", + "nodeType": "YulIdentifier", + "src": "10687:12:46" + }, + "nativeSrc": "10687:23:46", + "nodeType": "YulFunctionCall", + "src": "10687:23:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "10677:6:46", + "nodeType": "YulTypedName", + "src": "10677:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "10753:16:46", + "nodeType": "YulBlock", + "src": "10753:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "10762:1:46", + "nodeType": "YulLiteral", + "src": "10762:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "10765:1:46", + "nodeType": "YulLiteral", + "src": "10765:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "10755:6:46", + "nodeType": "YulIdentifier", + "src": "10755:6:46" + }, + "nativeSrc": "10755:12:46", + "nodeType": "YulFunctionCall", + "src": "10755:12:46" + }, + "nativeSrc": "10755:12:46", + "nodeType": "YulExpressionStatement", + "src": "10755:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "10725:6:46", + "nodeType": "YulIdentifier", + "src": "10725:6:46" + }, + { + "kind": "number", + "nativeSrc": "10733:18:46", + "nodeType": "YulLiteral", + "src": "10733:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "10722:2:46", + "nodeType": "YulIdentifier", + "src": "10722:2:46" + }, + "nativeSrc": "10722:30:46", + "nodeType": "YulFunctionCall", + "src": "10722:30:46" + }, + "nativeSrc": "10719:50:46", + "nodeType": "YulIf", + "src": "10719:50:46" + }, + { + "nativeSrc": "10778:59:46", + "nodeType": "YulAssignment", + "src": "10778:59:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "10809:9:46", + "nodeType": "YulIdentifier", + "src": "10809:9:46" + }, + { + "name": "offset", + "nativeSrc": "10820:6:46", + "nodeType": "YulIdentifier", + "src": "10820:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "10805:3:46", + "nodeType": "YulIdentifier", + "src": "10805:3:46" + }, + "nativeSrc": "10805:22:46", + "nodeType": "YulFunctionCall", + "src": "10805:22:46" + }, + { + "name": "dataEnd", + "nativeSrc": "10829:7:46", + "nodeType": "YulIdentifier", + "src": "10829:7:46" + } + ], + "functionName": { + "name": "abi_decode_bytes", + "nativeSrc": "10788:16:46", + "nodeType": "YulIdentifier", + "src": "10788:16:46" + }, + "nativeSrc": "10788:49:46", + "nodeType": "YulFunctionCall", + "src": "10788:49:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "10778:6:46", + "nodeType": "YulIdentifier", + "src": "10778:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr", + "nativeSrc": "10522:321:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10568:9:46", + "nodeType": "YulTypedName", + "src": "10568:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10579:7:46", + "nodeType": "YulTypedName", + "src": "10579:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10591:6:46", + "nodeType": "YulTypedName", + "src": "10591:6:46", + "type": "" + } + ], + "src": "10522:321:46" + }, + { + "body": { + "nativeSrc": "10951:315:46", + "nodeType": "YulBlock", + "src": "10951:315:46", + "statements": [ + { + "body": { + "nativeSrc": "10997:16:46", + "nodeType": "YulBlock", + "src": "10997:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "11006:1:46", + "nodeType": "YulLiteral", + "src": "11006:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "11009:1:46", + "nodeType": "YulLiteral", + "src": "11009:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "10999:6:46", + "nodeType": "YulIdentifier", + "src": "10999:6:46" + }, + "nativeSrc": "10999:12:46", + "nodeType": "YulFunctionCall", + "src": "10999:12:46" + }, + "nativeSrc": "10999:12:46", + "nodeType": "YulExpressionStatement", + "src": "10999:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "10972:7:46", + "nodeType": "YulIdentifier", + "src": "10972:7:46" + }, + { + "name": "headStart", + "nativeSrc": "10981:9:46", + "nodeType": "YulIdentifier", + "src": "10981:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "10968:3:46", + "nodeType": "YulIdentifier", + "src": "10968:3:46" + }, + "nativeSrc": "10968:23:46", + "nodeType": "YulFunctionCall", + "src": "10968:23:46" + }, + { + "kind": "number", + "nativeSrc": "10993:2:46", + "nodeType": "YulLiteral", + "src": "10993:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "10964:3:46", + "nodeType": "YulIdentifier", + "src": "10964:3:46" + }, + "nativeSrc": "10964:32:46", + "nodeType": "YulFunctionCall", + "src": "10964:32:46" + }, + "nativeSrc": "10961:52:46", + "nodeType": "YulIf", + "src": "10961:52:46" + }, + { + "nativeSrc": "11022:14:46", + "nodeType": "YulVariableDeclaration", + "src": "11022:14:46", + "value": { + "kind": "number", + "nativeSrc": "11035:1:46", + "nodeType": "YulLiteral", + "src": "11035:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "11026:5:46", + "nodeType": "YulTypedName", + "src": "11026:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "11045:32:46", + "nodeType": "YulAssignment", + "src": "11045:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11067:9:46", + "nodeType": "YulIdentifier", + "src": "11067:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11054:12:46", + "nodeType": "YulIdentifier", + "src": "11054:12:46" + }, + "nativeSrc": "11054:23:46", + "nodeType": "YulFunctionCall", + "src": "11054:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "11045:5:46", + "nodeType": "YulIdentifier", + "src": "11045:5:46" + } + ] + }, + { + "nativeSrc": "11086:15:46", + "nodeType": "YulAssignment", + "src": "11086:15:46", + "value": { + "name": "value", + "nativeSrc": "11096:5:46", + "nodeType": "YulIdentifier", + "src": "11096:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "11086:6:46", + "nodeType": "YulIdentifier", + "src": "11086:6:46" + } + ] + }, + { + "nativeSrc": "11110:16:46", + "nodeType": "YulVariableDeclaration", + "src": "11110:16:46", + "value": { + "kind": "number", + "nativeSrc": "11125:1:46", + "nodeType": "YulLiteral", + "src": "11125:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "11114:7:46", + "nodeType": "YulTypedName", + "src": "11114:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "11135:43:46", + "nodeType": "YulAssignment", + "src": "11135:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11163:9:46", + "nodeType": "YulIdentifier", + "src": "11163:9:46" + }, + { + "kind": "number", + "nativeSrc": "11174:2:46", + "nodeType": "YulLiteral", + "src": "11174:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11159:3:46", + "nodeType": "YulIdentifier", + "src": "11159:3:46" + }, + "nativeSrc": "11159:18:46", + "nodeType": "YulFunctionCall", + "src": "11159:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "11146:12:46", + "nodeType": "YulIdentifier", + "src": "11146:12:46" + }, + "nativeSrc": "11146:32:46", + "nodeType": "YulFunctionCall", + "src": "11146:32:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "11135:7:46", + "nodeType": "YulIdentifier", + "src": "11135:7:46" + } + ] + }, + { + "nativeSrc": "11187:17:46", + "nodeType": "YulAssignment", + "src": "11187:17:46", + "value": { + "name": "value_1", + "nativeSrc": "11197:7:46", + "nodeType": "YulIdentifier", + "src": "11197:7:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "11187:6:46", + "nodeType": "YulIdentifier", + "src": "11187:6:46" + } + ] + }, + { + "nativeSrc": "11213:47:46", + "nodeType": "YulAssignment", + "src": "11213:47:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11245:9:46", + "nodeType": "YulIdentifier", + "src": "11245:9:46" + }, + { + "kind": "number", + "nativeSrc": "11256:2:46", + "nodeType": "YulLiteral", + "src": "11256:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11241:3:46", + "nodeType": "YulIdentifier", + "src": "11241:3:46" + }, + "nativeSrc": "11241:18:46", + "nodeType": "YulFunctionCall", + "src": "11241:18:46" + } + ], + "functionName": { + "name": "abi_decode_uint64", + "nativeSrc": "11223:17:46", + "nodeType": "YulIdentifier", + "src": "11223:17:46" + }, + "nativeSrc": "11223:37:46", + "nodeType": "YulFunctionCall", + "src": "11223:37:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "11213:6:46", + "nodeType": "YulIdentifier", + "src": "11213:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_uint64", + "nativeSrc": "10848:418:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "10901:9:46", + "nodeType": "YulTypedName", + "src": "10901:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "10912:7:46", + "nodeType": "YulTypedName", + "src": "10912:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "10924:6:46", + "nodeType": "YulTypedName", + "src": "10924:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "10932:6:46", + "nodeType": "YulTypedName", + "src": "10932:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "10940:6:46", + "nodeType": "YulTypedName", + "src": "10940:6:46", + "type": "" + } + ], + "src": "10848:418:46" + }, + { + "body": { + "nativeSrc": "11392:99:46", + "nodeType": "YulBlock", + "src": "11392:99:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11409:9:46", + "nodeType": "YulIdentifier", + "src": "11409:9:46" + }, + { + "kind": "number", + "nativeSrc": "11420:2:46", + "nodeType": "YulLiteral", + "src": "11420:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11402:6:46", + "nodeType": "YulIdentifier", + "src": "11402:6:46" + }, + "nativeSrc": "11402:21:46", + "nodeType": "YulFunctionCall", + "src": "11402:21:46" + }, + "nativeSrc": "11402:21:46", + "nodeType": "YulExpressionStatement", + "src": "11402:21:46" + }, + { + "nativeSrc": "11432:53:46", + "nodeType": "YulAssignment", + "src": "11432:53:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "11458:6:46", + "nodeType": "YulIdentifier", + "src": "11458:6:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11470:9:46", + "nodeType": "YulIdentifier", + "src": "11470:9:46" + }, + { + "kind": "number", + "nativeSrc": "11481:2:46", + "nodeType": "YulLiteral", + "src": "11481:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11466:3:46", + "nodeType": "YulIdentifier", + "src": "11466:3:46" + }, + "nativeSrc": "11466:18:46", + "nodeType": "YulFunctionCall", + "src": "11466:18:46" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "11440:17:46", + "nodeType": "YulIdentifier", + "src": "11440:17:46" + }, + "nativeSrc": "11440:45:46", + "nodeType": "YulFunctionCall", + "src": "11440:45:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11432:4:46", + "nodeType": "YulIdentifier", + "src": "11432:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "11271:220:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11361:9:46", + "nodeType": "YulTypedName", + "src": "11361:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "11372:6:46", + "nodeType": "YulTypedName", + "src": "11372:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11383:4:46", + "nodeType": "YulTypedName", + "src": "11383:4:46", + "type": "" + } + ], + "src": "11271:220:46" + }, + { + "body": { + "nativeSrc": "11643:209:46", + "nodeType": "YulBlock", + "src": "11643:209:46", + "statements": [ + { + "nativeSrc": "11653:26:46", + "nodeType": "YulAssignment", + "src": "11653:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11665:9:46", + "nodeType": "YulIdentifier", + "src": "11665:9:46" + }, + { + "kind": "number", + "nativeSrc": "11676:2:46", + "nodeType": "YulLiteral", + "src": "11676:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11661:3:46", + "nodeType": "YulIdentifier", + "src": "11661:3:46" + }, + "nativeSrc": "11661:18:46", + "nodeType": "YulFunctionCall", + "src": "11661:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "11653:4:46", + "nodeType": "YulIdentifier", + "src": "11653:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11695:9:46", + "nodeType": "YulIdentifier", + "src": "11695:9:46" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "11712:6:46", + "nodeType": "YulIdentifier", + "src": "11712:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "11706:5:46", + "nodeType": "YulIdentifier", + "src": "11706:5:46" + }, + "nativeSrc": "11706:13:46", + "nodeType": "YulFunctionCall", + "src": "11706:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11688:6:46", + "nodeType": "YulIdentifier", + "src": "11688:6:46" + }, + "nativeSrc": "11688:32:46", + "nodeType": "YulFunctionCall", + "src": "11688:32:46" + }, + "nativeSrc": "11688:32:46", + "nodeType": "YulExpressionStatement", + "src": "11688:32:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11740:9:46", + "nodeType": "YulIdentifier", + "src": "11740:9:46" + }, + { + "kind": "number", + "nativeSrc": "11751:4:46", + "nodeType": "YulLiteral", + "src": "11751:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11736:3:46", + "nodeType": "YulIdentifier", + "src": "11736:3:46" + }, + "nativeSrc": "11736:20:46", + "nodeType": "YulFunctionCall", + "src": "11736:20:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "11768:6:46", + "nodeType": "YulIdentifier", + "src": "11768:6:46" + }, + { + "kind": "number", + "nativeSrc": "11776:4:46", + "nodeType": "YulLiteral", + "src": "11776:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11764:3:46", + "nodeType": "YulIdentifier", + "src": "11764:3:46" + }, + "nativeSrc": "11764:17:46", + "nodeType": "YulFunctionCall", + "src": "11764:17:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "11758:5:46", + "nodeType": "YulIdentifier", + "src": "11758:5:46" + }, + "nativeSrc": "11758:24:46", + "nodeType": "YulFunctionCall", + "src": "11758:24:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11729:6:46", + "nodeType": "YulIdentifier", + "src": "11729:6:46" + }, + "nativeSrc": "11729:54:46", + "nodeType": "YulFunctionCall", + "src": "11729:54:46" + }, + "nativeSrc": "11729:54:46", + "nodeType": "YulExpressionStatement", + "src": "11729:54:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "11803:9:46", + "nodeType": "YulIdentifier", + "src": "11803:9:46" + }, + { + "kind": "number", + "nativeSrc": "11814:4:46", + "nodeType": "YulLiteral", + "src": "11814:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11799:3:46", + "nodeType": "YulIdentifier", + "src": "11799:3:46" + }, + "nativeSrc": "11799:20:46", + "nodeType": "YulFunctionCall", + "src": "11799:20:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "11831:6:46", + "nodeType": "YulIdentifier", + "src": "11831:6:46" + }, + { + "kind": "number", + "nativeSrc": "11839:4:46", + "nodeType": "YulLiteral", + "src": "11839:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11827:3:46", + "nodeType": "YulIdentifier", + "src": "11827:3:46" + }, + "nativeSrc": "11827:17:46", + "nodeType": "YulFunctionCall", + "src": "11827:17:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "11821:5:46", + "nodeType": "YulIdentifier", + "src": "11821:5:46" + }, + "nativeSrc": "11821:24:46", + "nodeType": "YulFunctionCall", + "src": "11821:24:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "11792:6:46", + "nodeType": "YulIdentifier", + "src": "11792:6:46" + }, + "nativeSrc": "11792:54:46", + "nodeType": "YulFunctionCall", + "src": "11792:54:46" + }, + "nativeSrc": "11792:54:46", + "nodeType": "YulExpressionStatement", + "src": "11792:54:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Roots_$1390_memory_ptr__to_t_struct$_Roots_$1390_memory_ptr__fromStack_reversed", + "nativeSrc": "11496:356:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "11612:9:46", + "nodeType": "YulTypedName", + "src": "11612:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "11623:6:46", + "nodeType": "YulTypedName", + "src": "11623:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "11634:4:46", + "nodeType": "YulTypedName", + "src": "11634:4:46", + "type": "" + } + ], + "src": "11496:356:46" + }, + { + "body": { + "nativeSrc": "11949:283:46", + "nodeType": "YulBlock", + "src": "11949:283:46", + "statements": [ + { + "body": { + "nativeSrc": "11998:16:46", + "nodeType": "YulBlock", + "src": "11998:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12007:1:46", + "nodeType": "YulLiteral", + "src": "12007:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12010:1:46", + "nodeType": "YulLiteral", + "src": "12010:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12000:6:46", + "nodeType": "YulIdentifier", + "src": "12000:6:46" + }, + "nativeSrc": "12000:12:46", + "nodeType": "YulFunctionCall", + "src": "12000:12:46" + }, + "nativeSrc": "12000:12:46", + "nodeType": "YulExpressionStatement", + "src": "12000:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "11977:6:46", + "nodeType": "YulIdentifier", + "src": "11977:6:46" + }, + { + "kind": "number", + "nativeSrc": "11985:4:46", + "nodeType": "YulLiteral", + "src": "11985:4:46", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "11973:3:46", + "nodeType": "YulIdentifier", + "src": "11973:3:46" + }, + "nativeSrc": "11973:17:46", + "nodeType": "YulFunctionCall", + "src": "11973:17:46" + }, + { + "name": "end", + "nativeSrc": "11992:3:46", + "nodeType": "YulIdentifier", + "src": "11992:3:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "11969:3:46", + "nodeType": "YulIdentifier", + "src": "11969:3:46" + }, + "nativeSrc": "11969:27:46", + "nodeType": "YulFunctionCall", + "src": "11969:27:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "11962:6:46", + "nodeType": "YulIdentifier", + "src": "11962:6:46" + }, + "nativeSrc": "11962:35:46", + "nodeType": "YulFunctionCall", + "src": "11962:35:46" + }, + "nativeSrc": "11959:55:46", + "nodeType": "YulIf", + "src": "11959:55:46" + }, + { + "nativeSrc": "12023:30:46", + "nodeType": "YulAssignment", + "src": "12023:30:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12046:6:46", + "nodeType": "YulIdentifier", + "src": "12046:6:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12033:12:46", + "nodeType": "YulIdentifier", + "src": "12033:12:46" + }, + "nativeSrc": "12033:20:46", + "nodeType": "YulFunctionCall", + "src": "12033:20:46" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "12023:6:46", + "nodeType": "YulIdentifier", + "src": "12023:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "12096:16:46", + "nodeType": "YulBlock", + "src": "12096:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12105:1:46", + "nodeType": "YulLiteral", + "src": "12105:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12108:1:46", + "nodeType": "YulLiteral", + "src": "12108:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12098:6:46", + "nodeType": "YulIdentifier", + "src": "12098:6:46" + }, + "nativeSrc": "12098:12:46", + "nodeType": "YulFunctionCall", + "src": "12098:12:46" + }, + "nativeSrc": "12098:12:46", + "nodeType": "YulExpressionStatement", + "src": "12098:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "12068:6:46", + "nodeType": "YulIdentifier", + "src": "12068:6:46" + }, + { + "kind": "number", + "nativeSrc": "12076:18:46", + "nodeType": "YulLiteral", + "src": "12076:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12065:2:46", + "nodeType": "YulIdentifier", + "src": "12065:2:46" + }, + "nativeSrc": "12065:30:46", + "nodeType": "YulFunctionCall", + "src": "12065:30:46" + }, + "nativeSrc": "12062:50:46", + "nodeType": "YulIf", + "src": "12062:50:46" + }, + { + "nativeSrc": "12121:29:46", + "nodeType": "YulAssignment", + "src": "12121:29:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12137:6:46", + "nodeType": "YulIdentifier", + "src": "12137:6:46" + }, + { + "kind": "number", + "nativeSrc": "12145:4:46", + "nodeType": "YulLiteral", + "src": "12145:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12133:3:46", + "nodeType": "YulIdentifier", + "src": "12133:3:46" + }, + "nativeSrc": "12133:17:46", + "nodeType": "YulFunctionCall", + "src": "12133:17:46" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "12121:8:46", + "nodeType": "YulIdentifier", + "src": "12121:8:46" + } + ] + }, + { + "body": { + "nativeSrc": "12210:16:46", + "nodeType": "YulBlock", + "src": "12210:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12219:1:46", + "nodeType": "YulLiteral", + "src": "12219:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12222:1:46", + "nodeType": "YulLiteral", + "src": "12222:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12212:6:46", + "nodeType": "YulIdentifier", + "src": "12212:6:46" + }, + "nativeSrc": "12212:12:46", + "nodeType": "YulFunctionCall", + "src": "12212:12:46" + }, + "nativeSrc": "12212:12:46", + "nodeType": "YulExpressionStatement", + "src": "12212:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12173:6:46", + "nodeType": "YulIdentifier", + "src": "12173:6:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12185:1:46", + "nodeType": "YulLiteral", + "src": "12185:1:46", + "type": "", + "value": "5" + }, + { + "name": "length", + "nativeSrc": "12188:6:46", + "nodeType": "YulIdentifier", + "src": "12188:6:46" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "12181:3:46", + "nodeType": "YulIdentifier", + "src": "12181:3:46" + }, + "nativeSrc": "12181:14:46", + "nodeType": "YulFunctionCall", + "src": "12181:14:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12169:3:46", + "nodeType": "YulIdentifier", + "src": "12169:3:46" + }, + "nativeSrc": "12169:27:46", + "nodeType": "YulFunctionCall", + "src": "12169:27:46" + }, + { + "kind": "number", + "nativeSrc": "12198:4:46", + "nodeType": "YulLiteral", + "src": "12198:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12165:3:46", + "nodeType": "YulIdentifier", + "src": "12165:3:46" + }, + "nativeSrc": "12165:38:46", + "nodeType": "YulFunctionCall", + "src": "12165:38:46" + }, + { + "name": "end", + "nativeSrc": "12205:3:46", + "nodeType": "YulIdentifier", + "src": "12205:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12162:2:46", + "nodeType": "YulIdentifier", + "src": "12162:2:46" + }, + "nativeSrc": "12162:47:46", + "nodeType": "YulFunctionCall", + "src": "12162:47:46" + }, + "nativeSrc": "12159:67:46", + "nodeType": "YulIf", + "src": "12159:67:46" + } + ] + }, + "name": "abi_decode_array_string_calldata_dyn_calldata", + "nativeSrc": "11857:375:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "11912:6:46", + "nodeType": "YulTypedName", + "src": "11912:6:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "11920:3:46", + "nodeType": "YulTypedName", + "src": "11920:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "11928:8:46", + "nodeType": "YulTypedName", + "src": "11928:8:46", + "type": "" + }, + { + "name": "length", + "nativeSrc": "11938:6:46", + "nodeType": "YulTypedName", + "src": "11938:6:46", + "type": "" + } + ], + "src": "11857:375:46" + }, + { + "body": { + "nativeSrc": "12406:627:46", + "nodeType": "YulBlock", + "src": "12406:627:46", + "statements": [ + { + "body": { + "nativeSrc": "12452:16:46", + "nodeType": "YulBlock", + "src": "12452:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12461:1:46", + "nodeType": "YulLiteral", + "src": "12461:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12464:1:46", + "nodeType": "YulLiteral", + "src": "12464:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12454:6:46", + "nodeType": "YulIdentifier", + "src": "12454:6:46" + }, + "nativeSrc": "12454:12:46", + "nodeType": "YulFunctionCall", + "src": "12454:12:46" + }, + "nativeSrc": "12454:12:46", + "nodeType": "YulExpressionStatement", + "src": "12454:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "12427:7:46", + "nodeType": "YulIdentifier", + "src": "12427:7:46" + }, + { + "name": "headStart", + "nativeSrc": "12436:9:46", + "nodeType": "YulIdentifier", + "src": "12436:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "12423:3:46", + "nodeType": "YulIdentifier", + "src": "12423:3:46" + }, + "nativeSrc": "12423:23:46", + "nodeType": "YulFunctionCall", + "src": "12423:23:46" + }, + { + "kind": "number", + "nativeSrc": "12448:2:46", + "nodeType": "YulLiteral", + "src": "12448:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "12419:3:46", + "nodeType": "YulIdentifier", + "src": "12419:3:46" + }, + "nativeSrc": "12419:32:46", + "nodeType": "YulFunctionCall", + "src": "12419:32:46" + }, + "nativeSrc": "12416:52:46", + "nodeType": "YulIf", + "src": "12416:52:46" + }, + { + "nativeSrc": "12477:37:46", + "nodeType": "YulVariableDeclaration", + "src": "12477:37:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12504:9:46", + "nodeType": "YulIdentifier", + "src": "12504:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12491:12:46", + "nodeType": "YulIdentifier", + "src": "12491:12:46" + }, + "nativeSrc": "12491:23:46", + "nodeType": "YulFunctionCall", + "src": "12491:23:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "12481:6:46", + "nodeType": "YulTypedName", + "src": "12481:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12557:16:46", + "nodeType": "YulBlock", + "src": "12557:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12566:1:46", + "nodeType": "YulLiteral", + "src": "12566:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12569:1:46", + "nodeType": "YulLiteral", + "src": "12569:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12559:6:46", + "nodeType": "YulIdentifier", + "src": "12559:6:46" + }, + "nativeSrc": "12559:12:46", + "nodeType": "YulFunctionCall", + "src": "12559:12:46" + }, + "nativeSrc": "12559:12:46", + "nodeType": "YulExpressionStatement", + "src": "12559:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "12529:6:46", + "nodeType": "YulIdentifier", + "src": "12529:6:46" + }, + { + "kind": "number", + "nativeSrc": "12537:18:46", + "nodeType": "YulLiteral", + "src": "12537:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12526:2:46", + "nodeType": "YulIdentifier", + "src": "12526:2:46" + }, + "nativeSrc": "12526:30:46", + "nodeType": "YulFunctionCall", + "src": "12526:30:46" + }, + "nativeSrc": "12523:50:46", + "nodeType": "YulIf", + "src": "12523:50:46" + }, + { + "nativeSrc": "12582:104:46", + "nodeType": "YulVariableDeclaration", + "src": "12582:104:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12658:9:46", + "nodeType": "YulIdentifier", + "src": "12658:9:46" + }, + { + "name": "offset", + "nativeSrc": "12669:6:46", + "nodeType": "YulIdentifier", + "src": "12669:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12654:3:46", + "nodeType": "YulIdentifier", + "src": "12654:3:46" + }, + "nativeSrc": "12654:22:46", + "nodeType": "YulFunctionCall", + "src": "12654:22:46" + }, + { + "name": "dataEnd", + "nativeSrc": "12678:7:46", + "nodeType": "YulIdentifier", + "src": "12678:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_string_calldata_dyn_calldata", + "nativeSrc": "12608:45:46", + "nodeType": "YulIdentifier", + "src": "12608:45:46" + }, + "nativeSrc": "12608:78:46", + "nodeType": "YulFunctionCall", + "src": "12608:78:46" + }, + "variables": [ + { + "name": "value0_1", + "nativeSrc": "12586:8:46", + "nodeType": "YulTypedName", + "src": "12586:8:46", + "type": "" + }, + { + "name": "value1_1", + "nativeSrc": "12596:8:46", + "nodeType": "YulTypedName", + "src": "12596:8:46", + "type": "" + } + ] + }, + { + "nativeSrc": "12695:18:46", + "nodeType": "YulAssignment", + "src": "12695:18:46", + "value": { + "name": "value0_1", + "nativeSrc": "12705:8:46", + "nodeType": "YulIdentifier", + "src": "12705:8:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "12695:6:46", + "nodeType": "YulIdentifier", + "src": "12695:6:46" + } + ] + }, + { + "nativeSrc": "12722:18:46", + "nodeType": "YulAssignment", + "src": "12722:18:46", + "value": { + "name": "value1_1", + "nativeSrc": "12732:8:46", + "nodeType": "YulIdentifier", + "src": "12732:8:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "12722:6:46", + "nodeType": "YulIdentifier", + "src": "12722:6:46" + } + ] + }, + { + "nativeSrc": "12749:48:46", + "nodeType": "YulVariableDeclaration", + "src": "12749:48:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12782:9:46", + "nodeType": "YulIdentifier", + "src": "12782:9:46" + }, + { + "kind": "number", + "nativeSrc": "12793:2:46", + "nodeType": "YulLiteral", + "src": "12793:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12778:3:46", + "nodeType": "YulIdentifier", + "src": "12778:3:46" + }, + "nativeSrc": "12778:18:46", + "nodeType": "YulFunctionCall", + "src": "12778:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "12765:12:46", + "nodeType": "YulIdentifier", + "src": "12765:12:46" + }, + "nativeSrc": "12765:32:46", + "nodeType": "YulFunctionCall", + "src": "12765:32:46" + }, + "variables": [ + { + "name": "offset_1", + "nativeSrc": "12753:8:46", + "nodeType": "YulTypedName", + "src": "12753:8:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "12842:16:46", + "nodeType": "YulBlock", + "src": "12842:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "12851:1:46", + "nodeType": "YulLiteral", + "src": "12851:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "12854:1:46", + "nodeType": "YulLiteral", + "src": "12854:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "12844:6:46", + "nodeType": "YulIdentifier", + "src": "12844:6:46" + }, + "nativeSrc": "12844:12:46", + "nodeType": "YulFunctionCall", + "src": "12844:12:46" + }, + "nativeSrc": "12844:12:46", + "nodeType": "YulExpressionStatement", + "src": "12844:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nativeSrc": "12812:8:46", + "nodeType": "YulIdentifier", + "src": "12812:8:46" + }, + { + "kind": "number", + "nativeSrc": "12822:18:46", + "nodeType": "YulLiteral", + "src": "12822:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "12809:2:46", + "nodeType": "YulIdentifier", + "src": "12809:2:46" + }, + "nativeSrc": "12809:32:46", + "nodeType": "YulFunctionCall", + "src": "12809:32:46" + }, + "nativeSrc": "12806:52:46", + "nodeType": "YulIf", + "src": "12806:52:46" + }, + { + "nativeSrc": "12867:106:46", + "nodeType": "YulVariableDeclaration", + "src": "12867:106:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "12943:9:46", + "nodeType": "YulIdentifier", + "src": "12943:9:46" + }, + { + "name": "offset_1", + "nativeSrc": "12954:8:46", + "nodeType": "YulIdentifier", + "src": "12954:8:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "12939:3:46", + "nodeType": "YulIdentifier", + "src": "12939:3:46" + }, + "nativeSrc": "12939:24:46", + "nodeType": "YulFunctionCall", + "src": "12939:24:46" + }, + { + "name": "dataEnd", + "nativeSrc": "12965:7:46", + "nodeType": "YulIdentifier", + "src": "12965:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_string_calldata_dyn_calldata", + "nativeSrc": "12893:45:46", + "nodeType": "YulIdentifier", + "src": "12893:45:46" + }, + "nativeSrc": "12893:80:46", + "nodeType": "YulFunctionCall", + "src": "12893:80:46" + }, + "variables": [ + { + "name": "value2_1", + "nativeSrc": "12871:8:46", + "nodeType": "YulTypedName", + "src": "12871:8:46", + "type": "" + }, + { + "name": "value3_1", + "nativeSrc": "12881:8:46", + "nodeType": "YulTypedName", + "src": "12881:8:46", + "type": "" + } + ] + }, + { + "nativeSrc": "12982:18:46", + "nodeType": "YulAssignment", + "src": "12982:18:46", + "value": { + "name": "value2_1", + "nativeSrc": "12992:8:46", + "nodeType": "YulIdentifier", + "src": "12992:8:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "12982:6:46", + "nodeType": "YulIdentifier", + "src": "12982:6:46" + } + ] + }, + { + "nativeSrc": "13009:18:46", + "nodeType": "YulAssignment", + "src": "13009:18:46", + "value": { + "name": "value3_1", + "nativeSrc": "13019:8:46", + "nodeType": "YulIdentifier", + "src": "13019:8:46" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "13009:6:46", + "nodeType": "YulIdentifier", + "src": "13009:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptr", + "nativeSrc": "12237:796:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "12348:9:46", + "nodeType": "YulTypedName", + "src": "12348:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "12359:7:46", + "nodeType": "YulTypedName", + "src": "12359:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "12371:6:46", + "nodeType": "YulTypedName", + "src": "12371:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "12379:6:46", + "nodeType": "YulTypedName", + "src": "12379:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "12387:6:46", + "nodeType": "YulTypedName", + "src": "12387:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "12395:6:46", + "nodeType": "YulTypedName", + "src": "12395:6:46", + "type": "" + } + ], + "src": "12237:796:46" + }, + { + "body": { + "nativeSrc": "13139:76:46", + "nodeType": "YulBlock", + "src": "13139:76:46", + "statements": [ + { + "nativeSrc": "13149:26:46", + "nodeType": "YulAssignment", + "src": "13149:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13161:9:46", + "nodeType": "YulIdentifier", + "src": "13161:9:46" + }, + { + "kind": "number", + "nativeSrc": "13172:2:46", + "nodeType": "YulLiteral", + "src": "13172:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13157:3:46", + "nodeType": "YulIdentifier", + "src": "13157:3:46" + }, + "nativeSrc": "13157:18:46", + "nodeType": "YulFunctionCall", + "src": "13157:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "13149:4:46", + "nodeType": "YulIdentifier", + "src": "13149:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13191:9:46", + "nodeType": "YulIdentifier", + "src": "13191:9:46" + }, + { + "name": "value0", + "nativeSrc": "13202:6:46", + "nodeType": "YulIdentifier", + "src": "13202:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "13184:6:46", + "nodeType": "YulIdentifier", + "src": "13184:6:46" + }, + "nativeSrc": "13184:25:46", + "nodeType": "YulFunctionCall", + "src": "13184:25:46" + }, + "nativeSrc": "13184:25:46", + "nodeType": "YulExpressionStatement", + "src": "13184:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed", + "nativeSrc": "13038:177:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13108:9:46", + "nodeType": "YulTypedName", + "src": "13108:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "13119:6:46", + "nodeType": "YulTypedName", + "src": "13119:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "13130:4:46", + "nodeType": "YulTypedName", + "src": "13130:4:46", + "type": "" + } + ], + "src": "13038:177:46" + }, + { + "body": { + "nativeSrc": "13306:212:46", + "nodeType": "YulBlock", + "src": "13306:212:46", + "statements": [ + { + "body": { + "nativeSrc": "13352:16:46", + "nodeType": "YulBlock", + "src": "13352:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13361:1:46", + "nodeType": "YulLiteral", + "src": "13361:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13364:1:46", + "nodeType": "YulLiteral", + "src": "13364:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "13354:6:46", + "nodeType": "YulIdentifier", + "src": "13354:6:46" + }, + "nativeSrc": "13354:12:46", + "nodeType": "YulFunctionCall", + "src": "13354:12:46" + }, + "nativeSrc": "13354:12:46", + "nodeType": "YulExpressionStatement", + "src": "13354:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "13327:7:46", + "nodeType": "YulIdentifier", + "src": "13327:7:46" + }, + { + "name": "headStart", + "nativeSrc": "13336:9:46", + "nodeType": "YulIdentifier", + "src": "13336:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13323:3:46", + "nodeType": "YulIdentifier", + "src": "13323:3:46" + }, + "nativeSrc": "13323:23:46", + "nodeType": "YulFunctionCall", + "src": "13323:23:46" + }, + { + "kind": "number", + "nativeSrc": "13348:2:46", + "nodeType": "YulLiteral", + "src": "13348:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "13319:3:46", + "nodeType": "YulIdentifier", + "src": "13319:3:46" + }, + "nativeSrc": "13319:32:46", + "nodeType": "YulFunctionCall", + "src": "13319:32:46" + }, + "nativeSrc": "13316:52:46", + "nodeType": "YulIf", + "src": "13316:52:46" + }, + { + "nativeSrc": "13377:38:46", + "nodeType": "YulAssignment", + "src": "13377:38:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13405:9:46", + "nodeType": "YulIdentifier", + "src": "13405:9:46" + } + ], + "functionName": { + "name": "abi_decode_uint64", + "nativeSrc": "13387:17:46", + "nodeType": "YulIdentifier", + "src": "13387:17:46" + }, + "nativeSrc": "13387:28:46", + "nodeType": "YulFunctionCall", + "src": "13387:28:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "13377:6:46", + "nodeType": "YulIdentifier", + "src": "13377:6:46" + } + ] + }, + { + "nativeSrc": "13424:14:46", + "nodeType": "YulVariableDeclaration", + "src": "13424:14:46", + "value": { + "kind": "number", + "nativeSrc": "13437:1:46", + "nodeType": "YulLiteral", + "src": "13437:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "13428:5:46", + "nodeType": "YulTypedName", + "src": "13428:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "13447:41:46", + "nodeType": "YulAssignment", + "src": "13447:41:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13473:9:46", + "nodeType": "YulIdentifier", + "src": "13473:9:46" + }, + { + "kind": "number", + "nativeSrc": "13484:2:46", + "nodeType": "YulLiteral", + "src": "13484:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "13469:3:46", + "nodeType": "YulIdentifier", + "src": "13469:3:46" + }, + "nativeSrc": "13469:18:46", + "nodeType": "YulFunctionCall", + "src": "13469:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "13456:12:46", + "nodeType": "YulIdentifier", + "src": "13456:12:46" + }, + "nativeSrc": "13456:32:46", + "nodeType": "YulFunctionCall", + "src": "13456:32:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "13447:5:46", + "nodeType": "YulIdentifier", + "src": "13447:5:46" + } + ] + }, + { + "nativeSrc": "13497:15:46", + "nodeType": "YulAssignment", + "src": "13497:15:46", + "value": { + "name": "value", + "nativeSrc": "13507:5:46", + "nodeType": "YulIdentifier", + "src": "13507:5:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "13497:6:46", + "nodeType": "YulIdentifier", + "src": "13497:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint64t_uint256", + "nativeSrc": "13220:298:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13264:9:46", + "nodeType": "YulTypedName", + "src": "13264:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "13275:7:46", + "nodeType": "YulTypedName", + "src": "13275:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "13287:6:46", + "nodeType": "YulTypedName", + "src": "13287:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13295:6:46", + "nodeType": "YulTypedName", + "src": "13295:6:46", + "type": "" + } + ], + "src": "13220:298:46" + }, + { + "body": { + "nativeSrc": "13855:1162:46", + "nodeType": "YulBlock", + "src": "13855:1162:46", + "statements": [ + { + "nativeSrc": "13865:33:46", + "nodeType": "YulVariableDeclaration", + "src": "13865:33:46", + "value": { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "13879:7:46", + "nodeType": "YulIdentifier", + "src": "13879:7:46" + }, + { + "name": "headStart", + "nativeSrc": "13888:9:46", + "nodeType": "YulIdentifier", + "src": "13888:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "13875:3:46", + "nodeType": "YulIdentifier", + "src": "13875:3:46" + }, + "nativeSrc": "13875:23:46", + "nodeType": "YulFunctionCall", + "src": "13875:23:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "13869:2:46", + "nodeType": "YulTypedName", + "src": "13869:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "13923:16:46", + "nodeType": "YulBlock", + "src": "13923:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "13932:1:46", + "nodeType": "YulLiteral", + "src": "13932:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "13935:1:46", + "nodeType": "YulLiteral", + "src": "13935:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "13925:6:46", + "nodeType": "YulIdentifier", + "src": "13925:6:46" + }, + "nativeSrc": "13925:12:46", + "nodeType": "YulFunctionCall", + "src": "13925:12:46" + }, + "nativeSrc": "13925:12:46", + "nodeType": "YulExpressionStatement", + "src": "13925:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "13914:2:46", + "nodeType": "YulIdentifier", + "src": "13914:2:46" + }, + { + "kind": "number", + "nativeSrc": "13918:3:46", + "nodeType": "YulLiteral", + "src": "13918:3:46", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "13910:3:46", + "nodeType": "YulIdentifier", + "src": "13910:3:46" + }, + "nativeSrc": "13910:12:46", + "nodeType": "YulFunctionCall", + "src": "13910:12:46" + }, + "nativeSrc": "13907:32:46", + "nodeType": "YulIf", + "src": "13907:32:46" + }, + { + "nativeSrc": "13948:14:46", + "nodeType": "YulVariableDeclaration", + "src": "13948:14:46", + "value": { + "kind": "number", + "nativeSrc": "13961:1:46", + "nodeType": "YulLiteral", + "src": "13961:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "13952:5:46", + "nodeType": "YulTypedName", + "src": "13952:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "13971:32:46", + "nodeType": "YulAssignment", + "src": "13971:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "13993:9:46", + "nodeType": "YulIdentifier", + "src": "13993:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "13980:12:46", + "nodeType": "YulIdentifier", + "src": "13980:12:46" + }, + "nativeSrc": "13980:23:46", + "nodeType": "YulFunctionCall", + "src": "13980:23:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "13971:5:46", + "nodeType": "YulIdentifier", + "src": "13971:5:46" + } + ] + }, + { + "nativeSrc": "14012:15:46", + "nodeType": "YulAssignment", + "src": "14012:15:46", + "value": { + "name": "value", + "nativeSrc": "14022:5:46", + "nodeType": "YulIdentifier", + "src": "14022:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "14012:6:46", + "nodeType": "YulIdentifier", + "src": "14012:6:46" + } + ] + }, + { + "nativeSrc": "14036:16:46", + "nodeType": "YulVariableDeclaration", + "src": "14036:16:46", + "value": { + "kind": "number", + "nativeSrc": "14051:1:46", + "nodeType": "YulLiteral", + "src": "14051:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "14040:7:46", + "nodeType": "YulTypedName", + "src": "14040:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "14061:43:46", + "nodeType": "YulAssignment", + "src": "14061:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14089:9:46", + "nodeType": "YulIdentifier", + "src": "14089:9:46" + }, + { + "kind": "number", + "nativeSrc": "14100:2:46", + "nodeType": "YulLiteral", + "src": "14100:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14085:3:46", + "nodeType": "YulIdentifier", + "src": "14085:3:46" + }, + "nativeSrc": "14085:18:46", + "nodeType": "YulFunctionCall", + "src": "14085:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "14072:12:46", + "nodeType": "YulIdentifier", + "src": "14072:12:46" + }, + "nativeSrc": "14072:32:46", + "nodeType": "YulFunctionCall", + "src": "14072:32:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "14061:7:46", + "nodeType": "YulIdentifier", + "src": "14061:7:46" + } + ] + }, + { + "nativeSrc": "14113:17:46", + "nodeType": "YulAssignment", + "src": "14113:17:46", + "value": { + "name": "value_1", + "nativeSrc": "14123:7:46", + "nodeType": "YulIdentifier", + "src": "14123:7:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "14113:6:46", + "nodeType": "YulIdentifier", + "src": "14113:6:46" + } + ] + }, + { + "nativeSrc": "14139:16:46", + "nodeType": "YulVariableDeclaration", + "src": "14139:16:46", + "value": { + "kind": "number", + "nativeSrc": "14154:1:46", + "nodeType": "YulLiteral", + "src": "14154:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "14143:7:46", + "nodeType": "YulTypedName", + "src": "14143:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "14164:43:46", + "nodeType": "YulAssignment", + "src": "14164:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14192:9:46", + "nodeType": "YulIdentifier", + "src": "14192:9:46" + }, + { + "kind": "number", + "nativeSrc": "14203:2:46", + "nodeType": "YulLiteral", + "src": "14203:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14188:3:46", + "nodeType": "YulIdentifier", + "src": "14188:3:46" + }, + "nativeSrc": "14188:18:46", + "nodeType": "YulFunctionCall", + "src": "14188:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "14175:12:46", + "nodeType": "YulIdentifier", + "src": "14175:12:46" + }, + "nativeSrc": "14175:32:46", + "nodeType": "YulFunctionCall", + "src": "14175:32:46" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "14164:7:46", + "nodeType": "YulIdentifier", + "src": "14164:7:46" + } + ] + }, + { + "nativeSrc": "14216:17:46", + "nodeType": "YulAssignment", + "src": "14216:17:46", + "value": { + "name": "value_2", + "nativeSrc": "14226:7:46", + "nodeType": "YulIdentifier", + "src": "14226:7:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "14216:6:46", + "nodeType": "YulIdentifier", + "src": "14216:6:46" + } + ] + }, + { + "nativeSrc": "14242:46:46", + "nodeType": "YulVariableDeclaration", + "src": "14242:46:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14273:9:46", + "nodeType": "YulIdentifier", + "src": "14273:9:46" + }, + { + "kind": "number", + "nativeSrc": "14284:2:46", + "nodeType": "YulLiteral", + "src": "14284:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14269:3:46", + "nodeType": "YulIdentifier", + "src": "14269:3:46" + }, + "nativeSrc": "14269:18:46", + "nodeType": "YulFunctionCall", + "src": "14269:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "14256:12:46", + "nodeType": "YulIdentifier", + "src": "14256:12:46" + }, + "nativeSrc": "14256:32:46", + "nodeType": "YulFunctionCall", + "src": "14256:32:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "14246:6:46", + "nodeType": "YulTypedName", + "src": "14246:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "14331:16:46", + "nodeType": "YulBlock", + "src": "14331:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14340:1:46", + "nodeType": "YulLiteral", + "src": "14340:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14343:1:46", + "nodeType": "YulLiteral", + "src": "14343:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14333:6:46", + "nodeType": "YulIdentifier", + "src": "14333:6:46" + }, + "nativeSrc": "14333:12:46", + "nodeType": "YulFunctionCall", + "src": "14333:12:46" + }, + "nativeSrc": "14333:12:46", + "nodeType": "YulExpressionStatement", + "src": "14333:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "14303:6:46", + "nodeType": "YulIdentifier", + "src": "14303:6:46" + }, + { + "kind": "number", + "nativeSrc": "14311:18:46", + "nodeType": "YulLiteral", + "src": "14311:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "14300:2:46", + "nodeType": "YulIdentifier", + "src": "14300:2:46" + }, + "nativeSrc": "14300:30:46", + "nodeType": "YulFunctionCall", + "src": "14300:30:46" + }, + "nativeSrc": "14297:50:46", + "nodeType": "YulIf", + "src": "14297:50:46" + }, + { + "nativeSrc": "14356:104:46", + "nodeType": "YulVariableDeclaration", + "src": "14356:104:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14432:9:46", + "nodeType": "YulIdentifier", + "src": "14432:9:46" + }, + { + "name": "offset", + "nativeSrc": "14443:6:46", + "nodeType": "YulIdentifier", + "src": "14443:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14428:3:46", + "nodeType": "YulIdentifier", + "src": "14428:3:46" + }, + "nativeSrc": "14428:22:46", + "nodeType": "YulFunctionCall", + "src": "14428:22:46" + }, + { + "name": "dataEnd", + "nativeSrc": "14452:7:46", + "nodeType": "YulIdentifier", + "src": "14452:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_string_calldata_dyn_calldata", + "nativeSrc": "14382:45:46", + "nodeType": "YulIdentifier", + "src": "14382:45:46" + }, + "nativeSrc": "14382:78:46", + "nodeType": "YulFunctionCall", + "src": "14382:78:46" + }, + "variables": [ + { + "name": "value3_1", + "nativeSrc": "14360:8:46", + "nodeType": "YulTypedName", + "src": "14360:8:46", + "type": "" + }, + { + "name": "value4_1", + "nativeSrc": "14370:8:46", + "nodeType": "YulTypedName", + "src": "14370:8:46", + "type": "" + } + ] + }, + { + "nativeSrc": "14469:18:46", + "nodeType": "YulAssignment", + "src": "14469:18:46", + "value": { + "name": "value3_1", + "nativeSrc": "14479:8:46", + "nodeType": "YulIdentifier", + "src": "14479:8:46" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "14469:6:46", + "nodeType": "YulIdentifier", + "src": "14469:6:46" + } + ] + }, + { + "nativeSrc": "14496:18:46", + "nodeType": "YulAssignment", + "src": "14496:18:46", + "value": { + "name": "value4_1", + "nativeSrc": "14506:8:46", + "nodeType": "YulIdentifier", + "src": "14506:8:46" + }, + "variableNames": [ + { + "name": "value4", + "nativeSrc": "14496:6:46", + "nodeType": "YulIdentifier", + "src": "14496:6:46" + } + ] + }, + { + "nativeSrc": "14523:49:46", + "nodeType": "YulVariableDeclaration", + "src": "14523:49:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14556:9:46", + "nodeType": "YulIdentifier", + "src": "14556:9:46" + }, + { + "kind": "number", + "nativeSrc": "14567:3:46", + "nodeType": "YulLiteral", + "src": "14567:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14552:3:46", + "nodeType": "YulIdentifier", + "src": "14552:3:46" + }, + "nativeSrc": "14552:19:46", + "nodeType": "YulFunctionCall", + "src": "14552:19:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "14539:12:46", + "nodeType": "YulIdentifier", + "src": "14539:12:46" + }, + "nativeSrc": "14539:33:46", + "nodeType": "YulFunctionCall", + "src": "14539:33:46" + }, + "variables": [ + { + "name": "offset_1", + "nativeSrc": "14527:8:46", + "nodeType": "YulTypedName", + "src": "14527:8:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "14617:16:46", + "nodeType": "YulBlock", + "src": "14617:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14626:1:46", + "nodeType": "YulLiteral", + "src": "14626:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14629:1:46", + "nodeType": "YulLiteral", + "src": "14629:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14619:6:46", + "nodeType": "YulIdentifier", + "src": "14619:6:46" + }, + "nativeSrc": "14619:12:46", + "nodeType": "YulFunctionCall", + "src": "14619:12:46" + }, + "nativeSrc": "14619:12:46", + "nodeType": "YulExpressionStatement", + "src": "14619:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nativeSrc": "14587:8:46", + "nodeType": "YulIdentifier", + "src": "14587:8:46" + }, + { + "kind": "number", + "nativeSrc": "14597:18:46", + "nodeType": "YulLiteral", + "src": "14597:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "14584:2:46", + "nodeType": "YulIdentifier", + "src": "14584:2:46" + }, + "nativeSrc": "14584:32:46", + "nodeType": "YulFunctionCall", + "src": "14584:32:46" + }, + "nativeSrc": "14581:52:46", + "nodeType": "YulIf", + "src": "14581:52:46" + }, + { + "nativeSrc": "14642:106:46", + "nodeType": "YulVariableDeclaration", + "src": "14642:106:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14718:9:46", + "nodeType": "YulIdentifier", + "src": "14718:9:46" + }, + { + "name": "offset_1", + "nativeSrc": "14729:8:46", + "nodeType": "YulIdentifier", + "src": "14729:8:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14714:3:46", + "nodeType": "YulIdentifier", + "src": "14714:3:46" + }, + "nativeSrc": "14714:24:46", + "nodeType": "YulFunctionCall", + "src": "14714:24:46" + }, + { + "name": "dataEnd", + "nativeSrc": "14740:7:46", + "nodeType": "YulIdentifier", + "src": "14740:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_string_calldata_dyn_calldata", + "nativeSrc": "14668:45:46", + "nodeType": "YulIdentifier", + "src": "14668:45:46" + }, + "nativeSrc": "14668:80:46", + "nodeType": "YulFunctionCall", + "src": "14668:80:46" + }, + "variables": [ + { + "name": "value5_1", + "nativeSrc": "14646:8:46", + "nodeType": "YulTypedName", + "src": "14646:8:46", + "type": "" + }, + { + "name": "value6_1", + "nativeSrc": "14656:8:46", + "nodeType": "YulTypedName", + "src": "14656:8:46", + "type": "" + } + ] + }, + { + "nativeSrc": "14757:18:46", + "nodeType": "YulAssignment", + "src": "14757:18:46", + "value": { + "name": "value5_1", + "nativeSrc": "14767:8:46", + "nodeType": "YulIdentifier", + "src": "14767:8:46" + }, + "variableNames": [ + { + "name": "value5", + "nativeSrc": "14757:6:46", + "nodeType": "YulIdentifier", + "src": "14757:6:46" + } + ] + }, + { + "nativeSrc": "14784:18:46", + "nodeType": "YulAssignment", + "src": "14784:18:46", + "value": { + "name": "value6_1", + "nativeSrc": "14794:8:46", + "nodeType": "YulIdentifier", + "src": "14794:8:46" + }, + "variableNames": [ + { + "name": "value6", + "nativeSrc": "14784:6:46", + "nodeType": "YulIdentifier", + "src": "14784:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "14841:16:46", + "nodeType": "YulBlock", + "src": "14841:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14850:1:46", + "nodeType": "YulLiteral", + "src": "14850:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "14853:1:46", + "nodeType": "YulLiteral", + "src": "14853:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "14843:6:46", + "nodeType": "YulIdentifier", + "src": "14843:6:46" + }, + "nativeSrc": "14843:12:46", + "nodeType": "YulFunctionCall", + "src": "14843:12:46" + }, + "nativeSrc": "14843:12:46", + "nodeType": "YulExpressionStatement", + "src": "14843:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "14822:2:46", + "nodeType": "YulIdentifier", + "src": "14822:2:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "14830:3:46", + "nodeType": "YulLiteral", + "src": "14830:3:46", + "type": "", + "value": "159" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "14826:3:46", + "nodeType": "YulIdentifier", + "src": "14826:3:46" + }, + "nativeSrc": "14826:8:46", + "nodeType": "YulFunctionCall", + "src": "14826:8:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14818:3:46", + "nodeType": "YulIdentifier", + "src": "14818:3:46" + }, + "nativeSrc": "14818:17:46", + "nodeType": "YulFunctionCall", + "src": "14818:17:46" + }, + { + "kind": "number", + "nativeSrc": "14837:2:46", + "nodeType": "YulLiteral", + "src": "14837:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "14814:3:46", + "nodeType": "YulIdentifier", + "src": "14814:3:46" + }, + "nativeSrc": "14814:26:46", + "nodeType": "YulFunctionCall", + "src": "14814:26:46" + }, + "nativeSrc": "14811:46:46", + "nodeType": "YulIf", + "src": "14811:46:46" + }, + { + "nativeSrc": "14866:29:46", + "nodeType": "YulAssignment", + "src": "14866:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14880:9:46", + "nodeType": "YulIdentifier", + "src": "14880:9:46" + }, + { + "kind": "number", + "nativeSrc": "14891:3:46", + "nodeType": "YulLiteral", + "src": "14891:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14876:3:46", + "nodeType": "YulIdentifier", + "src": "14876:3:46" + }, + "nativeSrc": "14876:19:46", + "nodeType": "YulFunctionCall", + "src": "14876:19:46" + }, + "variableNames": [ + { + "name": "value7", + "nativeSrc": "14866:6:46", + "nodeType": "YulIdentifier", + "src": "14866:6:46" + } + ] + }, + { + "nativeSrc": "14904:49:46", + "nodeType": "YulAssignment", + "src": "14904:49:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14937:9:46", + "nodeType": "YulIdentifier", + "src": "14937:9:46" + }, + { + "kind": "number", + "nativeSrc": "14948:3:46", + "nodeType": "YulLiteral", + "src": "14948:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14933:3:46", + "nodeType": "YulIdentifier", + "src": "14933:3:46" + }, + "nativeSrc": "14933:19:46", + "nodeType": "YulFunctionCall", + "src": "14933:19:46" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "14914:18:46", + "nodeType": "YulIdentifier", + "src": "14914:18:46" + }, + "nativeSrc": "14914:39:46", + "nodeType": "YulFunctionCall", + "src": "14914:39:46" + }, + "variableNames": [ + { + "name": "value8", + "nativeSrc": "14904:6:46", + "nodeType": "YulIdentifier", + "src": "14904:6:46" + } + ] + }, + { + "nativeSrc": "14962:49:46", + "nodeType": "YulAssignment", + "src": "14962:49:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "14995:9:46", + "nodeType": "YulIdentifier", + "src": "14995:9:46" + }, + { + "kind": "number", + "nativeSrc": "15006:3:46", + "nodeType": "YulLiteral", + "src": "15006:3:46", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "14991:3:46", + "nodeType": "YulIdentifier", + "src": "14991:3:46" + }, + "nativeSrc": "14991:19:46", + "nodeType": "YulFunctionCall", + "src": "14991:19:46" + } + ], + "functionName": { + "name": "abi_decode_address", + "nativeSrc": "14972:18:46", + "nodeType": "YulIdentifier", + "src": "14972:18:46" + }, + "nativeSrc": "14972:39:46", + "nodeType": "YulFunctionCall", + "src": "14972:39:46" + }, + "variableNames": [ + { + "name": "value9", + "nativeSrc": "14962:6:46", + "nodeType": "YulIdentifier", + "src": "14962:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_uint256t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_struct$_StateInfo_$16117_calldata_ptrt_addresst_contract$_IAttestationValidator_$14634", + "nativeSrc": "13523:1494:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "13749:9:46", + "nodeType": "YulTypedName", + "src": "13749:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "13760:7:46", + "nodeType": "YulTypedName", + "src": "13760:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "13772:6:46", + "nodeType": "YulTypedName", + "src": "13772:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "13780:6:46", + "nodeType": "YulTypedName", + "src": "13780:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "13788:6:46", + "nodeType": "YulTypedName", + "src": "13788:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "13796:6:46", + "nodeType": "YulTypedName", + "src": "13796:6:46", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "13804:6:46", + "nodeType": "YulTypedName", + "src": "13804:6:46", + "type": "" + }, + { + "name": "value5", + "nativeSrc": "13812:6:46", + "nodeType": "YulTypedName", + "src": "13812:6:46", + "type": "" + }, + { + "name": "value6", + "nativeSrc": "13820:6:46", + "nodeType": "YulTypedName", + "src": "13820:6:46", + "type": "" + }, + { + "name": "value7", + "nativeSrc": "13828:6:46", + "nodeType": "YulTypedName", + "src": "13828:6:46", + "type": "" + }, + { + "name": "value8", + "nativeSrc": "13836:6:46", + "nodeType": "YulTypedName", + "src": "13836:6:46", + "type": "" + }, + { + "name": "value9", + "nativeSrc": "13844:6:46", + "nodeType": "YulTypedName", + "src": "13844:6:46", + "type": "" + } + ], + "src": "13523:1494:46" + }, + { + "body": { + "nativeSrc": "15152:882:46", + "nodeType": "YulBlock", + "src": "15152:882:46", + "statements": [ + { + "body": { + "nativeSrc": "15198:16:46", + "nodeType": "YulBlock", + "src": "15198:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15207:1:46", + "nodeType": "YulLiteral", + "src": "15207:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15210:1:46", + "nodeType": "YulLiteral", + "src": "15210:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15200:6:46", + "nodeType": "YulIdentifier", + "src": "15200:6:46" + }, + "nativeSrc": "15200:12:46", + "nodeType": "YulFunctionCall", + "src": "15200:12:46" + }, + "nativeSrc": "15200:12:46", + "nodeType": "YulExpressionStatement", + "src": "15200:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "15173:7:46", + "nodeType": "YulIdentifier", + "src": "15173:7:46" + }, + { + "name": "headStart", + "nativeSrc": "15182:9:46", + "nodeType": "YulIdentifier", + "src": "15182:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15169:3:46", + "nodeType": "YulIdentifier", + "src": "15169:3:46" + }, + "nativeSrc": "15169:23:46", + "nodeType": "YulFunctionCall", + "src": "15169:23:46" + }, + { + "kind": "number", + "nativeSrc": "15194:2:46", + "nodeType": "YulLiteral", + "src": "15194:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "15165:3:46", + "nodeType": "YulIdentifier", + "src": "15165:3:46" + }, + "nativeSrc": "15165:32:46", + "nodeType": "YulFunctionCall", + "src": "15165:32:46" + }, + "nativeSrc": "15162:52:46", + "nodeType": "YulIf", + "src": "15162:52:46" + }, + { + "nativeSrc": "15223:37:46", + "nodeType": "YulVariableDeclaration", + "src": "15223:37:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15250:9:46", + "nodeType": "YulIdentifier", + "src": "15250:9:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "15237:12:46", + "nodeType": "YulIdentifier", + "src": "15237:12:46" + }, + "nativeSrc": "15237:23:46", + "nodeType": "YulFunctionCall", + "src": "15237:23:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "15227:6:46", + "nodeType": "YulTypedName", + "src": "15227:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15303:16:46", + "nodeType": "YulBlock", + "src": "15303:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15312:1:46", + "nodeType": "YulLiteral", + "src": "15312:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15315:1:46", + "nodeType": "YulLiteral", + "src": "15315:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15305:6:46", + "nodeType": "YulIdentifier", + "src": "15305:6:46" + }, + "nativeSrc": "15305:12:46", + "nodeType": "YulFunctionCall", + "src": "15305:12:46" + }, + "nativeSrc": "15305:12:46", + "nodeType": "YulExpressionStatement", + "src": "15305:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "15275:6:46", + "nodeType": "YulIdentifier", + "src": "15275:6:46" + }, + { + "kind": "number", + "nativeSrc": "15283:18:46", + "nodeType": "YulLiteral", + "src": "15283:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "15272:2:46", + "nodeType": "YulIdentifier", + "src": "15272:2:46" + }, + "nativeSrc": "15272:30:46", + "nodeType": "YulFunctionCall", + "src": "15272:30:46" + }, + "nativeSrc": "15269:50:46", + "nodeType": "YulIf", + "src": "15269:50:46" + }, + { + "nativeSrc": "15328:32:46", + "nodeType": "YulVariableDeclaration", + "src": "15328:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15342:9:46", + "nodeType": "YulIdentifier", + "src": "15342:9:46" + }, + { + "name": "offset", + "nativeSrc": "15353:6:46", + "nodeType": "YulIdentifier", + "src": "15353:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15338:3:46", + "nodeType": "YulIdentifier", + "src": "15338:3:46" + }, + "nativeSrc": "15338:22:46", + "nodeType": "YulFunctionCall", + "src": "15338:22:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "15332:2:46", + "nodeType": "YulTypedName", + "src": "15332:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15398:16:46", + "nodeType": "YulBlock", + "src": "15398:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15407:1:46", + "nodeType": "YulLiteral", + "src": "15407:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15410:1:46", + "nodeType": "YulLiteral", + "src": "15410:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15400:6:46", + "nodeType": "YulIdentifier", + "src": "15400:6:46" + }, + "nativeSrc": "15400:12:46", + "nodeType": "YulFunctionCall", + "src": "15400:12:46" + }, + "nativeSrc": "15400:12:46", + "nodeType": "YulExpressionStatement", + "src": "15400:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "15380:7:46", + "nodeType": "YulIdentifier", + "src": "15380:7:46" + }, + { + "name": "_1", + "nativeSrc": "15389:2:46", + "nodeType": "YulIdentifier", + "src": "15389:2:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "15376:3:46", + "nodeType": "YulIdentifier", + "src": "15376:3:46" + }, + "nativeSrc": "15376:16:46", + "nodeType": "YulFunctionCall", + "src": "15376:16:46" + }, + { + "kind": "number", + "nativeSrc": "15394:2:46", + "nodeType": "YulLiteral", + "src": "15394:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "15372:3:46", + "nodeType": "YulIdentifier", + "src": "15372:3:46" + }, + "nativeSrc": "15372:25:46", + "nodeType": "YulFunctionCall", + "src": "15372:25:46" + }, + "nativeSrc": "15369:45:46", + "nodeType": "YulIf", + "src": "15369:45:46" + }, + { + "nativeSrc": "15423:35:46", + "nodeType": "YulVariableDeclaration", + "src": "15423:35:46", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_memory_4237", + "nativeSrc": "15436:20:46", + "nodeType": "YulIdentifier", + "src": "15436:20:46" + }, + "nativeSrc": "15436:22:46", + "nodeType": "YulFunctionCall", + "src": "15436:22:46" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "15427:5:46", + "nodeType": "YulTypedName", + "src": "15427:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "15467:32:46", + "nodeType": "YulVariableDeclaration", + "src": "15467:32:46", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "15496:2:46", + "nodeType": "YulIdentifier", + "src": "15496:2:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "15483:12:46", + "nodeType": "YulIdentifier", + "src": "15483:12:46" + }, + "nativeSrc": "15483:16:46", + "nodeType": "YulFunctionCall", + "src": "15483:16:46" + }, + "variables": [ + { + "name": "offset_1", + "nativeSrc": "15471:8:46", + "nodeType": "YulTypedName", + "src": "15471:8:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15544:16:46", + "nodeType": "YulBlock", + "src": "15544:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15553:1:46", + "nodeType": "YulLiteral", + "src": "15553:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15556:1:46", + "nodeType": "YulLiteral", + "src": "15556:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15546:6:46", + "nodeType": "YulIdentifier", + "src": "15546:6:46" + }, + "nativeSrc": "15546:12:46", + "nodeType": "YulFunctionCall", + "src": "15546:12:46" + }, + "nativeSrc": "15546:12:46", + "nodeType": "YulExpressionStatement", + "src": "15546:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nativeSrc": "15514:8:46", + "nodeType": "YulIdentifier", + "src": "15514:8:46" + }, + { + "kind": "number", + "nativeSrc": "15524:18:46", + "nodeType": "YulLiteral", + "src": "15524:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "15511:2:46", + "nodeType": "YulIdentifier", + "src": "15511:2:46" + }, + "nativeSrc": "15511:32:46", + "nodeType": "YulFunctionCall", + "src": "15511:32:46" + }, + "nativeSrc": "15508:52:46", + "nodeType": "YulIf", + "src": "15508:52:46" + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "15576:5:46", + "nodeType": "YulIdentifier", + "src": "15576:5:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "15604:2:46", + "nodeType": "YulIdentifier", + "src": "15604:2:46" + }, + { + "name": "offset_1", + "nativeSrc": "15608:8:46", + "nodeType": "YulIdentifier", + "src": "15608:8:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15600:3:46", + "nodeType": "YulIdentifier", + "src": "15600:3:46" + }, + "nativeSrc": "15600:17:46", + "nodeType": "YulFunctionCall", + "src": "15600:17:46" + }, + { + "name": "dataEnd", + "nativeSrc": "15619:7:46", + "nodeType": "YulIdentifier", + "src": "15619:7:46" + } + ], + "functionName": { + "name": "abi_decode_bytes", + "nativeSrc": "15583:16:46", + "nodeType": "YulIdentifier", + "src": "15583:16:46" + }, + "nativeSrc": "15583:44:46", + "nodeType": "YulFunctionCall", + "src": "15583:44:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15569:6:46", + "nodeType": "YulIdentifier", + "src": "15569:6:46" + }, + "nativeSrc": "15569:59:46", + "nodeType": "YulFunctionCall", + "src": "15569:59:46" + }, + "nativeSrc": "15569:59:46", + "nodeType": "YulExpressionStatement", + "src": "15569:59:46" + }, + { + "nativeSrc": "15637:41:46", + "nodeType": "YulVariableDeclaration", + "src": "15637:41:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "15670:2:46", + "nodeType": "YulIdentifier", + "src": "15670:2:46" + }, + { + "kind": "number", + "nativeSrc": "15674:2:46", + "nodeType": "YulLiteral", + "src": "15674:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15666:3:46", + "nodeType": "YulIdentifier", + "src": "15666:3:46" + }, + "nativeSrc": "15666:11:46", + "nodeType": "YulFunctionCall", + "src": "15666:11:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "15653:12:46", + "nodeType": "YulIdentifier", + "src": "15653:12:46" + }, + "nativeSrc": "15653:25:46", + "nodeType": "YulFunctionCall", + "src": "15653:25:46" + }, + "variables": [ + { + "name": "offset_2", + "nativeSrc": "15641:8:46", + "nodeType": "YulTypedName", + "src": "15641:8:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15723:16:46", + "nodeType": "YulBlock", + "src": "15723:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15732:1:46", + "nodeType": "YulLiteral", + "src": "15732:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15735:1:46", + "nodeType": "YulLiteral", + "src": "15735:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15725:6:46", + "nodeType": "YulIdentifier", + "src": "15725:6:46" + }, + "nativeSrc": "15725:12:46", + "nodeType": "YulFunctionCall", + "src": "15725:12:46" + }, + "nativeSrc": "15725:12:46", + "nodeType": "YulExpressionStatement", + "src": "15725:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_2", + "nativeSrc": "15693:8:46", + "nodeType": "YulIdentifier", + "src": "15693:8:46" + }, + { + "kind": "number", + "nativeSrc": "15703:18:46", + "nodeType": "YulLiteral", + "src": "15703:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "15690:2:46", + "nodeType": "YulIdentifier", + "src": "15690:2:46" + }, + "nativeSrc": "15690:32:46", + "nodeType": "YulFunctionCall", + "src": "15690:32:46" + }, + "nativeSrc": "15687:52:46", + "nodeType": "YulIf", + "src": "15687:52:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "15759:5:46", + "nodeType": "YulIdentifier", + "src": "15759:5:46" + }, + { + "kind": "number", + "nativeSrc": "15766:2:46", + "nodeType": "YulLiteral", + "src": "15766:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15755:3:46", + "nodeType": "YulIdentifier", + "src": "15755:3:46" + }, + "nativeSrc": "15755:14:46", + "nodeType": "YulFunctionCall", + "src": "15755:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "15792:2:46", + "nodeType": "YulIdentifier", + "src": "15792:2:46" + }, + { + "name": "offset_2", + "nativeSrc": "15796:8:46", + "nodeType": "YulIdentifier", + "src": "15796:8:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15788:3:46", + "nodeType": "YulIdentifier", + "src": "15788:3:46" + }, + "nativeSrc": "15788:17:46", + "nodeType": "YulFunctionCall", + "src": "15788:17:46" + }, + { + "name": "dataEnd", + "nativeSrc": "15807:7:46", + "nodeType": "YulIdentifier", + "src": "15807:7:46" + } + ], + "functionName": { + "name": "abi_decode_bytes", + "nativeSrc": "15771:16:46", + "nodeType": "YulIdentifier", + "src": "15771:16:46" + }, + "nativeSrc": "15771:44:46", + "nodeType": "YulFunctionCall", + "src": "15771:44:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "15748:6:46", + "nodeType": "YulIdentifier", + "src": "15748:6:46" + }, + "nativeSrc": "15748:68:46", + "nodeType": "YulFunctionCall", + "src": "15748:68:46" + }, + "nativeSrc": "15748:68:46", + "nodeType": "YulExpressionStatement", + "src": "15748:68:46" + }, + { + "nativeSrc": "15825:15:46", + "nodeType": "YulAssignment", + "src": "15825:15:46", + "value": { + "name": "value", + "nativeSrc": "15835:5:46", + "nodeType": "YulIdentifier", + "src": "15835:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "15825:6:46", + "nodeType": "YulIdentifier", + "src": "15825:6:46" + } + ] + }, + { + "nativeSrc": "15849:48:46", + "nodeType": "YulVariableDeclaration", + "src": "15849:48:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15882:9:46", + "nodeType": "YulIdentifier", + "src": "15882:9:46" + }, + { + "kind": "number", + "nativeSrc": "15893:2:46", + "nodeType": "YulLiteral", + "src": "15893:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15878:3:46", + "nodeType": "YulIdentifier", + "src": "15878:3:46" + }, + "nativeSrc": "15878:18:46", + "nodeType": "YulFunctionCall", + "src": "15878:18:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "15865:12:46", + "nodeType": "YulIdentifier", + "src": "15865:12:46" + }, + "nativeSrc": "15865:32:46", + "nodeType": "YulFunctionCall", + "src": "15865:32:46" + }, + "variables": [ + { + "name": "offset_3", + "nativeSrc": "15853:8:46", + "nodeType": "YulTypedName", + "src": "15853:8:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "15942:16:46", + "nodeType": "YulBlock", + "src": "15942:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "15951:1:46", + "nodeType": "YulLiteral", + "src": "15951:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "15954:1:46", + "nodeType": "YulLiteral", + "src": "15954:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "15944:6:46", + "nodeType": "YulIdentifier", + "src": "15944:6:46" + }, + "nativeSrc": "15944:12:46", + "nodeType": "YulFunctionCall", + "src": "15944:12:46" + }, + "nativeSrc": "15944:12:46", + "nodeType": "YulExpressionStatement", + "src": "15944:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_3", + "nativeSrc": "15912:8:46", + "nodeType": "YulIdentifier", + "src": "15912:8:46" + }, + { + "kind": "number", + "nativeSrc": "15922:18:46", + "nodeType": "YulLiteral", + "src": "15922:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "15909:2:46", + "nodeType": "YulIdentifier", + "src": "15909:2:46" + }, + "nativeSrc": "15909:32:46", + "nodeType": "YulFunctionCall", + "src": "15909:32:46" + }, + "nativeSrc": "15906:52:46", + "nodeType": "YulIf", + "src": "15906:52:46" + }, + { + "nativeSrc": "15967:61:46", + "nodeType": "YulAssignment", + "src": "15967:61:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "15998:9:46", + "nodeType": "YulIdentifier", + "src": "15998:9:46" + }, + { + "name": "offset_3", + "nativeSrc": "16009:8:46", + "nodeType": "YulIdentifier", + "src": "16009:8:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "15994:3:46", + "nodeType": "YulIdentifier", + "src": "15994:3:46" + }, + "nativeSrc": "15994:24:46", + "nodeType": "YulFunctionCall", + "src": "15994:24:46" + }, + { + "name": "dataEnd", + "nativeSrc": "16020:7:46", + "nodeType": "YulIdentifier", + "src": "16020:7:46" + } + ], + "functionName": { + "name": "abi_decode_bytes", + "nativeSrc": "15977:16:46", + "nodeType": "YulIdentifier", + "src": "15977:16:46" + }, + "nativeSrc": "15977:51:46", + "nodeType": "YulFunctionCall", + "src": "15977:51:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "15967:6:46", + "nodeType": "YulIdentifier", + "src": "15967:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_CredentialProof_$16133_memory_ptrt_bytes_memory_ptr", + "nativeSrc": "15022:1012:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "15110:9:46", + "nodeType": "YulTypedName", + "src": "15110:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "15121:7:46", + "nodeType": "YulTypedName", + "src": "15121:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "15133:6:46", + "nodeType": "YulTypedName", + "src": "15133:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "15141:6:46", + "nodeType": "YulTypedName", + "src": "15141:6:46", + "type": "" + } + ], + "src": "15022:1012:46" + }, + { + "body": { + "nativeSrc": "16197:144:46", + "nodeType": "YulBlock", + "src": "16197:144:46", + "statements": [ + { + "nativeSrc": "16207:26:46", + "nodeType": "YulAssignment", + "src": "16207:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16219:9:46", + "nodeType": "YulIdentifier", + "src": "16219:9:46" + }, + { + "kind": "number", + "nativeSrc": "16230:2:46", + "nodeType": "YulLiteral", + "src": "16230:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16215:3:46", + "nodeType": "YulIdentifier", + "src": "16215:3:46" + }, + "nativeSrc": "16215:18:46", + "nodeType": "YulFunctionCall", + "src": "16215:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "16207:4:46", + "nodeType": "YulIdentifier", + "src": "16207:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16249:9:46", + "nodeType": "YulIdentifier", + "src": "16249:9:46" + }, + { + "name": "value0", + "nativeSrc": "16260:6:46", + "nodeType": "YulIdentifier", + "src": "16260:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16242:6:46", + "nodeType": "YulIdentifier", + "src": "16242:6:46" + }, + "nativeSrc": "16242:25:46", + "nodeType": "YulFunctionCall", + "src": "16242:25:46" + }, + "nativeSrc": "16242:25:46", + "nodeType": "YulExpressionStatement", + "src": "16242:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "16287:9:46", + "nodeType": "YulIdentifier", + "src": "16287:9:46" + }, + { + "kind": "number", + "nativeSrc": "16298:2:46", + "nodeType": "YulLiteral", + "src": "16298:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16283:3:46", + "nodeType": "YulIdentifier", + "src": "16283:3:46" + }, + "nativeSrc": "16283:18:46", + "nodeType": "YulFunctionCall", + "src": "16283:18:46" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "16307:6:46", + "nodeType": "YulIdentifier", + "src": "16307:6:46" + }, + { + "kind": "number", + "nativeSrc": "16315:18:46", + "nodeType": "YulLiteral", + "src": "16315:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "16303:3:46", + "nodeType": "YulIdentifier", + "src": "16303:3:46" + }, + "nativeSrc": "16303:31:46", + "nodeType": "YulFunctionCall", + "src": "16303:31:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16276:6:46", + "nodeType": "YulIdentifier", + "src": "16276:6:46" + }, + "nativeSrc": "16276:59:46", + "nodeType": "YulFunctionCall", + "src": "16276:59:46" + }, + "nativeSrc": "16276:59:46", + "nodeType": "YulExpressionStatement", + "src": "16276:59:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint64__to_t_uint256_t_uint64__fromStack_library_reversed", + "nativeSrc": "16039:302:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "16158:9:46", + "nodeType": "YulTypedName", + "src": "16158:9:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "16169:6:46", + "nodeType": "YulTypedName", + "src": "16169:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "16177:6:46", + "nodeType": "YulTypedName", + "src": "16177:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "16188:4:46", + "nodeType": "YulTypedName", + "src": "16188:4:46", + "type": "" + } + ], + "src": "16039:302:46" + }, + { + "body": { + "nativeSrc": "16403:107:46", + "nodeType": "YulBlock", + "src": "16403:107:46", + "statements": [ + { + "nativeSrc": "16413:22:46", + "nodeType": "YulAssignment", + "src": "16413:22:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "16428:6:46", + "nodeType": "YulIdentifier", + "src": "16428:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "16422:5:46", + "nodeType": "YulIdentifier", + "src": "16422:5:46" + }, + "nativeSrc": "16422:13:46", + "nodeType": "YulFunctionCall", + "src": "16422:13:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "16413:5:46", + "nodeType": "YulIdentifier", + "src": "16413:5:46" + } + ] + }, + { + "body": { + "nativeSrc": "16488:16:46", + "nodeType": "YulBlock", + "src": "16488:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16497:1:46", + "nodeType": "YulLiteral", + "src": "16497:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "16500:1:46", + "nodeType": "YulLiteral", + "src": "16500:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "16490:6:46", + "nodeType": "YulIdentifier", + "src": "16490:6:46" + }, + "nativeSrc": "16490:12:46", + "nodeType": "YulFunctionCall", + "src": "16490:12:46" + }, + "nativeSrc": "16490:12:46", + "nodeType": "YulExpressionStatement", + "src": "16490:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "16457:5:46", + "nodeType": "YulIdentifier", + "src": "16457:5:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "16478:5:46", + "nodeType": "YulIdentifier", + "src": "16478:5:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "16471:6:46", + "nodeType": "YulIdentifier", + "src": "16471:6:46" + }, + "nativeSrc": "16471:13:46", + "nodeType": "YulFunctionCall", + "src": "16471:13:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "16464:6:46", + "nodeType": "YulIdentifier", + "src": "16464:6:46" + }, + "nativeSrc": "16464:21:46", + "nodeType": "YulFunctionCall", + "src": "16464:21:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "16454:2:46", + "nodeType": "YulIdentifier", + "src": "16454:2:46" + }, + "nativeSrc": "16454:32:46", + "nodeType": "YulFunctionCall", + "src": "16454:32:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "16447:6:46", + "nodeType": "YulIdentifier", + "src": "16447:6:46" + }, + "nativeSrc": "16447:40:46", + "nodeType": "YulFunctionCall", + "src": "16447:40:46" + }, + "nativeSrc": "16444:60:46", + "nodeType": "YulIf", + "src": "16444:60:46" + } + ] + }, + "name": "abi_decode_bool_fromMemory", + "nativeSrc": "16346:164:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "16382:6:46", + "nodeType": "YulTypedName", + "src": "16382:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "16393:5:46", + "nodeType": "YulTypedName", + "src": "16393:5:46", + "type": "" + } + ], + "src": "16346:164:46" + }, + { + "body": { + "nativeSrc": "16590:697:46", + "nodeType": "YulBlock", + "src": "16590:697:46", + "statements": [ + { + "body": { + "nativeSrc": "16639:16:46", + "nodeType": "YulBlock", + "src": "16639:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16648:1:46", + "nodeType": "YulLiteral", + "src": "16648:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "16651:1:46", + "nodeType": "YulLiteral", + "src": "16651:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "16641:6:46", + "nodeType": "YulIdentifier", + "src": "16641:6:46" + }, + "nativeSrc": "16641:12:46", + "nodeType": "YulFunctionCall", + "src": "16641:12:46" + }, + "nativeSrc": "16641:12:46", + "nodeType": "YulExpressionStatement", + "src": "16641:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "16618:6:46", + "nodeType": "YulIdentifier", + "src": "16618:6:46" + }, + { + "kind": "number", + "nativeSrc": "16626:4:46", + "nodeType": "YulLiteral", + "src": "16626:4:46", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16614:3:46", + "nodeType": "YulIdentifier", + "src": "16614:3:46" + }, + "nativeSrc": "16614:17:46", + "nodeType": "YulFunctionCall", + "src": "16614:17:46" + }, + { + "name": "end", + "nativeSrc": "16633:3:46", + "nodeType": "YulIdentifier", + "src": "16633:3:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "16610:3:46", + "nodeType": "YulIdentifier", + "src": "16610:3:46" + }, + "nativeSrc": "16610:27:46", + "nodeType": "YulFunctionCall", + "src": "16610:27:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "16603:6:46", + "nodeType": "YulIdentifier", + "src": "16603:6:46" + }, + "nativeSrc": "16603:35:46", + "nodeType": "YulFunctionCall", + "src": "16603:35:46" + }, + "nativeSrc": "16600:55:46", + "nodeType": "YulIf", + "src": "16600:55:46" + }, + { + "nativeSrc": "16664:27:46", + "nodeType": "YulVariableDeclaration", + "src": "16664:27:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "16684:6:46", + "nodeType": "YulIdentifier", + "src": "16684:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "16678:5:46", + "nodeType": "YulIdentifier", + "src": "16678:5:46" + }, + "nativeSrc": "16678:13:46", + "nodeType": "YulFunctionCall", + "src": "16678:13:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "16668:6:46", + "nodeType": "YulTypedName", + "src": "16668:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "16734:22:46", + "nodeType": "YulBlock", + "src": "16734:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "16736:16:46", + "nodeType": "YulIdentifier", + "src": "16736:16:46" + }, + "nativeSrc": "16736:18:46", + "nodeType": "YulFunctionCall", + "src": "16736:18:46" + }, + "nativeSrc": "16736:18:46", + "nodeType": "YulExpressionStatement", + "src": "16736:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "16706:6:46", + "nodeType": "YulIdentifier", + "src": "16706:6:46" + }, + { + "kind": "number", + "nativeSrc": "16714:18:46", + "nodeType": "YulLiteral", + "src": "16714:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "16703:2:46", + "nodeType": "YulIdentifier", + "src": "16703:2:46" + }, + "nativeSrc": "16703:30:46", + "nodeType": "YulFunctionCall", + "src": "16703:30:46" + }, + "nativeSrc": "16700:56:46", + "nodeType": "YulIf", + "src": "16700:56:46" + }, + { + "nativeSrc": "16765:24:46", + "nodeType": "YulVariableDeclaration", + "src": "16765:24:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "16779:1:46", + "nodeType": "YulLiteral", + "src": "16779:1:46", + "type": "", + "value": "5" + }, + { + "name": "length", + "nativeSrc": "16782:6:46", + "nodeType": "YulIdentifier", + "src": "16782:6:46" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "16775:3:46", + "nodeType": "YulIdentifier", + "src": "16775:3:46" + }, + "nativeSrc": "16775:14:46", + "nodeType": "YulFunctionCall", + "src": "16775:14:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "16769:2:46", + "nodeType": "YulTypedName", + "src": "16769:2:46", + "type": "" + } + ] + }, + { + "nativeSrc": "16798:41:46", + "nodeType": "YulVariableDeclaration", + "src": "16798:41:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "16829:2:46", + "nodeType": "YulIdentifier", + "src": "16829:2:46" + }, + { + "kind": "number", + "nativeSrc": "16833:4:46", + "nodeType": "YulLiteral", + "src": "16833:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16825:3:46", + "nodeType": "YulIdentifier", + "src": "16825:3:46" + }, + "nativeSrc": "16825:13:46", + "nodeType": "YulFunctionCall", + "src": "16825:13:46" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "16809:15:46", + "nodeType": "YulIdentifier", + "src": "16809:15:46" + }, + "nativeSrc": "16809:30:46", + "nodeType": "YulFunctionCall", + "src": "16809:30:46" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "16802:3:46", + "nodeType": "YulTypedName", + "src": "16802:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "16848:18:46", + "nodeType": "YulVariableDeclaration", + "src": "16848:18:46", + "value": { + "name": "dst", + "nativeSrc": "16863:3:46", + "nodeType": "YulIdentifier", + "src": "16863:3:46" + }, + "variables": [ + { + "name": "array_1", + "nativeSrc": "16852:7:46", + "nodeType": "YulTypedName", + "src": "16852:7:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "16882:3:46", + "nodeType": "YulIdentifier", + "src": "16882:3:46" + }, + { + "name": "length", + "nativeSrc": "16887:6:46", + "nodeType": "YulIdentifier", + "src": "16887:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "16875:6:46", + "nodeType": "YulIdentifier", + "src": "16875:6:46" + }, + "nativeSrc": "16875:19:46", + "nodeType": "YulFunctionCall", + "src": "16875:19:46" + }, + "nativeSrc": "16875:19:46", + "nodeType": "YulExpressionStatement", + "src": "16875:19:46" + }, + { + "nativeSrc": "16903:21:46", + "nodeType": "YulAssignment", + "src": "16903:21:46", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "16914:3:46", + "nodeType": "YulIdentifier", + "src": "16914:3:46" + }, + { + "kind": "number", + "nativeSrc": "16919:4:46", + "nodeType": "YulLiteral", + "src": "16919:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16910:3:46", + "nodeType": "YulIdentifier", + "src": "16910:3:46" + }, + "nativeSrc": "16910:14:46", + "nodeType": "YulFunctionCall", + "src": "16910:14:46" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "16903:3:46", + "nodeType": "YulIdentifier", + "src": "16903:3:46" + } + ] + }, + { + "nativeSrc": "16933:40:46", + "nodeType": "YulVariableDeclaration", + "src": "16933:40:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "16955:6:46", + "nodeType": "YulIdentifier", + "src": "16955:6:46" + }, + { + "name": "_1", + "nativeSrc": "16963:2:46", + "nodeType": "YulIdentifier", + "src": "16963:2:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16951:3:46", + "nodeType": "YulIdentifier", + "src": "16951:3:46" + }, + "nativeSrc": "16951:15:46", + "nodeType": "YulFunctionCall", + "src": "16951:15:46" + }, + { + "kind": "number", + "nativeSrc": "16968:4:46", + "nodeType": "YulLiteral", + "src": "16968:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "16947:3:46", + "nodeType": "YulIdentifier", + "src": "16947:3:46" + }, + "nativeSrc": "16947:26:46", + "nodeType": "YulFunctionCall", + "src": "16947:26:46" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "16937:6:46", + "nodeType": "YulTypedName", + "src": "16937:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "17001:16:46", + "nodeType": "YulBlock", + "src": "17001:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17010:1:46", + "nodeType": "YulLiteral", + "src": "17010:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17013:1:46", + "nodeType": "YulLiteral", + "src": "17013:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17003:6:46", + "nodeType": "YulIdentifier", + "src": "17003:6:46" + }, + "nativeSrc": "17003:12:46", + "nodeType": "YulFunctionCall", + "src": "17003:12:46" + }, + "nativeSrc": "17003:12:46", + "nodeType": "YulExpressionStatement", + "src": "17003:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "16988:6:46", + "nodeType": "YulIdentifier", + "src": "16988:6:46" + }, + { + "name": "end", + "nativeSrc": "16996:3:46", + "nodeType": "YulIdentifier", + "src": "16996:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "16985:2:46", + "nodeType": "YulIdentifier", + "src": "16985:2:46" + }, + "nativeSrc": "16985:15:46", + "nodeType": "YulFunctionCall", + "src": "16985:15:46" + }, + "nativeSrc": "16982:35:46", + "nodeType": "YulIf", + "src": "16982:35:46" + }, + { + "nativeSrc": "17026:28:46", + "nodeType": "YulVariableDeclaration", + "src": "17026:28:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "17041:6:46", + "nodeType": "YulIdentifier", + "src": "17041:6:46" + }, + { + "kind": "number", + "nativeSrc": "17049:4:46", + "nodeType": "YulLiteral", + "src": "17049:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17037:3:46", + "nodeType": "YulIdentifier", + "src": "17037:3:46" + }, + "nativeSrc": "17037:17:46", + "nodeType": "YulFunctionCall", + "src": "17037:17:46" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "17030:3:46", + "nodeType": "YulTypedName", + "src": "17030:3:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "17121:135:46", + "nodeType": "YulBlock", + "src": "17121:135:46", + "statements": [ + { + "nativeSrc": "17135:14:46", + "nodeType": "YulVariableDeclaration", + "src": "17135:14:46", + "value": { + "kind": "number", + "nativeSrc": "17148:1:46", + "nodeType": "YulLiteral", + "src": "17148:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "17139:5:46", + "nodeType": "YulTypedName", + "src": "17139:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "17162:19:46", + "nodeType": "YulAssignment", + "src": "17162:19:46", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "17177:3:46", + "nodeType": "YulIdentifier", + "src": "17177:3:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17171:5:46", + "nodeType": "YulIdentifier", + "src": "17171:5:46" + }, + "nativeSrc": "17171:10:46", + "nodeType": "YulFunctionCall", + "src": "17171:10:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "17162:5:46", + "nodeType": "YulIdentifier", + "src": "17162:5:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "17201:3:46", + "nodeType": "YulIdentifier", + "src": "17201:3:46" + }, + { + "name": "value", + "nativeSrc": "17206:5:46", + "nodeType": "YulIdentifier", + "src": "17206:5:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17194:6:46", + "nodeType": "YulIdentifier", + "src": "17194:6:46" + }, + "nativeSrc": "17194:18:46", + "nodeType": "YulFunctionCall", + "src": "17194:18:46" + }, + "nativeSrc": "17194:18:46", + "nodeType": "YulExpressionStatement", + "src": "17194:18:46" + }, + { + "nativeSrc": "17225:21:46", + "nodeType": "YulAssignment", + "src": "17225:21:46", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "17236:3:46", + "nodeType": "YulIdentifier", + "src": "17236:3:46" + }, + { + "kind": "number", + "nativeSrc": "17241:4:46", + "nodeType": "YulLiteral", + "src": "17241:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17232:3:46", + "nodeType": "YulIdentifier", + "src": "17232:3:46" + }, + "nativeSrc": "17232:14:46", + "nodeType": "YulFunctionCall", + "src": "17232:14:46" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "17225:3:46", + "nodeType": "YulIdentifier", + "src": "17225:3:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "17074:3:46", + "nodeType": "YulIdentifier", + "src": "17074:3:46" + }, + { + "name": "srcEnd", + "nativeSrc": "17079:6:46", + "nodeType": "YulIdentifier", + "src": "17079:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "17071:2:46", + "nodeType": "YulIdentifier", + "src": "17071:2:46" + }, + "nativeSrc": "17071:15:46", + "nodeType": "YulFunctionCall", + "src": "17071:15:46" + }, + "nativeSrc": "17063:193:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "17087:25:46", + "nodeType": "YulBlock", + "src": "17087:25:46", + "statements": [ + { + "nativeSrc": "17089:21:46", + "nodeType": "YulAssignment", + "src": "17089:21:46", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "17100:3:46", + "nodeType": "YulIdentifier", + "src": "17100:3:46" + }, + { + "kind": "number", + "nativeSrc": "17105:4:46", + "nodeType": "YulLiteral", + "src": "17105:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17096:3:46", + "nodeType": "YulIdentifier", + "src": "17096:3:46" + }, + "nativeSrc": "17096:14:46", + "nodeType": "YulFunctionCall", + "src": "17096:14:46" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "17089:3:46", + "nodeType": "YulIdentifier", + "src": "17089:3:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "17067:3:46", + "nodeType": "YulBlock", + "src": "17067:3:46", + "statements": [] + }, + "src": "17063:193:46" + }, + { + "nativeSrc": "17265:16:46", + "nodeType": "YulAssignment", + "src": "17265:16:46", + "value": { + "name": "array_1", + "nativeSrc": "17274:7:46", + "nodeType": "YulIdentifier", + "src": "17274:7:46" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "17265:5:46", + "nodeType": "YulIdentifier", + "src": "17265:5:46" + } + ] + } + ] + }, + "name": "abi_decode_array_uint256_dyn_fromMemory", + "nativeSrc": "16515:772:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "16564:6:46", + "nodeType": "YulTypedName", + "src": "16564:6:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "16572:3:46", + "nodeType": "YulTypedName", + "src": "16572:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "16580:5:46", + "nodeType": "YulTypedName", + "src": "16580:5:46", + "type": "" + } + ], + "src": "16515:772:46" + }, + { + "body": { + "nativeSrc": "17365:1014:46", + "nodeType": "YulBlock", + "src": "17365:1014:46", + "statements": [ + { + "body": { + "nativeSrc": "17411:16:46", + "nodeType": "YulBlock", + "src": "17411:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17420:1:46", + "nodeType": "YulLiteral", + "src": "17420:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17423:1:46", + "nodeType": "YulLiteral", + "src": "17423:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17413:6:46", + "nodeType": "YulIdentifier", + "src": "17413:6:46" + }, + "nativeSrc": "17413:12:46", + "nodeType": "YulFunctionCall", + "src": "17413:12:46" + }, + "nativeSrc": "17413:12:46", + "nodeType": "YulExpressionStatement", + "src": "17413:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "end", + "nativeSrc": "17386:3:46", + "nodeType": "YulIdentifier", + "src": "17386:3:46" + }, + { + "name": "headStart", + "nativeSrc": "17391:9:46", + "nodeType": "YulIdentifier", + "src": "17391:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "17382:3:46", + "nodeType": "YulIdentifier", + "src": "17382:3:46" + }, + "nativeSrc": "17382:19:46", + "nodeType": "YulFunctionCall", + "src": "17382:19:46" + }, + { + "kind": "number", + "nativeSrc": "17403:6:46", + "nodeType": "YulLiteral", + "src": "17403:6:46", + "type": "", + "value": "0x0100" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "17378:3:46", + "nodeType": "YulIdentifier", + "src": "17378:3:46" + }, + "nativeSrc": "17378:32:46", + "nodeType": "YulFunctionCall", + "src": "17378:32:46" + }, + "nativeSrc": "17375:52:46", + "nodeType": "YulIf", + "src": "17375:52:46" + }, + { + "nativeSrc": "17436:31:46", + "nodeType": "YulAssignment", + "src": "17436:31:46", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_memory_4238", + "nativeSrc": "17445:20:46", + "nodeType": "YulIdentifier", + "src": "17445:20:46" + }, + "nativeSrc": "17445:22:46", + "nodeType": "YulFunctionCall", + "src": "17445:22:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "17436:5:46", + "nodeType": "YulIdentifier", + "src": "17436:5:46" + } + ] + }, + { + "nativeSrc": "17476:16:46", + "nodeType": "YulVariableDeclaration", + "src": "17476:16:46", + "value": { + "kind": "number", + "nativeSrc": "17491:1:46", + "nodeType": "YulLiteral", + "src": "17491:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "17480:7:46", + "nodeType": "YulTypedName", + "src": "17480:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "17501:27:46", + "nodeType": "YulAssignment", + "src": "17501:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17518:9:46", + "nodeType": "YulIdentifier", + "src": "17518:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17512:5:46", + "nodeType": "YulIdentifier", + "src": "17512:5:46" + }, + "nativeSrc": "17512:16:46", + "nodeType": "YulFunctionCall", + "src": "17512:16:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "17501:7:46", + "nodeType": "YulIdentifier", + "src": "17501:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "17544:5:46", + "nodeType": "YulIdentifier", + "src": "17544:5:46" + }, + { + "name": "value_1", + "nativeSrc": "17551:7:46", + "nodeType": "YulIdentifier", + "src": "17551:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17537:6:46", + "nodeType": "YulIdentifier", + "src": "17537:6:46" + }, + "nativeSrc": "17537:22:46", + "nodeType": "YulFunctionCall", + "src": "17537:22:46" + }, + "nativeSrc": "17537:22:46", + "nodeType": "YulExpressionStatement", + "src": "17537:22:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "17579:5:46", + "nodeType": "YulIdentifier", + "src": "17579:5:46" + }, + { + "kind": "number", + "nativeSrc": "17586:2:46", + "nodeType": "YulLiteral", + "src": "17586:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17575:3:46", + "nodeType": "YulIdentifier", + "src": "17575:3:46" + }, + "nativeSrc": "17575:14:46", + "nodeType": "YulFunctionCall", + "src": "17575:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17622:9:46", + "nodeType": "YulIdentifier", + "src": "17622:9:46" + }, + { + "kind": "number", + "nativeSrc": "17633:2:46", + "nodeType": "YulLiteral", + "src": "17633:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17618:3:46", + "nodeType": "YulIdentifier", + "src": "17618:3:46" + }, + "nativeSrc": "17618:18:46", + "nodeType": "YulFunctionCall", + "src": "17618:18:46" + } + ], + "functionName": { + "name": "abi_decode_bool_fromMemory", + "nativeSrc": "17591:26:46", + "nodeType": "YulIdentifier", + "src": "17591:26:46" + }, + "nativeSrc": "17591:46:46", + "nodeType": "YulFunctionCall", + "src": "17591:46:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17568:6:46", + "nodeType": "YulIdentifier", + "src": "17568:6:46" + }, + "nativeSrc": "17568:70:46", + "nodeType": "YulFunctionCall", + "src": "17568:70:46" + }, + "nativeSrc": "17568:70:46", + "nodeType": "YulExpressionStatement", + "src": "17568:70:46" + }, + { + "nativeSrc": "17647:39:46", + "nodeType": "YulVariableDeclaration", + "src": "17647:39:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17671:9:46", + "nodeType": "YulIdentifier", + "src": "17671:9:46" + }, + { + "kind": "number", + "nativeSrc": "17682:2:46", + "nodeType": "YulLiteral", + "src": "17682:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17667:3:46", + "nodeType": "YulIdentifier", + "src": "17667:3:46" + }, + "nativeSrc": "17667:18:46", + "nodeType": "YulFunctionCall", + "src": "17667:18:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17661:5:46", + "nodeType": "YulIdentifier", + "src": "17661:5:46" + }, + "nativeSrc": "17661:25:46", + "nodeType": "YulFunctionCall", + "src": "17661:25:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "17651:6:46", + "nodeType": "YulTypedName", + "src": "17651:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "17729:16:46", + "nodeType": "YulBlock", + "src": "17729:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "17738:1:46", + "nodeType": "YulLiteral", + "src": "17738:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "17741:1:46", + "nodeType": "YulLiteral", + "src": "17741:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "17731:6:46", + "nodeType": "YulIdentifier", + "src": "17731:6:46" + }, + "nativeSrc": "17731:12:46", + "nodeType": "YulFunctionCall", + "src": "17731:12:46" + }, + "nativeSrc": "17731:12:46", + "nodeType": "YulExpressionStatement", + "src": "17731:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "17701:6:46", + "nodeType": "YulIdentifier", + "src": "17701:6:46" + }, + { + "kind": "number", + "nativeSrc": "17709:18:46", + "nodeType": "YulLiteral", + "src": "17709:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "17698:2:46", + "nodeType": "YulIdentifier", + "src": "17698:2:46" + }, + "nativeSrc": "17698:30:46", + "nodeType": "YulFunctionCall", + "src": "17698:30:46" + }, + "nativeSrc": "17695:50:46", + "nodeType": "YulIf", + "src": "17695:50:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "17765:5:46", + "nodeType": "YulIdentifier", + "src": "17765:5:46" + }, + { + "kind": "number", + "nativeSrc": "17772:2:46", + "nodeType": "YulLiteral", + "src": "17772:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17761:3:46", + "nodeType": "YulIdentifier", + "src": "17761:3:46" + }, + "nativeSrc": "17761:14:46", + "nodeType": "YulFunctionCall", + "src": "17761:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17821:9:46", + "nodeType": "YulIdentifier", + "src": "17821:9:46" + }, + { + "name": "offset", + "nativeSrc": "17832:6:46", + "nodeType": "YulIdentifier", + "src": "17832:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17817:3:46", + "nodeType": "YulIdentifier", + "src": "17817:3:46" + }, + "nativeSrc": "17817:22:46", + "nodeType": "YulFunctionCall", + "src": "17817:22:46" + }, + { + "name": "end", + "nativeSrc": "17841:3:46", + "nodeType": "YulIdentifier", + "src": "17841:3:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_dyn_fromMemory", + "nativeSrc": "17777:39:46", + "nodeType": "YulIdentifier", + "src": "17777:39:46" + }, + "nativeSrc": "17777:68:46", + "nodeType": "YulFunctionCall", + "src": "17777:68:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17754:6:46", + "nodeType": "YulIdentifier", + "src": "17754:6:46" + }, + "nativeSrc": "17754:92:46", + "nodeType": "YulFunctionCall", + "src": "17754:92:46" + }, + "nativeSrc": "17754:92:46", + "nodeType": "YulExpressionStatement", + "src": "17754:92:46" + }, + { + "nativeSrc": "17855:16:46", + "nodeType": "YulVariableDeclaration", + "src": "17855:16:46", + "value": { + "kind": "number", + "nativeSrc": "17870:1:46", + "nodeType": "YulLiteral", + "src": "17870:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "17859:7:46", + "nodeType": "YulTypedName", + "src": "17859:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "17880:36:46", + "nodeType": "YulAssignment", + "src": "17880:36:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "17901:9:46", + "nodeType": "YulIdentifier", + "src": "17901:9:46" + }, + { + "kind": "number", + "nativeSrc": "17912:2:46", + "nodeType": "YulLiteral", + "src": "17912:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17897:3:46", + "nodeType": "YulIdentifier", + "src": "17897:3:46" + }, + "nativeSrc": "17897:18:46", + "nodeType": "YulFunctionCall", + "src": "17897:18:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "17891:5:46", + "nodeType": "YulIdentifier", + "src": "17891:5:46" + }, + "nativeSrc": "17891:25:46", + "nodeType": "YulFunctionCall", + "src": "17891:25:46" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "17880:7:46", + "nodeType": "YulIdentifier", + "src": "17880:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "17936:5:46", + "nodeType": "YulIdentifier", + "src": "17936:5:46" + }, + { + "kind": "number", + "nativeSrc": "17943:2:46", + "nodeType": "YulLiteral", + "src": "17943:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "17932:3:46", + "nodeType": "YulIdentifier", + "src": "17932:3:46" + }, + "nativeSrc": "17932:14:46", + "nodeType": "YulFunctionCall", + "src": "17932:14:46" + }, + { + "name": "value_2", + "nativeSrc": "17948:7:46", + "nodeType": "YulIdentifier", + "src": "17948:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "17925:6:46", + "nodeType": "YulIdentifier", + "src": "17925:6:46" + }, + "nativeSrc": "17925:31:46", + "nodeType": "YulFunctionCall", + "src": "17925:31:46" + }, + "nativeSrc": "17925:31:46", + "nodeType": "YulExpressionStatement", + "src": "17925:31:46" + }, + { + "nativeSrc": "17965:16:46", + "nodeType": "YulVariableDeclaration", + "src": "17965:16:46", + "value": { + "kind": "number", + "nativeSrc": "17980:1:46", + "nodeType": "YulLiteral", + "src": "17980:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "17969:7:46", + "nodeType": "YulTypedName", + "src": "17969:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "17990:37:46", + "nodeType": "YulAssignment", + "src": "17990:37:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18011:9:46", + "nodeType": "YulIdentifier", + "src": "18011:9:46" + }, + { + "kind": "number", + "nativeSrc": "18022:3:46", + "nodeType": "YulLiteral", + "src": "18022:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18007:3:46", + "nodeType": "YulIdentifier", + "src": "18007:3:46" + }, + "nativeSrc": "18007:19:46", + "nodeType": "YulFunctionCall", + "src": "18007:19:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18001:5:46", + "nodeType": "YulIdentifier", + "src": "18001:5:46" + }, + "nativeSrc": "18001:26:46", + "nodeType": "YulFunctionCall", + "src": "18001:26:46" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "17990:7:46", + "nodeType": "YulIdentifier", + "src": "17990:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "18047:5:46", + "nodeType": "YulIdentifier", + "src": "18047:5:46" + }, + { + "kind": "number", + "nativeSrc": "18054:3:46", + "nodeType": "YulLiteral", + "src": "18054:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18043:3:46", + "nodeType": "YulIdentifier", + "src": "18043:3:46" + }, + "nativeSrc": "18043:15:46", + "nodeType": "YulFunctionCall", + "src": "18043:15:46" + }, + { + "name": "value_3", + "nativeSrc": "18060:7:46", + "nodeType": "YulIdentifier", + "src": "18060:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18036:6:46", + "nodeType": "YulIdentifier", + "src": "18036:6:46" + }, + "nativeSrc": "18036:32:46", + "nodeType": "YulFunctionCall", + "src": "18036:32:46" + }, + "nativeSrc": "18036:32:46", + "nodeType": "YulExpressionStatement", + "src": "18036:32:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "18088:5:46", + "nodeType": "YulIdentifier", + "src": "18088:5:46" + }, + { + "kind": "number", + "nativeSrc": "18095:3:46", + "nodeType": "YulLiteral", + "src": "18095:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18084:3:46", + "nodeType": "YulIdentifier", + "src": "18084:3:46" + }, + "nativeSrc": "18084:15:46", + "nodeType": "YulFunctionCall", + "src": "18084:15:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18132:9:46", + "nodeType": "YulIdentifier", + "src": "18132:9:46" + }, + { + "kind": "number", + "nativeSrc": "18143:3:46", + "nodeType": "YulLiteral", + "src": "18143:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18128:3:46", + "nodeType": "YulIdentifier", + "src": "18128:3:46" + }, + "nativeSrc": "18128:19:46", + "nodeType": "YulFunctionCall", + "src": "18128:19:46" + } + ], + "functionName": { + "name": "abi_decode_bool_fromMemory", + "nativeSrc": "18101:26:46", + "nodeType": "YulIdentifier", + "src": "18101:26:46" + }, + "nativeSrc": "18101:47:46", + "nodeType": "YulFunctionCall", + "src": "18101:47:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18077:6:46", + "nodeType": "YulIdentifier", + "src": "18077:6:46" + }, + "nativeSrc": "18077:72:46", + "nodeType": "YulFunctionCall", + "src": "18077:72:46" + }, + "nativeSrc": "18077:72:46", + "nodeType": "YulExpressionStatement", + "src": "18077:72:46" + }, + { + "nativeSrc": "18158:16:46", + "nodeType": "YulVariableDeclaration", + "src": "18158:16:46", + "value": { + "kind": "number", + "nativeSrc": "18173:1:46", + "nodeType": "YulLiteral", + "src": "18173:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_4", + "nativeSrc": "18162:7:46", + "nodeType": "YulTypedName", + "src": "18162:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "18183:37:46", + "nodeType": "YulAssignment", + "src": "18183:37:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18204:9:46", + "nodeType": "YulIdentifier", + "src": "18204:9:46" + }, + { + "kind": "number", + "nativeSrc": "18215:3:46", + "nodeType": "YulLiteral", + "src": "18215:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18200:3:46", + "nodeType": "YulIdentifier", + "src": "18200:3:46" + }, + "nativeSrc": "18200:19:46", + "nodeType": "YulFunctionCall", + "src": "18200:19:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18194:5:46", + "nodeType": "YulIdentifier", + "src": "18194:5:46" + }, + "nativeSrc": "18194:26:46", + "nodeType": "YulFunctionCall", + "src": "18194:26:46" + }, + "variableNames": [ + { + "name": "value_4", + "nativeSrc": "18183:7:46", + "nodeType": "YulIdentifier", + "src": "18183:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "18240:5:46", + "nodeType": "YulIdentifier", + "src": "18240:5:46" + }, + { + "kind": "number", + "nativeSrc": "18247:3:46", + "nodeType": "YulLiteral", + "src": "18247:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18236:3:46", + "nodeType": "YulIdentifier", + "src": "18236:3:46" + }, + "nativeSrc": "18236:15:46", + "nodeType": "YulFunctionCall", + "src": "18236:15:46" + }, + { + "name": "value_4", + "nativeSrc": "18253:7:46", + "nodeType": "YulIdentifier", + "src": "18253:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18229:6:46", + "nodeType": "YulIdentifier", + "src": "18229:6:46" + }, + "nativeSrc": "18229:32:46", + "nodeType": "YulFunctionCall", + "src": "18229:32:46" + }, + "nativeSrc": "18229:32:46", + "nodeType": "YulExpressionStatement", + "src": "18229:32:46" + }, + { + "nativeSrc": "18270:16:46", + "nodeType": "YulVariableDeclaration", + "src": "18270:16:46", + "value": { + "kind": "number", + "nativeSrc": "18285:1:46", + "nodeType": "YulLiteral", + "src": "18285:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_5", + "nativeSrc": "18274:7:46", + "nodeType": "YulTypedName", + "src": "18274:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "18295:37:46", + "nodeType": "YulAssignment", + "src": "18295:37:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18316:9:46", + "nodeType": "YulIdentifier", + "src": "18316:9:46" + }, + { + "kind": "number", + "nativeSrc": "18327:3:46", + "nodeType": "YulLiteral", + "src": "18327:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18312:3:46", + "nodeType": "YulIdentifier", + "src": "18312:3:46" + }, + "nativeSrc": "18312:19:46", + "nodeType": "YulFunctionCall", + "src": "18312:19:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18306:5:46", + "nodeType": "YulIdentifier", + "src": "18306:5:46" + }, + "nativeSrc": "18306:26:46", + "nodeType": "YulFunctionCall", + "src": "18306:26:46" + }, + "variableNames": [ + { + "name": "value_5", + "nativeSrc": "18295:7:46", + "nodeType": "YulIdentifier", + "src": "18295:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "18352:5:46", + "nodeType": "YulIdentifier", + "src": "18352:5:46" + }, + { + "kind": "number", + "nativeSrc": "18359:3:46", + "nodeType": "YulLiteral", + "src": "18359:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18348:3:46", + "nodeType": "YulIdentifier", + "src": "18348:3:46" + }, + "nativeSrc": "18348:15:46", + "nodeType": "YulFunctionCall", + "src": "18348:15:46" + }, + { + "name": "value_5", + "nativeSrc": "18365:7:46", + "nodeType": "YulIdentifier", + "src": "18365:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "18341:6:46", + "nodeType": "YulIdentifier", + "src": "18341:6:46" + }, + "nativeSrc": "18341:32:46", + "nodeType": "YulFunctionCall", + "src": "18341:32:46" + }, + "nativeSrc": "18341:32:46", + "nodeType": "YulExpressionStatement", + "src": "18341:32:46" + } + ] + }, + "name": "abi_decode_struct_Proof_fromMemory", + "nativeSrc": "17292:1087:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "17336:9:46", + "nodeType": "YulTypedName", + "src": "17336:9:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "17347:3:46", + "nodeType": "YulTypedName", + "src": "17347:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nativeSrc": "17355:5:46", + "nodeType": "YulTypedName", + "src": "17355:5:46", + "type": "" + } + ], + "src": "17292:1087:46" + }, + { + "body": { + "nativeSrc": "18532:1010:46", + "nodeType": "YulBlock", + "src": "18532:1010:46", + "statements": [ + { + "nativeSrc": "18542:33:46", + "nodeType": "YulVariableDeclaration", + "src": "18542:33:46", + "value": { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "18556:7:46", + "nodeType": "YulIdentifier", + "src": "18556:7:46" + }, + { + "name": "headStart", + "nativeSrc": "18565:9:46", + "nodeType": "YulIdentifier", + "src": "18565:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "18552:3:46", + "nodeType": "YulIdentifier", + "src": "18552:3:46" + }, + "nativeSrc": "18552:23:46", + "nodeType": "YulFunctionCall", + "src": "18552:23:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "18546:2:46", + "nodeType": "YulTypedName", + "src": "18546:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18600:16:46", + "nodeType": "YulBlock", + "src": "18600:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18609:1:46", + "nodeType": "YulLiteral", + "src": "18609:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "18612:1:46", + "nodeType": "YulLiteral", + "src": "18612:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "18602:6:46", + "nodeType": "YulIdentifier", + "src": "18602:6:46" + }, + "nativeSrc": "18602:12:46", + "nodeType": "YulFunctionCall", + "src": "18602:12:46" + }, + "nativeSrc": "18602:12:46", + "nodeType": "YulExpressionStatement", + "src": "18602:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "18591:2:46", + "nodeType": "YulIdentifier", + "src": "18591:2:46" + }, + { + "kind": "number", + "nativeSrc": "18595:3:46", + "nodeType": "YulLiteral", + "src": "18595:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "18587:3:46", + "nodeType": "YulIdentifier", + "src": "18587:3:46" + }, + "nativeSrc": "18587:12:46", + "nodeType": "YulFunctionCall", + "src": "18587:12:46" + }, + "nativeSrc": "18584:32:46", + "nodeType": "YulIf", + "src": "18584:32:46" + }, + { + "nativeSrc": "18625:30:46", + "nodeType": "YulVariableDeclaration", + "src": "18625:30:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18645:9:46", + "nodeType": "YulIdentifier", + "src": "18645:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18639:5:46", + "nodeType": "YulIdentifier", + "src": "18639:5:46" + }, + "nativeSrc": "18639:16:46", + "nodeType": "YulFunctionCall", + "src": "18639:16:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "18629:6:46", + "nodeType": "YulTypedName", + "src": "18629:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "18698:16:46", + "nodeType": "YulBlock", + "src": "18698:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18707:1:46", + "nodeType": "YulLiteral", + "src": "18707:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "18710:1:46", + "nodeType": "YulLiteral", + "src": "18710:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "18700:6:46", + "nodeType": "YulIdentifier", + "src": "18700:6:46" + }, + "nativeSrc": "18700:12:46", + "nodeType": "YulFunctionCall", + "src": "18700:12:46" + }, + "nativeSrc": "18700:12:46", + "nodeType": "YulExpressionStatement", + "src": "18700:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "18670:6:46", + "nodeType": "YulIdentifier", + "src": "18670:6:46" + }, + { + "kind": "number", + "nativeSrc": "18678:18:46", + "nodeType": "YulLiteral", + "src": "18678:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18667:2:46", + "nodeType": "YulIdentifier", + "src": "18667:2:46" + }, + "nativeSrc": "18667:30:46", + "nodeType": "YulFunctionCall", + "src": "18667:30:46" + }, + "nativeSrc": "18664:50:46", + "nodeType": "YulIf", + "src": "18664:50:46" + }, + { + "nativeSrc": "18723:77:46", + "nodeType": "YulAssignment", + "src": "18723:77:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "18772:9:46", + "nodeType": "YulIdentifier", + "src": "18772:9:46" + }, + { + "name": "offset", + "nativeSrc": "18783:6:46", + "nodeType": "YulIdentifier", + "src": "18783:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18768:3:46", + "nodeType": "YulIdentifier", + "src": "18768:3:46" + }, + "nativeSrc": "18768:22:46", + "nodeType": "YulFunctionCall", + "src": "18768:22:46" + }, + { + "name": "dataEnd", + "nativeSrc": "18792:7:46", + "nodeType": "YulIdentifier", + "src": "18792:7:46" + } + ], + "functionName": { + "name": "abi_decode_struct_Proof_fromMemory", + "nativeSrc": "18733:34:46", + "nodeType": "YulIdentifier", + "src": "18733:34:46" + }, + "nativeSrc": "18733:67:46", + "nodeType": "YulFunctionCall", + "src": "18733:67:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "18723:6:46", + "nodeType": "YulIdentifier", + "src": "18723:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "18840:16:46", + "nodeType": "YulBlock", + "src": "18840:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18849:1:46", + "nodeType": "YulLiteral", + "src": "18849:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "18852:1:46", + "nodeType": "YulLiteral", + "src": "18852:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "18842:6:46", + "nodeType": "YulIdentifier", + "src": "18842:6:46" + }, + "nativeSrc": "18842:12:46", + "nodeType": "YulFunctionCall", + "src": "18842:12:46" + }, + "nativeSrc": "18842:12:46", + "nodeType": "YulExpressionStatement", + "src": "18842:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "18820:2:46", + "nodeType": "YulIdentifier", + "src": "18820:2:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18828:2:46", + "nodeType": "YulLiteral", + "src": "18828:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "18824:3:46", + "nodeType": "YulIdentifier", + "src": "18824:3:46" + }, + "nativeSrc": "18824:7:46", + "nodeType": "YulFunctionCall", + "src": "18824:7:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18816:3:46", + "nodeType": "YulIdentifier", + "src": "18816:3:46" + }, + "nativeSrc": "18816:16:46", + "nodeType": "YulFunctionCall", + "src": "18816:16:46" + }, + { + "kind": "number", + "nativeSrc": "18834:4:46", + "nodeType": "YulLiteral", + "src": "18834:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "18812:3:46", + "nodeType": "YulIdentifier", + "src": "18812:3:46" + }, + "nativeSrc": "18812:27:46", + "nodeType": "YulFunctionCall", + "src": "18812:27:46" + }, + "nativeSrc": "18809:47:46", + "nodeType": "YulIf", + "src": "18809:47:46" + }, + { + "nativeSrc": "18865:15:46", + "nodeType": "YulVariableDeclaration", + "src": "18865:15:46", + "value": { + "kind": "number", + "nativeSrc": "18879:1:46", + "nodeType": "YulLiteral", + "src": "18879:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "18869:6:46", + "nodeType": "YulTypedName", + "src": "18869:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "18889:19:46", + "nodeType": "YulAssignment", + "src": "18889:19:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "18905:2:46", + "nodeType": "YulLiteral", + "src": "18905:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "18899:5:46", + "nodeType": "YulIdentifier", + "src": "18899:5:46" + }, + "nativeSrc": "18899:9:46", + "nodeType": "YulFunctionCall", + "src": "18899:9:46" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "18889:6:46", + "nodeType": "YulIdentifier", + "src": "18889:6:46" + } + ] + }, + { + "nativeSrc": "18917:35:46", + "nodeType": "YulVariableDeclaration", + "src": "18917:35:46", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "18939:6:46", + "nodeType": "YulIdentifier", + "src": "18939:6:46" + }, + { + "kind": "number", + "nativeSrc": "18947:4:46", + "nodeType": "YulLiteral", + "src": "18947:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "18935:3:46", + "nodeType": "YulIdentifier", + "src": "18935:3:46" + }, + "nativeSrc": "18935:17:46", + "nodeType": "YulFunctionCall", + "src": "18935:17:46" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "18921:10:46", + "nodeType": "YulTypedName", + "src": "18921:10:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "19027:22:46", + "nodeType": "YulBlock", + "src": "19027:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "19029:16:46", + "nodeType": "YulIdentifier", + "src": "19029:16:46" + }, + "nativeSrc": "19029:18:46", + "nodeType": "YulFunctionCall", + "src": "19029:18:46" + }, + "nativeSrc": "19029:18:46", + "nodeType": "YulExpressionStatement", + "src": "19029:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "18970:10:46", + "nodeType": "YulIdentifier", + "src": "18970:10:46" + }, + { + "kind": "number", + "nativeSrc": "18982:18:46", + "nodeType": "YulLiteral", + "src": "18982:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "18967:2:46", + "nodeType": "YulIdentifier", + "src": "18967:2:46" + }, + "nativeSrc": "18967:34:46", + "nodeType": "YulFunctionCall", + "src": "18967:34:46" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "19006:10:46", + "nodeType": "YulIdentifier", + "src": "19006:10:46" + }, + { + "name": "memPtr", + "nativeSrc": "19018:6:46", + "nodeType": "YulIdentifier", + "src": "19018:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "19003:2:46", + "nodeType": "YulIdentifier", + "src": "19003:2:46" + }, + "nativeSrc": "19003:22:46", + "nodeType": "YulFunctionCall", + "src": "19003:22:46" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "18964:2:46", + "nodeType": "YulIdentifier", + "src": "18964:2:46" + }, + "nativeSrc": "18964:62:46", + "nodeType": "YulFunctionCall", + "src": "18964:62:46" + }, + "nativeSrc": "18961:88:46", + "nodeType": "YulIf", + "src": "18961:88:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19065:2:46", + "nodeType": "YulLiteral", + "src": "19065:2:46", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "19069:10:46", + "nodeType": "YulIdentifier", + "src": "19069:10:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19058:6:46", + "nodeType": "YulIdentifier", + "src": "19058:6:46" + }, + "nativeSrc": "19058:22:46", + "nodeType": "YulFunctionCall", + "src": "19058:22:46" + }, + "nativeSrc": "19058:22:46", + "nodeType": "YulExpressionStatement", + "src": "19058:22:46" + }, + { + "nativeSrc": "19089:14:46", + "nodeType": "YulVariableDeclaration", + "src": "19089:14:46", + "value": { + "kind": "number", + "nativeSrc": "19102:1:46", + "nodeType": "YulLiteral", + "src": "19102:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "19093:5:46", + "nodeType": "YulTypedName", + "src": "19093:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "19112:34:46", + "nodeType": "YulAssignment", + "src": "19112:34:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19131:9:46", + "nodeType": "YulIdentifier", + "src": "19131:9:46" + }, + { + "kind": "number", + "nativeSrc": "19142:2:46", + "nodeType": "YulLiteral", + "src": "19142:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19127:3:46", + "nodeType": "YulIdentifier", + "src": "19127:3:46" + }, + "nativeSrc": "19127:18:46", + "nodeType": "YulFunctionCall", + "src": "19127:18:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19121:5:46", + "nodeType": "YulIdentifier", + "src": "19121:5:46" + }, + "nativeSrc": "19121:25:46", + "nodeType": "YulFunctionCall", + "src": "19121:25:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "19112:5:46", + "nodeType": "YulIdentifier", + "src": "19112:5:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "19162:6:46", + "nodeType": "YulIdentifier", + "src": "19162:6:46" + }, + { + "name": "value", + "nativeSrc": "19170:5:46", + "nodeType": "YulIdentifier", + "src": "19170:5:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19155:6:46", + "nodeType": "YulIdentifier", + "src": "19155:6:46" + }, + "nativeSrc": "19155:21:46", + "nodeType": "YulFunctionCall", + "src": "19155:21:46" + }, + "nativeSrc": "19155:21:46", + "nodeType": "YulExpressionStatement", + "src": "19155:21:46" + }, + { + "nativeSrc": "19185:16:46", + "nodeType": "YulVariableDeclaration", + "src": "19185:16:46", + "value": { + "kind": "number", + "nativeSrc": "19200:1:46", + "nodeType": "YulLiteral", + "src": "19200:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "19189:7:46", + "nodeType": "YulTypedName", + "src": "19189:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "19210:36:46", + "nodeType": "YulAssignment", + "src": "19210:36:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19231:9:46", + "nodeType": "YulIdentifier", + "src": "19231:9:46" + }, + { + "kind": "number", + "nativeSrc": "19242:2:46", + "nodeType": "YulLiteral", + "src": "19242:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19227:3:46", + "nodeType": "YulIdentifier", + "src": "19227:3:46" + }, + "nativeSrc": "19227:18:46", + "nodeType": "YulFunctionCall", + "src": "19227:18:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19221:5:46", + "nodeType": "YulIdentifier", + "src": "19221:5:46" + }, + "nativeSrc": "19221:25:46", + "nodeType": "YulFunctionCall", + "src": "19221:25:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "19210:7:46", + "nodeType": "YulIdentifier", + "src": "19210:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "19266:6:46", + "nodeType": "YulIdentifier", + "src": "19266:6:46" + }, + { + "kind": "number", + "nativeSrc": "19274:2:46", + "nodeType": "YulLiteral", + "src": "19274:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19262:3:46", + "nodeType": "YulIdentifier", + "src": "19262:3:46" + }, + "nativeSrc": "19262:15:46", + "nodeType": "YulFunctionCall", + "src": "19262:15:46" + }, + { + "name": "value_1", + "nativeSrc": "19279:7:46", + "nodeType": "YulIdentifier", + "src": "19279:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19255:6:46", + "nodeType": "YulIdentifier", + "src": "19255:6:46" + }, + "nativeSrc": "19255:32:46", + "nodeType": "YulFunctionCall", + "src": "19255:32:46" + }, + "nativeSrc": "19255:32:46", + "nodeType": "YulExpressionStatement", + "src": "19255:32:46" + }, + { + "nativeSrc": "19296:16:46", + "nodeType": "YulVariableDeclaration", + "src": "19296:16:46", + "value": { + "kind": "number", + "nativeSrc": "19311:1:46", + "nodeType": "YulLiteral", + "src": "19311:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "19300:7:46", + "nodeType": "YulTypedName", + "src": "19300:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "19321:36:46", + "nodeType": "YulAssignment", + "src": "19321:36:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19342:9:46", + "nodeType": "YulIdentifier", + "src": "19342:9:46" + }, + { + "kind": "number", + "nativeSrc": "19353:2:46", + "nodeType": "YulLiteral", + "src": "19353:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19338:3:46", + "nodeType": "YulIdentifier", + "src": "19338:3:46" + }, + "nativeSrc": "19338:18:46", + "nodeType": "YulFunctionCall", + "src": "19338:18:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19332:5:46", + "nodeType": "YulIdentifier", + "src": "19332:5:46" + }, + "nativeSrc": "19332:25:46", + "nodeType": "YulFunctionCall", + "src": "19332:25:46" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "19321:7:46", + "nodeType": "YulIdentifier", + "src": "19321:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "19377:6:46", + "nodeType": "YulIdentifier", + "src": "19377:6:46" + }, + { + "kind": "number", + "nativeSrc": "19385:2:46", + "nodeType": "YulLiteral", + "src": "19385:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19373:3:46", + "nodeType": "YulIdentifier", + "src": "19373:3:46" + }, + "nativeSrc": "19373:15:46", + "nodeType": "YulFunctionCall", + "src": "19373:15:46" + }, + { + "name": "value_2", + "nativeSrc": "19390:7:46", + "nodeType": "YulIdentifier", + "src": "19390:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19366:6:46", + "nodeType": "YulIdentifier", + "src": "19366:6:46" + }, + "nativeSrc": "19366:32:46", + "nodeType": "YulFunctionCall", + "src": "19366:32:46" + }, + "nativeSrc": "19366:32:46", + "nodeType": "YulExpressionStatement", + "src": "19366:32:46" + }, + { + "nativeSrc": "19407:16:46", + "nodeType": "YulVariableDeclaration", + "src": "19407:16:46", + "value": { + "kind": "number", + "nativeSrc": "19422:1:46", + "nodeType": "YulLiteral", + "src": "19422:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "19411:7:46", + "nodeType": "YulTypedName", + "src": "19411:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "19432:38:46", + "nodeType": "YulAssignment", + "src": "19432:38:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19453:9:46", + "nodeType": "YulIdentifier", + "src": "19453:9:46" + }, + { + "kind": "number", + "nativeSrc": "19464:4:46", + "nodeType": "YulLiteral", + "src": "19464:4:46", + "type": "", + "value": "0x80" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19449:3:46", + "nodeType": "YulIdentifier", + "src": "19449:3:46" + }, + "nativeSrc": "19449:20:46", + "nodeType": "YulFunctionCall", + "src": "19449:20:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19443:5:46", + "nodeType": "YulIdentifier", + "src": "19443:5:46" + }, + "nativeSrc": "19443:27:46", + "nodeType": "YulFunctionCall", + "src": "19443:27:46" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "19432:7:46", + "nodeType": "YulIdentifier", + "src": "19432:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "19490:6:46", + "nodeType": "YulIdentifier", + "src": "19490:6:46" + }, + { + "kind": "number", + "nativeSrc": "19498:2:46", + "nodeType": "YulLiteral", + "src": "19498:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19486:3:46", + "nodeType": "YulIdentifier", + "src": "19486:3:46" + }, + "nativeSrc": "19486:15:46", + "nodeType": "YulFunctionCall", + "src": "19486:15:46" + }, + { + "name": "value_3", + "nativeSrc": "19503:7:46", + "nodeType": "YulIdentifier", + "src": "19503:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19479:6:46", + "nodeType": "YulIdentifier", + "src": "19479:6:46" + }, + "nativeSrc": "19479:32:46", + "nodeType": "YulFunctionCall", + "src": "19479:32:46" + }, + "nativeSrc": "19479:32:46", + "nodeType": "YulExpressionStatement", + "src": "19479:32:46" + }, + { + "nativeSrc": "19520:16:46", + "nodeType": "YulAssignment", + "src": "19520:16:46", + "value": { + "name": "memPtr", + "nativeSrc": "19530:6:46", + "nodeType": "YulIdentifier", + "src": "19530:6:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "19520:6:46", + "nodeType": "YulIdentifier", + "src": "19520:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Proof_$2979_memory_ptrt_struct$_StateInfo_$1400_memory_ptr_fromMemory", + "nativeSrc": "18384:1158:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "18490:9:46", + "nodeType": "YulTypedName", + "src": "18490:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "18501:7:46", + "nodeType": "YulTypedName", + "src": "18501:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "18513:6:46", + "nodeType": "YulTypedName", + "src": "18513:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "18521:6:46", + "nodeType": "YulTypedName", + "src": "18521:6:46", + "type": "" + } + ], + "src": "18384:1158:46" + }, + { + "body": { + "nativeSrc": "19679:76:46", + "nodeType": "YulBlock", + "src": "19679:76:46", + "statements": [ + { + "nativeSrc": "19689:26:46", + "nodeType": "YulAssignment", + "src": "19689:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19701:9:46", + "nodeType": "YulIdentifier", + "src": "19701:9:46" + }, + { + "kind": "number", + "nativeSrc": "19712:2:46", + "nodeType": "YulLiteral", + "src": "19712:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "19697:3:46", + "nodeType": "YulIdentifier", + "src": "19697:3:46" + }, + "nativeSrc": "19697:18:46", + "nodeType": "YulFunctionCall", + "src": "19697:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "19689:4:46", + "nodeType": "YulIdentifier", + "src": "19689:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19731:9:46", + "nodeType": "YulIdentifier", + "src": "19731:9:46" + }, + { + "name": "value0", + "nativeSrc": "19742:6:46", + "nodeType": "YulIdentifier", + "src": "19742:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "19724:6:46", + "nodeType": "YulIdentifier", + "src": "19724:6:46" + }, + "nativeSrc": "19724:25:46", + "nodeType": "YulFunctionCall", + "src": "19724:25:46" + }, + "nativeSrc": "19724:25:46", + "nodeType": "YulExpressionStatement", + "src": "19724:25:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr__to_t_uint256__fromStack_library_reversed", + "nativeSrc": "19547:208:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "19648:9:46", + "nodeType": "YulTypedName", + "src": "19648:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "19659:6:46", + "nodeType": "YulTypedName", + "src": "19659:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "19670:4:46", + "nodeType": "YulTypedName", + "src": "19670:4:46", + "type": "" + } + ], + "src": "19547:208:46" + }, + { + "body": { + "nativeSrc": "19841:149:46", + "nodeType": "YulBlock", + "src": "19841:149:46", + "statements": [ + { + "body": { + "nativeSrc": "19887:16:46", + "nodeType": "YulBlock", + "src": "19887:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "19896:1:46", + "nodeType": "YulLiteral", + "src": "19896:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "19899:1:46", + "nodeType": "YulLiteral", + "src": "19899:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "19889:6:46", + "nodeType": "YulIdentifier", + "src": "19889:6:46" + }, + "nativeSrc": "19889:12:46", + "nodeType": "YulFunctionCall", + "src": "19889:12:46" + }, + "nativeSrc": "19889:12:46", + "nodeType": "YulExpressionStatement", + "src": "19889:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "19862:7:46", + "nodeType": "YulIdentifier", + "src": "19862:7:46" + }, + { + "name": "headStart", + "nativeSrc": "19871:9:46", + "nodeType": "YulIdentifier", + "src": "19871:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "19858:3:46", + "nodeType": "YulIdentifier", + "src": "19858:3:46" + }, + "nativeSrc": "19858:23:46", + "nodeType": "YulFunctionCall", + "src": "19858:23:46" + }, + { + "kind": "number", + "nativeSrc": "19883:2:46", + "nodeType": "YulLiteral", + "src": "19883:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "19854:3:46", + "nodeType": "YulIdentifier", + "src": "19854:3:46" + }, + "nativeSrc": "19854:32:46", + "nodeType": "YulFunctionCall", + "src": "19854:32:46" + }, + "nativeSrc": "19851:52:46", + "nodeType": "YulIf", + "src": "19851:52:46" + }, + { + "nativeSrc": "19912:14:46", + "nodeType": "YulVariableDeclaration", + "src": "19912:14:46", + "value": { + "kind": "number", + "nativeSrc": "19925:1:46", + "nodeType": "YulLiteral", + "src": "19925:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "19916:5:46", + "nodeType": "YulTypedName", + "src": "19916:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "19935:25:46", + "nodeType": "YulAssignment", + "src": "19935:25:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "19950:9:46", + "nodeType": "YulIdentifier", + "src": "19950:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "19944:5:46", + "nodeType": "YulIdentifier", + "src": "19944:5:46" + }, + "nativeSrc": "19944:16:46", + "nodeType": "YulFunctionCall", + "src": "19944:16:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "19935:5:46", + "nodeType": "YulIdentifier", + "src": "19935:5:46" + } + ] + }, + { + "nativeSrc": "19969:15:46", + "nodeType": "YulAssignment", + "src": "19969:15:46", + "value": { + "name": "value", + "nativeSrc": "19979:5:46", + "nodeType": "YulIdentifier", + "src": "19979:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "19969:6:46", + "nodeType": "YulIdentifier", + "src": "19969:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nativeSrc": "19760:230:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "19807:9:46", + "nodeType": "YulTypedName", + "src": "19807:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "19818:7:46", + "nodeType": "YulTypedName", + "src": "19818:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "19830:6:46", + "nodeType": "YulTypedName", + "src": "19830:6:46", + "type": "" + } + ], + "src": "19760:230:46" + }, + { + "body": { + "nativeSrc": "20122:144:46", + "nodeType": "YulBlock", + "src": "20122:144:46", + "statements": [ + { + "nativeSrc": "20132:26:46", + "nodeType": "YulAssignment", + "src": "20132:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20144:9:46", + "nodeType": "YulIdentifier", + "src": "20144:9:46" + }, + { + "kind": "number", + "nativeSrc": "20155:2:46", + "nodeType": "YulLiteral", + "src": "20155:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20140:3:46", + "nodeType": "YulIdentifier", + "src": "20140:3:46" + }, + "nativeSrc": "20140:18:46", + "nodeType": "YulFunctionCall", + "src": "20140:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "20132:4:46", + "nodeType": "YulIdentifier", + "src": "20132:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20174:9:46", + "nodeType": "YulIdentifier", + "src": "20174:9:46" + }, + { + "name": "value0", + "nativeSrc": "20185:6:46", + "nodeType": "YulIdentifier", + "src": "20185:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20167:6:46", + "nodeType": "YulIdentifier", + "src": "20167:6:46" + }, + "nativeSrc": "20167:25:46", + "nodeType": "YulFunctionCall", + "src": "20167:25:46" + }, + "nativeSrc": "20167:25:46", + "nodeType": "YulExpressionStatement", + "src": "20167:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20212:9:46", + "nodeType": "YulIdentifier", + "src": "20212:9:46" + }, + { + "kind": "number", + "nativeSrc": "20223:2:46", + "nodeType": "YulLiteral", + "src": "20223:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20208:3:46", + "nodeType": "YulIdentifier", + "src": "20208:3:46" + }, + "nativeSrc": "20208:18:46", + "nodeType": "YulFunctionCall", + "src": "20208:18:46" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "20232:6:46", + "nodeType": "YulIdentifier", + "src": "20232:6:46" + }, + { + "kind": "number", + "nativeSrc": "20240:18:46", + "nodeType": "YulLiteral", + "src": "20240:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "20228:3:46", + "nodeType": "YulIdentifier", + "src": "20228:3:46" + }, + "nativeSrc": "20228:31:46", + "nodeType": "YulFunctionCall", + "src": "20228:31:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20201:6:46", + "nodeType": "YulIdentifier", + "src": "20201:6:46" + }, + "nativeSrc": "20201:59:46", + "nodeType": "YulFunctionCall", + "src": "20201:59:46" + }, + "nativeSrc": "20201:59:46", + "nodeType": "YulExpressionStatement", + "src": "20201:59:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint64__to_t_uint256_t_uint64__fromStack_reversed", + "nativeSrc": "19995:271:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "20083:9:46", + "nodeType": "YulTypedName", + "src": "20083:9:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "20094:6:46", + "nodeType": "YulTypedName", + "src": "20094:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "20102:6:46", + "nodeType": "YulTypedName", + "src": "20102:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "20113:4:46", + "nodeType": "YulTypedName", + "src": "20113:4:46", + "type": "" + } + ], + "src": "19995:271:46" + }, + { + "body": { + "nativeSrc": "20375:252:46", + "nodeType": "YulBlock", + "src": "20375:252:46", + "statements": [ + { + "body": { + "nativeSrc": "20421:16:46", + "nodeType": "YulBlock", + "src": "20421:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20430:1:46", + "nodeType": "YulLiteral", + "src": "20430:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "20433:1:46", + "nodeType": "YulLiteral", + "src": "20433:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "20423:6:46", + "nodeType": "YulIdentifier", + "src": "20423:6:46" + }, + "nativeSrc": "20423:12:46", + "nodeType": "YulFunctionCall", + "src": "20423:12:46" + }, + "nativeSrc": "20423:12:46", + "nodeType": "YulExpressionStatement", + "src": "20423:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "20396:7:46", + "nodeType": "YulIdentifier", + "src": "20396:7:46" + }, + { + "name": "headStart", + "nativeSrc": "20405:9:46", + "nodeType": "YulIdentifier", + "src": "20405:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "20392:3:46", + "nodeType": "YulIdentifier", + "src": "20392:3:46" + }, + "nativeSrc": "20392:23:46", + "nodeType": "YulFunctionCall", + "src": "20392:23:46" + }, + { + "kind": "number", + "nativeSrc": "20417:2:46", + "nodeType": "YulLiteral", + "src": "20417:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "20388:3:46", + "nodeType": "YulIdentifier", + "src": "20388:3:46" + }, + "nativeSrc": "20388:32:46", + "nodeType": "YulFunctionCall", + "src": "20388:32:46" + }, + "nativeSrc": "20385:52:46", + "nodeType": "YulIf", + "src": "20385:52:46" + }, + { + "nativeSrc": "20446:30:46", + "nodeType": "YulVariableDeclaration", + "src": "20446:30:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20466:9:46", + "nodeType": "YulIdentifier", + "src": "20466:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "20460:5:46", + "nodeType": "YulIdentifier", + "src": "20460:5:46" + }, + "nativeSrc": "20460:16:46", + "nodeType": "YulFunctionCall", + "src": "20460:16:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "20450:6:46", + "nodeType": "YulTypedName", + "src": "20450:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "20519:16:46", + "nodeType": "YulBlock", + "src": "20519:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "20528:1:46", + "nodeType": "YulLiteral", + "src": "20528:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "20531:1:46", + "nodeType": "YulLiteral", + "src": "20531:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "20521:6:46", + "nodeType": "YulIdentifier", + "src": "20521:6:46" + }, + "nativeSrc": "20521:12:46", + "nodeType": "YulFunctionCall", + "src": "20521:12:46" + }, + "nativeSrc": "20521:12:46", + "nodeType": "YulExpressionStatement", + "src": "20521:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "20491:6:46", + "nodeType": "YulIdentifier", + "src": "20491:6:46" + }, + { + "kind": "number", + "nativeSrc": "20499:18:46", + "nodeType": "YulLiteral", + "src": "20499:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "20488:2:46", + "nodeType": "YulIdentifier", + "src": "20488:2:46" + }, + "nativeSrc": "20488:30:46", + "nodeType": "YulFunctionCall", + "src": "20488:30:46" + }, + "nativeSrc": "20485:50:46", + "nodeType": "YulIf", + "src": "20485:50:46" + }, + { + "nativeSrc": "20544:77:46", + "nodeType": "YulAssignment", + "src": "20544:77:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20593:9:46", + "nodeType": "YulIdentifier", + "src": "20593:9:46" + }, + { + "name": "offset", + "nativeSrc": "20604:6:46", + "nodeType": "YulIdentifier", + "src": "20604:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20589:3:46", + "nodeType": "YulIdentifier", + "src": "20589:3:46" + }, + "nativeSrc": "20589:22:46", + "nodeType": "YulFunctionCall", + "src": "20589:22:46" + }, + { + "name": "dataEnd", + "nativeSrc": "20613:7:46", + "nodeType": "YulIdentifier", + "src": "20613:7:46" + } + ], + "functionName": { + "name": "abi_decode_struct_Proof_fromMemory", + "nativeSrc": "20554:34:46", + "nodeType": "YulIdentifier", + "src": "20554:34:46" + }, + "nativeSrc": "20554:67:46", + "nodeType": "YulFunctionCall", + "src": "20554:67:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "20544:6:46", + "nodeType": "YulIdentifier", + "src": "20544:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Proof_$2979_memory_ptr_fromMemory", + "nativeSrc": "20271:356:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "20341:9:46", + "nodeType": "YulTypedName", + "src": "20341:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "20352:7:46", + "nodeType": "YulTypedName", + "src": "20352:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "20364:6:46", + "nodeType": "YulTypedName", + "src": "20364:6:46", + "type": "" + } + ], + "src": "20271:356:46" + }, + { + "body": { + "nativeSrc": "20820:162:46", + "nodeType": "YulBlock", + "src": "20820:162:46", + "statements": [ + { + "nativeSrc": "20830:26:46", + "nodeType": "YulAssignment", + "src": "20830:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20842:9:46", + "nodeType": "YulIdentifier", + "src": "20842:9:46" + }, + { + "kind": "number", + "nativeSrc": "20853:2:46", + "nodeType": "YulLiteral", + "src": "20853:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20838:3:46", + "nodeType": "YulIdentifier", + "src": "20838:3:46" + }, + "nativeSrc": "20838:18:46", + "nodeType": "YulFunctionCall", + "src": "20838:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "20830:4:46", + "nodeType": "YulIdentifier", + "src": "20830:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20872:9:46", + "nodeType": "YulIdentifier", + "src": "20872:9:46" + }, + { + "name": "value0", + "nativeSrc": "20883:6:46", + "nodeType": "YulIdentifier", + "src": "20883:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20865:6:46", + "nodeType": "YulIdentifier", + "src": "20865:6:46" + }, + "nativeSrc": "20865:25:46", + "nodeType": "YulFunctionCall", + "src": "20865:25:46" + }, + "nativeSrc": "20865:25:46", + "nodeType": "YulExpressionStatement", + "src": "20865:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20910:9:46", + "nodeType": "YulIdentifier", + "src": "20910:9:46" + }, + { + "kind": "number", + "nativeSrc": "20921:2:46", + "nodeType": "YulLiteral", + "src": "20921:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20906:3:46", + "nodeType": "YulIdentifier", + "src": "20906:3:46" + }, + "nativeSrc": "20906:18:46", + "nodeType": "YulFunctionCall", + "src": "20906:18:46" + }, + { + "name": "value1", + "nativeSrc": "20926:6:46", + "nodeType": "YulIdentifier", + "src": "20926:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20899:6:46", + "nodeType": "YulIdentifier", + "src": "20899:6:46" + }, + "nativeSrc": "20899:34:46", + "nodeType": "YulFunctionCall", + "src": "20899:34:46" + }, + "nativeSrc": "20899:34:46", + "nodeType": "YulExpressionStatement", + "src": "20899:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "20953:9:46", + "nodeType": "YulIdentifier", + "src": "20953:9:46" + }, + { + "kind": "number", + "nativeSrc": "20964:2:46", + "nodeType": "YulLiteral", + "src": "20964:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "20949:3:46", + "nodeType": "YulIdentifier", + "src": "20949:3:46" + }, + "nativeSrc": "20949:18:46", + "nodeType": "YulFunctionCall", + "src": "20949:18:46" + }, + { + "name": "value2", + "nativeSrc": "20969:6:46", + "nodeType": "YulIdentifier", + "src": "20969:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "20942:6:46", + "nodeType": "YulIdentifier", + "src": "20942:6:46" + }, + "nativeSrc": "20942:34:46", + "nodeType": "YulFunctionCall", + "src": "20942:34:46" + }, + "nativeSrc": "20942:34:46", + "nodeType": "YulExpressionStatement", + "src": "20942:34:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_library_reversed", + "nativeSrc": "20632:350:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "20773:9:46", + "nodeType": "YulTypedName", + "src": "20773:9:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "20784:6:46", + "nodeType": "YulTypedName", + "src": "20784:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "20792:6:46", + "nodeType": "YulTypedName", + "src": "20792:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "20800:6:46", + "nodeType": "YulTypedName", + "src": "20800:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "20811:4:46", + "nodeType": "YulTypedName", + "src": "20811:4:46", + "type": "" + } + ], + "src": "20632:350:46" + }, + { + "body": { + "nativeSrc": "21229:324:46", + "nodeType": "YulBlock", + "src": "21229:324:46", + "statements": [ + { + "nativeSrc": "21239:27:46", + "nodeType": "YulAssignment", + "src": "21239:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21251:9:46", + "nodeType": "YulIdentifier", + "src": "21251:9:46" + }, + { + "kind": "number", + "nativeSrc": "21262:3:46", + "nodeType": "YulLiteral", + "src": "21262:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21247:3:46", + "nodeType": "YulIdentifier", + "src": "21247:3:46" + }, + "nativeSrc": "21247:19:46", + "nodeType": "YulFunctionCall", + "src": "21247:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "21239:4:46", + "nodeType": "YulIdentifier", + "src": "21239:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21282:9:46", + "nodeType": "YulIdentifier", + "src": "21282:9:46" + }, + { + "name": "value0", + "nativeSrc": "21293:6:46", + "nodeType": "YulIdentifier", + "src": "21293:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21275:6:46", + "nodeType": "YulIdentifier", + "src": "21275:6:46" + }, + "nativeSrc": "21275:25:46", + "nodeType": "YulFunctionCall", + "src": "21275:25:46" + }, + "nativeSrc": "21275:25:46", + "nodeType": "YulExpressionStatement", + "src": "21275:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21320:9:46", + "nodeType": "YulIdentifier", + "src": "21320:9:46" + }, + { + "kind": "number", + "nativeSrc": "21331:2:46", + "nodeType": "YulLiteral", + "src": "21331:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21316:3:46", + "nodeType": "YulIdentifier", + "src": "21316:3:46" + }, + "nativeSrc": "21316:18:46", + "nodeType": "YulFunctionCall", + "src": "21316:18:46" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "21340:6:46", + "nodeType": "YulIdentifier", + "src": "21340:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21356:3:46", + "nodeType": "YulLiteral", + "src": "21356:3:46", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "21361:1:46", + "nodeType": "YulLiteral", + "src": "21361:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "21352:3:46", + "nodeType": "YulIdentifier", + "src": "21352:3:46" + }, + "nativeSrc": "21352:11:46", + "nodeType": "YulFunctionCall", + "src": "21352:11:46" + }, + { + "kind": "number", + "nativeSrc": "21365:1:46", + "nodeType": "YulLiteral", + "src": "21365:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "21348:3:46", + "nodeType": "YulIdentifier", + "src": "21348:3:46" + }, + "nativeSrc": "21348:19:46", + "nodeType": "YulFunctionCall", + "src": "21348:19:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "21336:3:46", + "nodeType": "YulIdentifier", + "src": "21336:3:46" + }, + "nativeSrc": "21336:32:46", + "nodeType": "YulFunctionCall", + "src": "21336:32:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21309:6:46", + "nodeType": "YulIdentifier", + "src": "21309:6:46" + }, + "nativeSrc": "21309:60:46", + "nodeType": "YulFunctionCall", + "src": "21309:60:46" + }, + "nativeSrc": "21309:60:46", + "nodeType": "YulExpressionStatement", + "src": "21309:60:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21389:9:46", + "nodeType": "YulIdentifier", + "src": "21389:9:46" + }, + { + "kind": "number", + "nativeSrc": "21400:2:46", + "nodeType": "YulLiteral", + "src": "21400:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21385:3:46", + "nodeType": "YulIdentifier", + "src": "21385:3:46" + }, + "nativeSrc": "21385:18:46", + "nodeType": "YulFunctionCall", + "src": "21385:18:46" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "21409:6:46", + "nodeType": "YulIdentifier", + "src": "21409:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21425:3:46", + "nodeType": "YulLiteral", + "src": "21425:3:46", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "21430:1:46", + "nodeType": "YulLiteral", + "src": "21430:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "21421:3:46", + "nodeType": "YulIdentifier", + "src": "21421:3:46" + }, + "nativeSrc": "21421:11:46", + "nodeType": "YulFunctionCall", + "src": "21421:11:46" + }, + { + "kind": "number", + "nativeSrc": "21434:1:46", + "nodeType": "YulLiteral", + "src": "21434:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "21417:3:46", + "nodeType": "YulIdentifier", + "src": "21417:3:46" + }, + "nativeSrc": "21417:19:46", + "nodeType": "YulFunctionCall", + "src": "21417:19:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "21405:3:46", + "nodeType": "YulIdentifier", + "src": "21405:3:46" + }, + "nativeSrc": "21405:32:46", + "nodeType": "YulFunctionCall", + "src": "21405:32:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21378:6:46", + "nodeType": "YulIdentifier", + "src": "21378:6:46" + }, + "nativeSrc": "21378:60:46", + "nodeType": "YulFunctionCall", + "src": "21378:60:46" + }, + "nativeSrc": "21378:60:46", + "nodeType": "YulExpressionStatement", + "src": "21378:60:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21458:9:46", + "nodeType": "YulIdentifier", + "src": "21458:9:46" + }, + { + "kind": "number", + "nativeSrc": "21469:2:46", + "nodeType": "YulLiteral", + "src": "21469:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21454:3:46", + "nodeType": "YulIdentifier", + "src": "21454:3:46" + }, + "nativeSrc": "21454:18:46", + "nodeType": "YulFunctionCall", + "src": "21454:18:46" + }, + { + "name": "value3", + "nativeSrc": "21474:6:46", + "nodeType": "YulIdentifier", + "src": "21474:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21447:6:46", + "nodeType": "YulIdentifier", + "src": "21447:6:46" + }, + "nativeSrc": "21447:34:46", + "nodeType": "YulFunctionCall", + "src": "21447:34:46" + }, + "nativeSrc": "21447:34:46", + "nodeType": "YulExpressionStatement", + "src": "21447:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21501:9:46", + "nodeType": "YulIdentifier", + "src": "21501:9:46" + }, + { + "kind": "number", + "nativeSrc": "21512:3:46", + "nodeType": "YulLiteral", + "src": "21512:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21497:3:46", + "nodeType": "YulIdentifier", + "src": "21497:3:46" + }, + "nativeSrc": "21497:19:46", + "nodeType": "YulFunctionCall", + "src": "21497:19:46" + }, + { + "arguments": [ + { + "name": "value4", + "nativeSrc": "21522:6:46", + "nodeType": "YulIdentifier", + "src": "21522:6:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "21534:3:46", + "nodeType": "YulLiteral", + "src": "21534:3:46", + "type": "", + "value": "240" + }, + { + "kind": "number", + "nativeSrc": "21539:5:46", + "nodeType": "YulLiteral", + "src": "21539:5:46", + "type": "", + "value": "65535" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "21530:3:46", + "nodeType": "YulIdentifier", + "src": "21530:3:46" + }, + "nativeSrc": "21530:15:46", + "nodeType": "YulFunctionCall", + "src": "21530:15:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "21518:3:46", + "nodeType": "YulIdentifier", + "src": "21518:3:46" + }, + "nativeSrc": "21518:28:46", + "nodeType": "YulFunctionCall", + "src": "21518:28:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21490:6:46", + "nodeType": "YulIdentifier", + "src": "21490:6:46" + }, + "nativeSrc": "21490:57:46", + "nodeType": "YulFunctionCall", + "src": "21490:57:46" + }, + "nativeSrc": "21490:57:46", + "nodeType": "YulExpressionStatement", + "src": "21490:57:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_address_t_address_t_uint256_t_bytes2__to_t_uint256_t_address_t_address_t_uint256_t_bytes2__fromStack_library_reversed", + "nativeSrc": "20987:566:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "21166:9:46", + "nodeType": "YulTypedName", + "src": "21166:9:46", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "21177:6:46", + "nodeType": "YulTypedName", + "src": "21177:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "21185:6:46", + "nodeType": "YulTypedName", + "src": "21185:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "21193:6:46", + "nodeType": "YulTypedName", + "src": "21193:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "21201:6:46", + "nodeType": "YulTypedName", + "src": "21201:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "21209:6:46", + "nodeType": "YulTypedName", + "src": "21209:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "21220:4:46", + "nodeType": "YulTypedName", + "src": "21220:4:46", + "type": "" + } + ], + "src": "20987:566:46" + }, + { + "body": { + "nativeSrc": "21718:119:46", + "nodeType": "YulBlock", + "src": "21718:119:46", + "statements": [ + { + "nativeSrc": "21728:26:46", + "nodeType": "YulAssignment", + "src": "21728:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21740:9:46", + "nodeType": "YulIdentifier", + "src": "21740:9:46" + }, + { + "kind": "number", + "nativeSrc": "21751:2:46", + "nodeType": "YulLiteral", + "src": "21751:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21736:3:46", + "nodeType": "YulIdentifier", + "src": "21736:3:46" + }, + "nativeSrc": "21736:18:46", + "nodeType": "YulFunctionCall", + "src": "21736:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "21728:4:46", + "nodeType": "YulIdentifier", + "src": "21728:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21770:9:46", + "nodeType": "YulIdentifier", + "src": "21770:9:46" + }, + { + "name": "value0", + "nativeSrc": "21781:6:46", + "nodeType": "YulIdentifier", + "src": "21781:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21763:6:46", + "nodeType": "YulIdentifier", + "src": "21763:6:46" + }, + "nativeSrc": "21763:25:46", + "nodeType": "YulFunctionCall", + "src": "21763:25:46" + }, + "nativeSrc": "21763:25:46", + "nodeType": "YulExpressionStatement", + "src": "21763:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21808:9:46", + "nodeType": "YulIdentifier", + "src": "21808:9:46" + }, + { + "kind": "number", + "nativeSrc": "21819:2:46", + "nodeType": "YulLiteral", + "src": "21819:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "21804:3:46", + "nodeType": "YulIdentifier", + "src": "21804:3:46" + }, + "nativeSrc": "21804:18:46", + "nodeType": "YulFunctionCall", + "src": "21804:18:46" + }, + { + "name": "value1", + "nativeSrc": "21824:6:46", + "nodeType": "YulIdentifier", + "src": "21824:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21797:6:46", + "nodeType": "YulIdentifier", + "src": "21797:6:46" + }, + "nativeSrc": "21797:34:46", + "nodeType": "YulFunctionCall", + "src": "21797:34:46" + }, + "nativeSrc": "21797:34:46", + "nodeType": "YulExpressionStatement", + "src": "21797:34:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint256__to_t_uint256_t_uint256__fromStack_library_reversed", + "nativeSrc": "21558:279:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "21679:9:46", + "nodeType": "YulTypedName", + "src": "21679:9:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "21690:6:46", + "nodeType": "YulTypedName", + "src": "21690:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "21698:6:46", + "nodeType": "YulTypedName", + "src": "21698:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "21709:4:46", + "nodeType": "YulTypedName", + "src": "21709:4:46", + "type": "" + } + ], + "src": "21558:279:46" + }, + { + "body": { + "nativeSrc": "21961:99:46", + "nodeType": "YulBlock", + "src": "21961:99:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "21978:9:46", + "nodeType": "YulIdentifier", + "src": "21978:9:46" + }, + { + "kind": "number", + "nativeSrc": "21989:2:46", + "nodeType": "YulLiteral", + "src": "21989:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "21971:6:46", + "nodeType": "YulIdentifier", + "src": "21971:6:46" + }, + "nativeSrc": "21971:21:46", + "nodeType": "YulFunctionCall", + "src": "21971:21:46" + }, + "nativeSrc": "21971:21:46", + "nodeType": "YulExpressionStatement", + "src": "21971:21:46" + }, + { + "nativeSrc": "22001:53:46", + "nodeType": "YulAssignment", + "src": "22001:53:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "22027:6:46", + "nodeType": "YulIdentifier", + "src": "22027:6:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22039:9:46", + "nodeType": "YulIdentifier", + "src": "22039:9:46" + }, + { + "kind": "number", + "nativeSrc": "22050:2:46", + "nodeType": "YulLiteral", + "src": "22050:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22035:3:46", + "nodeType": "YulIdentifier", + "src": "22035:3:46" + }, + "nativeSrc": "22035:18:46", + "nodeType": "YulFunctionCall", + "src": "22035:18:46" + } + ], + "functionName": { + "name": "abi_encode_string", + "nativeSrc": "22009:17:46", + "nodeType": "YulIdentifier", + "src": "22009:17:46" + }, + "nativeSrc": "22009:45:46", + "nodeType": "YulFunctionCall", + "src": "22009:45:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "22001:4:46", + "nodeType": "YulIdentifier", + "src": "22001:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed", + "nativeSrc": "21842:218:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "21930:9:46", + "nodeType": "YulTypedName", + "src": "21930:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "21941:6:46", + "nodeType": "YulTypedName", + "src": "21941:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "21952:4:46", + "nodeType": "YulTypedName", + "src": "21952:4:46", + "type": "" + } + ], + "src": "21842:218:46" + }, + { + "body": { + "nativeSrc": "22128:398:46", + "nodeType": "YulBlock", + "src": "22128:398:46", + "statements": [ + { + "body": { + "nativeSrc": "22177:16:46", + "nodeType": "YulBlock", + "src": "22177:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22186:1:46", + "nodeType": "YulLiteral", + "src": "22186:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22189:1:46", + "nodeType": "YulLiteral", + "src": "22189:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22179:6:46", + "nodeType": "YulIdentifier", + "src": "22179:6:46" + }, + "nativeSrc": "22179:12:46", + "nodeType": "YulFunctionCall", + "src": "22179:12:46" + }, + "nativeSrc": "22179:12:46", + "nodeType": "YulExpressionStatement", + "src": "22179:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "22156:6:46", + "nodeType": "YulIdentifier", + "src": "22156:6:46" + }, + { + "kind": "number", + "nativeSrc": "22164:4:46", + "nodeType": "YulLiteral", + "src": "22164:4:46", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22152:3:46", + "nodeType": "YulIdentifier", + "src": "22152:3:46" + }, + "nativeSrc": "22152:17:46", + "nodeType": "YulFunctionCall", + "src": "22152:17:46" + }, + { + "name": "end", + "nativeSrc": "22171:3:46", + "nodeType": "YulIdentifier", + "src": "22171:3:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "22148:3:46", + "nodeType": "YulIdentifier", + "src": "22148:3:46" + }, + "nativeSrc": "22148:27:46", + "nodeType": "YulFunctionCall", + "src": "22148:27:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "22141:6:46", + "nodeType": "YulIdentifier", + "src": "22141:6:46" + }, + "nativeSrc": "22141:35:46", + "nodeType": "YulFunctionCall", + "src": "22141:35:46" + }, + "nativeSrc": "22138:55:46", + "nodeType": "YulIf", + "src": "22138:55:46" + }, + { + "nativeSrc": "22202:27:46", + "nodeType": "YulVariableDeclaration", + "src": "22202:27:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "22222:6:46", + "nodeType": "YulIdentifier", + "src": "22222:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "22216:5:46", + "nodeType": "YulIdentifier", + "src": "22216:5:46" + }, + "nativeSrc": "22216:13:46", + "nodeType": "YulFunctionCall", + "src": "22216:13:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "22206:6:46", + "nodeType": "YulTypedName", + "src": "22206:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "22238:67:46", + "nodeType": "YulVariableDeclaration", + "src": "22238:67:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nativeSrc": "22297:6:46", + "nodeType": "YulIdentifier", + "src": "22297:6:46" + } + ], + "functionName": { + "name": "array_allocation_size_bytes", + "nativeSrc": "22269:27:46", + "nodeType": "YulIdentifier", + "src": "22269:27:46" + }, + "nativeSrc": "22269:35:46", + "nodeType": "YulFunctionCall", + "src": "22269:35:46" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "22253:15:46", + "nodeType": "YulIdentifier", + "src": "22253:15:46" + }, + "nativeSrc": "22253:52:46", + "nodeType": "YulFunctionCall", + "src": "22253:52:46" + }, + "variables": [ + { + "name": "array_1", + "nativeSrc": "22242:7:46", + "nodeType": "YulTypedName", + "src": "22242:7:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array_1", + "nativeSrc": "22321:7:46", + "nodeType": "YulIdentifier", + "src": "22321:7:46" + }, + { + "name": "length", + "nativeSrc": "22330:6:46", + "nodeType": "YulIdentifier", + "src": "22330:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "22314:6:46", + "nodeType": "YulIdentifier", + "src": "22314:6:46" + }, + "nativeSrc": "22314:23:46", + "nodeType": "YulFunctionCall", + "src": "22314:23:46" + }, + "nativeSrc": "22314:23:46", + "nodeType": "YulExpressionStatement", + "src": "22314:23:46" + }, + { + "body": { + "nativeSrc": "22389:16:46", + "nodeType": "YulBlock", + "src": "22389:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22398:1:46", + "nodeType": "YulLiteral", + "src": "22398:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22401:1:46", + "nodeType": "YulLiteral", + "src": "22401:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22391:6:46", + "nodeType": "YulIdentifier", + "src": "22391:6:46" + }, + "nativeSrc": "22391:12:46", + "nodeType": "YulFunctionCall", + "src": "22391:12:46" + }, + "nativeSrc": "22391:12:46", + "nodeType": "YulExpressionStatement", + "src": "22391:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "22360:6:46", + "nodeType": "YulIdentifier", + "src": "22360:6:46" + }, + { + "name": "length", + "nativeSrc": "22368:6:46", + "nodeType": "YulIdentifier", + "src": "22368:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22356:3:46", + "nodeType": "YulIdentifier", + "src": "22356:3:46" + }, + "nativeSrc": "22356:19:46", + "nodeType": "YulFunctionCall", + "src": "22356:19:46" + }, + { + "kind": "number", + "nativeSrc": "22377:4:46", + "nodeType": "YulLiteral", + "src": "22377:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22352:3:46", + "nodeType": "YulIdentifier", + "src": "22352:3:46" + }, + "nativeSrc": "22352:30:46", + "nodeType": "YulFunctionCall", + "src": "22352:30:46" + }, + { + "name": "end", + "nativeSrc": "22384:3:46", + "nodeType": "YulIdentifier", + "src": "22384:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "22349:2:46", + "nodeType": "YulIdentifier", + "src": "22349:2:46" + }, + "nativeSrc": "22349:39:46", + "nodeType": "YulFunctionCall", + "src": "22349:39:46" + }, + "nativeSrc": "22346:59:46", + "nodeType": "YulIf", + "src": "22346:59:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "22453:6:46", + "nodeType": "YulIdentifier", + "src": "22453:6:46" + }, + { + "kind": "number", + "nativeSrc": "22461:4:46", + "nodeType": "YulLiteral", + "src": "22461:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22449:3:46", + "nodeType": "YulIdentifier", + "src": "22449:3:46" + }, + "nativeSrc": "22449:17:46", + "nodeType": "YulFunctionCall", + "src": "22449:17:46" + }, + { + "arguments": [ + { + "name": "array_1", + "nativeSrc": "22472:7:46", + "nodeType": "YulIdentifier", + "src": "22472:7:46" + }, + { + "kind": "number", + "nativeSrc": "22481:4:46", + "nodeType": "YulLiteral", + "src": "22481:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22468:3:46", + "nodeType": "YulIdentifier", + "src": "22468:3:46" + }, + "nativeSrc": "22468:18:46", + "nodeType": "YulFunctionCall", + "src": "22468:18:46" + }, + { + "name": "length", + "nativeSrc": "22488:6:46", + "nodeType": "YulIdentifier", + "src": "22488:6:46" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "22414:34:46", + "nodeType": "YulIdentifier", + "src": "22414:34:46" + }, + "nativeSrc": "22414:81:46", + "nodeType": "YulFunctionCall", + "src": "22414:81:46" + }, + "nativeSrc": "22414:81:46", + "nodeType": "YulExpressionStatement", + "src": "22414:81:46" + }, + { + "nativeSrc": "22504:16:46", + "nodeType": "YulAssignment", + "src": "22504:16:46", + "value": { + "name": "array_1", + "nativeSrc": "22513:7:46", + "nodeType": "YulIdentifier", + "src": "22513:7:46" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "22504:5:46", + "nodeType": "YulIdentifier", + "src": "22504:5:46" + } + ] + } + ] + }, + "name": "abi_decode_bytes_fromMemory", + "nativeSrc": "22065:461:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "22102:6:46", + "nodeType": "YulTypedName", + "src": "22102:6:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "22110:3:46", + "nodeType": "YulTypedName", + "src": "22110:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "22118:5:46", + "nodeType": "YulTypedName", + "src": "22118:5:46", + "type": "" + } + ], + "src": "22065:461:46" + }, + { + "body": { + "nativeSrc": "22652:354:46", + "nodeType": "YulBlock", + "src": "22652:354:46", + "statements": [ + { + "body": { + "nativeSrc": "22698:16:46", + "nodeType": "YulBlock", + "src": "22698:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22707:1:46", + "nodeType": "YulLiteral", + "src": "22707:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22710:1:46", + "nodeType": "YulLiteral", + "src": "22710:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22700:6:46", + "nodeType": "YulIdentifier", + "src": "22700:6:46" + }, + "nativeSrc": "22700:12:46", + "nodeType": "YulFunctionCall", + "src": "22700:12:46" + }, + "nativeSrc": "22700:12:46", + "nodeType": "YulExpressionStatement", + "src": "22700:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "22673:7:46", + "nodeType": "YulIdentifier", + "src": "22673:7:46" + }, + { + "name": "headStart", + "nativeSrc": "22682:9:46", + "nodeType": "YulIdentifier", + "src": "22682:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "22669:3:46", + "nodeType": "YulIdentifier", + "src": "22669:3:46" + }, + "nativeSrc": "22669:23:46", + "nodeType": "YulFunctionCall", + "src": "22669:23:46" + }, + { + "kind": "number", + "nativeSrc": "22694:2:46", + "nodeType": "YulLiteral", + "src": "22694:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "22665:3:46", + "nodeType": "YulIdentifier", + "src": "22665:3:46" + }, + "nativeSrc": "22665:32:46", + "nodeType": "YulFunctionCall", + "src": "22665:32:46" + }, + "nativeSrc": "22662:52:46", + "nodeType": "YulIf", + "src": "22662:52:46" + }, + { + "nativeSrc": "22723:30:46", + "nodeType": "YulVariableDeclaration", + "src": "22723:30:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22743:9:46", + "nodeType": "YulIdentifier", + "src": "22743:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "22737:5:46", + "nodeType": "YulIdentifier", + "src": "22737:5:46" + }, + "nativeSrc": "22737:16:46", + "nodeType": "YulFunctionCall", + "src": "22737:16:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "22727:6:46", + "nodeType": "YulTypedName", + "src": "22727:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "22796:16:46", + "nodeType": "YulBlock", + "src": "22796:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "22805:1:46", + "nodeType": "YulLiteral", + "src": "22805:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "22808:1:46", + "nodeType": "YulLiteral", + "src": "22808:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "22798:6:46", + "nodeType": "YulIdentifier", + "src": "22798:6:46" + }, + "nativeSrc": "22798:12:46", + "nodeType": "YulFunctionCall", + "src": "22798:12:46" + }, + "nativeSrc": "22798:12:46", + "nodeType": "YulExpressionStatement", + "src": "22798:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "22768:6:46", + "nodeType": "YulIdentifier", + "src": "22768:6:46" + }, + { + "kind": "number", + "nativeSrc": "22776:18:46", + "nodeType": "YulLiteral", + "src": "22776:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "22765:2:46", + "nodeType": "YulIdentifier", + "src": "22765:2:46" + }, + "nativeSrc": "22765:30:46", + "nodeType": "YulFunctionCall", + "src": "22765:30:46" + }, + "nativeSrc": "22762:50:46", + "nodeType": "YulIf", + "src": "22762:50:46" + }, + { + "nativeSrc": "22821:70:46", + "nodeType": "YulAssignment", + "src": "22821:70:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22863:9:46", + "nodeType": "YulIdentifier", + "src": "22863:9:46" + }, + { + "name": "offset", + "nativeSrc": "22874:6:46", + "nodeType": "YulIdentifier", + "src": "22874:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22859:3:46", + "nodeType": "YulIdentifier", + "src": "22859:3:46" + }, + "nativeSrc": "22859:22:46", + "nodeType": "YulFunctionCall", + "src": "22859:22:46" + }, + { + "name": "dataEnd", + "nativeSrc": "22883:7:46", + "nodeType": "YulIdentifier", + "src": "22883:7:46" + } + ], + "functionName": { + "name": "abi_decode_bytes_fromMemory", + "nativeSrc": "22831:27:46", + "nodeType": "YulIdentifier", + "src": "22831:27:46" + }, + "nativeSrc": "22831:60:46", + "nodeType": "YulFunctionCall", + "src": "22831:60:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "22821:6:46", + "nodeType": "YulIdentifier", + "src": "22821:6:46" + } + ] + }, + { + "nativeSrc": "22900:35:46", + "nodeType": "YulAssignment", + "src": "22900:35:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22920:9:46", + "nodeType": "YulIdentifier", + "src": "22920:9:46" + }, + { + "kind": "number", + "nativeSrc": "22931:2:46", + "nodeType": "YulLiteral", + "src": "22931:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22916:3:46", + "nodeType": "YulIdentifier", + "src": "22916:3:46" + }, + "nativeSrc": "22916:18:46", + "nodeType": "YulFunctionCall", + "src": "22916:18:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "22910:5:46", + "nodeType": "YulIdentifier", + "src": "22910:5:46" + }, + "nativeSrc": "22910:25:46", + "nodeType": "YulFunctionCall", + "src": "22910:25:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "22900:6:46", + "nodeType": "YulIdentifier", + "src": "22900:6:46" + } + ] + }, + { + "nativeSrc": "22944:56:46", + "nodeType": "YulAssignment", + "src": "22944:56:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "22985:9:46", + "nodeType": "YulIdentifier", + "src": "22985:9:46" + }, + { + "kind": "number", + "nativeSrc": "22996:2:46", + "nodeType": "YulLiteral", + "src": "22996:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "22981:3:46", + "nodeType": "YulIdentifier", + "src": "22981:3:46" + }, + "nativeSrc": "22981:18:46", + "nodeType": "YulFunctionCall", + "src": "22981:18:46" + } + ], + "functionName": { + "name": "abi_decode_bool_fromMemory", + "nativeSrc": "22954:26:46", + "nodeType": "YulIdentifier", + "src": "22954:26:46" + }, + "nativeSrc": "22954:46:46", + "nodeType": "YulFunctionCall", + "src": "22954:46:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "22944:6:46", + "nodeType": "YulIdentifier", + "src": "22944:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes_memory_ptrt_bytes32t_bool_fromMemory", + "nativeSrc": "22531:475:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "22602:9:46", + "nodeType": "YulTypedName", + "src": "22602:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "22613:7:46", + "nodeType": "YulTypedName", + "src": "22613:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "22625:6:46", + "nodeType": "YulTypedName", + "src": "22625:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "22633:6:46", + "nodeType": "YulTypedName", + "src": "22633:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "22641:6:46", + "nodeType": "YulTypedName", + "src": "22641:6:46", + "type": "" + } + ], + "src": "22531:475:46" + }, + { + "body": { + "nativeSrc": "23185:171:46", + "nodeType": "YulBlock", + "src": "23185:171:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23202:9:46", + "nodeType": "YulIdentifier", + "src": "23202:9:46" + }, + { + "kind": "number", + "nativeSrc": "23213:2:46", + "nodeType": "YulLiteral", + "src": "23213:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23195:6:46", + "nodeType": "YulIdentifier", + "src": "23195:6:46" + }, + "nativeSrc": "23195:21:46", + "nodeType": "YulFunctionCall", + "src": "23195:21:46" + }, + "nativeSrc": "23195:21:46", + "nodeType": "YulExpressionStatement", + "src": "23195:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23236:9:46", + "nodeType": "YulIdentifier", + "src": "23236:9:46" + }, + { + "kind": "number", + "nativeSrc": "23247:2:46", + "nodeType": "YulLiteral", + "src": "23247:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23232:3:46", + "nodeType": "YulIdentifier", + "src": "23232:3:46" + }, + "nativeSrc": "23232:18:46", + "nodeType": "YulFunctionCall", + "src": "23232:18:46" + }, + { + "kind": "number", + "nativeSrc": "23252:2:46", + "nodeType": "YulLiteral", + "src": "23252:2:46", + "type": "", + "value": "21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23225:6:46", + "nodeType": "YulIdentifier", + "src": "23225:6:46" + }, + "nativeSrc": "23225:30:46", + "nodeType": "YulFunctionCall", + "src": "23225:30:46" + }, + "nativeSrc": "23225:30:46", + "nodeType": "YulExpressionStatement", + "src": "23225:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23275:9:46", + "nodeType": "YulIdentifier", + "src": "23275:9:46" + }, + { + "kind": "number", + "nativeSrc": "23286:2:46", + "nodeType": "YulLiteral", + "src": "23286:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23271:3:46", + "nodeType": "YulIdentifier", + "src": "23271:3:46" + }, + "nativeSrc": "23271:18:46", + "nodeType": "YulFunctionCall", + "src": "23271:18:46" + }, + { + "hexValue": "4549503731323a20556e696e697469616c697a6564", + "kind": "string", + "nativeSrc": "23291:23:46", + "nodeType": "YulLiteral", + "src": "23291:23:46", + "type": "", + "value": "EIP712: Uninitialized" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23264:6:46", + "nodeType": "YulIdentifier", + "src": "23264:6:46" + }, + "nativeSrc": "23264:51:46", + "nodeType": "YulFunctionCall", + "src": "23264:51:46" + }, + "nativeSrc": "23264:51:46", + "nodeType": "YulExpressionStatement", + "src": "23264:51:46" + }, + { + "nativeSrc": "23324:26:46", + "nodeType": "YulAssignment", + "src": "23324:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23336:9:46", + "nodeType": "YulIdentifier", + "src": "23336:9:46" + }, + { + "kind": "number", + "nativeSrc": "23347:2:46", + "nodeType": "YulLiteral", + "src": "23347:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23332:3:46", + "nodeType": "YulIdentifier", + "src": "23332:3:46" + }, + "nativeSrc": "23332:18:46", + "nodeType": "YulFunctionCall", + "src": "23332:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23324:4:46", + "nodeType": "YulIdentifier", + "src": "23324:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_2e5045ff73280aa8e8acd8c82710f23812497f87f7f576e2220a2ddd0d45eade__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "23011:345:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23162:9:46", + "nodeType": "YulTypedName", + "src": "23162:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "23176:4:46", + "nodeType": "YulTypedName", + "src": "23176:4:46", + "type": "" + } + ], + "src": "23011:345:46" + }, + { + "body": { + "nativeSrc": "23500:150:46", + "nodeType": "YulBlock", + "src": "23500:150:46", + "statements": [ + { + "nativeSrc": "23510:27:46", + "nodeType": "YulVariableDeclaration", + "src": "23510:27:46", + "value": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "23530:6:46", + "nodeType": "YulIdentifier", + "src": "23530:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "23524:5:46", + "nodeType": "YulIdentifier", + "src": "23524:5:46" + }, + "nativeSrc": "23524:13:46", + "nodeType": "YulFunctionCall", + "src": "23524:13:46" + }, + "variables": [ + { + "name": "length", + "nativeSrc": "23514:6:46", + "nodeType": "YulTypedName", + "src": "23514:6:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "23585:6:46", + "nodeType": "YulIdentifier", + "src": "23585:6:46" + }, + { + "kind": "number", + "nativeSrc": "23593:4:46", + "nodeType": "YulLiteral", + "src": "23593:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23581:3:46", + "nodeType": "YulIdentifier", + "src": "23581:3:46" + }, + "nativeSrc": "23581:17:46", + "nodeType": "YulFunctionCall", + "src": "23581:17:46" + }, + { + "name": "pos", + "nativeSrc": "23600:3:46", + "nodeType": "YulIdentifier", + "src": "23600:3:46" + }, + { + "name": "length", + "nativeSrc": "23605:6:46", + "nodeType": "YulIdentifier", + "src": "23605:6:46" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nativeSrc": "23546:34:46", + "nodeType": "YulIdentifier", + "src": "23546:34:46" + }, + "nativeSrc": "23546:66:46", + "nodeType": "YulFunctionCall", + "src": "23546:66:46" + }, + "nativeSrc": "23546:66:46", + "nodeType": "YulExpressionStatement", + "src": "23546:66:46" + }, + { + "nativeSrc": "23621:23:46", + "nodeType": "YulAssignment", + "src": "23621:23:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "23632:3:46", + "nodeType": "YulIdentifier", + "src": "23632:3:46" + }, + { + "name": "length", + "nativeSrc": "23637:6:46", + "nodeType": "YulIdentifier", + "src": "23637:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23628:3:46", + "nodeType": "YulIdentifier", + "src": "23628:3:46" + }, + "nativeSrc": "23628:16:46", + "nodeType": "YulFunctionCall", + "src": "23628:16:46" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "23621:3:46", + "nodeType": "YulIdentifier", + "src": "23621:3:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "23361:289:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "23476:3:46", + "nodeType": "YulTypedName", + "src": "23476:3:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "23481:6:46", + "nodeType": "YulTypedName", + "src": "23481:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "23492:3:46", + "nodeType": "YulTypedName", + "src": "23492:3:46", + "type": "" + } + ], + "src": "23361:289:46" + }, + { + "body": { + "nativeSrc": "23829:170:46", + "nodeType": "YulBlock", + "src": "23829:170:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23846:9:46", + "nodeType": "YulIdentifier", + "src": "23846:9:46" + }, + { + "kind": "number", + "nativeSrc": "23857:2:46", + "nodeType": "YulLiteral", + "src": "23857:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23839:6:46", + "nodeType": "YulIdentifier", + "src": "23839:6:46" + }, + "nativeSrc": "23839:21:46", + "nodeType": "YulFunctionCall", + "src": "23839:21:46" + }, + "nativeSrc": "23839:21:46", + "nodeType": "YulExpressionStatement", + "src": "23839:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23880:9:46", + "nodeType": "YulIdentifier", + "src": "23880:9:46" + }, + { + "kind": "number", + "nativeSrc": "23891:2:46", + "nodeType": "YulLiteral", + "src": "23891:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23876:3:46", + "nodeType": "YulIdentifier", + "src": "23876:3:46" + }, + "nativeSrc": "23876:18:46", + "nodeType": "YulFunctionCall", + "src": "23876:18:46" + }, + { + "kind": "number", + "nativeSrc": "23896:2:46", + "nodeType": "YulLiteral", + "src": "23896:2:46", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23869:6:46", + "nodeType": "YulIdentifier", + "src": "23869:6:46" + }, + "nativeSrc": "23869:30:46", + "nodeType": "YulFunctionCall", + "src": "23869:30:46" + }, + "nativeSrc": "23869:30:46", + "nodeType": "YulExpressionStatement", + "src": "23869:30:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23919:9:46", + "nodeType": "YulIdentifier", + "src": "23919:9:46" + }, + { + "kind": "number", + "nativeSrc": "23930:2:46", + "nodeType": "YulLiteral", + "src": "23930:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23915:3:46", + "nodeType": "YulIdentifier", + "src": "23915:3:46" + }, + "nativeSrc": "23915:18:46", + "nodeType": "YulFunctionCall", + "src": "23915:18:46" + }, + { + "hexValue": "4964656e74697479206964206d69736d61746368", + "kind": "string", + "nativeSrc": "23935:22:46", + "nodeType": "YulLiteral", + "src": "23935:22:46", + "type": "", + "value": "Identity id mismatch" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "23908:6:46", + "nodeType": "YulIdentifier", + "src": "23908:6:46" + }, + "nativeSrc": "23908:50:46", + "nodeType": "YulFunctionCall", + "src": "23908:50:46" + }, + "nativeSrc": "23908:50:46", + "nodeType": "YulExpressionStatement", + "src": "23908:50:46" + }, + { + "nativeSrc": "23967:26:46", + "nodeType": "YulAssignment", + "src": "23967:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "23979:9:46", + "nodeType": "YulIdentifier", + "src": "23979:9:46" + }, + { + "kind": "number", + "nativeSrc": "23990:2:46", + "nodeType": "YulLiteral", + "src": "23990:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "23975:3:46", + "nodeType": "YulIdentifier", + "src": "23975:3:46" + }, + "nativeSrc": "23975:18:46", + "nodeType": "YulFunctionCall", + "src": "23975:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "23967:4:46", + "nodeType": "YulIdentifier", + "src": "23967:4:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b95c2f31a6045566300565f2774af75c15f58eae84f1e4dafcb6cd16a89e425e__to_t_string_memory_ptr__fromStack_reversed", + "nativeSrc": "23655:344:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "23806:9:46", + "nodeType": "YulTypedName", + "src": "23806:9:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "23820:4:46", + "nodeType": "YulTypedName", + "src": "23820:4:46", + "type": "" + } + ], + "src": "23655:344:46" + }, + { + "body": { + "nativeSrc": "24108:665:46", + "nodeType": "YulBlock", + "src": "24108:665:46", + "statements": [ + { + "nativeSrc": "24118:42:46", + "nodeType": "YulVariableDeclaration", + "src": "24118:42:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "24136:7:46", + "nodeType": "YulIdentifier", + "src": "24136:7:46" + }, + { + "name": "headStart", + "nativeSrc": "24145:9:46", + "nodeType": "YulIdentifier", + "src": "24145:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "24132:3:46", + "nodeType": "YulIdentifier", + "src": "24132:3:46" + }, + "nativeSrc": "24132:23:46", + "nodeType": "YulFunctionCall", + "src": "24132:23:46" + }, + { + "kind": "number", + "nativeSrc": "24157:2:46", + "nodeType": "YulLiteral", + "src": "24157:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "24128:3:46", + "nodeType": "YulIdentifier", + "src": "24128:3:46" + }, + "nativeSrc": "24128:32:46", + "nodeType": "YulFunctionCall", + "src": "24128:32:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "24122:2:46", + "nodeType": "YulTypedName", + "src": "24122:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "24175:16:46", + "nodeType": "YulBlock", + "src": "24175:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24184:1:46", + "nodeType": "YulLiteral", + "src": "24184:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "24187:1:46", + "nodeType": "YulLiteral", + "src": "24187:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "24177:6:46", + "nodeType": "YulIdentifier", + "src": "24177:6:46" + }, + "nativeSrc": "24177:12:46", + "nodeType": "YulFunctionCall", + "src": "24177:12:46" + }, + "nativeSrc": "24177:12:46", + "nodeType": "YulExpressionStatement", + "src": "24177:12:46" + } + ] + }, + "condition": { + "name": "_1", + "nativeSrc": "24172:2:46", + "nodeType": "YulIdentifier", + "src": "24172:2:46" + }, + "nativeSrc": "24169:22:46", + "nodeType": "YulIf", + "src": "24169:22:46" + }, + { + "nativeSrc": "24200:7:46", + "nodeType": "YulAssignment", + "src": "24200:7:46", + "value": { + "kind": "number", + "nativeSrc": "24206:1:46", + "nodeType": "YulLiteral", + "src": "24206:1:46", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "_1", + "nativeSrc": "24200:2:46", + "nodeType": "YulIdentifier", + "src": "24200:2:46" + } + ] + }, + { + "nativeSrc": "24216:16:46", + "nodeType": "YulVariableDeclaration", + "src": "24216:16:46", + "value": { + "name": "_1", + "nativeSrc": "24230:2:46", + "nodeType": "YulIdentifier", + "src": "24230:2:46" + }, + "variables": [ + { + "name": "memPtr", + "nativeSrc": "24220:6:46", + "nodeType": "YulTypedName", + "src": "24220:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "24241:19:46", + "nodeType": "YulAssignment", + "src": "24241:19:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24257:2:46", + "nodeType": "YulLiteral", + "src": "24257:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "24251:5:46", + "nodeType": "YulIdentifier", + "src": "24251:5:46" + }, + "nativeSrc": "24251:9:46", + "nodeType": "YulFunctionCall", + "src": "24251:9:46" + }, + "variableNames": [ + { + "name": "memPtr", + "nativeSrc": "24241:6:46", + "nodeType": "YulIdentifier", + "src": "24241:6:46" + } + ] + }, + { + "nativeSrc": "24269:33:46", + "nodeType": "YulVariableDeclaration", + "src": "24269:33:46", + "value": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "24291:6:46", + "nodeType": "YulIdentifier", + "src": "24291:6:46" + }, + { + "kind": "number", + "nativeSrc": "24299:2:46", + "nodeType": "YulLiteral", + "src": "24299:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24287:3:46", + "nodeType": "YulIdentifier", + "src": "24287:3:46" + }, + "nativeSrc": "24287:15:46", + "nodeType": "YulFunctionCall", + "src": "24287:15:46" + }, + "variables": [ + { + "name": "newFreePtr", + "nativeSrc": "24273:10:46", + "nodeType": "YulTypedName", + "src": "24273:10:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "24377:22:46", + "nodeType": "YulBlock", + "src": "24377:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "24379:16:46", + "nodeType": "YulIdentifier", + "src": "24379:16:46" + }, + "nativeSrc": "24379:18:46", + "nodeType": "YulFunctionCall", + "src": "24379:18:46" + }, + "nativeSrc": "24379:18:46", + "nodeType": "YulExpressionStatement", + "src": "24379:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "24320:10:46", + "nodeType": "YulIdentifier", + "src": "24320:10:46" + }, + { + "kind": "number", + "nativeSrc": "24332:18:46", + "nodeType": "YulLiteral", + "src": "24332:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "24317:2:46", + "nodeType": "YulIdentifier", + "src": "24317:2:46" + }, + "nativeSrc": "24317:34:46", + "nodeType": "YulFunctionCall", + "src": "24317:34:46" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nativeSrc": "24356:10:46", + "nodeType": "YulIdentifier", + "src": "24356:10:46" + }, + { + "name": "memPtr", + "nativeSrc": "24368:6:46", + "nodeType": "YulIdentifier", + "src": "24368:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "24353:2:46", + "nodeType": "YulIdentifier", + "src": "24353:2:46" + }, + "nativeSrc": "24353:22:46", + "nodeType": "YulFunctionCall", + "src": "24353:22:46" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "24314:2:46", + "nodeType": "YulIdentifier", + "src": "24314:2:46" + }, + "nativeSrc": "24314:62:46", + "nodeType": "YulFunctionCall", + "src": "24314:62:46" + }, + "nativeSrc": "24311:88:46", + "nodeType": "YulIf", + "src": "24311:88:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "24415:2:46", + "nodeType": "YulLiteral", + "src": "24415:2:46", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nativeSrc": "24419:10:46", + "nodeType": "YulIdentifier", + "src": "24419:10:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24408:6:46", + "nodeType": "YulIdentifier", + "src": "24408:6:46" + }, + "nativeSrc": "24408:22:46", + "nodeType": "YulFunctionCall", + "src": "24408:22:46" + }, + "nativeSrc": "24408:22:46", + "nodeType": "YulExpressionStatement", + "src": "24408:22:46" + }, + { + "nativeSrc": "24439:15:46", + "nodeType": "YulVariableDeclaration", + "src": "24439:15:46", + "value": { + "name": "_1", + "nativeSrc": "24452:2:46", + "nodeType": "YulIdentifier", + "src": "24452:2:46" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "24443:5:46", + "nodeType": "YulTypedName", + "src": "24443:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "24463:25:46", + "nodeType": "YulAssignment", + "src": "24463:25:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24478:9:46", + "nodeType": "YulIdentifier", + "src": "24478:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "24472:5:46", + "nodeType": "YulIdentifier", + "src": "24472:5:46" + }, + "nativeSrc": "24472:16:46", + "nodeType": "YulFunctionCall", + "src": "24472:16:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "24463:5:46", + "nodeType": "YulIdentifier", + "src": "24463:5:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "24504:6:46", + "nodeType": "YulIdentifier", + "src": "24504:6:46" + }, + { + "name": "value", + "nativeSrc": "24512:5:46", + "nodeType": "YulIdentifier", + "src": "24512:5:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24497:6:46", + "nodeType": "YulIdentifier", + "src": "24497:6:46" + }, + "nativeSrc": "24497:21:46", + "nodeType": "YulFunctionCall", + "src": "24497:21:46" + }, + "nativeSrc": "24497:21:46", + "nodeType": "YulExpressionStatement", + "src": "24497:21:46" + }, + { + "nativeSrc": "24527:17:46", + "nodeType": "YulVariableDeclaration", + "src": "24527:17:46", + "value": { + "name": "_1", + "nativeSrc": "24542:2:46", + "nodeType": "YulIdentifier", + "src": "24542:2:46" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "24531:7:46", + "nodeType": "YulTypedName", + "src": "24531:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "24553:36:46", + "nodeType": "YulAssignment", + "src": "24553:36:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24574:9:46", + "nodeType": "YulIdentifier", + "src": "24574:9:46" + }, + { + "kind": "number", + "nativeSrc": "24585:2:46", + "nodeType": "YulLiteral", + "src": "24585:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24570:3:46", + "nodeType": "YulIdentifier", + "src": "24570:3:46" + }, + "nativeSrc": "24570:18:46", + "nodeType": "YulFunctionCall", + "src": "24570:18:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "24564:5:46", + "nodeType": "YulIdentifier", + "src": "24564:5:46" + }, + "nativeSrc": "24564:25:46", + "nodeType": "YulFunctionCall", + "src": "24564:25:46" + }, + "variableNames": [ + { + "name": "value_1", + "nativeSrc": "24553:7:46", + "nodeType": "YulIdentifier", + "src": "24553:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "24609:6:46", + "nodeType": "YulIdentifier", + "src": "24609:6:46" + }, + { + "kind": "number", + "nativeSrc": "24617:2:46", + "nodeType": "YulLiteral", + "src": "24617:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24605:3:46", + "nodeType": "YulIdentifier", + "src": "24605:3:46" + }, + "nativeSrc": "24605:15:46", + "nodeType": "YulFunctionCall", + "src": "24605:15:46" + }, + { + "name": "value_1", + "nativeSrc": "24622:7:46", + "nodeType": "YulIdentifier", + "src": "24622:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24598:6:46", + "nodeType": "YulIdentifier", + "src": "24598:6:46" + }, + "nativeSrc": "24598:32:46", + "nodeType": "YulFunctionCall", + "src": "24598:32:46" + }, + "nativeSrc": "24598:32:46", + "nodeType": "YulExpressionStatement", + "src": "24598:32:46" + }, + { + "nativeSrc": "24639:17:46", + "nodeType": "YulVariableDeclaration", + "src": "24639:17:46", + "value": { + "name": "_1", + "nativeSrc": "24654:2:46", + "nodeType": "YulIdentifier", + "src": "24654:2:46" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "24643:7:46", + "nodeType": "YulTypedName", + "src": "24643:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "24665:36:46", + "nodeType": "YulAssignment", + "src": "24665:36:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24686:9:46", + "nodeType": "YulIdentifier", + "src": "24686:9:46" + }, + { + "kind": "number", + "nativeSrc": "24697:2:46", + "nodeType": "YulLiteral", + "src": "24697:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24682:3:46", + "nodeType": "YulIdentifier", + "src": "24682:3:46" + }, + "nativeSrc": "24682:18:46", + "nodeType": "YulFunctionCall", + "src": "24682:18:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "24676:5:46", + "nodeType": "YulIdentifier", + "src": "24676:5:46" + }, + "nativeSrc": "24676:25:46", + "nodeType": "YulFunctionCall", + "src": "24676:25:46" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "24665:7:46", + "nodeType": "YulIdentifier", + "src": "24665:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nativeSrc": "24721:6:46", + "nodeType": "YulIdentifier", + "src": "24721:6:46" + }, + { + "kind": "number", + "nativeSrc": "24729:2:46", + "nodeType": "YulLiteral", + "src": "24729:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24717:3:46", + "nodeType": "YulIdentifier", + "src": "24717:3:46" + }, + "nativeSrc": "24717:15:46", + "nodeType": "YulFunctionCall", + "src": "24717:15:46" + }, + { + "name": "value_2", + "nativeSrc": "24734:7:46", + "nodeType": "YulIdentifier", + "src": "24734:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "24710:6:46", + "nodeType": "YulIdentifier", + "src": "24710:6:46" + }, + "nativeSrc": "24710:32:46", + "nodeType": "YulFunctionCall", + "src": "24710:32:46" + }, + "nativeSrc": "24710:32:46", + "nodeType": "YulExpressionStatement", + "src": "24710:32:46" + }, + { + "nativeSrc": "24751:16:46", + "nodeType": "YulAssignment", + "src": "24751:16:46", + "value": { + "name": "memPtr", + "nativeSrc": "24761:6:46", + "nodeType": "YulIdentifier", + "src": "24761:6:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "24751:6:46", + "nodeType": "YulIdentifier", + "src": "24751:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_Roots_$1390_memory_ptr_fromMemory", + "nativeSrc": "24004:769:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "24074:9:46", + "nodeType": "YulTypedName", + "src": "24074:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "24085:7:46", + "nodeType": "YulTypedName", + "src": "24085:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "24097:6:46", + "nodeType": "YulTypedName", + "src": "24097:6:46", + "type": "" + } + ], + "src": "24004:769:46" + }, + { + "body": { + "nativeSrc": "24964:187:46", + "nodeType": "YulBlock", + "src": "24964:187:46", + "statements": [ + { + "nativeSrc": "24974:26:46", + "nodeType": "YulAssignment", + "src": "24974:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "24986:9:46", + "nodeType": "YulIdentifier", + "src": "24986:9:46" + }, + { + "kind": "number", + "nativeSrc": "24997:2:46", + "nodeType": "YulLiteral", + "src": "24997:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "24982:3:46", + "nodeType": "YulIdentifier", + "src": "24982:3:46" + }, + "nativeSrc": "24982:18:46", + "nodeType": "YulFunctionCall", + "src": "24982:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "24974:4:46", + "nodeType": "YulIdentifier", + "src": "24974:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25016:9:46", + "nodeType": "YulIdentifier", + "src": "25016:9:46" + }, + { + "name": "value0", + "nativeSrc": "25027:6:46", + "nodeType": "YulIdentifier", + "src": "25027:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25009:6:46", + "nodeType": "YulIdentifier", + "src": "25009:6:46" + }, + "nativeSrc": "25009:25:46", + "nodeType": "YulFunctionCall", + "src": "25009:25:46" + }, + "nativeSrc": "25009:25:46", + "nodeType": "YulExpressionStatement", + "src": "25009:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25054:9:46", + "nodeType": "YulIdentifier", + "src": "25054:9:46" + }, + { + "kind": "number", + "nativeSrc": "25065:2:46", + "nodeType": "YulLiteral", + "src": "25065:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25050:3:46", + "nodeType": "YulIdentifier", + "src": "25050:3:46" + }, + "nativeSrc": "25050:18:46", + "nodeType": "YulFunctionCall", + "src": "25050:18:46" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "25074:6:46", + "nodeType": "YulIdentifier", + "src": "25074:6:46" + }, + { + "kind": "number", + "nativeSrc": "25082:18:46", + "nodeType": "YulLiteral", + "src": "25082:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "25070:3:46", + "nodeType": "YulIdentifier", + "src": "25070:3:46" + }, + "nativeSrc": "25070:31:46", + "nodeType": "YulFunctionCall", + "src": "25070:31:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25043:6:46", + "nodeType": "YulIdentifier", + "src": "25043:6:46" + }, + "nativeSrc": "25043:59:46", + "nodeType": "YulFunctionCall", + "src": "25043:59:46" + }, + "nativeSrc": "25043:59:46", + "nodeType": "YulExpressionStatement", + "src": "25043:59:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25122:9:46", + "nodeType": "YulIdentifier", + "src": "25122:9:46" + }, + { + "kind": "number", + "nativeSrc": "25133:2:46", + "nodeType": "YulLiteral", + "src": "25133:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25118:3:46", + "nodeType": "YulIdentifier", + "src": "25118:3:46" + }, + "nativeSrc": "25118:18:46", + "nodeType": "YulFunctionCall", + "src": "25118:18:46" + }, + { + "name": "value2", + "nativeSrc": "25138:6:46", + "nodeType": "YulIdentifier", + "src": "25138:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25111:6:46", + "nodeType": "YulIdentifier", + "src": "25111:6:46" + }, + "nativeSrc": "25111:34:46", + "nodeType": "YulFunctionCall", + "src": "25111:34:46" + }, + "nativeSrc": "25111:34:46", + "nodeType": "YulExpressionStatement", + "src": "25111:34:46" + } + ] + }, + "name": "abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint64_t_uint256__to_t_uint256_t_uint64_t_uint256__fromStack_library_reversed", + "nativeSrc": "24778:373:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "24917:9:46", + "nodeType": "YulTypedName", + "src": "24917:9:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "24928:6:46", + "nodeType": "YulTypedName", + "src": "24928:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "24936:6:46", + "nodeType": "YulTypedName", + "src": "24936:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "24944:6:46", + "nodeType": "YulTypedName", + "src": "24944:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "24955:4:46", + "nodeType": "YulTypedName", + "src": "24955:4:46", + "type": "" + } + ], + "src": "24778:373:46" + }, + { + "body": { + "nativeSrc": "25225:115:46", + "nodeType": "YulBlock", + "src": "25225:115:46", + "statements": [ + { + "body": { + "nativeSrc": "25271:16:46", + "nodeType": "YulBlock", + "src": "25271:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25280:1:46", + "nodeType": "YulLiteral", + "src": "25280:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "25283:1:46", + "nodeType": "YulLiteral", + "src": "25283:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "25273:6:46", + "nodeType": "YulIdentifier", + "src": "25273:6:46" + }, + "nativeSrc": "25273:12:46", + "nodeType": "YulFunctionCall", + "src": "25273:12:46" + }, + "nativeSrc": "25273:12:46", + "nodeType": "YulExpressionStatement", + "src": "25273:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "25246:7:46", + "nodeType": "YulIdentifier", + "src": "25246:7:46" + }, + { + "name": "headStart", + "nativeSrc": "25255:9:46", + "nodeType": "YulIdentifier", + "src": "25255:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "25242:3:46", + "nodeType": "YulIdentifier", + "src": "25242:3:46" + }, + "nativeSrc": "25242:23:46", + "nodeType": "YulFunctionCall", + "src": "25242:23:46" + }, + { + "kind": "number", + "nativeSrc": "25267:2:46", + "nodeType": "YulLiteral", + "src": "25267:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "25238:3:46", + "nodeType": "YulIdentifier", + "src": "25238:3:46" + }, + "nativeSrc": "25238:32:46", + "nodeType": "YulFunctionCall", + "src": "25238:32:46" + }, + "nativeSrc": "25235:52:46", + "nodeType": "YulIf", + "src": "25235:52:46" + }, + { + "nativeSrc": "25296:38:46", + "nodeType": "YulAssignment", + "src": "25296:38:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25324:9:46", + "nodeType": "YulIdentifier", + "src": "25324:9:46" + } + ], + "functionName": { + "name": "abi_decode_bytes2", + "nativeSrc": "25306:17:46", + "nodeType": "YulIdentifier", + "src": "25306:17:46" + }, + "nativeSrc": "25306:28:46", + "nodeType": "YulFunctionCall", + "src": "25306:28:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "25296:6:46", + "nodeType": "YulIdentifier", + "src": "25296:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes2", + "nativeSrc": "25156:184:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "25191:9:46", + "nodeType": "YulTypedName", + "src": "25191:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "25202:7:46", + "nodeType": "YulTypedName", + "src": "25202:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "25214:6:46", + "nodeType": "YulTypedName", + "src": "25214:6:46", + "type": "" + } + ], + "src": "25156:184:46" + }, + { + "body": { + "nativeSrc": "25453:101:46", + "nodeType": "YulBlock", + "src": "25453:101:46", + "statements": [ + { + "nativeSrc": "25463:26:46", + "nodeType": "YulAssignment", + "src": "25463:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25475:9:46", + "nodeType": "YulIdentifier", + "src": "25475:9:46" + }, + { + "kind": "number", + "nativeSrc": "25486:2:46", + "nodeType": "YulLiteral", + "src": "25486:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25471:3:46", + "nodeType": "YulIdentifier", + "src": "25471:3:46" + }, + "nativeSrc": "25471:18:46", + "nodeType": "YulFunctionCall", + "src": "25471:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "25463:4:46", + "nodeType": "YulIdentifier", + "src": "25463:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "25505:9:46", + "nodeType": "YulIdentifier", + "src": "25505:9:46" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "25520:6:46", + "nodeType": "YulIdentifier", + "src": "25520:6:46" + }, + { + "kind": "number", + "nativeSrc": "25528:18:46", + "nodeType": "YulLiteral", + "src": "25528:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "25516:3:46", + "nodeType": "YulIdentifier", + "src": "25516:3:46" + }, + "nativeSrc": "25516:31:46", + "nodeType": "YulFunctionCall", + "src": "25516:31:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "25498:6:46", + "nodeType": "YulIdentifier", + "src": "25498:6:46" + }, + "nativeSrc": "25498:50:46", + "nodeType": "YulFunctionCall", + "src": "25498:50:46" + }, + "nativeSrc": "25498:50:46", + "nodeType": "YulExpressionStatement", + "src": "25498:50:46" + } + ] + }, + "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed", + "nativeSrc": "25345:209:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "25422:9:46", + "nodeType": "YulTypedName", + "src": "25422:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "25433:6:46", + "nodeType": "YulTypedName", + "src": "25433:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "25444:4:46", + "nodeType": "YulTypedName", + "src": "25444:4:46", + "type": "" + } + ], + "src": "25345:209:46" + }, + { + "body": { + "nativeSrc": "25630:549:46", + "nodeType": "YulBlock", + "src": "25630:549:46", + "statements": [ + { + "body": { + "nativeSrc": "25679:16:46", + "nodeType": "YulBlock", + "src": "25679:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25688:1:46", + "nodeType": "YulLiteral", + "src": "25688:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "25691:1:46", + "nodeType": "YulLiteral", + "src": "25691:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "25681:6:46", + "nodeType": "YulIdentifier", + "src": "25681:6:46" + }, + "nativeSrc": "25681:12:46", + "nodeType": "YulFunctionCall", + "src": "25681:12:46" + }, + "nativeSrc": "25681:12:46", + "nodeType": "YulExpressionStatement", + "src": "25681:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "25658:6:46", + "nodeType": "YulIdentifier", + "src": "25658:6:46" + }, + { + "kind": "number", + "nativeSrc": "25666:4:46", + "nodeType": "YulLiteral", + "src": "25666:4:46", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25654:3:46", + "nodeType": "YulIdentifier", + "src": "25654:3:46" + }, + "nativeSrc": "25654:17:46", + "nodeType": "YulFunctionCall", + "src": "25654:17:46" + }, + { + "name": "end", + "nativeSrc": "25673:3:46", + "nodeType": "YulIdentifier", + "src": "25673:3:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "25650:3:46", + "nodeType": "YulIdentifier", + "src": "25650:3:46" + }, + "nativeSrc": "25650:27:46", + "nodeType": "YulFunctionCall", + "src": "25650:27:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "25643:6:46", + "nodeType": "YulIdentifier", + "src": "25643:6:46" + }, + "nativeSrc": "25643:35:46", + "nodeType": "YulFunctionCall", + "src": "25643:35:46" + }, + "nativeSrc": "25640:55:46", + "nodeType": "YulIf", + "src": "25640:55:46" + }, + { + "nativeSrc": "25704:13:46", + "nodeType": "YulVariableDeclaration", + "src": "25704:13:46", + "value": { + "kind": "number", + "nativeSrc": "25716:1:46", + "nodeType": "YulLiteral", + "src": "25716:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "size", + "nativeSrc": "25708:4:46", + "nodeType": "YulTypedName", + "src": "25708:4:46", + "type": "" + } + ] + }, + { + "nativeSrc": "25726:11:46", + "nodeType": "YulVariableDeclaration", + "src": "25726:11:46", + "value": { + "kind": "number", + "nativeSrc": "25736:1:46", + "nodeType": "YulLiteral", + "src": "25736:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "25730:2:46", + "nodeType": "YulTypedName", + "src": "25730:2:46", + "type": "" + } + ] + }, + { + "nativeSrc": "25746:7:46", + "nodeType": "YulAssignment", + "src": "25746:7:46", + "value": { + "kind": "number", + "nativeSrc": "25752:1:46", + "nodeType": "YulLiteral", + "src": "25752:1:46", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "_1", + "nativeSrc": "25746:2:46", + "nodeType": "YulIdentifier", + "src": "25746:2:46" + } + ] + }, + { + "nativeSrc": "25762:10:46", + "nodeType": "YulAssignment", + "src": "25762:10:46", + "value": { + "kind": "number", + "nativeSrc": "25770:2:46", + "nodeType": "YulLiteral", + "src": "25770:2:46", + "type": "", + "value": "64" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "25762:4:46", + "nodeType": "YulIdentifier", + "src": "25762:4:46" + } + ] + }, + { + "nativeSrc": "25781:30:46", + "nodeType": "YulVariableDeclaration", + "src": "25781:30:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25808:2:46", + "nodeType": "YulLiteral", + "src": "25808:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "25792:15:46", + "nodeType": "YulIdentifier", + "src": "25792:15:46" + }, + "nativeSrc": "25792:19:46", + "nodeType": "YulFunctionCall", + "src": "25792:19:46" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "25785:3:46", + "nodeType": "YulTypedName", + "src": "25785:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "25820:18:46", + "nodeType": "YulVariableDeclaration", + "src": "25820:18:46", + "value": { + "name": "dst", + "nativeSrc": "25835:3:46", + "nodeType": "YulIdentifier", + "src": "25835:3:46" + }, + "variables": [ + { + "name": "array_1", + "nativeSrc": "25824:7:46", + "nodeType": "YulTypedName", + "src": "25824:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "25847:29:46", + "nodeType": "YulVariableDeclaration", + "src": "25847:29:46", + "value": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "25865:6:46", + "nodeType": "YulIdentifier", + "src": "25865:6:46" + }, + { + "kind": "number", + "nativeSrc": "25873:2:46", + "nodeType": "YulLiteral", + "src": "25873:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25861:3:46", + "nodeType": "YulIdentifier", + "src": "25861:3:46" + }, + "nativeSrc": "25861:15:46", + "nodeType": "YulFunctionCall", + "src": "25861:15:46" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "25851:6:46", + "nodeType": "YulTypedName", + "src": "25851:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "25904:16:46", + "nodeType": "YulBlock", + "src": "25904:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "25913:1:46", + "nodeType": "YulLiteral", + "src": "25913:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "25916:1:46", + "nodeType": "YulLiteral", + "src": "25916:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "25906:6:46", + "nodeType": "YulIdentifier", + "src": "25906:6:46" + }, + "nativeSrc": "25906:12:46", + "nodeType": "YulFunctionCall", + "src": "25906:12:46" + }, + "nativeSrc": "25906:12:46", + "nodeType": "YulExpressionStatement", + "src": "25906:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "25891:6:46", + "nodeType": "YulIdentifier", + "src": "25891:6:46" + }, + { + "name": "end", + "nativeSrc": "25899:3:46", + "nodeType": "YulIdentifier", + "src": "25899:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "25888:2:46", + "nodeType": "YulIdentifier", + "src": "25888:2:46" + }, + "nativeSrc": "25888:15:46", + "nodeType": "YulFunctionCall", + "src": "25888:15:46" + }, + "nativeSrc": "25885:35:46", + "nodeType": "YulIf", + "src": "25885:35:46" + }, + { + "nativeSrc": "25929:17:46", + "nodeType": "YulVariableDeclaration", + "src": "25929:17:46", + "value": { + "name": "offset", + "nativeSrc": "25940:6:46", + "nodeType": "YulIdentifier", + "src": "25940:6:46" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "25933:3:46", + "nodeType": "YulTypedName", + "src": "25933:3:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "26013:135:46", + "nodeType": "YulBlock", + "src": "26013:135:46", + "statements": [ + { + "nativeSrc": "26027:14:46", + "nodeType": "YulVariableDeclaration", + "src": "26027:14:46", + "value": { + "kind": "number", + "nativeSrc": "26040:1:46", + "nodeType": "YulLiteral", + "src": "26040:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "26031:5:46", + "nodeType": "YulTypedName", + "src": "26031:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "26054:19:46", + "nodeType": "YulAssignment", + "src": "26054:19:46", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "26069:3:46", + "nodeType": "YulIdentifier", + "src": "26069:3:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "26063:5:46", + "nodeType": "YulIdentifier", + "src": "26063:5:46" + }, + "nativeSrc": "26063:10:46", + "nodeType": "YulFunctionCall", + "src": "26063:10:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "26054:5:46", + "nodeType": "YulIdentifier", + "src": "26054:5:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "26093:3:46", + "nodeType": "YulIdentifier", + "src": "26093:3:46" + }, + { + "name": "value", + "nativeSrc": "26098:5:46", + "nodeType": "YulIdentifier", + "src": "26098:5:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "26086:6:46", + "nodeType": "YulIdentifier", + "src": "26086:6:46" + }, + "nativeSrc": "26086:18:46", + "nodeType": "YulFunctionCall", + "src": "26086:18:46" + }, + "nativeSrc": "26086:18:46", + "nodeType": "YulExpressionStatement", + "src": "26086:18:46" + }, + { + "nativeSrc": "26117:21:46", + "nodeType": "YulAssignment", + "src": "26117:21:46", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "26128:3:46", + "nodeType": "YulIdentifier", + "src": "26128:3:46" + }, + { + "kind": "number", + "nativeSrc": "26133:4:46", + "nodeType": "YulLiteral", + "src": "26133:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26124:3:46", + "nodeType": "YulIdentifier", + "src": "26124:3:46" + }, + "nativeSrc": "26124:14:46", + "nodeType": "YulFunctionCall", + "src": "26124:14:46" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "26117:3:46", + "nodeType": "YulIdentifier", + "src": "26117:3:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "25966:3:46", + "nodeType": "YulIdentifier", + "src": "25966:3:46" + }, + { + "name": "srcEnd", + "nativeSrc": "25971:6:46", + "nodeType": "YulIdentifier", + "src": "25971:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "25963:2:46", + "nodeType": "YulIdentifier", + "src": "25963:2:46" + }, + "nativeSrc": "25963:15:46", + "nodeType": "YulFunctionCall", + "src": "25963:15:46" + }, + "nativeSrc": "25955:193:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "25979:25:46", + "nodeType": "YulBlock", + "src": "25979:25:46", + "statements": [ + { + "nativeSrc": "25981:21:46", + "nodeType": "YulAssignment", + "src": "25981:21:46", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "25992:3:46", + "nodeType": "YulIdentifier", + "src": "25992:3:46" + }, + { + "kind": "number", + "nativeSrc": "25997:4:46", + "nodeType": "YulLiteral", + "src": "25997:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "25988:3:46", + "nodeType": "YulIdentifier", + "src": "25988:3:46" + }, + "nativeSrc": "25988:14:46", + "nodeType": "YulFunctionCall", + "src": "25988:14:46" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "25981:3:46", + "nodeType": "YulIdentifier", + "src": "25981:3:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "25959:3:46", + "nodeType": "YulBlock", + "src": "25959:3:46", + "statements": [] + }, + "src": "25955:193:46" + }, + { + "nativeSrc": "26157:16:46", + "nodeType": "YulAssignment", + "src": "26157:16:46", + "value": { + "name": "array_1", + "nativeSrc": "26166:7:46", + "nodeType": "YulIdentifier", + "src": "26166:7:46" + }, + "variableNames": [ + { + "name": "array", + "nativeSrc": "26157:5:46", + "nodeType": "YulIdentifier", + "src": "26157:5:46" + } + ] + } + ] + }, + "name": "abi_decode_array_uint256_fromMemory", + "nativeSrc": "25559:620:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "25604:6:46", + "nodeType": "YulTypedName", + "src": "25604:6:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "25612:3:46", + "nodeType": "YulTypedName", + "src": "25612:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nativeSrc": "25620:5:46", + "nodeType": "YulTypedName", + "src": "25620:5:46", + "type": "" + } + ], + "src": "25559:620:46" + }, + { + "body": { + "nativeSrc": "26433:960:46", + "nodeType": "YulBlock", + "src": "26433:960:46", + "statements": [ + { + "body": { + "nativeSrc": "26480:16:46", + "nodeType": "YulBlock", + "src": "26480:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26489:1:46", + "nodeType": "YulLiteral", + "src": "26489:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "26492:1:46", + "nodeType": "YulLiteral", + "src": "26492:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "26482:6:46", + "nodeType": "YulIdentifier", + "src": "26482:6:46" + }, + "nativeSrc": "26482:12:46", + "nodeType": "YulFunctionCall", + "src": "26482:12:46" + }, + "nativeSrc": "26482:12:46", + "nodeType": "YulExpressionStatement", + "src": "26482:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "26454:7:46", + "nodeType": "YulIdentifier", + "src": "26454:7:46" + }, + { + "name": "headStart", + "nativeSrc": "26463:9:46", + "nodeType": "YulIdentifier", + "src": "26463:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "26450:3:46", + "nodeType": "YulIdentifier", + "src": "26450:3:46" + }, + "nativeSrc": "26450:23:46", + "nodeType": "YulFunctionCall", + "src": "26450:23:46" + }, + { + "kind": "number", + "nativeSrc": "26475:3:46", + "nodeType": "YulLiteral", + "src": "26475:3:46", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "26446:3:46", + "nodeType": "YulIdentifier", + "src": "26446:3:46" + }, + "nativeSrc": "26446:33:46", + "nodeType": "YulFunctionCall", + "src": "26446:33:46" + }, + "nativeSrc": "26443:53:46", + "nodeType": "YulIf", + "src": "26443:53:46" + }, + { + "nativeSrc": "26505:30:46", + "nodeType": "YulVariableDeclaration", + "src": "26505:30:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26525:9:46", + "nodeType": "YulIdentifier", + "src": "26525:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "26519:5:46", + "nodeType": "YulIdentifier", + "src": "26519:5:46" + }, + "nativeSrc": "26519:16:46", + "nodeType": "YulFunctionCall", + "src": "26519:16:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "26509:6:46", + "nodeType": "YulTypedName", + "src": "26509:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "26578:16:46", + "nodeType": "YulBlock", + "src": "26578:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26587:1:46", + "nodeType": "YulLiteral", + "src": "26587:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "26590:1:46", + "nodeType": "YulLiteral", + "src": "26590:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "26580:6:46", + "nodeType": "YulIdentifier", + "src": "26580:6:46" + }, + "nativeSrc": "26580:12:46", + "nodeType": "YulFunctionCall", + "src": "26580:12:46" + }, + "nativeSrc": "26580:12:46", + "nodeType": "YulExpressionStatement", + "src": "26580:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "26550:6:46", + "nodeType": "YulIdentifier", + "src": "26550:6:46" + }, + { + "kind": "number", + "nativeSrc": "26558:18:46", + "nodeType": "YulLiteral", + "src": "26558:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "26547:2:46", + "nodeType": "YulIdentifier", + "src": "26547:2:46" + }, + "nativeSrc": "26547:30:46", + "nodeType": "YulFunctionCall", + "src": "26547:30:46" + }, + "nativeSrc": "26544:50:46", + "nodeType": "YulIf", + "src": "26544:50:46" + }, + { + "nativeSrc": "26603:82:46", + "nodeType": "YulAssignment", + "src": "26603:82:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26657:9:46", + "nodeType": "YulIdentifier", + "src": "26657:9:46" + }, + { + "name": "offset", + "nativeSrc": "26668:6:46", + "nodeType": "YulIdentifier", + "src": "26668:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26653:3:46", + "nodeType": "YulIdentifier", + "src": "26653:3:46" + }, + "nativeSrc": "26653:22:46", + "nodeType": "YulFunctionCall", + "src": "26653:22:46" + }, + { + "name": "dataEnd", + "nativeSrc": "26677:7:46", + "nodeType": "YulIdentifier", + "src": "26677:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_dyn_fromMemory", + "nativeSrc": "26613:39:46", + "nodeType": "YulIdentifier", + "src": "26613:39:46" + }, + "nativeSrc": "26613:72:46", + "nodeType": "YulFunctionCall", + "src": "26613:72:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "26603:6:46", + "nodeType": "YulIdentifier", + "src": "26603:6:46" + } + ] + }, + { + "nativeSrc": "26694:74:46", + "nodeType": "YulAssignment", + "src": "26694:74:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26744:9:46", + "nodeType": "YulIdentifier", + "src": "26744:9:46" + }, + { + "kind": "number", + "nativeSrc": "26755:2:46", + "nodeType": "YulLiteral", + "src": "26755:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26740:3:46", + "nodeType": "YulIdentifier", + "src": "26740:3:46" + }, + "nativeSrc": "26740:18:46", + "nodeType": "YulFunctionCall", + "src": "26740:18:46" + }, + { + "name": "dataEnd", + "nativeSrc": "26760:7:46", + "nodeType": "YulIdentifier", + "src": "26760:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_fromMemory", + "nativeSrc": "26704:35:46", + "nodeType": "YulIdentifier", + "src": "26704:35:46" + }, + "nativeSrc": "26704:64:46", + "nodeType": "YulFunctionCall", + "src": "26704:64:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "26694:6:46", + "nodeType": "YulIdentifier", + "src": "26694:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "26822:16:46", + "nodeType": "YulBlock", + "src": "26822:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26831:1:46", + "nodeType": "YulLiteral", + "src": "26831:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "26834:1:46", + "nodeType": "YulLiteral", + "src": "26834:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "26824:6:46", + "nodeType": "YulIdentifier", + "src": "26824:6:46" + }, + "nativeSrc": "26824:12:46", + "nodeType": "YulFunctionCall", + "src": "26824:12:46" + }, + "nativeSrc": "26824:12:46", + "nodeType": "YulExpressionStatement", + "src": "26824:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "26795:9:46", + "nodeType": "YulIdentifier", + "src": "26795:9:46" + }, + { + "kind": "number", + "nativeSrc": "26806:3:46", + "nodeType": "YulLiteral", + "src": "26806:3:46", + "type": "", + "value": "127" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "26791:3:46", + "nodeType": "YulIdentifier", + "src": "26791:3:46" + }, + "nativeSrc": "26791:19:46", + "nodeType": "YulFunctionCall", + "src": "26791:19:46" + }, + { + "name": "dataEnd", + "nativeSrc": "26812:7:46", + "nodeType": "YulIdentifier", + "src": "26812:7:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "26787:3:46", + "nodeType": "YulIdentifier", + "src": "26787:3:46" + }, + "nativeSrc": "26787:33:46", + "nodeType": "YulFunctionCall", + "src": "26787:33:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "26780:6:46", + "nodeType": "YulIdentifier", + "src": "26780:6:46" + }, + "nativeSrc": "26780:41:46", + "nodeType": "YulFunctionCall", + "src": "26780:41:46" + }, + "nativeSrc": "26777:61:46", + "nodeType": "YulIf", + "src": "26777:61:46" + }, + { + "nativeSrc": "26847:13:46", + "nodeType": "YulVariableDeclaration", + "src": "26847:13:46", + "value": { + "kind": "number", + "nativeSrc": "26859:1:46", + "nodeType": "YulLiteral", + "src": "26859:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "size", + "nativeSrc": "26851:4:46", + "nodeType": "YulTypedName", + "src": "26851:4:46", + "type": "" + } + ] + }, + { + "nativeSrc": "26869:11:46", + "nodeType": "YulVariableDeclaration", + "src": "26869:11:46", + "value": { + "kind": "number", + "nativeSrc": "26879:1:46", + "nodeType": "YulLiteral", + "src": "26879:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "26873:2:46", + "nodeType": "YulTypedName", + "src": "26873:2:46", + "type": "" + } + ] + }, + { + "nativeSrc": "26889:7:46", + "nodeType": "YulAssignment", + "src": "26889:7:46", + "value": { + "kind": "number", + "nativeSrc": "26895:1:46", + "nodeType": "YulLiteral", + "src": "26895:1:46", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "_1", + "nativeSrc": "26889:2:46", + "nodeType": "YulIdentifier", + "src": "26889:2:46" + } + ] + }, + { + "nativeSrc": "26905:10:46", + "nodeType": "YulAssignment", + "src": "26905:10:46", + "value": { + "kind": "number", + "nativeSrc": "26913:2:46", + "nodeType": "YulLiteral", + "src": "26913:2:46", + "type": "", + "value": "64" + }, + "variableNames": [ + { + "name": "size", + "nativeSrc": "26905:4:46", + "nodeType": "YulIdentifier", + "src": "26905:4:46" + } + ] + }, + { + "nativeSrc": "26924:30:46", + "nodeType": "YulVariableDeclaration", + "src": "26924:30:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "26951:2:46", + "nodeType": "YulLiteral", + "src": "26951:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "allocate_memory", + "nativeSrc": "26935:15:46", + "nodeType": "YulIdentifier", + "src": "26935:15:46" + }, + "nativeSrc": "26935:19:46", + "nodeType": "YulFunctionCall", + "src": "26935:19:46" + }, + "variables": [ + { + "name": "dst", + "nativeSrc": "26928:3:46", + "nodeType": "YulTypedName", + "src": "26928:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "26963:16:46", + "nodeType": "YulVariableDeclaration", + "src": "26963:16:46", + "value": { + "name": "dst", + "nativeSrc": "26976:3:46", + "nodeType": "YulIdentifier", + "src": "26976:3:46" + }, + "variables": [ + { + "name": "array", + "nativeSrc": "26967:5:46", + "nodeType": "YulTypedName", + "src": "26967:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "26988:33:46", + "nodeType": "YulVariableDeclaration", + "src": "26988:33:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27006:9:46", + "nodeType": "YulIdentifier", + "src": "27006:9:46" + }, + { + "kind": "number", + "nativeSrc": "27017:3:46", + "nodeType": "YulLiteral", + "src": "27017:3:46", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27002:3:46", + "nodeType": "YulIdentifier", + "src": "27002:3:46" + }, + "nativeSrc": "27002:19:46", + "nodeType": "YulFunctionCall", + "src": "27002:19:46" + }, + "variables": [ + { + "name": "srcEnd", + "nativeSrc": "26992:6:46", + "nodeType": "YulTypedName", + "src": "26992:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "27053:16:46", + "nodeType": "YulBlock", + "src": "27053:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "27062:1:46", + "nodeType": "YulLiteral", + "src": "27062:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "27065:1:46", + "nodeType": "YulLiteral", + "src": "27065:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "27055:6:46", + "nodeType": "YulIdentifier", + "src": "27055:6:46" + }, + "nativeSrc": "27055:12:46", + "nodeType": "YulFunctionCall", + "src": "27055:12:46" + }, + "nativeSrc": "27055:12:46", + "nodeType": "YulExpressionStatement", + "src": "27055:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "27036:6:46", + "nodeType": "YulIdentifier", + "src": "27036:6:46" + }, + { + "name": "dataEnd", + "nativeSrc": "27044:7:46", + "nodeType": "YulIdentifier", + "src": "27044:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "27033:2:46", + "nodeType": "YulIdentifier", + "src": "27033:2:46" + }, + "nativeSrc": "27033:19:46", + "nodeType": "YulFunctionCall", + "src": "27033:19:46" + }, + "nativeSrc": "27030:39:46", + "nodeType": "YulIf", + "src": "27030:39:46" + }, + { + "nativeSrc": "27078:29:46", + "nodeType": "YulVariableDeclaration", + "src": "27078:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27093:9:46", + "nodeType": "YulIdentifier", + "src": "27093:9:46" + }, + { + "kind": "number", + "nativeSrc": "27104:2:46", + "nodeType": "YulLiteral", + "src": "27104:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27089:3:46", + "nodeType": "YulIdentifier", + "src": "27089:3:46" + }, + "nativeSrc": "27089:18:46", + "nodeType": "YulFunctionCall", + "src": "27089:18:46" + }, + "variables": [ + { + "name": "src", + "nativeSrc": "27082:3:46", + "nodeType": "YulTypedName", + "src": "27082:3:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "27174:118:46", + "nodeType": "YulBlock", + "src": "27174:118:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "27195:3:46", + "nodeType": "YulIdentifier", + "src": "27195:3:46" + }, + { + "arguments": [ + { + "name": "src", + "nativeSrc": "27236:3:46", + "nodeType": "YulIdentifier", + "src": "27236:3:46" + }, + { + "name": "dataEnd", + "nativeSrc": "27241:7:46", + "nodeType": "YulIdentifier", + "src": "27241:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_fromMemory", + "nativeSrc": "27200:35:46", + "nodeType": "YulIdentifier", + "src": "27200:35:46" + }, + "nativeSrc": "27200:49:46", + "nodeType": "YulFunctionCall", + "src": "27200:49:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27188:6:46", + "nodeType": "YulIdentifier", + "src": "27188:6:46" + }, + "nativeSrc": "27188:62:46", + "nodeType": "YulFunctionCall", + "src": "27188:62:46" + }, + "nativeSrc": "27188:62:46", + "nodeType": "YulExpressionStatement", + "src": "27188:62:46" + }, + { + "nativeSrc": "27263:19:46", + "nodeType": "YulAssignment", + "src": "27263:19:46", + "value": { + "arguments": [ + { + "name": "dst", + "nativeSrc": "27274:3:46", + "nodeType": "YulIdentifier", + "src": "27274:3:46" + }, + { + "kind": "number", + "nativeSrc": "27279:2:46", + "nodeType": "YulLiteral", + "src": "27279:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27270:3:46", + "nodeType": "YulIdentifier", + "src": "27270:3:46" + }, + "nativeSrc": "27270:12:46", + "nodeType": "YulFunctionCall", + "src": "27270:12:46" + }, + "variableNames": [ + { + "name": "dst", + "nativeSrc": "27263:3:46", + "nodeType": "YulIdentifier", + "src": "27263:3:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "src", + "nativeSrc": "27127:3:46", + "nodeType": "YulIdentifier", + "src": "27127:3:46" + }, + { + "name": "srcEnd", + "nativeSrc": "27132:6:46", + "nodeType": "YulIdentifier", + "src": "27132:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "27124:2:46", + "nodeType": "YulIdentifier", + "src": "27124:2:46" + }, + "nativeSrc": "27124:15:46", + "nodeType": "YulFunctionCall", + "src": "27124:15:46" + }, + "nativeSrc": "27116:176:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "27140:25:46", + "nodeType": "YulBlock", + "src": "27140:25:46", + "statements": [ + { + "nativeSrc": "27142:21:46", + "nodeType": "YulAssignment", + "src": "27142:21:46", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "27153:3:46", + "nodeType": "YulIdentifier", + "src": "27153:3:46" + }, + { + "name": "size", + "nativeSrc": "27158:4:46", + "nodeType": "YulIdentifier", + "src": "27158:4:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27149:3:46", + "nodeType": "YulIdentifier", + "src": "27149:3:46" + }, + "nativeSrc": "27149:14:46", + "nodeType": "YulFunctionCall", + "src": "27149:14:46" + }, + "variableNames": [ + { + "name": "src", + "nativeSrc": "27142:3:46", + "nodeType": "YulIdentifier", + "src": "27142:3:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "27120:3:46", + "nodeType": "YulBlock", + "src": "27120:3:46", + "statements": [] + }, + "src": "27116:176:46" + }, + { + "nativeSrc": "27301:15:46", + "nodeType": "YulAssignment", + "src": "27301:15:46", + "value": { + "name": "array", + "nativeSrc": "27311:5:46", + "nodeType": "YulIdentifier", + "src": "27311:5:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "27301:6:46", + "nodeType": "YulIdentifier", + "src": "27301:6:46" + } + ] + }, + { + "nativeSrc": "27325:62:46", + "nodeType": "YulAssignment", + "src": "27325:62:46", + "value": { + "arguments": [ + { + "name": "srcEnd", + "nativeSrc": "27371:6:46", + "nodeType": "YulIdentifier", + "src": "27371:6:46" + }, + { + "name": "dataEnd", + "nativeSrc": "27379:7:46", + "nodeType": "YulIdentifier", + "src": "27379:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_fromMemory", + "nativeSrc": "27335:35:46", + "nodeType": "YulIdentifier", + "src": "27335:35:46" + }, + "nativeSrc": "27335:52:46", + "nodeType": "YulFunctionCall", + "src": "27335:52:46" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "27325:6:46", + "nodeType": "YulIdentifier", + "src": "27325:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$2_memory_ptrt_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptrt_array$_t_uint256_$2_memory_ptr_fromMemory", + "nativeSrc": "26184:1209:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "26375:9:46", + "nodeType": "YulTypedName", + "src": "26375:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "26386:7:46", + "nodeType": "YulTypedName", + "src": "26386:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "26398:6:46", + "nodeType": "YulTypedName", + "src": "26398:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "26406:6:46", + "nodeType": "YulTypedName", + "src": "26406:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "26414:6:46", + "nodeType": "YulTypedName", + "src": "26414:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "26422:6:46", + "nodeType": "YulTypedName", + "src": "26422:6:46", + "type": "" + } + ], + "src": "26184:1209:46" + }, + { + "body": { + "nativeSrc": "27430:95:46", + "nodeType": "YulBlock", + "src": "27430:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "27447:1:46", + "nodeType": "YulLiteral", + "src": "27447:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "27454:3:46", + "nodeType": "YulLiteral", + "src": "27454:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "27459:10:46", + "nodeType": "YulLiteral", + "src": "27459:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "27450:3:46", + "nodeType": "YulIdentifier", + "src": "27450:3:46" + }, + "nativeSrc": "27450:20:46", + "nodeType": "YulFunctionCall", + "src": "27450:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27440:6:46", + "nodeType": "YulIdentifier", + "src": "27440:6:46" + }, + "nativeSrc": "27440:31:46", + "nodeType": "YulFunctionCall", + "src": "27440:31:46" + }, + "nativeSrc": "27440:31:46", + "nodeType": "YulExpressionStatement", + "src": "27440:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "27487:1:46", + "nodeType": "YulLiteral", + "src": "27487:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "27490:4:46", + "nodeType": "YulLiteral", + "src": "27490:4:46", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "27480:6:46", + "nodeType": "YulIdentifier", + "src": "27480:6:46" + }, + "nativeSrc": "27480:15:46", + "nodeType": "YulFunctionCall", + "src": "27480:15:46" + }, + "nativeSrc": "27480:15:46", + "nodeType": "YulExpressionStatement", + "src": "27480:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "27511:1:46", + "nodeType": "YulLiteral", + "src": "27511:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "27514:4:46", + "nodeType": "YulLiteral", + "src": "27514:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "27504:6:46", + "nodeType": "YulIdentifier", + "src": "27504:6:46" + }, + "nativeSrc": "27504:15:46", + "nodeType": "YulFunctionCall", + "src": "27504:15:46" + }, + "nativeSrc": "27504:15:46", + "nodeType": "YulExpressionStatement", + "src": "27504:15:46" + } + ] + }, + "name": "panic_error_0x32", + "nativeSrc": "27398:127:46", + "nodeType": "YulFunctionDefinition", + "src": "27398:127:46" + }, + { + "body": { + "nativeSrc": "27652:857:46", + "nodeType": "YulBlock", + "src": "27652:857:46", + "statements": [ + { + "body": { + "nativeSrc": "27698:16:46", + "nodeType": "YulBlock", + "src": "27698:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "27707:1:46", + "nodeType": "YulLiteral", + "src": "27707:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "27710:1:46", + "nodeType": "YulLiteral", + "src": "27710:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "27700:6:46", + "nodeType": "YulIdentifier", + "src": "27700:6:46" + }, + "nativeSrc": "27700:12:46", + "nodeType": "YulFunctionCall", + "src": "27700:12:46" + }, + "nativeSrc": "27700:12:46", + "nodeType": "YulExpressionStatement", + "src": "27700:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "27673:7:46", + "nodeType": "YulIdentifier", + "src": "27673:7:46" + }, + { + "name": "headStart", + "nativeSrc": "27682:9:46", + "nodeType": "YulIdentifier", + "src": "27682:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "27669:3:46", + "nodeType": "YulIdentifier", + "src": "27669:3:46" + }, + "nativeSrc": "27669:23:46", + "nodeType": "YulFunctionCall", + "src": "27669:23:46" + }, + { + "kind": "number", + "nativeSrc": "27694:2:46", + "nodeType": "YulLiteral", + "src": "27694:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "27665:3:46", + "nodeType": "YulIdentifier", + "src": "27665:3:46" + }, + "nativeSrc": "27665:32:46", + "nodeType": "YulFunctionCall", + "src": "27665:32:46" + }, + "nativeSrc": "27662:52:46", + "nodeType": "YulIf", + "src": "27662:52:46" + }, + { + "nativeSrc": "27723:30:46", + "nodeType": "YulVariableDeclaration", + "src": "27723:30:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27743:9:46", + "nodeType": "YulIdentifier", + "src": "27743:9:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "27737:5:46", + "nodeType": "YulIdentifier", + "src": "27737:5:46" + }, + "nativeSrc": "27737:16:46", + "nodeType": "YulFunctionCall", + "src": "27737:16:46" + }, + "variables": [ + { + "name": "offset", + "nativeSrc": "27727:6:46", + "nodeType": "YulTypedName", + "src": "27727:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "27796:16:46", + "nodeType": "YulBlock", + "src": "27796:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "27805:1:46", + "nodeType": "YulLiteral", + "src": "27805:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "27808:1:46", + "nodeType": "YulLiteral", + "src": "27808:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "27798:6:46", + "nodeType": "YulIdentifier", + "src": "27798:6:46" + }, + "nativeSrc": "27798:12:46", + "nodeType": "YulFunctionCall", + "src": "27798:12:46" + }, + "nativeSrc": "27798:12:46", + "nodeType": "YulExpressionStatement", + "src": "27798:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nativeSrc": "27768:6:46", + "nodeType": "YulIdentifier", + "src": "27768:6:46" + }, + { + "kind": "number", + "nativeSrc": "27776:18:46", + "nodeType": "YulLiteral", + "src": "27776:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "27765:2:46", + "nodeType": "YulIdentifier", + "src": "27765:2:46" + }, + "nativeSrc": "27765:30:46", + "nodeType": "YulFunctionCall", + "src": "27765:30:46" + }, + "nativeSrc": "27762:50:46", + "nodeType": "YulIf", + "src": "27762:50:46" + }, + { + "nativeSrc": "27821:32:46", + "nodeType": "YulVariableDeclaration", + "src": "27821:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "27835:9:46", + "nodeType": "YulIdentifier", + "src": "27835:9:46" + }, + { + "name": "offset", + "nativeSrc": "27846:6:46", + "nodeType": "YulIdentifier", + "src": "27846:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "27831:3:46", + "nodeType": "YulIdentifier", + "src": "27831:3:46" + }, + "nativeSrc": "27831:22:46", + "nodeType": "YulFunctionCall", + "src": "27831:22:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "27825:2:46", + "nodeType": "YulTypedName", + "src": "27825:2:46", + "type": "" + } + ] + }, + { + "nativeSrc": "27862:26:46", + "nodeType": "YulVariableDeclaration", + "src": "27862:26:46", + "value": { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "27876:7:46", + "nodeType": "YulIdentifier", + "src": "27876:7:46" + }, + { + "name": "_1", + "nativeSrc": "27885:2:46", + "nodeType": "YulIdentifier", + "src": "27885:2:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "27872:3:46", + "nodeType": "YulIdentifier", + "src": "27872:3:46" + }, + "nativeSrc": "27872:16:46", + "nodeType": "YulFunctionCall", + "src": "27872:16:46" + }, + "variables": [ + { + "name": "_2", + "nativeSrc": "27866:2:46", + "nodeType": "YulTypedName", + "src": "27866:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "27914:16:46", + "nodeType": "YulBlock", + "src": "27914:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "27923:1:46", + "nodeType": "YulLiteral", + "src": "27923:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "27926:1:46", + "nodeType": "YulLiteral", + "src": "27926:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "27916:6:46", + "nodeType": "YulIdentifier", + "src": "27916:6:46" + }, + "nativeSrc": "27916:12:46", + "nodeType": "YulFunctionCall", + "src": "27916:12:46" + }, + "nativeSrc": "27916:12:46", + "nodeType": "YulExpressionStatement", + "src": "27916:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_2", + "nativeSrc": "27904:2:46", + "nodeType": "YulIdentifier", + "src": "27904:2:46" + }, + { + "kind": "number", + "nativeSrc": "27908:4:46", + "nodeType": "YulLiteral", + "src": "27908:4:46", + "type": "", + "value": "0x60" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "27900:3:46", + "nodeType": "YulIdentifier", + "src": "27900:3:46" + }, + "nativeSrc": "27900:13:46", + "nodeType": "YulFunctionCall", + "src": "27900:13:46" + }, + "nativeSrc": "27897:33:46", + "nodeType": "YulIf", + "src": "27897:33:46" + }, + { + "nativeSrc": "27939:35:46", + "nodeType": "YulVariableDeclaration", + "src": "27939:35:46", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_memory_4237", + "nativeSrc": "27952:20:46", + "nodeType": "YulIdentifier", + "src": "27952:20:46" + }, + "nativeSrc": "27952:22:46", + "nodeType": "YulFunctionCall", + "src": "27952:22:46" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "27943:5:46", + "nodeType": "YulTypedName", + "src": "27943:5:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "28000:16:46", + "nodeType": "YulBlock", + "src": "28000:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "28009:1:46", + "nodeType": "YulLiteral", + "src": "28009:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "28012:1:46", + "nodeType": "YulLiteral", + "src": "28012:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "28002:6:46", + "nodeType": "YulIdentifier", + "src": "28002:6:46" + }, + "nativeSrc": "28002:12:46", + "nodeType": "YulFunctionCall", + "src": "28002:12:46" + }, + "nativeSrc": "28002:12:46", + "nodeType": "YulExpressionStatement", + "src": "28002:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_2", + "nativeSrc": "27990:2:46", + "nodeType": "YulIdentifier", + "src": "27990:2:46" + }, + { + "kind": "number", + "nativeSrc": "27994:4:46", + "nodeType": "YulLiteral", + "src": "27994:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "27986:3:46", + "nodeType": "YulIdentifier", + "src": "27986:3:46" + }, + "nativeSrc": "27986:13:46", + "nodeType": "YulFunctionCall", + "src": "27986:13:46" + }, + "nativeSrc": "27983:33:46", + "nodeType": "YulIf", + "src": "27983:33:46" + }, + { + "nativeSrc": "28025:37:46", + "nodeType": "YulVariableDeclaration", + "src": "28025:37:46", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_memory_4237", + "nativeSrc": "28040:20:46", + "nodeType": "YulIdentifier", + "src": "28040:20:46" + }, + "nativeSrc": "28040:22:46", + "nodeType": "YulFunctionCall", + "src": "28040:22:46" + }, + "variables": [ + { + "name": "value_1", + "nativeSrc": "28029:7:46", + "nodeType": "YulTypedName", + "src": "28029:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "28071:16:46", + "nodeType": "YulVariableDeclaration", + "src": "28071:16:46", + "value": { + "kind": "number", + "nativeSrc": "28086:1:46", + "nodeType": "YulLiteral", + "src": "28086:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_2", + "nativeSrc": "28075:7:46", + "nodeType": "YulTypedName", + "src": "28075:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "28096:20:46", + "nodeType": "YulAssignment", + "src": "28096:20:46", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "28113:2:46", + "nodeType": "YulIdentifier", + "src": "28113:2:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28107:5:46", + "nodeType": "YulIdentifier", + "src": "28107:5:46" + }, + "nativeSrc": "28107:9:46", + "nodeType": "YulFunctionCall", + "src": "28107:9:46" + }, + "variableNames": [ + { + "name": "value_2", + "nativeSrc": "28096:7:46", + "nodeType": "YulIdentifier", + "src": "28096:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "28132:7:46", + "nodeType": "YulIdentifier", + "src": "28132:7:46" + }, + { + "name": "value_2", + "nativeSrc": "28141:7:46", + "nodeType": "YulIdentifier", + "src": "28141:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28125:6:46", + "nodeType": "YulIdentifier", + "src": "28125:6:46" + }, + "nativeSrc": "28125:24:46", + "nodeType": "YulFunctionCall", + "src": "28125:24:46" + }, + "nativeSrc": "28125:24:46", + "nodeType": "YulExpressionStatement", + "src": "28125:24:46" + }, + { + "nativeSrc": "28158:16:46", + "nodeType": "YulVariableDeclaration", + "src": "28158:16:46", + "value": { + "kind": "number", + "nativeSrc": "28173:1:46", + "nodeType": "YulLiteral", + "src": "28173:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value_3", + "nativeSrc": "28162:7:46", + "nodeType": "YulTypedName", + "src": "28162:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "28183:29:46", + "nodeType": "YulAssignment", + "src": "28183:29:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "28204:2:46", + "nodeType": "YulIdentifier", + "src": "28204:2:46" + }, + { + "kind": "number", + "nativeSrc": "28208:2:46", + "nodeType": "YulLiteral", + "src": "28208:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28200:3:46", + "nodeType": "YulIdentifier", + "src": "28200:3:46" + }, + "nativeSrc": "28200:11:46", + "nodeType": "YulFunctionCall", + "src": "28200:11:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28194:5:46", + "nodeType": "YulIdentifier", + "src": "28194:5:46" + }, + "nativeSrc": "28194:18:46", + "nodeType": "YulFunctionCall", + "src": "28194:18:46" + }, + "variableNames": [ + { + "name": "value_3", + "nativeSrc": "28183:7:46", + "nodeType": "YulIdentifier", + "src": "28183:7:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value_1", + "nativeSrc": "28232:7:46", + "nodeType": "YulIdentifier", + "src": "28232:7:46" + }, + { + "kind": "number", + "nativeSrc": "28241:2:46", + "nodeType": "YulLiteral", + "src": "28241:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28228:3:46", + "nodeType": "YulIdentifier", + "src": "28228:3:46" + }, + "nativeSrc": "28228:16:46", + "nodeType": "YulFunctionCall", + "src": "28228:16:46" + }, + { + "name": "value_3", + "nativeSrc": "28246:7:46", + "nodeType": "YulIdentifier", + "src": "28246:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28221:6:46", + "nodeType": "YulIdentifier", + "src": "28221:6:46" + }, + "nativeSrc": "28221:33:46", + "nodeType": "YulFunctionCall", + "src": "28221:33:46" + }, + "nativeSrc": "28221:33:46", + "nodeType": "YulExpressionStatement", + "src": "28221:33:46" + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nativeSrc": "28270:5:46", + "nodeType": "YulIdentifier", + "src": "28270:5:46" + }, + { + "name": "value_1", + "nativeSrc": "28277:7:46", + "nodeType": "YulIdentifier", + "src": "28277:7:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28263:6:46", + "nodeType": "YulIdentifier", + "src": "28263:6:46" + }, + "nativeSrc": "28263:22:46", + "nodeType": "YulFunctionCall", + "src": "28263:22:46" + }, + "nativeSrc": "28263:22:46", + "nodeType": "YulExpressionStatement", + "src": "28263:22:46" + }, + { + "nativeSrc": "28294:36:46", + "nodeType": "YulVariableDeclaration", + "src": "28294:36:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "28320:2:46", + "nodeType": "YulIdentifier", + "src": "28320:2:46" + }, + { + "kind": "number", + "nativeSrc": "28324:4:46", + "nodeType": "YulLiteral", + "src": "28324:4:46", + "type": "", + "value": "0x40" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28316:3:46", + "nodeType": "YulIdentifier", + "src": "28316:3:46" + }, + "nativeSrc": "28316:13:46", + "nodeType": "YulFunctionCall", + "src": "28316:13:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "28310:5:46", + "nodeType": "YulIdentifier", + "src": "28310:5:46" + }, + "nativeSrc": "28310:20:46", + "nodeType": "YulFunctionCall", + "src": "28310:20:46" + }, + "variables": [ + { + "name": "offset_1", + "nativeSrc": "28298:8:46", + "nodeType": "YulTypedName", + "src": "28298:8:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "28375:16:46", + "nodeType": "YulBlock", + "src": "28375:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "28384:1:46", + "nodeType": "YulLiteral", + "src": "28384:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "28387:1:46", + "nodeType": "YulLiteral", + "src": "28387:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "28377:6:46", + "nodeType": "YulIdentifier", + "src": "28377:6:46" + }, + "nativeSrc": "28377:12:46", + "nodeType": "YulFunctionCall", + "src": "28377:12:46" + }, + "nativeSrc": "28377:12:46", + "nodeType": "YulExpressionStatement", + "src": "28377:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset_1", + "nativeSrc": "28345:8:46", + "nodeType": "YulIdentifier", + "src": "28345:8:46" + }, + { + "kind": "number", + "nativeSrc": "28355:18:46", + "nodeType": "YulLiteral", + "src": "28355:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "28342:2:46", + "nodeType": "YulIdentifier", + "src": "28342:2:46" + }, + "nativeSrc": "28342:32:46", + "nodeType": "YulFunctionCall", + "src": "28342:32:46" + }, + "nativeSrc": "28339:52:46", + "nodeType": "YulIf", + "src": "28339:52:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nativeSrc": "28411:5:46", + "nodeType": "YulIdentifier", + "src": "28411:5:46" + }, + { + "kind": "number", + "nativeSrc": "28418:2:46", + "nodeType": "YulLiteral", + "src": "28418:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28407:3:46", + "nodeType": "YulIdentifier", + "src": "28407:3:46" + }, + "nativeSrc": "28407:14:46", + "nodeType": "YulFunctionCall", + "src": "28407:14:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "_1", + "nativeSrc": "28455:2:46", + "nodeType": "YulIdentifier", + "src": "28455:2:46" + }, + { + "name": "offset_1", + "nativeSrc": "28459:8:46", + "nodeType": "YulIdentifier", + "src": "28459:8:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "28451:3:46", + "nodeType": "YulIdentifier", + "src": "28451:3:46" + }, + "nativeSrc": "28451:17:46", + "nodeType": "YulFunctionCall", + "src": "28451:17:46" + }, + { + "name": "dataEnd", + "nativeSrc": "28470:7:46", + "nodeType": "YulIdentifier", + "src": "28470:7:46" + } + ], + "functionName": { + "name": "abi_decode_bytes_fromMemory", + "nativeSrc": "28423:27:46", + "nodeType": "YulIdentifier", + "src": "28423:27:46" + }, + "nativeSrc": "28423:55:46", + "nodeType": "YulFunctionCall", + "src": "28423:55:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28400:6:46", + "nodeType": "YulIdentifier", + "src": "28400:6:46" + }, + "nativeSrc": "28400:79:46", + "nodeType": "YulFunctionCall", + "src": "28400:79:46" + }, + "nativeSrc": "28400:79:46", + "nodeType": "YulExpressionStatement", + "src": "28400:79:46" + }, + { + "nativeSrc": "28488:15:46", + "nodeType": "YulAssignment", + "src": "28488:15:46", + "value": { + "name": "value", + "nativeSrc": "28498:5:46", + "nodeType": "YulIdentifier", + "src": "28498:5:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "28488:6:46", + "nodeType": "YulIdentifier", + "src": "28488:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_struct$_PassportSignatureProof_$16128_memory_ptr_fromMemory", + "nativeSrc": "27530:979:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "27618:9:46", + "nodeType": "YulTypedName", + "src": "27618:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "27629:7:46", + "nodeType": "YulTypedName", + "src": "27629:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "27641:6:46", + "nodeType": "YulTypedName", + "src": "27641:6:46", + "type": "" + } + ], + "src": "27530:979:46" + }, + { + "body": { + "nativeSrc": "28569:325:46", + "nodeType": "YulBlock", + "src": "28569:325:46", + "statements": [ + { + "nativeSrc": "28579:22:46", + "nodeType": "YulAssignment", + "src": "28579:22:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "28593:1:46", + "nodeType": "YulLiteral", + "src": "28593:1:46", + "type": "", + "value": "1" + }, + { + "name": "data", + "nativeSrc": "28596:4:46", + "nodeType": "YulIdentifier", + "src": "28596:4:46" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "28589:3:46", + "nodeType": "YulIdentifier", + "src": "28589:3:46" + }, + "nativeSrc": "28589:12:46", + "nodeType": "YulFunctionCall", + "src": "28589:12:46" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "28579:6:46", + "nodeType": "YulIdentifier", + "src": "28579:6:46" + } + ] + }, + { + "nativeSrc": "28610:38:46", + "nodeType": "YulVariableDeclaration", + "src": "28610:38:46", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "28640:4:46", + "nodeType": "YulIdentifier", + "src": "28640:4:46" + }, + { + "kind": "number", + "nativeSrc": "28646:1:46", + "nodeType": "YulLiteral", + "src": "28646:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "28636:3:46", + "nodeType": "YulIdentifier", + "src": "28636:3:46" + }, + "nativeSrc": "28636:12:46", + "nodeType": "YulFunctionCall", + "src": "28636:12:46" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "28614:18:46", + "nodeType": "YulTypedName", + "src": "28614:18:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "28687:31:46", + "nodeType": "YulBlock", + "src": "28687:31:46", + "statements": [ + { + "nativeSrc": "28689:27:46", + "nodeType": "YulAssignment", + "src": "28689:27:46", + "value": { + "arguments": [ + { + "name": "length", + "nativeSrc": "28703:6:46", + "nodeType": "YulIdentifier", + "src": "28703:6:46" + }, + { + "kind": "number", + "nativeSrc": "28711:4:46", + "nodeType": "YulLiteral", + "src": "28711:4:46", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "28699:3:46", + "nodeType": "YulIdentifier", + "src": "28699:3:46" + }, + "nativeSrc": "28699:17:46", + "nodeType": "YulFunctionCall", + "src": "28699:17:46" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "28689:6:46", + "nodeType": "YulIdentifier", + "src": "28689:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "28667:18:46", + "nodeType": "YulIdentifier", + "src": "28667:18:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "28660:6:46", + "nodeType": "YulIdentifier", + "src": "28660:6:46" + }, + "nativeSrc": "28660:26:46", + "nodeType": "YulFunctionCall", + "src": "28660:26:46" + }, + "nativeSrc": "28657:61:46", + "nodeType": "YulIf", + "src": "28657:61:46" + }, + { + "body": { + "nativeSrc": "28777:111:46", + "nodeType": "YulBlock", + "src": "28777:111:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "28798:1:46", + "nodeType": "YulLiteral", + "src": "28798:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "28805:3:46", + "nodeType": "YulLiteral", + "src": "28805:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "28810:10:46", + "nodeType": "YulLiteral", + "src": "28810:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "28801:3:46", + "nodeType": "YulIdentifier", + "src": "28801:3:46" + }, + "nativeSrc": "28801:20:46", + "nodeType": "YulFunctionCall", + "src": "28801:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28791:6:46", + "nodeType": "YulIdentifier", + "src": "28791:6:46" + }, + "nativeSrc": "28791:31:46", + "nodeType": "YulFunctionCall", + "src": "28791:31:46" + }, + "nativeSrc": "28791:31:46", + "nodeType": "YulExpressionStatement", + "src": "28791:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "28842:1:46", + "nodeType": "YulLiteral", + "src": "28842:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "28845:4:46", + "nodeType": "YulLiteral", + "src": "28845:4:46", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "28835:6:46", + "nodeType": "YulIdentifier", + "src": "28835:6:46" + }, + "nativeSrc": "28835:15:46", + "nodeType": "YulFunctionCall", + "src": "28835:15:46" + }, + "nativeSrc": "28835:15:46", + "nodeType": "YulExpressionStatement", + "src": "28835:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "28870:1:46", + "nodeType": "YulLiteral", + "src": "28870:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "28873:4:46", + "nodeType": "YulLiteral", + "src": "28873:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "28863:6:46", + "nodeType": "YulIdentifier", + "src": "28863:6:46" + }, + "nativeSrc": "28863:15:46", + "nodeType": "YulFunctionCall", + "src": "28863:15:46" + }, + "nativeSrc": "28863:15:46", + "nodeType": "YulExpressionStatement", + "src": "28863:15:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nativeSrc": "28733:18:46", + "nodeType": "YulIdentifier", + "src": "28733:18:46" + }, + { + "arguments": [ + { + "name": "length", + "nativeSrc": "28756:6:46", + "nodeType": "YulIdentifier", + "src": "28756:6:46" + }, + { + "kind": "number", + "nativeSrc": "28764:2:46", + "nodeType": "YulLiteral", + "src": "28764:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "28753:2:46", + "nodeType": "YulIdentifier", + "src": "28753:2:46" + }, + "nativeSrc": "28753:14:46", + "nodeType": "YulFunctionCall", + "src": "28753:14:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "28730:2:46", + "nodeType": "YulIdentifier", + "src": "28730:2:46" + }, + "nativeSrc": "28730:38:46", + "nodeType": "YulFunctionCall", + "src": "28730:38:46" + }, + "nativeSrc": "28727:161:46", + "nodeType": "YulIf", + "src": "28727:161:46" + } + ] + }, + "name": "extract_byte_array_length", + "nativeSrc": "28514:380:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "28549:4:46", + "nodeType": "YulTypedName", + "src": "28549:4:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nativeSrc": "28558:6:46", + "nodeType": "YulTypedName", + "src": "28558:6:46", + "type": "" + } + ], + "src": "28514:380:46" + }, + { + "body": { + "nativeSrc": "29028:119:46", + "nodeType": "YulBlock", + "src": "29028:119:46", + "statements": [ + { + "nativeSrc": "29038:26:46", + "nodeType": "YulAssignment", + "src": "29038:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "29050:9:46", + "nodeType": "YulIdentifier", + "src": "29050:9:46" + }, + { + "kind": "number", + "nativeSrc": "29061:2:46", + "nodeType": "YulLiteral", + "src": "29061:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29046:3:46", + "nodeType": "YulIdentifier", + "src": "29046:3:46" + }, + "nativeSrc": "29046:18:46", + "nodeType": "YulFunctionCall", + "src": "29046:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "29038:4:46", + "nodeType": "YulIdentifier", + "src": "29038:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "29080:9:46", + "nodeType": "YulIdentifier", + "src": "29080:9:46" + }, + { + "name": "value0", + "nativeSrc": "29091:6:46", + "nodeType": "YulIdentifier", + "src": "29091:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29073:6:46", + "nodeType": "YulIdentifier", + "src": "29073:6:46" + }, + "nativeSrc": "29073:25:46", + "nodeType": "YulFunctionCall", + "src": "29073:25:46" + }, + "nativeSrc": "29073:25:46", + "nodeType": "YulExpressionStatement", + "src": "29073:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "29118:9:46", + "nodeType": "YulIdentifier", + "src": "29118:9:46" + }, + { + "kind": "number", + "nativeSrc": "29129:2:46", + "nodeType": "YulLiteral", + "src": "29129:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29114:3:46", + "nodeType": "YulIdentifier", + "src": "29114:3:46" + }, + "nativeSrc": "29114:18:46", + "nodeType": "YulFunctionCall", + "src": "29114:18:46" + }, + { + "name": "value1", + "nativeSrc": "29134:6:46", + "nodeType": "YulIdentifier", + "src": "29134:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29107:6:46", + "nodeType": "YulIdentifier", + "src": "29107:6:46" + }, + "nativeSrc": "29107:34:46", + "nodeType": "YulFunctionCall", + "src": "29107:34:46" + }, + "nativeSrc": "29107:34:46", + "nodeType": "YulExpressionStatement", + "src": "29107:34:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "28899:248:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "28989:9:46", + "nodeType": "YulTypedName", + "src": "28989:9:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "29000:6:46", + "nodeType": "YulTypedName", + "src": "29000:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "29008:6:46", + "nodeType": "YulTypedName", + "src": "29008:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "29019:4:46", + "nodeType": "YulTypedName", + "src": "29019:4:46", + "type": "" + } + ], + "src": "28899:248:46" + }, + { + "body": { + "nativeSrc": "29247:427:46", + "nodeType": "YulBlock", + "src": "29247:427:46", + "statements": [ + { + "nativeSrc": "29257:51:46", + "nodeType": "YulVariableDeclaration", + "src": "29257:51:46", + "value": { + "arguments": [ + { + "name": "ptr_to_tail", + "nativeSrc": "29296:11:46", + "nodeType": "YulIdentifier", + "src": "29296:11:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "29283:12:46", + "nodeType": "YulIdentifier", + "src": "29283:12:46" + }, + "nativeSrc": "29283:25:46", + "nodeType": "YulFunctionCall", + "src": "29283:25:46" + }, + "variables": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "29261:18:46", + "nodeType": "YulTypedName", + "src": "29261:18:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "29397:16:46", + "nodeType": "YulBlock", + "src": "29397:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "29406:1:46", + "nodeType": "YulLiteral", + "src": "29406:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "29409:1:46", + "nodeType": "YulLiteral", + "src": "29409:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "29399:6:46", + "nodeType": "YulIdentifier", + "src": "29399:6:46" + }, + "nativeSrc": "29399:12:46", + "nodeType": "YulFunctionCall", + "src": "29399:12:46" + }, + "nativeSrc": "29399:12:46", + "nodeType": "YulExpressionStatement", + "src": "29399:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "rel_offset_of_tail", + "nativeSrc": "29331:18:46", + "nodeType": "YulIdentifier", + "src": "29331:18:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "29359:12:46", + "nodeType": "YulIdentifier", + "src": "29359:12:46" + }, + "nativeSrc": "29359:14:46", + "nodeType": "YulFunctionCall", + "src": "29359:14:46" + }, + { + "name": "base_ref", + "nativeSrc": "29375:8:46", + "nodeType": "YulIdentifier", + "src": "29375:8:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "29355:3:46", + "nodeType": "YulIdentifier", + "src": "29355:3:46" + }, + "nativeSrc": "29355:29:46", + "nodeType": "YulFunctionCall", + "src": "29355:29:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "29390:2:46", + "nodeType": "YulLiteral", + "src": "29390:2:46", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "29386:3:46", + "nodeType": "YulIdentifier", + "src": "29386:3:46" + }, + "nativeSrc": "29386:7:46", + "nodeType": "YulFunctionCall", + "src": "29386:7:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29351:3:46", + "nodeType": "YulIdentifier", + "src": "29351:3:46" + }, + "nativeSrc": "29351:43:46", + "nodeType": "YulFunctionCall", + "src": "29351:43:46" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "29327:3:46", + "nodeType": "YulIdentifier", + "src": "29327:3:46" + }, + "nativeSrc": "29327:68:46", + "nodeType": "YulFunctionCall", + "src": "29327:68:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "29320:6:46", + "nodeType": "YulIdentifier", + "src": "29320:6:46" + }, + "nativeSrc": "29320:76:46", + "nodeType": "YulFunctionCall", + "src": "29320:76:46" + }, + "nativeSrc": "29317:96:46", + "nodeType": "YulIf", + "src": "29317:96:46" + }, + { + "nativeSrc": "29422:47:46", + "nodeType": "YulVariableDeclaration", + "src": "29422:47:46", + "value": { + "arguments": [ + { + "name": "base_ref", + "nativeSrc": "29440:8:46", + "nodeType": "YulIdentifier", + "src": "29440:8:46" + }, + { + "name": "rel_offset_of_tail", + "nativeSrc": "29450:18:46", + "nodeType": "YulIdentifier", + "src": "29450:18:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29436:3:46", + "nodeType": "YulIdentifier", + "src": "29436:3:46" + }, + "nativeSrc": "29436:33:46", + "nodeType": "YulFunctionCall", + "src": "29436:33:46" + }, + "variables": [ + { + "name": "addr_1", + "nativeSrc": "29426:6:46", + "nodeType": "YulTypedName", + "src": "29426:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "29478:30:46", + "nodeType": "YulAssignment", + "src": "29478:30:46", + "value": { + "arguments": [ + { + "name": "addr_1", + "nativeSrc": "29501:6:46", + "nodeType": "YulIdentifier", + "src": "29501:6:46" + } + ], + "functionName": { + "name": "calldataload", + "nativeSrc": "29488:12:46", + "nodeType": "YulIdentifier", + "src": "29488:12:46" + }, + "nativeSrc": "29488:20:46", + "nodeType": "YulFunctionCall", + "src": "29488:20:46" + }, + "variableNames": [ + { + "name": "length", + "nativeSrc": "29478:6:46", + "nodeType": "YulIdentifier", + "src": "29478:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "29551:16:46", + "nodeType": "YulBlock", + "src": "29551:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "29560:1:46", + "nodeType": "YulLiteral", + "src": "29560:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "29563:1:46", + "nodeType": "YulLiteral", + "src": "29563:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "29553:6:46", + "nodeType": "YulIdentifier", + "src": "29553:6:46" + }, + "nativeSrc": "29553:12:46", + "nodeType": "YulFunctionCall", + "src": "29553:12:46" + }, + "nativeSrc": "29553:12:46", + "nodeType": "YulExpressionStatement", + "src": "29553:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nativeSrc": "29523:6:46", + "nodeType": "YulIdentifier", + "src": "29523:6:46" + }, + { + "kind": "number", + "nativeSrc": "29531:18:46", + "nodeType": "YulLiteral", + "src": "29531:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "29520:2:46", + "nodeType": "YulIdentifier", + "src": "29520:2:46" + }, + "nativeSrc": "29520:30:46", + "nodeType": "YulFunctionCall", + "src": "29520:30:46" + }, + "nativeSrc": "29517:50:46", + "nodeType": "YulIf", + "src": "29517:50:46" + }, + { + "nativeSrc": "29576:25:46", + "nodeType": "YulAssignment", + "src": "29576:25:46", + "value": { + "arguments": [ + { + "name": "addr_1", + "nativeSrc": "29588:6:46", + "nodeType": "YulIdentifier", + "src": "29588:6:46" + }, + { + "kind": "number", + "nativeSrc": "29596:4:46", + "nodeType": "YulLiteral", + "src": "29596:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29584:3:46", + "nodeType": "YulIdentifier", + "src": "29584:3:46" + }, + "nativeSrc": "29584:17:46", + "nodeType": "YulFunctionCall", + "src": "29584:17:46" + }, + "variableNames": [ + { + "name": "addr", + "nativeSrc": "29576:4:46", + "nodeType": "YulIdentifier", + "src": "29576:4:46" + } + ] + }, + { + "body": { + "nativeSrc": "29652:16:46", + "nodeType": "YulBlock", + "src": "29652:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "29661:1:46", + "nodeType": "YulLiteral", + "src": "29661:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "29664:1:46", + "nodeType": "YulLiteral", + "src": "29664:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "29654:6:46", + "nodeType": "YulIdentifier", + "src": "29654:6:46" + }, + "nativeSrc": "29654:12:46", + "nodeType": "YulFunctionCall", + "src": "29654:12:46" + }, + "nativeSrc": "29654:12:46", + "nodeType": "YulExpressionStatement", + "src": "29654:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "addr", + "nativeSrc": "29617:4:46", + "nodeType": "YulIdentifier", + "src": "29617:4:46" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nativeSrc": "29627:12:46", + "nodeType": "YulIdentifier", + "src": "29627:12:46" + }, + "nativeSrc": "29627:14:46", + "nodeType": "YulFunctionCall", + "src": "29627:14:46" + }, + { + "name": "length", + "nativeSrc": "29643:6:46", + "nodeType": "YulIdentifier", + "src": "29643:6:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "29623:3:46", + "nodeType": "YulIdentifier", + "src": "29623:3:46" + }, + "nativeSrc": "29623:27:46", + "nodeType": "YulFunctionCall", + "src": "29623:27:46" + } + ], + "functionName": { + "name": "sgt", + "nativeSrc": "29613:3:46", + "nodeType": "YulIdentifier", + "src": "29613:3:46" + }, + "nativeSrc": "29613:38:46", + "nodeType": "YulFunctionCall", + "src": "29613:38:46" + }, + "nativeSrc": "29610:58:46", + "nodeType": "YulIf", + "src": "29610:58:46" + } + ] + }, + "name": "access_calldata_tail_t_string_calldata_ptr", + "nativeSrc": "29152:522:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base_ref", + "nativeSrc": "29204:8:46", + "nodeType": "YulTypedName", + "src": "29204:8:46", + "type": "" + }, + { + "name": "ptr_to_tail", + "nativeSrc": "29214:11:46", + "nodeType": "YulTypedName", + "src": "29214:11:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "addr", + "nativeSrc": "29230:4:46", + "nodeType": "YulTypedName", + "src": "29230:4:46", + "type": "" + }, + { + "name": "length", + "nativeSrc": "29236:6:46", + "nodeType": "YulTypedName", + "src": "29236:6:46", + "type": "" + } + ], + "src": "29152:522:46" + }, + { + "body": { + "nativeSrc": "29828:124:46", + "nodeType": "YulBlock", + "src": "29828:124:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29851:3:46", + "nodeType": "YulIdentifier", + "src": "29851:3:46" + }, + { + "name": "value0", + "nativeSrc": "29856:6:46", + "nodeType": "YulIdentifier", + "src": "29856:6:46" + }, + { + "name": "value1", + "nativeSrc": "29864:6:46", + "nodeType": "YulIdentifier", + "src": "29864:6:46" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "29838:12:46", + "nodeType": "YulIdentifier", + "src": "29838:12:46" + }, + "nativeSrc": "29838:33:46", + "nodeType": "YulFunctionCall", + "src": "29838:33:46" + }, + "nativeSrc": "29838:33:46", + "nodeType": "YulExpressionStatement", + "src": "29838:33:46" + }, + { + "nativeSrc": "29880:26:46", + "nodeType": "YulVariableDeclaration", + "src": "29880:26:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "29894:3:46", + "nodeType": "YulIdentifier", + "src": "29894:3:46" + }, + { + "name": "value1", + "nativeSrc": "29899:6:46", + "nodeType": "YulIdentifier", + "src": "29899:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "29890:3:46", + "nodeType": "YulIdentifier", + "src": "29890:3:46" + }, + "nativeSrc": "29890:16:46", + "nodeType": "YulFunctionCall", + "src": "29890:16:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "29884:2:46", + "nodeType": "YulTypedName", + "src": "29884:2:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "29922:2:46", + "nodeType": "YulIdentifier", + "src": "29922:2:46" + }, + { + "kind": "number", + "nativeSrc": "29926:1:46", + "nodeType": "YulLiteral", + "src": "29926:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "29915:6:46", + "nodeType": "YulIdentifier", + "src": "29915:6:46" + }, + "nativeSrc": "29915:13:46", + "nodeType": "YulFunctionCall", + "src": "29915:13:46" + }, + "nativeSrc": "29915:13:46", + "nodeType": "YulExpressionStatement", + "src": "29915:13:46" + }, + { + "nativeSrc": "29937:9:46", + "nodeType": "YulAssignment", + "src": "29937:9:46", + "value": { + "name": "_1", + "nativeSrc": "29944:2:46", + "nodeType": "YulIdentifier", + "src": "29944:2:46" + }, + "variableNames": [ + { + "name": "end", + "nativeSrc": "29937:3:46", + "nodeType": "YulIdentifier", + "src": "29937:3:46" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nativeSrc": "29679:273:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nativeSrc": "29796:3:46", + "nodeType": "YulTypedName", + "src": "29796:3:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "29801:6:46", + "nodeType": "YulTypedName", + "src": "29801:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "29809:6:46", + "nodeType": "YulTypedName", + "src": "29809:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nativeSrc": "29820:3:46", + "nodeType": "YulTypedName", + "src": "29820:3:46", + "type": "" + } + ], + "src": "29679:273:46" + }, + { + "body": { + "nativeSrc": "30116:330:46", + "nodeType": "YulBlock", + "src": "30116:330:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30133:9:46", + "nodeType": "YulIdentifier", + "src": "30133:9:46" + }, + { + "kind": "number", + "nativeSrc": "30144:2:46", + "nodeType": "YulLiteral", + "src": "30144:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30126:6:46", + "nodeType": "YulIdentifier", + "src": "30126:6:46" + }, + "nativeSrc": "30126:21:46", + "nodeType": "YulFunctionCall", + "src": "30126:21:46" + }, + "nativeSrc": "30126:21:46", + "nodeType": "YulExpressionStatement", + "src": "30126:21:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30167:9:46", + "nodeType": "YulIdentifier", + "src": "30167:9:46" + }, + { + "kind": "number", + "nativeSrc": "30178:2:46", + "nodeType": "YulLiteral", + "src": "30178:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30163:3:46", + "nodeType": "YulIdentifier", + "src": "30163:3:46" + }, + "nativeSrc": "30163:18:46", + "nodeType": "YulFunctionCall", + "src": "30163:18:46" + }, + { + "name": "value1", + "nativeSrc": "30183:6:46", + "nodeType": "YulIdentifier", + "src": "30183:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30156:6:46", + "nodeType": "YulIdentifier", + "src": "30156:6:46" + }, + "nativeSrc": "30156:34:46", + "nodeType": "YulFunctionCall", + "src": "30156:34:46" + }, + "nativeSrc": "30156:34:46", + "nodeType": "YulExpressionStatement", + "src": "30156:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30216:9:46", + "nodeType": "YulIdentifier", + "src": "30216:9:46" + }, + { + "kind": "number", + "nativeSrc": "30227:2:46", + "nodeType": "YulLiteral", + "src": "30227:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30212:3:46", + "nodeType": "YulIdentifier", + "src": "30212:3:46" + }, + "nativeSrc": "30212:18:46", + "nodeType": "YulFunctionCall", + "src": "30212:18:46" + }, + { + "name": "value0", + "nativeSrc": "30232:6:46", + "nodeType": "YulIdentifier", + "src": "30232:6:46" + }, + { + "name": "value1", + "nativeSrc": "30240:6:46", + "nodeType": "YulIdentifier", + "src": "30240:6:46" + } + ], + "functionName": { + "name": "calldatacopy", + "nativeSrc": "30199:12:46", + "nodeType": "YulIdentifier", + "src": "30199:12:46" + }, + "nativeSrc": "30199:48:46", + "nodeType": "YulFunctionCall", + "src": "30199:48:46" + }, + "nativeSrc": "30199:48:46", + "nodeType": "YulExpressionStatement", + "src": "30199:48:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30271:9:46", + "nodeType": "YulIdentifier", + "src": "30271:9:46" + }, + { + "name": "value1", + "nativeSrc": "30282:6:46", + "nodeType": "YulIdentifier", + "src": "30282:6:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30267:3:46", + "nodeType": "YulIdentifier", + "src": "30267:3:46" + }, + "nativeSrc": "30267:22:46", + "nodeType": "YulFunctionCall", + "src": "30267:22:46" + }, + { + "kind": "number", + "nativeSrc": "30291:2:46", + "nodeType": "YulLiteral", + "src": "30291:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30263:3:46", + "nodeType": "YulIdentifier", + "src": "30263:3:46" + }, + "nativeSrc": "30263:31:46", + "nodeType": "YulFunctionCall", + "src": "30263:31:46" + }, + { + "kind": "number", + "nativeSrc": "30296:1:46", + "nodeType": "YulLiteral", + "src": "30296:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30256:6:46", + "nodeType": "YulIdentifier", + "src": "30256:6:46" + }, + "nativeSrc": "30256:42:46", + "nodeType": "YulFunctionCall", + "src": "30256:42:46" + }, + "nativeSrc": "30256:42:46", + "nodeType": "YulExpressionStatement", + "src": "30256:42:46" + }, + { + "nativeSrc": "30307:62:46", + "nodeType": "YulAssignment", + "src": "30307:62:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30323:9:46", + "nodeType": "YulIdentifier", + "src": "30323:9:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "30342:6:46", + "nodeType": "YulIdentifier", + "src": "30342:6:46" + }, + { + "kind": "number", + "nativeSrc": "30350:2:46", + "nodeType": "YulLiteral", + "src": "30350:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30338:3:46", + "nodeType": "YulIdentifier", + "src": "30338:3:46" + }, + "nativeSrc": "30338:15:46", + "nodeType": "YulFunctionCall", + "src": "30338:15:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30359:2:46", + "nodeType": "YulLiteral", + "src": "30359:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "30355:3:46", + "nodeType": "YulIdentifier", + "src": "30355:3:46" + }, + "nativeSrc": "30355:7:46", + "nodeType": "YulFunctionCall", + "src": "30355:7:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "30334:3:46", + "nodeType": "YulIdentifier", + "src": "30334:3:46" + }, + "nativeSrc": "30334:29:46", + "nodeType": "YulFunctionCall", + "src": "30334:29:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30319:3:46", + "nodeType": "YulIdentifier", + "src": "30319:3:46" + }, + "nativeSrc": "30319:45:46", + "nodeType": "YulFunctionCall", + "src": "30319:45:46" + }, + { + "kind": "number", + "nativeSrc": "30366:2:46", + "nodeType": "YulLiteral", + "src": "30366:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30315:3:46", + "nodeType": "YulIdentifier", + "src": "30315:3:46" + }, + "nativeSrc": "30315:54:46", + "nodeType": "YulFunctionCall", + "src": "30315:54:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "30307:4:46", + "nodeType": "YulIdentifier", + "src": "30307:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "30389:9:46", + "nodeType": "YulIdentifier", + "src": "30389:9:46" + }, + { + "kind": "number", + "nativeSrc": "30400:4:46", + "nodeType": "YulLiteral", + "src": "30400:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "30385:3:46", + "nodeType": "YulIdentifier", + "src": "30385:3:46" + }, + "nativeSrc": "30385:20:46", + "nodeType": "YulFunctionCall", + "src": "30385:20:46" + }, + { + "arguments": [ + { + "name": "value2", + "nativeSrc": "30411:6:46", + "nodeType": "YulIdentifier", + "src": "30411:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30427:3:46", + "nodeType": "YulLiteral", + "src": "30427:3:46", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "30432:1:46", + "nodeType": "YulLiteral", + "src": "30432:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "30423:3:46", + "nodeType": "YulIdentifier", + "src": "30423:3:46" + }, + "nativeSrc": "30423:11:46", + "nodeType": "YulFunctionCall", + "src": "30423:11:46" + }, + { + "kind": "number", + "nativeSrc": "30436:1:46", + "nodeType": "YulLiteral", + "src": "30436:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "30419:3:46", + "nodeType": "YulIdentifier", + "src": "30419:3:46" + }, + "nativeSrc": "30419:19:46", + "nodeType": "YulFunctionCall", + "src": "30419:19:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "30407:3:46", + "nodeType": "YulIdentifier", + "src": "30407:3:46" + }, + "nativeSrc": "30407:32:46", + "nodeType": "YulFunctionCall", + "src": "30407:32:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30378:6:46", + "nodeType": "YulIdentifier", + "src": "30378:6:46" + }, + "nativeSrc": "30378:62:46", + "nodeType": "YulFunctionCall", + "src": "30378:62:46" + }, + "nativeSrc": "30378:62:46", + "nodeType": "YulExpressionStatement", + "src": "30378:62:46" + } + ] + }, + "name": "abi_encode_tuple_t_string_calldata_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed", + "nativeSrc": "29957:489:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "30069:9:46", + "nodeType": "YulTypedName", + "src": "30069:9:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "30080:6:46", + "nodeType": "YulTypedName", + "src": "30080:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "30088:6:46", + "nodeType": "YulTypedName", + "src": "30088:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "30096:6:46", + "nodeType": "YulTypedName", + "src": "30096:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "30107:4:46", + "nodeType": "YulTypedName", + "src": "30107:4:46", + "type": "" + } + ], + "src": "29957:489:46" + }, + { + "body": { + "nativeSrc": "30483:95:46", + "nodeType": "YulBlock", + "src": "30483:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30500:1:46", + "nodeType": "YulLiteral", + "src": "30500:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30507:3:46", + "nodeType": "YulLiteral", + "src": "30507:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "30512:10:46", + "nodeType": "YulLiteral", + "src": "30512:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "30503:3:46", + "nodeType": "YulIdentifier", + "src": "30503:3:46" + }, + "nativeSrc": "30503:20:46", + "nodeType": "YulFunctionCall", + "src": "30503:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30493:6:46", + "nodeType": "YulIdentifier", + "src": "30493:6:46" + }, + "nativeSrc": "30493:31:46", + "nodeType": "YulFunctionCall", + "src": "30493:31:46" + }, + "nativeSrc": "30493:31:46", + "nodeType": "YulExpressionStatement", + "src": "30493:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30540:1:46", + "nodeType": "YulLiteral", + "src": "30540:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "30543:4:46", + "nodeType": "YulLiteral", + "src": "30543:4:46", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30533:6:46", + "nodeType": "YulIdentifier", + "src": "30533:6:46" + }, + "nativeSrc": "30533:15:46", + "nodeType": "YulFunctionCall", + "src": "30533:15:46" + }, + "nativeSrc": "30533:15:46", + "nodeType": "YulExpressionStatement", + "src": "30533:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30564:1:46", + "nodeType": "YulLiteral", + "src": "30564:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "30567:4:46", + "nodeType": "YulLiteral", + "src": "30567:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "30557:6:46", + "nodeType": "YulIdentifier", + "src": "30557:6:46" + }, + "nativeSrc": "30557:15:46", + "nodeType": "YulFunctionCall", + "src": "30557:15:46" + }, + "nativeSrc": "30557:15:46", + "nodeType": "YulExpressionStatement", + "src": "30557:15:46" + } + ] + }, + "name": "panic_error_0x11", + "nativeSrc": "30451:127:46", + "nodeType": "YulFunctionDefinition", + "src": "30451:127:46" + }, + { + "body": { + "nativeSrc": "30632:79:46", + "nodeType": "YulBlock", + "src": "30632:79:46", + "statements": [ + { + "nativeSrc": "30642:17:46", + "nodeType": "YulAssignment", + "src": "30642:17:46", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "30654:1:46", + "nodeType": "YulIdentifier", + "src": "30654:1:46" + }, + { + "name": "y", + "nativeSrc": "30657:1:46", + "nodeType": "YulIdentifier", + "src": "30657:1:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "30650:3:46", + "nodeType": "YulIdentifier", + "src": "30650:3:46" + }, + "nativeSrc": "30650:9:46", + "nodeType": "YulFunctionCall", + "src": "30650:9:46" + }, + "variableNames": [ + { + "name": "diff", + "nativeSrc": "30642:4:46", + "nodeType": "YulIdentifier", + "src": "30642:4:46" + } + ] + }, + { + "body": { + "nativeSrc": "30683:22:46", + "nodeType": "YulBlock", + "src": "30683:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "30685:16:46", + "nodeType": "YulIdentifier", + "src": "30685:16:46" + }, + "nativeSrc": "30685:18:46", + "nodeType": "YulFunctionCall", + "src": "30685:18:46" + }, + "nativeSrc": "30685:18:46", + "nodeType": "YulExpressionStatement", + "src": "30685:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nativeSrc": "30674:4:46", + "nodeType": "YulIdentifier", + "src": "30674:4:46" + }, + { + "name": "x", + "nativeSrc": "30680:1:46", + "nodeType": "YulIdentifier", + "src": "30680:1:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "30671:2:46", + "nodeType": "YulIdentifier", + "src": "30671:2:46" + }, + "nativeSrc": "30671:11:46", + "nodeType": "YulFunctionCall", + "src": "30671:11:46" + }, + "nativeSrc": "30668:37:46", + "nodeType": "YulIf", + "src": "30668:37:46" + } + ] + }, + "name": "checked_sub_t_uint256", + "nativeSrc": "30583:128:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "30614:1:46", + "nodeType": "YulTypedName", + "src": "30614:1:46", + "type": "" + }, + { + "name": "y", + "nativeSrc": "30617:1:46", + "nodeType": "YulTypedName", + "src": "30617:1:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nativeSrc": "30623:4:46", + "nodeType": "YulTypedName", + "src": "30623:4:46", + "type": "" + } + ], + "src": "30583:128:46" + }, + { + "body": { + "nativeSrc": "30748:95:46", + "nodeType": "YulBlock", + "src": "30748:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30765:1:46", + "nodeType": "YulLiteral", + "src": "30765:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30772:3:46", + "nodeType": "YulLiteral", + "src": "30772:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "30777:10:46", + "nodeType": "YulLiteral", + "src": "30777:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "30768:3:46", + "nodeType": "YulIdentifier", + "src": "30768:3:46" + }, + "nativeSrc": "30768:20:46", + "nodeType": "YulFunctionCall", + "src": "30768:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30758:6:46", + "nodeType": "YulIdentifier", + "src": "30758:6:46" + }, + "nativeSrc": "30758:31:46", + "nodeType": "YulFunctionCall", + "src": "30758:31:46" + }, + "nativeSrc": "30758:31:46", + "nodeType": "YulExpressionStatement", + "src": "30758:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30805:1:46", + "nodeType": "YulLiteral", + "src": "30805:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "30808:4:46", + "nodeType": "YulLiteral", + "src": "30808:4:46", + "type": "", + "value": "0x31" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30798:6:46", + "nodeType": "YulIdentifier", + "src": "30798:6:46" + }, + "nativeSrc": "30798:15:46", + "nodeType": "YulFunctionCall", + "src": "30798:15:46" + }, + "nativeSrc": "30798:15:46", + "nodeType": "YulExpressionStatement", + "src": "30798:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30829:1:46", + "nodeType": "YulLiteral", + "src": "30829:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "30832:4:46", + "nodeType": "YulLiteral", + "src": "30832:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "30822:6:46", + "nodeType": "YulIdentifier", + "src": "30822:6:46" + }, + "nativeSrc": "30822:15:46", + "nodeType": "YulFunctionCall", + "src": "30822:15:46" + }, + "nativeSrc": "30822:15:46", + "nodeType": "YulExpressionStatement", + "src": "30822:15:46" + } + ] + }, + "name": "panic_error_0x31", + "nativeSrc": "30716:127:46", + "nodeType": "YulFunctionDefinition", + "src": "30716:127:46" + }, + { + "body": { + "nativeSrc": "30904:65:46", + "nodeType": "YulBlock", + "src": "30904:65:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30921:1:46", + "nodeType": "YulLiteral", + "src": "30921:1:46", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nativeSrc": "30924:3:46", + "nodeType": "YulIdentifier", + "src": "30924:3:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "30914:6:46", + "nodeType": "YulIdentifier", + "src": "30914:6:46" + }, + "nativeSrc": "30914:14:46", + "nodeType": "YulFunctionCall", + "src": "30914:14:46" + }, + "nativeSrc": "30914:14:46", + "nodeType": "YulExpressionStatement", + "src": "30914:14:46" + }, + { + "nativeSrc": "30937:26:46", + "nodeType": "YulAssignment", + "src": "30937:26:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "30955:1:46", + "nodeType": "YulLiteral", + "src": "30955:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "30958:4:46", + "nodeType": "YulLiteral", + "src": "30958:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "30945:9:46", + "nodeType": "YulIdentifier", + "src": "30945:9:46" + }, + "nativeSrc": "30945:18:46", + "nodeType": "YulFunctionCall", + "src": "30945:18:46" + }, + "variableNames": [ + { + "name": "data", + "nativeSrc": "30937:4:46", + "nodeType": "YulIdentifier", + "src": "30937:4:46" + } + ] + } + ] + }, + "name": "array_dataslot_string_storage", + "nativeSrc": "30848:121:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nativeSrc": "30887:3:46", + "nodeType": "YulTypedName", + "src": "30887:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nativeSrc": "30895:4:46", + "nodeType": "YulTypedName", + "src": "30895:4:46", + "type": "" + } + ], + "src": "30848:121:46" + }, + { + "body": { + "nativeSrc": "31055:437:46", + "nodeType": "YulBlock", + "src": "31055:437:46", + "statements": [ + { + "body": { + "nativeSrc": "31088:398:46", + "nodeType": "YulBlock", + "src": "31088:398:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31109:1:46", + "nodeType": "YulLiteral", + "src": "31109:1:46", + "type": "", + "value": "0" + }, + { + "name": "array", + "nativeSrc": "31112:5:46", + "nodeType": "YulIdentifier", + "src": "31112:5:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "31102:6:46", + "nodeType": "YulIdentifier", + "src": "31102:6:46" + }, + "nativeSrc": "31102:16:46", + "nodeType": "YulFunctionCall", + "src": "31102:16:46" + }, + "nativeSrc": "31102:16:46", + "nodeType": "YulExpressionStatement", + "src": "31102:16:46" + }, + { + "nativeSrc": "31131:30:46", + "nodeType": "YulVariableDeclaration", + "src": "31131:30:46", + "value": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31153:1:46", + "nodeType": "YulLiteral", + "src": "31153:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "31156:4:46", + "nodeType": "YulLiteral", + "src": "31156:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nativeSrc": "31143:9:46", + "nodeType": "YulIdentifier", + "src": "31143:9:46" + }, + "nativeSrc": "31143:18:46", + "nodeType": "YulFunctionCall", + "src": "31143:18:46" + }, + "variables": [ + { + "name": "data", + "nativeSrc": "31135:4:46", + "nodeType": "YulTypedName", + "src": "31135:4:46", + "type": "" + } + ] + }, + { + "nativeSrc": "31174:57:46", + "nodeType": "YulVariableDeclaration", + "src": "31174:57:46", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "31197:4:46", + "nodeType": "YulIdentifier", + "src": "31197:4:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31207:1:46", + "nodeType": "YulLiteral", + "src": "31207:1:46", + "type": "", + "value": "5" + }, + { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "31214:10:46", + "nodeType": "YulIdentifier", + "src": "31214:10:46" + }, + { + "kind": "number", + "nativeSrc": "31226:2:46", + "nodeType": "YulLiteral", + "src": "31226:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31210:3:46", + "nodeType": "YulIdentifier", + "src": "31210:3:46" + }, + "nativeSrc": "31210:19:46", + "nodeType": "YulFunctionCall", + "src": "31210:19:46" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "31203:3:46", + "nodeType": "YulIdentifier", + "src": "31203:3:46" + }, + "nativeSrc": "31203:27:46", + "nodeType": "YulFunctionCall", + "src": "31203:27:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31193:3:46", + "nodeType": "YulIdentifier", + "src": "31193:3:46" + }, + "nativeSrc": "31193:38:46", + "nodeType": "YulFunctionCall", + "src": "31193:38:46" + }, + "variables": [ + { + "name": "deleteStart", + "nativeSrc": "31178:11:46", + "nodeType": "YulTypedName", + "src": "31178:11:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "31268:23:46", + "nodeType": "YulBlock", + "src": "31268:23:46", + "statements": [ + { + "nativeSrc": "31270:19:46", + "nodeType": "YulAssignment", + "src": "31270:19:46", + "value": { + "name": "data", + "nativeSrc": "31285:4:46", + "nodeType": "YulIdentifier", + "src": "31285:4:46" + }, + "variableNames": [ + { + "name": "deleteStart", + "nativeSrc": "31270:11:46", + "nodeType": "YulIdentifier", + "src": "31270:11:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nativeSrc": "31250:10:46", + "nodeType": "YulIdentifier", + "src": "31250:10:46" + }, + { + "kind": "number", + "nativeSrc": "31262:4:46", + "nodeType": "YulLiteral", + "src": "31262:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "31247:2:46", + "nodeType": "YulIdentifier", + "src": "31247:2:46" + }, + "nativeSrc": "31247:20:46", + "nodeType": "YulFunctionCall", + "src": "31247:20:46" + }, + "nativeSrc": "31244:47:46", + "nodeType": "YulIf", + "src": "31244:47:46" + }, + { + "nativeSrc": "31304:41:46", + "nodeType": "YulVariableDeclaration", + "src": "31304:41:46", + "value": { + "arguments": [ + { + "name": "data", + "nativeSrc": "31318:4:46", + "nodeType": "YulIdentifier", + "src": "31318:4:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31328:1:46", + "nodeType": "YulLiteral", + "src": "31328:1:46", + "type": "", + "value": "5" + }, + { + "arguments": [ + { + "name": "len", + "nativeSrc": "31335:3:46", + "nodeType": "YulIdentifier", + "src": "31335:3:46" + }, + { + "kind": "number", + "nativeSrc": "31340:2:46", + "nodeType": "YulLiteral", + "src": "31340:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31331:3:46", + "nodeType": "YulIdentifier", + "src": "31331:3:46" + }, + "nativeSrc": "31331:12:46", + "nodeType": "YulFunctionCall", + "src": "31331:12:46" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "31324:3:46", + "nodeType": "YulIdentifier", + "src": "31324:3:46" + }, + "nativeSrc": "31324:20:46", + "nodeType": "YulFunctionCall", + "src": "31324:20:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31314:3:46", + "nodeType": "YulIdentifier", + "src": "31314:3:46" + }, + "nativeSrc": "31314:31:46", + "nodeType": "YulFunctionCall", + "src": "31314:31:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "31308:2:46", + "nodeType": "YulTypedName", + "src": "31308:2:46", + "type": "" + } + ] + }, + { + "nativeSrc": "31358:24:46", + "nodeType": "YulVariableDeclaration", + "src": "31358:24:46", + "value": { + "name": "deleteStart", + "nativeSrc": "31371:11:46", + "nodeType": "YulIdentifier", + "src": "31371:11:46" + }, + "variables": [ + { + "name": "start", + "nativeSrc": "31362:5:46", + "nodeType": "YulTypedName", + "src": "31362:5:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "31456:20:46", + "nodeType": "YulBlock", + "src": "31456:20:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nativeSrc": "31465:5:46", + "nodeType": "YulIdentifier", + "src": "31465:5:46" + }, + { + "kind": "number", + "nativeSrc": "31472:1:46", + "nodeType": "YulLiteral", + "src": "31472:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "31458:6:46", + "nodeType": "YulIdentifier", + "src": "31458:6:46" + }, + "nativeSrc": "31458:16:46", + "nodeType": "YulFunctionCall", + "src": "31458:16:46" + }, + "nativeSrc": "31458:16:46", + "nodeType": "YulExpressionStatement", + "src": "31458:16:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nativeSrc": "31406:5:46", + "nodeType": "YulIdentifier", + "src": "31406:5:46" + }, + { + "name": "_1", + "nativeSrc": "31413:2:46", + "nodeType": "YulIdentifier", + "src": "31413:2:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "31403:2:46", + "nodeType": "YulIdentifier", + "src": "31403:2:46" + }, + "nativeSrc": "31403:13:46", + "nodeType": "YulFunctionCall", + "src": "31403:13:46" + }, + "nativeSrc": "31395:81:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "31417:26:46", + "nodeType": "YulBlock", + "src": "31417:26:46", + "statements": [ + { + "nativeSrc": "31419:22:46", + "nodeType": "YulAssignment", + "src": "31419:22:46", + "value": { + "arguments": [ + { + "name": "start", + "nativeSrc": "31432:5:46", + "nodeType": "YulIdentifier", + "src": "31432:5:46" + }, + { + "kind": "number", + "nativeSrc": "31439:1:46", + "nodeType": "YulLiteral", + "src": "31439:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "31428:3:46", + "nodeType": "YulIdentifier", + "src": "31428:3:46" + }, + "nativeSrc": "31428:13:46", + "nodeType": "YulFunctionCall", + "src": "31428:13:46" + }, + "variableNames": [ + { + "name": "start", + "nativeSrc": "31419:5:46", + "nodeType": "YulIdentifier", + "src": "31419:5:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "31399:3:46", + "nodeType": "YulBlock", + "src": "31399:3:46", + "statements": [] + }, + "src": "31395:81:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nativeSrc": "31071:3:46", + "nodeType": "YulIdentifier", + "src": "31071:3:46" + }, + { + "kind": "number", + "nativeSrc": "31076:2:46", + "nodeType": "YulLiteral", + "src": "31076:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "31068:2:46", + "nodeType": "YulIdentifier", + "src": "31068:2:46" + }, + "nativeSrc": "31068:11:46", + "nodeType": "YulFunctionCall", + "src": "31068:11:46" + }, + "nativeSrc": "31065:421:46", + "nodeType": "YulIf", + "src": "31065:421:46" + } + ] + }, + "name": "clean_up_bytearray_end_slots_string_storage", + "nativeSrc": "30974:518:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nativeSrc": "31027:5:46", + "nodeType": "YulTypedName", + "src": "31027:5:46", + "type": "" + }, + { + "name": "len", + "nativeSrc": "31034:3:46", + "nodeType": "YulTypedName", + "src": "31034:3:46", + "type": "" + }, + { + "name": "startIndex", + "nativeSrc": "31039:10:46", + "nodeType": "YulTypedName", + "src": "31039:10:46", + "type": "" + } + ], + "src": "30974:518:46" + }, + { + "body": { + "nativeSrc": "31582:81:46", + "nodeType": "YulBlock", + "src": "31582:81:46", + "statements": [ + { + "nativeSrc": "31592:65:46", + "nodeType": "YulAssignment", + "src": "31592:65:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "data", + "nativeSrc": "31607:4:46", + "nodeType": "YulIdentifier", + "src": "31607:4:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31625:1:46", + "nodeType": "YulLiteral", + "src": "31625:1:46", + "type": "", + "value": "3" + }, + { + "name": "len", + "nativeSrc": "31628:3:46", + "nodeType": "YulIdentifier", + "src": "31628:3:46" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "31621:3:46", + "nodeType": "YulIdentifier", + "src": "31621:3:46" + }, + "nativeSrc": "31621:11:46", + "nodeType": "YulFunctionCall", + "src": "31621:11:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31638:1:46", + "nodeType": "YulLiteral", + "src": "31638:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "31634:3:46", + "nodeType": "YulIdentifier", + "src": "31634:3:46" + }, + "nativeSrc": "31634:6:46", + "nodeType": "YulFunctionCall", + "src": "31634:6:46" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "31617:3:46", + "nodeType": "YulIdentifier", + "src": "31617:3:46" + }, + "nativeSrc": "31617:24:46", + "nodeType": "YulFunctionCall", + "src": "31617:24:46" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "31613:3:46", + "nodeType": "YulIdentifier", + "src": "31613:3:46" + }, + "nativeSrc": "31613:29:46", + "nodeType": "YulFunctionCall", + "src": "31613:29:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "31603:3:46", + "nodeType": "YulIdentifier", + "src": "31603:3:46" + }, + "nativeSrc": "31603:40:46", + "nodeType": "YulFunctionCall", + "src": "31603:40:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "31649:1:46", + "nodeType": "YulLiteral", + "src": "31649:1:46", + "type": "", + "value": "1" + }, + { + "name": "len", + "nativeSrc": "31652:3:46", + "nodeType": "YulIdentifier", + "src": "31652:3:46" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "31645:3:46", + "nodeType": "YulIdentifier", + "src": "31645:3:46" + }, + "nativeSrc": "31645:11:46", + "nodeType": "YulFunctionCall", + "src": "31645:11:46" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "31600:2:46", + "nodeType": "YulIdentifier", + "src": "31600:2:46" + }, + "nativeSrc": "31600:57:46", + "nodeType": "YulFunctionCall", + "src": "31600:57:46" + }, + "variableNames": [ + { + "name": "used", + "nativeSrc": "31592:4:46", + "nodeType": "YulIdentifier", + "src": "31592:4:46" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "31497:166:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nativeSrc": "31559:4:46", + "nodeType": "YulTypedName", + "src": "31559:4:46", + "type": "" + }, + { + "name": "len", + "nativeSrc": "31565:3:46", + "nodeType": "YulTypedName", + "src": "31565:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nativeSrc": "31573:4:46", + "nodeType": "YulTypedName", + "src": "31573:4:46", + "type": "" + } + ], + "src": "31497:166:46" + }, + { + "body": { + "nativeSrc": "31764:1203:46", + "nodeType": "YulBlock", + "src": "31764:1203:46", + "statements": [ + { + "nativeSrc": "31774:24:46", + "nodeType": "YulVariableDeclaration", + "src": "31774:24:46", + "value": { + "arguments": [ + { + "name": "src", + "nativeSrc": "31794:3:46", + "nodeType": "YulIdentifier", + "src": "31794:3:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "31788:5:46", + "nodeType": "YulIdentifier", + "src": "31788:5:46" + }, + "nativeSrc": "31788:10:46", + "nodeType": "YulFunctionCall", + "src": "31788:10:46" + }, + "variables": [ + { + "name": "newLen", + "nativeSrc": "31778:6:46", + "nodeType": "YulTypedName", + "src": "31778:6:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "31841:22:46", + "nodeType": "YulBlock", + "src": "31841:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nativeSrc": "31843:16:46", + "nodeType": "YulIdentifier", + "src": "31843:16:46" + }, + "nativeSrc": "31843:18:46", + "nodeType": "YulFunctionCall", + "src": "31843:18:46" + }, + "nativeSrc": "31843:18:46", + "nodeType": "YulExpressionStatement", + "src": "31843:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "31813:6:46", + "nodeType": "YulIdentifier", + "src": "31813:6:46" + }, + { + "kind": "number", + "nativeSrc": "31821:18:46", + "nodeType": "YulLiteral", + "src": "31821:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "31810:2:46", + "nodeType": "YulIdentifier", + "src": "31810:2:46" + }, + "nativeSrc": "31810:30:46", + "nodeType": "YulFunctionCall", + "src": "31810:30:46" + }, + "nativeSrc": "31807:56:46", + "nodeType": "YulIf", + "src": "31807:56:46" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "31916:4:46", + "nodeType": "YulIdentifier", + "src": "31916:4:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nativeSrc": "31954:4:46", + "nodeType": "YulIdentifier", + "src": "31954:4:46" + } + ], + "functionName": { + "name": "sload", + "nativeSrc": "31948:5:46", + "nodeType": "YulIdentifier", + "src": "31948:5:46" + }, + "nativeSrc": "31948:11:46", + "nodeType": "YulFunctionCall", + "src": "31948:11:46" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nativeSrc": "31922:25:46", + "nodeType": "YulIdentifier", + "src": "31922:25:46" + }, + "nativeSrc": "31922:38:46", + "nodeType": "YulFunctionCall", + "src": "31922:38:46" + }, + { + "name": "newLen", + "nativeSrc": "31962:6:46", + "nodeType": "YulIdentifier", + "src": "31962:6:46" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_string_storage", + "nativeSrc": "31872:43:46", + "nodeType": "YulIdentifier", + "src": "31872:43:46" + }, + "nativeSrc": "31872:97:46", + "nodeType": "YulFunctionCall", + "src": "31872:97:46" + }, + "nativeSrc": "31872:97:46", + "nodeType": "YulExpressionStatement", + "src": "31872:97:46" + }, + { + "nativeSrc": "31978:18:46", + "nodeType": "YulVariableDeclaration", + "src": "31978:18:46", + "value": { + "kind": "number", + "nativeSrc": "31995:1:46", + "nodeType": "YulLiteral", + "src": "31995:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nativeSrc": "31982:9:46", + "nodeType": "YulTypedName", + "src": "31982:9:46", + "type": "" + } + ] + }, + { + "nativeSrc": "32005:17:46", + "nodeType": "YulAssignment", + "src": "32005:17:46", + "value": { + "kind": "number", + "nativeSrc": "32018:4:46", + "nodeType": "YulLiteral", + "src": "32018:4:46", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "32005:9:46", + "nodeType": "YulIdentifier", + "src": "32005:9:46" + } + ] + }, + { + "cases": [ + { + "body": { + "nativeSrc": "32068:642:46", + "nodeType": "YulBlock", + "src": "32068:642:46", + "statements": [ + { + "nativeSrc": "32082:35:46", + "nodeType": "YulVariableDeclaration", + "src": "32082:35:46", + "value": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "32101:6:46", + "nodeType": "YulIdentifier", + "src": "32101:6:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "32113:2:46", + "nodeType": "YulLiteral", + "src": "32113:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "32109:3:46", + "nodeType": "YulIdentifier", + "src": "32109:3:46" + }, + "nativeSrc": "32109:7:46", + "nodeType": "YulFunctionCall", + "src": "32109:7:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "32097:3:46", + "nodeType": "YulIdentifier", + "src": "32097:3:46" + }, + "nativeSrc": "32097:20:46", + "nodeType": "YulFunctionCall", + "src": "32097:20:46" + }, + "variables": [ + { + "name": "loopEnd", + "nativeSrc": "32086:7:46", + "nodeType": "YulTypedName", + "src": "32086:7:46", + "type": "" + } + ] + }, + { + "nativeSrc": "32130:49:46", + "nodeType": "YulVariableDeclaration", + "src": "32130:49:46", + "value": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "32174:4:46", + "nodeType": "YulIdentifier", + "src": "32174:4:46" + } + ], + "functionName": { + "name": "array_dataslot_string_storage", + "nativeSrc": "32144:29:46", + "nodeType": "YulIdentifier", + "src": "32144:29:46" + }, + "nativeSrc": "32144:35:46", + "nodeType": "YulFunctionCall", + "src": "32144:35:46" + }, + "variables": [ + { + "name": "dstPtr", + "nativeSrc": "32134:6:46", + "nodeType": "YulTypedName", + "src": "32134:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "32192:10:46", + "nodeType": "YulVariableDeclaration", + "src": "32192:10:46", + "value": { + "kind": "number", + "nativeSrc": "32201:1:46", + "nodeType": "YulLiteral", + "src": "32201:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "32196:1:46", + "nodeType": "YulTypedName", + "src": "32196:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "32272:165:46", + "nodeType": "YulBlock", + "src": "32272:165:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "32297:6:46", + "nodeType": "YulIdentifier", + "src": "32297:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "32315:3:46", + "nodeType": "YulIdentifier", + "src": "32315:3:46" + }, + { + "name": "srcOffset", + "nativeSrc": "32320:9:46", + "nodeType": "YulIdentifier", + "src": "32320:9:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32311:3:46", + "nodeType": "YulIdentifier", + "src": "32311:3:46" + }, + "nativeSrc": "32311:19:46", + "nodeType": "YulFunctionCall", + "src": "32311:19:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "32305:5:46", + "nodeType": "YulIdentifier", + "src": "32305:5:46" + }, + "nativeSrc": "32305:26:46", + "nodeType": "YulFunctionCall", + "src": "32305:26:46" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "32290:6:46", + "nodeType": "YulIdentifier", + "src": "32290:6:46" + }, + "nativeSrc": "32290:42:46", + "nodeType": "YulFunctionCall", + "src": "32290:42:46" + }, + "nativeSrc": "32290:42:46", + "nodeType": "YulExpressionStatement", + "src": "32290:42:46" + }, + { + "nativeSrc": "32349:24:46", + "nodeType": "YulAssignment", + "src": "32349:24:46", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "32363:6:46", + "nodeType": "YulIdentifier", + "src": "32363:6:46" + }, + { + "kind": "number", + "nativeSrc": "32371:1:46", + "nodeType": "YulLiteral", + "src": "32371:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32359:3:46", + "nodeType": "YulIdentifier", + "src": "32359:3:46" + }, + "nativeSrc": "32359:14:46", + "nodeType": "YulFunctionCall", + "src": "32359:14:46" + }, + "variableNames": [ + { + "name": "dstPtr", + "nativeSrc": "32349:6:46", + "nodeType": "YulIdentifier", + "src": "32349:6:46" + } + ] + }, + { + "nativeSrc": "32390:33:46", + "nodeType": "YulAssignment", + "src": "32390:33:46", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nativeSrc": "32407:9:46", + "nodeType": "YulIdentifier", + "src": "32407:9:46" + }, + { + "kind": "number", + "nativeSrc": "32418:4:46", + "nodeType": "YulLiteral", + "src": "32418:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32403:3:46", + "nodeType": "YulIdentifier", + "src": "32403:3:46" + }, + "nativeSrc": "32403:20:46", + "nodeType": "YulFunctionCall", + "src": "32403:20:46" + }, + "variableNames": [ + { + "name": "srcOffset", + "nativeSrc": "32390:9:46", + "nodeType": "YulIdentifier", + "src": "32390:9:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "32226:1:46", + "nodeType": "YulIdentifier", + "src": "32226:1:46" + }, + { + "name": "loopEnd", + "nativeSrc": "32229:7:46", + "nodeType": "YulIdentifier", + "src": "32229:7:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "32223:2:46", + "nodeType": "YulIdentifier", + "src": "32223:2:46" + }, + "nativeSrc": "32223:14:46", + "nodeType": "YulFunctionCall", + "src": "32223:14:46" + }, + "nativeSrc": "32215:222:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "32238:21:46", + "nodeType": "YulBlock", + "src": "32238:21:46", + "statements": [ + { + "nativeSrc": "32240:17:46", + "nodeType": "YulAssignment", + "src": "32240:17:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "32249:1:46", + "nodeType": "YulIdentifier", + "src": "32249:1:46" + }, + { + "kind": "number", + "nativeSrc": "32252:4:46", + "nodeType": "YulLiteral", + "src": "32252:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32245:3:46", + "nodeType": "YulIdentifier", + "src": "32245:3:46" + }, + "nativeSrc": "32245:12:46", + "nodeType": "YulFunctionCall", + "src": "32245:12:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "32240:1:46", + "nodeType": "YulIdentifier", + "src": "32240:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "32219:3:46", + "nodeType": "YulBlock", + "src": "32219:3:46", + "statements": [] + }, + "src": "32215:222:46" + }, + { + "body": { + "nativeSrc": "32485:166:46", + "nodeType": "YulBlock", + "src": "32485:166:46", + "statements": [ + { + "nativeSrc": "32503:43:46", + "nodeType": "YulVariableDeclaration", + "src": "32503:43:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "32530:3:46", + "nodeType": "YulIdentifier", + "src": "32530:3:46" + }, + { + "name": "srcOffset", + "nativeSrc": "32535:9:46", + "nodeType": "YulIdentifier", + "src": "32535:9:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32526:3:46", + "nodeType": "YulIdentifier", + "src": "32526:3:46" + }, + "nativeSrc": "32526:19:46", + "nodeType": "YulFunctionCall", + "src": "32526:19:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "32520:5:46", + "nodeType": "YulIdentifier", + "src": "32520:5:46" + }, + "nativeSrc": "32520:26:46", + "nodeType": "YulFunctionCall", + "src": "32520:26:46" + }, + "variables": [ + { + "name": "lastValue", + "nativeSrc": "32507:9:46", + "nodeType": "YulTypedName", + "src": "32507:9:46", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nativeSrc": "32570:6:46", + "nodeType": "YulIdentifier", + "src": "32570:6:46" + }, + { + "arguments": [ + { + "name": "lastValue", + "nativeSrc": "32582:9:46", + "nodeType": "YulIdentifier", + "src": "32582:9:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "32609:1:46", + "nodeType": "YulLiteral", + "src": "32609:1:46", + "type": "", + "value": "3" + }, + { + "name": "newLen", + "nativeSrc": "32612:6:46", + "nodeType": "YulIdentifier", + "src": "32612:6:46" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "32605:3:46", + "nodeType": "YulIdentifier", + "src": "32605:3:46" + }, + "nativeSrc": "32605:14:46", + "nodeType": "YulFunctionCall", + "src": "32605:14:46" + }, + { + "kind": "number", + "nativeSrc": "32621:3:46", + "nodeType": "YulLiteral", + "src": "32621:3:46", + "type": "", + "value": "248" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "32601:3:46", + "nodeType": "YulIdentifier", + "src": "32601:3:46" + }, + "nativeSrc": "32601:24:46", + "nodeType": "YulFunctionCall", + "src": "32601:24:46" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "32631:1:46", + "nodeType": "YulLiteral", + "src": "32631:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "32627:3:46", + "nodeType": "YulIdentifier", + "src": "32627:3:46" + }, + "nativeSrc": "32627:6:46", + "nodeType": "YulFunctionCall", + "src": "32627:6:46" + } + ], + "functionName": { + "name": "shr", + "nativeSrc": "32597:3:46", + "nodeType": "YulIdentifier", + "src": "32597:3:46" + }, + "nativeSrc": "32597:37:46", + "nodeType": "YulFunctionCall", + "src": "32597:37:46" + } + ], + "functionName": { + "name": "not", + "nativeSrc": "32593:3:46", + "nodeType": "YulIdentifier", + "src": "32593:3:46" + }, + "nativeSrc": "32593:42:46", + "nodeType": "YulFunctionCall", + "src": "32593:42:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "32578:3:46", + "nodeType": "YulIdentifier", + "src": "32578:3:46" + }, + "nativeSrc": "32578:58:46", + "nodeType": "YulFunctionCall", + "src": "32578:58:46" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "32563:6:46", + "nodeType": "YulIdentifier", + "src": "32563:6:46" + }, + "nativeSrc": "32563:74:46", + "nodeType": "YulFunctionCall", + "src": "32563:74:46" + }, + "nativeSrc": "32563:74:46", + "nodeType": "YulExpressionStatement", + "src": "32563:74:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nativeSrc": "32456:7:46", + "nodeType": "YulIdentifier", + "src": "32456:7:46" + }, + { + "name": "newLen", + "nativeSrc": "32465:6:46", + "nodeType": "YulIdentifier", + "src": "32465:6:46" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "32453:2:46", + "nodeType": "YulIdentifier", + "src": "32453:2:46" + }, + "nativeSrc": "32453:19:46", + "nodeType": "YulFunctionCall", + "src": "32453:19:46" + }, + "nativeSrc": "32450:201:46", + "nodeType": "YulIf", + "src": "32450:201:46" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "32671:4:46", + "nodeType": "YulIdentifier", + "src": "32671:4:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "32685:1:46", + "nodeType": "YulLiteral", + "src": "32685:1:46", + "type": "", + "value": "1" + }, + { + "name": "newLen", + "nativeSrc": "32688:6:46", + "nodeType": "YulIdentifier", + "src": "32688:6:46" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "32681:3:46", + "nodeType": "YulIdentifier", + "src": "32681:3:46" + }, + "nativeSrc": "32681:14:46", + "nodeType": "YulFunctionCall", + "src": "32681:14:46" + }, + { + "kind": "number", + "nativeSrc": "32697:1:46", + "nodeType": "YulLiteral", + "src": "32697:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32677:3:46", + "nodeType": "YulIdentifier", + "src": "32677:3:46" + }, + "nativeSrc": "32677:22:46", + "nodeType": "YulFunctionCall", + "src": "32677:22:46" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "32664:6:46", + "nodeType": "YulIdentifier", + "src": "32664:6:46" + }, + "nativeSrc": "32664:36:46", + "nodeType": "YulFunctionCall", + "src": "32664:36:46" + }, + "nativeSrc": "32664:36:46", + "nodeType": "YulExpressionStatement", + "src": "32664:36:46" + } + ] + }, + "nativeSrc": "32061:649:46", + "nodeType": "YulCase", + "src": "32061:649:46", + "value": { + "kind": "number", + "nativeSrc": "32066:1:46", + "nodeType": "YulLiteral", + "src": "32066:1:46", + "type": "", + "value": "1" + } + }, + { + "body": { + "nativeSrc": "32727:234:46", + "nodeType": "YulBlock", + "src": "32727:234:46", + "statements": [ + { + "nativeSrc": "32741:14:46", + "nodeType": "YulVariableDeclaration", + "src": "32741:14:46", + "value": { + "kind": "number", + "nativeSrc": "32754:1:46", + "nodeType": "YulLiteral", + "src": "32754:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nativeSrc": "32745:5:46", + "nodeType": "YulTypedName", + "src": "32745:5:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "32790:67:46", + "nodeType": "YulBlock", + "src": "32790:67:46", + "statements": [ + { + "nativeSrc": "32808:35:46", + "nodeType": "YulAssignment", + "src": "32808:35:46", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nativeSrc": "32827:3:46", + "nodeType": "YulIdentifier", + "src": "32827:3:46" + }, + { + "name": "srcOffset", + "nativeSrc": "32832:9:46", + "nodeType": "YulIdentifier", + "src": "32832:9:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "32823:3:46", + "nodeType": "YulIdentifier", + "src": "32823:3:46" + }, + "nativeSrc": "32823:19:46", + "nodeType": "YulFunctionCall", + "src": "32823:19:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "32817:5:46", + "nodeType": "YulIdentifier", + "src": "32817:5:46" + }, + "nativeSrc": "32817:26:46", + "nodeType": "YulFunctionCall", + "src": "32817:26:46" + }, + "variableNames": [ + { + "name": "value", + "nativeSrc": "32808:5:46", + "nodeType": "YulIdentifier", + "src": "32808:5:46" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nativeSrc": "32771:6:46", + "nodeType": "YulIdentifier", + "src": "32771:6:46" + }, + "nativeSrc": "32768:89:46", + "nodeType": "YulIf", + "src": "32768:89:46" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nativeSrc": "32877:4:46", + "nodeType": "YulIdentifier", + "src": "32877:4:46" + }, + { + "arguments": [ + { + "name": "value", + "nativeSrc": "32936:5:46", + "nodeType": "YulIdentifier", + "src": "32936:5:46" + }, + { + "name": "newLen", + "nativeSrc": "32943:6:46", + "nodeType": "YulIdentifier", + "src": "32943:6:46" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nativeSrc": "32883:52:46", + "nodeType": "YulIdentifier", + "src": "32883:52:46" + }, + "nativeSrc": "32883:67:46", + "nodeType": "YulFunctionCall", + "src": "32883:67:46" + } + ], + "functionName": { + "name": "sstore", + "nativeSrc": "32870:6:46", + "nodeType": "YulIdentifier", + "src": "32870:6:46" + }, + "nativeSrc": "32870:81:46", + "nodeType": "YulFunctionCall", + "src": "32870:81:46" + }, + "nativeSrc": "32870:81:46", + "nodeType": "YulExpressionStatement", + "src": "32870:81:46" + } + ] + }, + "nativeSrc": "32719:242:46", + "nodeType": "YulCase", + "src": "32719:242:46", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nativeSrc": "32041:6:46", + "nodeType": "YulIdentifier", + "src": "32041:6:46" + }, + { + "kind": "number", + "nativeSrc": "32049:2:46", + "nodeType": "YulLiteral", + "src": "32049:2:46", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "32038:2:46", + "nodeType": "YulIdentifier", + "src": "32038:2:46" + }, + "nativeSrc": "32038:14:46", + "nodeType": "YulFunctionCall", + "src": "32038:14:46" + }, + "nativeSrc": "32031:930:46", + "nodeType": "YulSwitch", + "src": "32031:930:46" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nativeSrc": "31668:1299:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nativeSrc": "31749:4:46", + "nodeType": "YulTypedName", + "src": "31749:4:46", + "type": "" + }, + { + "name": "src", + "nativeSrc": "31755:3:46", + "nodeType": "YulTypedName", + "src": "31755:3:46", + "type": "" + } + ], + "src": "31668:1299:46" + }, + { + "body": { + "nativeSrc": "33022:253:46", + "nodeType": "YulBlock", + "src": "33022:253:46", + "statements": [ + { + "nativeSrc": "33032:10:46", + "nodeType": "YulAssignment", + "src": "33032:10:46", + "value": { + "name": "pos", + "nativeSrc": "33039:3:46", + "nodeType": "YulIdentifier", + "src": "33039:3:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "33032:3:46", + "nodeType": "YulIdentifier", + "src": "33032:3:46" + } + ] + }, + { + "nativeSrc": "33051:19:46", + "nodeType": "YulVariableDeclaration", + "src": "33051:19:46", + "value": { + "name": "value", + "nativeSrc": "33065:5:46", + "nodeType": "YulIdentifier", + "src": "33065:5:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "33055:6:46", + "nodeType": "YulTypedName", + "src": "33055:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "33079:10:46", + "nodeType": "YulVariableDeclaration", + "src": "33079:10:46", + "value": { + "kind": "number", + "nativeSrc": "33088:1:46", + "nodeType": "YulLiteral", + "src": "33088:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "33083:1:46", + "nodeType": "YulTypedName", + "src": "33083:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "33145:124:46", + "nodeType": "YulBlock", + "src": "33145:124:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "33166:3:46", + "nodeType": "YulIdentifier", + "src": "33166:3:46" + }, + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "33177:6:46", + "nodeType": "YulIdentifier", + "src": "33177:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "33171:5:46", + "nodeType": "YulIdentifier", + "src": "33171:5:46" + }, + "nativeSrc": "33171:13:46", + "nodeType": "YulFunctionCall", + "src": "33171:13:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "33159:6:46", + "nodeType": "YulIdentifier", + "src": "33159:6:46" + }, + "nativeSrc": "33159:26:46", + "nodeType": "YulFunctionCall", + "src": "33159:26:46" + }, + "nativeSrc": "33159:26:46", + "nodeType": "YulExpressionStatement", + "src": "33159:26:46" + }, + { + "nativeSrc": "33198:21:46", + "nodeType": "YulAssignment", + "src": "33198:21:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "33209:3:46", + "nodeType": "YulIdentifier", + "src": "33209:3:46" + }, + { + "kind": "number", + "nativeSrc": "33214:4:46", + "nodeType": "YulLiteral", + "src": "33214:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33205:3:46", + "nodeType": "YulIdentifier", + "src": "33205:3:46" + }, + "nativeSrc": "33205:14:46", + "nodeType": "YulFunctionCall", + "src": "33205:14:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "33198:3:46", + "nodeType": "YulIdentifier", + "src": "33198:3:46" + } + ] + }, + { + "nativeSrc": "33232:27:46", + "nodeType": "YulAssignment", + "src": "33232:27:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "33246:6:46", + "nodeType": "YulIdentifier", + "src": "33246:6:46" + }, + { + "kind": "number", + "nativeSrc": "33254:4:46", + "nodeType": "YulLiteral", + "src": "33254:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33242:3:46", + "nodeType": "YulIdentifier", + "src": "33242:3:46" + }, + "nativeSrc": "33242:17:46", + "nodeType": "YulFunctionCall", + "src": "33242:17:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "33232:6:46", + "nodeType": "YulIdentifier", + "src": "33232:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "33109:1:46", + "nodeType": "YulIdentifier", + "src": "33109:1:46" + }, + { + "kind": "number", + "nativeSrc": "33112:4:46", + "nodeType": "YulLiteral", + "src": "33112:4:46", + "type": "", + "value": "0x02" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "33106:2:46", + "nodeType": "YulIdentifier", + "src": "33106:2:46" + }, + "nativeSrc": "33106:11:46", + "nodeType": "YulFunctionCall", + "src": "33106:11:46" + }, + "nativeSrc": "33098:171:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "33118:18:46", + "nodeType": "YulBlock", + "src": "33118:18:46", + "statements": [ + { + "nativeSrc": "33120:14:46", + "nodeType": "YulAssignment", + "src": "33120:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "33129:1:46", + "nodeType": "YulIdentifier", + "src": "33129:1:46" + }, + { + "kind": "number", + "nativeSrc": "33132:1:46", + "nodeType": "YulLiteral", + "src": "33132:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33125:3:46", + "nodeType": "YulIdentifier", + "src": "33125:3:46" + }, + "nativeSrc": "33125:9:46", + "nodeType": "YulFunctionCall", + "src": "33125:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "33120:1:46", + "nodeType": "YulIdentifier", + "src": "33120:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "33102:3:46", + "nodeType": "YulBlock", + "src": "33102:3:46", + "statements": [] + }, + "src": "33098:171:46" + } + ] + }, + "name": "abi_encode_array_uint256", + "nativeSrc": "32972:303:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nativeSrc": "33006:5:46", + "nodeType": "YulTypedName", + "src": "33006:5:46", + "type": "" + }, + { + "name": "pos", + "nativeSrc": "33013:3:46", + "nodeType": "YulTypedName", + "src": "33013:3:46", + "type": "" + } + ], + "src": "32972:303:46" + }, + { + "body": { + "nativeSrc": "33695:772:46", + "nodeType": "YulBlock", + "src": "33695:772:46", + "statements": [ + { + "nativeSrc": "33705:27:46", + "nodeType": "YulAssignment", + "src": "33705:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "33717:9:46", + "nodeType": "YulIdentifier", + "src": "33717:9:46" + }, + { + "kind": "number", + "nativeSrc": "33728:3:46", + "nodeType": "YulLiteral", + "src": "33728:3:46", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33713:3:46", + "nodeType": "YulIdentifier", + "src": "33713:3:46" + }, + "nativeSrc": "33713:19:46", + "nodeType": "YulFunctionCall", + "src": "33713:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "33705:4:46", + "nodeType": "YulIdentifier", + "src": "33705:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nativeSrc": "33766:6:46", + "nodeType": "YulIdentifier", + "src": "33766:6:46" + }, + { + "name": "headStart", + "nativeSrc": "33774:9:46", + "nodeType": "YulIdentifier", + "src": "33774:9:46" + } + ], + "functionName": { + "name": "abi_encode_array_uint256", + "nativeSrc": "33741:24:46", + "nodeType": "YulIdentifier", + "src": "33741:24:46" + }, + "nativeSrc": "33741:43:46", + "nodeType": "YulFunctionCall", + "src": "33741:43:46" + }, + "nativeSrc": "33741:43:46", + "nodeType": "YulExpressionStatement", + "src": "33741:43:46" + }, + { + "nativeSrc": "33793:29:46", + "nodeType": "YulVariableDeclaration", + "src": "33793:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "33808:9:46", + "nodeType": "YulIdentifier", + "src": "33808:9:46" + }, + { + "kind": "number", + "nativeSrc": "33819:2:46", + "nodeType": "YulLiteral", + "src": "33819:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33804:3:46", + "nodeType": "YulIdentifier", + "src": "33804:3:46" + }, + "nativeSrc": "33804:18:46", + "nodeType": "YulFunctionCall", + "src": "33804:18:46" + }, + "variables": [ + { + "name": "pos", + "nativeSrc": "33797:3:46", + "nodeType": "YulTypedName", + "src": "33797:3:46", + "type": "" + } + ] + }, + { + "nativeSrc": "33831:10:46", + "nodeType": "YulAssignment", + "src": "33831:10:46", + "value": { + "name": "pos", + "nativeSrc": "33838:3:46", + "nodeType": "YulIdentifier", + "src": "33838:3:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "33831:3:46", + "nodeType": "YulIdentifier", + "src": "33831:3:46" + } + ] + }, + { + "nativeSrc": "33850:20:46", + "nodeType": "YulVariableDeclaration", + "src": "33850:20:46", + "value": { + "name": "value1", + "nativeSrc": "33864:6:46", + "nodeType": "YulIdentifier", + "src": "33864:6:46" + }, + "variables": [ + { + "name": "srcPtr", + "nativeSrc": "33854:6:46", + "nodeType": "YulTypedName", + "src": "33854:6:46", + "type": "" + } + ] + }, + { + "nativeSrc": "33879:10:46", + "nodeType": "YulVariableDeclaration", + "src": "33879:10:46", + "value": { + "kind": "number", + "nativeSrc": "33888:1:46", + "nodeType": "YulLiteral", + "src": "33888:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nativeSrc": "33883:1:46", + "nodeType": "YulTypedName", + "src": "33883:1:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "33945:140:46", + "nodeType": "YulBlock", + "src": "33945:140:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "33990:6:46", + "nodeType": "YulIdentifier", + "src": "33990:6:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "33984:5:46", + "nodeType": "YulIdentifier", + "src": "33984:5:46" + }, + "nativeSrc": "33984:13:46", + "nodeType": "YulFunctionCall", + "src": "33984:13:46" + }, + { + "name": "pos", + "nativeSrc": "33999:3:46", + "nodeType": "YulIdentifier", + "src": "33999:3:46" + } + ], + "functionName": { + "name": "abi_encode_array_uint256", + "nativeSrc": "33959:24:46", + "nodeType": "YulIdentifier", + "src": "33959:24:46" + }, + "nativeSrc": "33959:44:46", + "nodeType": "YulFunctionCall", + "src": "33959:44:46" + }, + "nativeSrc": "33959:44:46", + "nodeType": "YulExpressionStatement", + "src": "33959:44:46" + }, + { + "nativeSrc": "34016:19:46", + "nodeType": "YulAssignment", + "src": "34016:19:46", + "value": { + "arguments": [ + { + "name": "pos", + "nativeSrc": "34027:3:46", + "nodeType": "YulIdentifier", + "src": "34027:3:46" + }, + { + "kind": "number", + "nativeSrc": "34032:2:46", + "nodeType": "YulLiteral", + "src": "34032:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34023:3:46", + "nodeType": "YulIdentifier", + "src": "34023:3:46" + }, + "nativeSrc": "34023:12:46", + "nodeType": "YulFunctionCall", + "src": "34023:12:46" + }, + "variableNames": [ + { + "name": "pos", + "nativeSrc": "34016:3:46", + "nodeType": "YulIdentifier", + "src": "34016:3:46" + } + ] + }, + { + "nativeSrc": "34048:27:46", + "nodeType": "YulAssignment", + "src": "34048:27:46", + "value": { + "arguments": [ + { + "name": "srcPtr", + "nativeSrc": "34062:6:46", + "nodeType": "YulIdentifier", + "src": "34062:6:46" + }, + { + "kind": "number", + "nativeSrc": "34070:4:46", + "nodeType": "YulLiteral", + "src": "34070:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34058:3:46", + "nodeType": "YulIdentifier", + "src": "34058:3:46" + }, + "nativeSrc": "34058:17:46", + "nodeType": "YulFunctionCall", + "src": "34058:17:46" + }, + "variableNames": [ + { + "name": "srcPtr", + "nativeSrc": "34048:6:46", + "nodeType": "YulIdentifier", + "src": "34048:6:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nativeSrc": "33909:1:46", + "nodeType": "YulIdentifier", + "src": "33909:1:46" + }, + { + "kind": "number", + "nativeSrc": "33912:4:46", + "nodeType": "YulLiteral", + "src": "33912:4:46", + "type": "", + "value": "0x02" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "33906:2:46", + "nodeType": "YulIdentifier", + "src": "33906:2:46" + }, + "nativeSrc": "33906:11:46", + "nodeType": "YulFunctionCall", + "src": "33906:11:46" + }, + "nativeSrc": "33898:187:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "33918:18:46", + "nodeType": "YulBlock", + "src": "33918:18:46", + "statements": [ + { + "nativeSrc": "33920:14:46", + "nodeType": "YulAssignment", + "src": "33920:14:46", + "value": { + "arguments": [ + { + "name": "i", + "nativeSrc": "33929:1:46", + "nodeType": "YulIdentifier", + "src": "33929:1:46" + }, + { + "kind": "number", + "nativeSrc": "33932:1:46", + "nodeType": "YulLiteral", + "src": "33932:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "33925:3:46", + "nodeType": "YulIdentifier", + "src": "33925:3:46" + }, + "nativeSrc": "33925:9:46", + "nodeType": "YulFunctionCall", + "src": "33925:9:46" + }, + "variableNames": [ + { + "name": "i", + "nativeSrc": "33920:1:46", + "nodeType": "YulIdentifier", + "src": "33920:1:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "33902:3:46", + "nodeType": "YulBlock", + "src": "33902:3:46", + "statements": [] + }, + "src": "33898:187:46" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nativeSrc": "34119:6:46", + "nodeType": "YulIdentifier", + "src": "34119:6:46" + }, + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34131:9:46", + "nodeType": "YulIdentifier", + "src": "34131:9:46" + }, + { + "kind": "number", + "nativeSrc": "34142:3:46", + "nodeType": "YulLiteral", + "src": "34142:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34127:3:46", + "nodeType": "YulIdentifier", + "src": "34127:3:46" + }, + "nativeSrc": "34127:19:46", + "nodeType": "YulFunctionCall", + "src": "34127:19:46" + } + ], + "functionName": { + "name": "abi_encode_array_uint256", + "nativeSrc": "34094:24:46", + "nodeType": "YulIdentifier", + "src": "34094:24:46" + }, + "nativeSrc": "34094:53:46", + "nodeType": "YulFunctionCall", + "src": "34094:53:46" + }, + "nativeSrc": "34094:53:46", + "nodeType": "YulExpressionStatement", + "src": "34094:53:46" + }, + { + "nativeSrc": "34156:32:46", + "nodeType": "YulVariableDeclaration", + "src": "34156:32:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34173:9:46", + "nodeType": "YulIdentifier", + "src": "34173:9:46" + }, + { + "kind": "number", + "nativeSrc": "34184:3:46", + "nodeType": "YulLiteral", + "src": "34184:3:46", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34169:3:46", + "nodeType": "YulIdentifier", + "src": "34169:3:46" + }, + "nativeSrc": "34169:19:46", + "nodeType": "YulFunctionCall", + "src": "34169:19:46" + }, + "variables": [ + { + "name": "pos_1", + "nativeSrc": "34160:5:46", + "nodeType": "YulTypedName", + "src": "34160:5:46", + "type": "" + } + ] + }, + { + "nativeSrc": "34197:14:46", + "nodeType": "YulAssignment", + "src": "34197:14:46", + "value": { + "name": "pos_1", + "nativeSrc": "34206:5:46", + "nodeType": "YulIdentifier", + "src": "34206:5:46" + }, + "variableNames": [ + { + "name": "pos_1", + "nativeSrc": "34197:5:46", + "nodeType": "YulIdentifier", + "src": "34197:5:46" + } + ] + }, + { + "nativeSrc": "34220:22:46", + "nodeType": "YulVariableDeclaration", + "src": "34220:22:46", + "value": { + "name": "value3", + "nativeSrc": "34236:6:46", + "nodeType": "YulIdentifier", + "src": "34236:6:46" + }, + "variables": [ + { + "name": "srcPtr_1", + "nativeSrc": "34224:8:46", + "nodeType": "YulTypedName", + "src": "34224:8:46", + "type": "" + } + ] + }, + { + "nativeSrc": "34251:12:46", + "nodeType": "YulVariableDeclaration", + "src": "34251:12:46", + "value": { + "kind": "number", + "nativeSrc": "34262:1:46", + "nodeType": "YulLiteral", + "src": "34262:1:46", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i_1", + "nativeSrc": "34255:3:46", + "nodeType": "YulTypedName", + "src": "34255:3:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "34325:136:46", + "nodeType": "YulBlock", + "src": "34325:136:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos_1", + "nativeSrc": "34346:5:46", + "nodeType": "YulIdentifier", + "src": "34346:5:46" + }, + { + "arguments": [ + { + "name": "srcPtr_1", + "nativeSrc": "34359:8:46", + "nodeType": "YulIdentifier", + "src": "34359:8:46" + } + ], + "functionName": { + "name": "mload", + "nativeSrc": "34353:5:46", + "nodeType": "YulIdentifier", + "src": "34353:5:46" + }, + "nativeSrc": "34353:15:46", + "nodeType": "YulFunctionCall", + "src": "34353:15:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34339:6:46", + "nodeType": "YulIdentifier", + "src": "34339:6:46" + }, + "nativeSrc": "34339:30:46", + "nodeType": "YulFunctionCall", + "src": "34339:30:46" + }, + "nativeSrc": "34339:30:46", + "nodeType": "YulExpressionStatement", + "src": "34339:30:46" + }, + { + "nativeSrc": "34382:25:46", + "nodeType": "YulAssignment", + "src": "34382:25:46", + "value": { + "arguments": [ + { + "name": "pos_1", + "nativeSrc": "34395:5:46", + "nodeType": "YulIdentifier", + "src": "34395:5:46" + }, + { + "kind": "number", + "nativeSrc": "34402:4:46", + "nodeType": "YulLiteral", + "src": "34402:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34391:3:46", + "nodeType": "YulIdentifier", + "src": "34391:3:46" + }, + "nativeSrc": "34391:16:46", + "nodeType": "YulFunctionCall", + "src": "34391:16:46" + }, + "variableNames": [ + { + "name": "pos_1", + "nativeSrc": "34382:5:46", + "nodeType": "YulIdentifier", + "src": "34382:5:46" + } + ] + }, + { + "nativeSrc": "34420:31:46", + "nodeType": "YulAssignment", + "src": "34420:31:46", + "value": { + "arguments": [ + { + "name": "srcPtr_1", + "nativeSrc": "34436:8:46", + "nodeType": "YulIdentifier", + "src": "34436:8:46" + }, + { + "kind": "number", + "nativeSrc": "34446:4:46", + "nodeType": "YulLiteral", + "src": "34446:4:46", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34432:3:46", + "nodeType": "YulIdentifier", + "src": "34432:3:46" + }, + "nativeSrc": "34432:19:46", + "nodeType": "YulFunctionCall", + "src": "34432:19:46" + }, + "variableNames": [ + { + "name": "srcPtr_1", + "nativeSrc": "34420:8:46", + "nodeType": "YulIdentifier", + "src": "34420:8:46" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i_1", + "nativeSrc": "34283:3:46", + "nodeType": "YulIdentifier", + "src": "34283:3:46" + }, + { + "kind": "number", + "nativeSrc": "34288:4:46", + "nodeType": "YulLiteral", + "src": "34288:4:46", + "type": "", + "value": "0x08" + } + ], + "functionName": { + "name": "lt", + "nativeSrc": "34280:2:46", + "nodeType": "YulIdentifier", + "src": "34280:2:46" + }, + "nativeSrc": "34280:13:46", + "nodeType": "YulFunctionCall", + "src": "34280:13:46" + }, + "nativeSrc": "34272:189:46", + "nodeType": "YulForLoop", + "post": { + "nativeSrc": "34294:22:46", + "nodeType": "YulBlock", + "src": "34294:22:46", + "statements": [ + { + "nativeSrc": "34296:18:46", + "nodeType": "YulAssignment", + "src": "34296:18:46", + "value": { + "arguments": [ + { + "name": "i_1", + "nativeSrc": "34307:3:46", + "nodeType": "YulIdentifier", + "src": "34307:3:46" + }, + { + "kind": "number", + "nativeSrc": "34312:1:46", + "nodeType": "YulLiteral", + "src": "34312:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34303:3:46", + "nodeType": "YulIdentifier", + "src": "34303:3:46" + }, + "nativeSrc": "34303:11:46", + "nodeType": "YulFunctionCall", + "src": "34303:11:46" + }, + "variableNames": [ + { + "name": "i_1", + "nativeSrc": "34296:3:46", + "nodeType": "YulIdentifier", + "src": "34296:3:46" + } + ] + } + ] + }, + "pre": { + "nativeSrc": "34276:3:46", + "nodeType": "YulBlock", + "src": "34276:3:46", + "statements": [] + }, + "src": "34272:189:46" + } + ] + }, + "name": "abi_encode_tuple_t_array$_t_uint256_$2_memory_ptr_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_t_array$_t_uint256_$2_memory_ptr_t_array$_t_uint256_$8_memory_ptr__to_t_array$_t_uint256_$2_memory_ptr_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_t_array$_t_uint256_$2_memory_ptr_t_array$_t_uint256_$8_memory_ptr__fromStack_reversed", + "nativeSrc": "33280:1187:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "33640:9:46", + "nodeType": "YulTypedName", + "src": "33640:9:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "33651:6:46", + "nodeType": "YulTypedName", + "src": "33651:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "33659:6:46", + "nodeType": "YulTypedName", + "src": "33659:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "33667:6:46", + "nodeType": "YulTypedName", + "src": "33667:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "33675:6:46", + "nodeType": "YulTypedName", + "src": "33675:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "33686:4:46", + "nodeType": "YulTypedName", + "src": "33686:4:46", + "type": "" + } + ], + "src": "33280:1187:46" + }, + { + "body": { + "nativeSrc": "34550:124:46", + "nodeType": "YulBlock", + "src": "34550:124:46", + "statements": [ + { + "body": { + "nativeSrc": "34596:16:46", + "nodeType": "YulBlock", + "src": "34596:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "34605:1:46", + "nodeType": "YulLiteral", + "src": "34605:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "34608:1:46", + "nodeType": "YulLiteral", + "src": "34608:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "34598:6:46", + "nodeType": "YulIdentifier", + "src": "34598:6:46" + }, + "nativeSrc": "34598:12:46", + "nodeType": "YulFunctionCall", + "src": "34598:12:46" + }, + "nativeSrc": "34598:12:46", + "nodeType": "YulExpressionStatement", + "src": "34598:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "34571:7:46", + "nodeType": "YulIdentifier", + "src": "34571:7:46" + }, + { + "name": "headStart", + "nativeSrc": "34580:9:46", + "nodeType": "YulIdentifier", + "src": "34580:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "34567:3:46", + "nodeType": "YulIdentifier", + "src": "34567:3:46" + }, + "nativeSrc": "34567:23:46", + "nodeType": "YulFunctionCall", + "src": "34567:23:46" + }, + { + "kind": "number", + "nativeSrc": "34592:2:46", + "nodeType": "YulLiteral", + "src": "34592:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "34563:3:46", + "nodeType": "YulIdentifier", + "src": "34563:3:46" + }, + "nativeSrc": "34563:32:46", + "nodeType": "YulFunctionCall", + "src": "34563:32:46" + }, + "nativeSrc": "34560:52:46", + "nodeType": "YulIf", + "src": "34560:52:46" + }, + { + "nativeSrc": "34621:47:46", + "nodeType": "YulAssignment", + "src": "34621:47:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34658:9:46", + "nodeType": "YulIdentifier", + "src": "34658:9:46" + } + ], + "functionName": { + "name": "abi_decode_bool_fromMemory", + "nativeSrc": "34631:26:46", + "nodeType": "YulIdentifier", + "src": "34631:26:46" + }, + "nativeSrc": "34631:37:46", + "nodeType": "YulFunctionCall", + "src": "34631:37:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "34621:6:46", + "nodeType": "YulIdentifier", + "src": "34621:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bool_fromMemory", + "nativeSrc": "34472:202:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "34516:9:46", + "nodeType": "YulTypedName", + "src": "34516:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "34527:7:46", + "nodeType": "YulTypedName", + "src": "34527:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "34539:6:46", + "nodeType": "YulTypedName", + "src": "34539:6:46", + "type": "" + } + ], + "src": "34472:202:46" + }, + { + "body": { + "nativeSrc": "34836:162:46", + "nodeType": "YulBlock", + "src": "34836:162:46", + "statements": [ + { + "nativeSrc": "34846:26:46", + "nodeType": "YulAssignment", + "src": "34846:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34858:9:46", + "nodeType": "YulIdentifier", + "src": "34858:9:46" + }, + { + "kind": "number", + "nativeSrc": "34869:2:46", + "nodeType": "YulLiteral", + "src": "34869:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34854:3:46", + "nodeType": "YulIdentifier", + "src": "34854:3:46" + }, + "nativeSrc": "34854:18:46", + "nodeType": "YulFunctionCall", + "src": "34854:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "34846:4:46", + "nodeType": "YulIdentifier", + "src": "34846:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34888:9:46", + "nodeType": "YulIdentifier", + "src": "34888:9:46" + }, + { + "name": "value0", + "nativeSrc": "34899:6:46", + "nodeType": "YulIdentifier", + "src": "34899:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34881:6:46", + "nodeType": "YulIdentifier", + "src": "34881:6:46" + }, + "nativeSrc": "34881:25:46", + "nodeType": "YulFunctionCall", + "src": "34881:25:46" + }, + "nativeSrc": "34881:25:46", + "nodeType": "YulExpressionStatement", + "src": "34881:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34926:9:46", + "nodeType": "YulIdentifier", + "src": "34926:9:46" + }, + { + "kind": "number", + "nativeSrc": "34937:2:46", + "nodeType": "YulLiteral", + "src": "34937:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34922:3:46", + "nodeType": "YulIdentifier", + "src": "34922:3:46" + }, + "nativeSrc": "34922:18:46", + "nodeType": "YulFunctionCall", + "src": "34922:18:46" + }, + { + "name": "value1", + "nativeSrc": "34942:6:46", + "nodeType": "YulIdentifier", + "src": "34942:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34915:6:46", + "nodeType": "YulIdentifier", + "src": "34915:6:46" + }, + "nativeSrc": "34915:34:46", + "nodeType": "YulFunctionCall", + "src": "34915:34:46" + }, + "nativeSrc": "34915:34:46", + "nodeType": "YulExpressionStatement", + "src": "34915:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "34969:9:46", + "nodeType": "YulIdentifier", + "src": "34969:9:46" + }, + { + "kind": "number", + "nativeSrc": "34980:2:46", + "nodeType": "YulLiteral", + "src": "34980:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "34965:3:46", + "nodeType": "YulIdentifier", + "src": "34965:3:46" + }, + "nativeSrc": "34965:18:46", + "nodeType": "YulFunctionCall", + "src": "34965:18:46" + }, + { + "name": "value2", + "nativeSrc": "34985:6:46", + "nodeType": "YulIdentifier", + "src": "34985:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "34958:6:46", + "nodeType": "YulIdentifier", + "src": "34958:6:46" + }, + "nativeSrc": "34958:34:46", + "nodeType": "YulFunctionCall", + "src": "34958:34:46" + }, + "nativeSrc": "34958:34:46", + "nodeType": "YulExpressionStatement", + "src": "34958:34:46" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed", + "nativeSrc": "34679:319:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "34789:9:46", + "nodeType": "YulTypedName", + "src": "34789:9:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "34800:6:46", + "nodeType": "YulTypedName", + "src": "34800:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "34808:6:46", + "nodeType": "YulTypedName", + "src": "34808:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "34816:6:46", + "nodeType": "YulTypedName", + "src": "34816:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "34827:4:46", + "nodeType": "YulTypedName", + "src": "34827:4:46", + "type": "" + } + ], + "src": "34679:319:46" + }, + { + "body": { + "nativeSrc": "35035:95:46", + "nodeType": "YulBlock", + "src": "35035:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35052:1:46", + "nodeType": "YulLiteral", + "src": "35052:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35059:3:46", + "nodeType": "YulLiteral", + "src": "35059:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "35064:10:46", + "nodeType": "YulLiteral", + "src": "35064:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "35055:3:46", + "nodeType": "YulIdentifier", + "src": "35055:3:46" + }, + "nativeSrc": "35055:20:46", + "nodeType": "YulFunctionCall", + "src": "35055:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35045:6:46", + "nodeType": "YulIdentifier", + "src": "35045:6:46" + }, + "nativeSrc": "35045:31:46", + "nodeType": "YulFunctionCall", + "src": "35045:31:46" + }, + "nativeSrc": "35045:31:46", + "nodeType": "YulExpressionStatement", + "src": "35045:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35092:1:46", + "nodeType": "YulLiteral", + "src": "35092:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "35095:4:46", + "nodeType": "YulLiteral", + "src": "35095:4:46", + "type": "", + "value": "0x21" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35085:6:46", + "nodeType": "YulIdentifier", + "src": "35085:6:46" + }, + "nativeSrc": "35085:15:46", + "nodeType": "YulFunctionCall", + "src": "35085:15:46" + }, + "nativeSrc": "35085:15:46", + "nodeType": "YulExpressionStatement", + "src": "35085:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35116:1:46", + "nodeType": "YulLiteral", + "src": "35116:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "35119:4:46", + "nodeType": "YulLiteral", + "src": "35119:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "35109:6:46", + "nodeType": "YulIdentifier", + "src": "35109:6:46" + }, + "nativeSrc": "35109:15:46", + "nodeType": "YulFunctionCall", + "src": "35109:15:46" + }, + "nativeSrc": "35109:15:46", + "nodeType": "YulExpressionStatement", + "src": "35109:15:46" + } + ] + }, + "name": "panic_error_0x21", + "nativeSrc": "35003:127:46", + "nodeType": "YulFunctionDefinition", + "src": "35003:127:46" + }, + { + "body": { + "nativeSrc": "35183:77:46", + "nodeType": "YulBlock", + "src": "35183:77:46", + "statements": [ + { + "nativeSrc": "35193:16:46", + "nodeType": "YulAssignment", + "src": "35193:16:46", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "35204:1:46", + "nodeType": "YulIdentifier", + "src": "35204:1:46" + }, + { + "name": "y", + "nativeSrc": "35207:1:46", + "nodeType": "YulIdentifier", + "src": "35207:1:46" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35200:3:46", + "nodeType": "YulIdentifier", + "src": "35200:3:46" + }, + "nativeSrc": "35200:9:46", + "nodeType": "YulFunctionCall", + "src": "35200:9:46" + }, + "variableNames": [ + { + "name": "sum", + "nativeSrc": "35193:3:46", + "nodeType": "YulIdentifier", + "src": "35193:3:46" + } + ] + }, + { + "body": { + "nativeSrc": "35232:22:46", + "nodeType": "YulBlock", + "src": "35232:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "35234:16:46", + "nodeType": "YulIdentifier", + "src": "35234:16:46" + }, + "nativeSrc": "35234:18:46", + "nodeType": "YulFunctionCall", + "src": "35234:18:46" + }, + "nativeSrc": "35234:18:46", + "nodeType": "YulExpressionStatement", + "src": "35234:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nativeSrc": "35224:1:46", + "nodeType": "YulIdentifier", + "src": "35224:1:46" + }, + { + "name": "sum", + "nativeSrc": "35227:3:46", + "nodeType": "YulIdentifier", + "src": "35227:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "35221:2:46", + "nodeType": "YulIdentifier", + "src": "35221:2:46" + }, + "nativeSrc": "35221:10:46", + "nodeType": "YulFunctionCall", + "src": "35221:10:46" + }, + "nativeSrc": "35218:36:46", + "nodeType": "YulIf", + "src": "35218:36:46" + } + ] + }, + "name": "checked_add_t_uint256", + "nativeSrc": "35135:125:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "35166:1:46", + "nodeType": "YulTypedName", + "src": "35166:1:46", + "type": "" + }, + { + "name": "y", + "nativeSrc": "35169:1:46", + "nodeType": "YulTypedName", + "src": "35169:1:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nativeSrc": "35175:3:46", + "nodeType": "YulTypedName", + "src": "35175:3:46", + "type": "" + } + ], + "src": "35135:125:46" + }, + { + "body": { + "nativeSrc": "35317:116:46", + "nodeType": "YulBlock", + "src": "35317:116:46", + "statements": [ + { + "nativeSrc": "35327:20:46", + "nodeType": "YulAssignment", + "src": "35327:20:46", + "value": { + "arguments": [ + { + "name": "x", + "nativeSrc": "35342:1:46", + "nodeType": "YulIdentifier", + "src": "35342:1:46" + }, + { + "name": "y", + "nativeSrc": "35345:1:46", + "nodeType": "YulIdentifier", + "src": "35345:1:46" + } + ], + "functionName": { + "name": "mul", + "nativeSrc": "35338:3:46", + "nodeType": "YulIdentifier", + "src": "35338:3:46" + }, + "nativeSrc": "35338:9:46", + "nodeType": "YulFunctionCall", + "src": "35338:9:46" + }, + "variableNames": [ + { + "name": "product", + "nativeSrc": "35327:7:46", + "nodeType": "YulIdentifier", + "src": "35327:7:46" + } + ] + }, + { + "body": { + "nativeSrc": "35405:22:46", + "nodeType": "YulBlock", + "src": "35405:22:46", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nativeSrc": "35407:16:46", + "nodeType": "YulIdentifier", + "src": "35407:16:46" + }, + "nativeSrc": "35407:18:46", + "nodeType": "YulFunctionCall", + "src": "35407:18:46" + }, + "nativeSrc": "35407:18:46", + "nodeType": "YulExpressionStatement", + "src": "35407:18:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nativeSrc": "35376:1:46", + "nodeType": "YulIdentifier", + "src": "35376:1:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "35369:6:46", + "nodeType": "YulIdentifier", + "src": "35369:6:46" + }, + "nativeSrc": "35369:9:46", + "nodeType": "YulFunctionCall", + "src": "35369:9:46" + }, + { + "arguments": [ + { + "name": "y", + "nativeSrc": "35383:1:46", + "nodeType": "YulIdentifier", + "src": "35383:1:46" + }, + { + "arguments": [ + { + "name": "product", + "nativeSrc": "35390:7:46", + "nodeType": "YulIdentifier", + "src": "35390:7:46" + }, + { + "name": "x", + "nativeSrc": "35399:1:46", + "nodeType": "YulIdentifier", + "src": "35399:1:46" + } + ], + "functionName": { + "name": "div", + "nativeSrc": "35386:3:46", + "nodeType": "YulIdentifier", + "src": "35386:3:46" + }, + "nativeSrc": "35386:15:46", + "nodeType": "YulFunctionCall", + "src": "35386:15:46" + } + ], + "functionName": { + "name": "eq", + "nativeSrc": "35380:2:46", + "nodeType": "YulIdentifier", + "src": "35380:2:46" + }, + "nativeSrc": "35380:22:46", + "nodeType": "YulFunctionCall", + "src": "35380:22:46" + } + ], + "functionName": { + "name": "or", + "nativeSrc": "35366:2:46", + "nodeType": "YulIdentifier", + "src": "35366:2:46" + }, + "nativeSrc": "35366:37:46", + "nodeType": "YulFunctionCall", + "src": "35366:37:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "35359:6:46", + "nodeType": "YulIdentifier", + "src": "35359:6:46" + }, + "nativeSrc": "35359:45:46", + "nodeType": "YulFunctionCall", + "src": "35359:45:46" + }, + "nativeSrc": "35356:71:46", + "nodeType": "YulIf", + "src": "35356:71:46" + } + ] + }, + "name": "checked_mul_t_uint256", + "nativeSrc": "35265:168:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nativeSrc": "35296:1:46", + "nodeType": "YulTypedName", + "src": "35296:1:46", + "type": "" + }, + { + "name": "y", + "nativeSrc": "35299:1:46", + "nodeType": "YulTypedName", + "src": "35299:1:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nativeSrc": "35305:7:46", + "nodeType": "YulTypedName", + "src": "35305:7:46", + "type": "" + } + ], + "src": "35265:168:46" + }, + { + "body": { + "nativeSrc": "35537:101:46", + "nodeType": "YulBlock", + "src": "35537:101:46", + "statements": [ + { + "nativeSrc": "35547:26:46", + "nodeType": "YulAssignment", + "src": "35547:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "35559:9:46", + "nodeType": "YulIdentifier", + "src": "35559:9:46" + }, + { + "kind": "number", + "nativeSrc": "35570:2:46", + "nodeType": "YulLiteral", + "src": "35570:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35555:3:46", + "nodeType": "YulIdentifier", + "src": "35555:3:46" + }, + "nativeSrc": "35555:18:46", + "nodeType": "YulFunctionCall", + "src": "35555:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "35547:4:46", + "nodeType": "YulIdentifier", + "src": "35547:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "35589:9:46", + "nodeType": "YulIdentifier", + "src": "35589:9:46" + }, + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "35604:6:46", + "nodeType": "YulIdentifier", + "src": "35604:6:46" + }, + { + "kind": "number", + "nativeSrc": "35612:18:46", + "nodeType": "YulLiteral", + "src": "35612:18:46", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "35600:3:46", + "nodeType": "YulIdentifier", + "src": "35600:3:46" + }, + "nativeSrc": "35600:31:46", + "nodeType": "YulFunctionCall", + "src": "35600:31:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35582:6:46", + "nodeType": "YulIdentifier", + "src": "35582:6:46" + }, + "nativeSrc": "35582:50:46", + "nodeType": "YulFunctionCall", + "src": "35582:50:46" + }, + "nativeSrc": "35582:50:46", + "nodeType": "YulExpressionStatement", + "src": "35582:50:46" + } + ] + }, + "name": "abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed", + "nativeSrc": "35438:200:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "35506:9:46", + "nodeType": "YulTypedName", + "src": "35506:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "35517:6:46", + "nodeType": "YulTypedName", + "src": "35517:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "35528:4:46", + "nodeType": "YulTypedName", + "src": "35528:4:46", + "type": "" + } + ], + "src": "35438:200:46" + }, + { + "body": { + "nativeSrc": "35675:95:46", + "nodeType": "YulBlock", + "src": "35675:95:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35692:1:46", + "nodeType": "YulLiteral", + "src": "35692:1:46", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35699:3:46", + "nodeType": "YulLiteral", + "src": "35699:3:46", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nativeSrc": "35704:10:46", + "nodeType": "YulLiteral", + "src": "35704:10:46", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "35695:3:46", + "nodeType": "YulIdentifier", + "src": "35695:3:46" + }, + "nativeSrc": "35695:20:46", + "nodeType": "YulFunctionCall", + "src": "35695:20:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35685:6:46", + "nodeType": "YulIdentifier", + "src": "35685:6:46" + }, + "nativeSrc": "35685:31:46", + "nodeType": "YulFunctionCall", + "src": "35685:31:46" + }, + "nativeSrc": "35685:31:46", + "nodeType": "YulExpressionStatement", + "src": "35685:31:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35732:1:46", + "nodeType": "YulLiteral", + "src": "35732:1:46", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nativeSrc": "35735:4:46", + "nodeType": "YulLiteral", + "src": "35735:4:46", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "35725:6:46", + "nodeType": "YulIdentifier", + "src": "35725:6:46" + }, + "nativeSrc": "35725:15:46", + "nodeType": "YulFunctionCall", + "src": "35725:15:46" + }, + "nativeSrc": "35725:15:46", + "nodeType": "YulExpressionStatement", + "src": "35725:15:46" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "35756:1:46", + "nodeType": "YulLiteral", + "src": "35756:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "35759:4:46", + "nodeType": "YulLiteral", + "src": "35759:4:46", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "35749:6:46", + "nodeType": "YulIdentifier", + "src": "35749:6:46" + }, + "nativeSrc": "35749:15:46", + "nodeType": "YulFunctionCall", + "src": "35749:15:46" + }, + "nativeSrc": "35749:15:46", + "nodeType": "YulExpressionStatement", + "src": "35749:15:46" + } + ] + }, + "name": "panic_error_0x12", + "nativeSrc": "35643:127:46", + "nodeType": "YulFunctionDefinition", + "src": "35643:127:46" + }, + { + "body": { + "nativeSrc": "35956:217:46", + "nodeType": "YulBlock", + "src": "35956:217:46", + "statements": [ + { + "nativeSrc": "35966:27:46", + "nodeType": "YulAssignment", + "src": "35966:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "35978:9:46", + "nodeType": "YulIdentifier", + "src": "35978:9:46" + }, + { + "kind": "number", + "nativeSrc": "35989:3:46", + "nodeType": "YulLiteral", + "src": "35989:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "35974:3:46", + "nodeType": "YulIdentifier", + "src": "35974:3:46" + }, + "nativeSrc": "35974:19:46", + "nodeType": "YulFunctionCall", + "src": "35974:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "35966:4:46", + "nodeType": "YulIdentifier", + "src": "35966:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36009:9:46", + "nodeType": "YulIdentifier", + "src": "36009:9:46" + }, + { + "name": "value0", + "nativeSrc": "36020:6:46", + "nodeType": "YulIdentifier", + "src": "36020:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36002:6:46", + "nodeType": "YulIdentifier", + "src": "36002:6:46" + }, + "nativeSrc": "36002:25:46", + "nodeType": "YulFunctionCall", + "src": "36002:25:46" + }, + "nativeSrc": "36002:25:46", + "nodeType": "YulExpressionStatement", + "src": "36002:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36047:9:46", + "nodeType": "YulIdentifier", + "src": "36047:9:46" + }, + { + "kind": "number", + "nativeSrc": "36058:2:46", + "nodeType": "YulLiteral", + "src": "36058:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36043:3:46", + "nodeType": "YulIdentifier", + "src": "36043:3:46" + }, + "nativeSrc": "36043:18:46", + "nodeType": "YulFunctionCall", + "src": "36043:18:46" + }, + { + "arguments": [ + { + "name": "value1", + "nativeSrc": "36067:6:46", + "nodeType": "YulIdentifier", + "src": "36067:6:46" + }, + { + "kind": "number", + "nativeSrc": "36075:4:46", + "nodeType": "YulLiteral", + "src": "36075:4:46", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "36063:3:46", + "nodeType": "YulIdentifier", + "src": "36063:3:46" + }, + "nativeSrc": "36063:17:46", + "nodeType": "YulFunctionCall", + "src": "36063:17:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36036:6:46", + "nodeType": "YulIdentifier", + "src": "36036:6:46" + }, + "nativeSrc": "36036:45:46", + "nodeType": "YulFunctionCall", + "src": "36036:45:46" + }, + "nativeSrc": "36036:45:46", + "nodeType": "YulExpressionStatement", + "src": "36036:45:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36101:9:46", + "nodeType": "YulIdentifier", + "src": "36101:9:46" + }, + { + "kind": "number", + "nativeSrc": "36112:2:46", + "nodeType": "YulLiteral", + "src": "36112:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36097:3:46", + "nodeType": "YulIdentifier", + "src": "36097:3:46" + }, + "nativeSrc": "36097:18:46", + "nodeType": "YulFunctionCall", + "src": "36097:18:46" + }, + { + "name": "value2", + "nativeSrc": "36117:6:46", + "nodeType": "YulIdentifier", + "src": "36117:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36090:6:46", + "nodeType": "YulIdentifier", + "src": "36090:6:46" + }, + "nativeSrc": "36090:34:46", + "nodeType": "YulFunctionCall", + "src": "36090:34:46" + }, + "nativeSrc": "36090:34:46", + "nodeType": "YulExpressionStatement", + "src": "36090:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36144:9:46", + "nodeType": "YulIdentifier", + "src": "36144:9:46" + }, + { + "kind": "number", + "nativeSrc": "36155:2:46", + "nodeType": "YulLiteral", + "src": "36155:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36140:3:46", + "nodeType": "YulIdentifier", + "src": "36140:3:46" + }, + "nativeSrc": "36140:18:46", + "nodeType": "YulFunctionCall", + "src": "36140:18:46" + }, + { + "name": "value3", + "nativeSrc": "36160:6:46", + "nodeType": "YulIdentifier", + "src": "36160:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36133:6:46", + "nodeType": "YulIdentifier", + "src": "36133:6:46" + }, + "nativeSrc": "36133:34:46", + "nodeType": "YulFunctionCall", + "src": "36133:34:46" + }, + "nativeSrc": "36133:34:46", + "nodeType": "YulExpressionStatement", + "src": "36133:34:46" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed", + "nativeSrc": "35775:398:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "35901:9:46", + "nodeType": "YulTypedName", + "src": "35901:9:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "35912:6:46", + "nodeType": "YulTypedName", + "src": "35912:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "35920:6:46", + "nodeType": "YulTypedName", + "src": "35920:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "35928:6:46", + "nodeType": "YulTypedName", + "src": "35928:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "35936:6:46", + "nodeType": "YulTypedName", + "src": "35936:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "35947:4:46", + "nodeType": "YulTypedName", + "src": "35947:4:46", + "type": "" + } + ], + "src": "35775:398:46" + }, + { + "body": { + "nativeSrc": "36391:276:46", + "nodeType": "YulBlock", + "src": "36391:276:46", + "statements": [ + { + "nativeSrc": "36401:27:46", + "nodeType": "YulAssignment", + "src": "36401:27:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36413:9:46", + "nodeType": "YulIdentifier", + "src": "36413:9:46" + }, + { + "kind": "number", + "nativeSrc": "36424:3:46", + "nodeType": "YulLiteral", + "src": "36424:3:46", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36409:3:46", + "nodeType": "YulIdentifier", + "src": "36409:3:46" + }, + "nativeSrc": "36409:19:46", + "nodeType": "YulFunctionCall", + "src": "36409:19:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "36401:4:46", + "nodeType": "YulIdentifier", + "src": "36401:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36444:9:46", + "nodeType": "YulIdentifier", + "src": "36444:9:46" + }, + { + "name": "value0", + "nativeSrc": "36455:6:46", + "nodeType": "YulIdentifier", + "src": "36455:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36437:6:46", + "nodeType": "YulIdentifier", + "src": "36437:6:46" + }, + "nativeSrc": "36437:25:46", + "nodeType": "YulFunctionCall", + "src": "36437:25:46" + }, + "nativeSrc": "36437:25:46", + "nodeType": "YulExpressionStatement", + "src": "36437:25:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36482:9:46", + "nodeType": "YulIdentifier", + "src": "36482:9:46" + }, + { + "kind": "number", + "nativeSrc": "36493:2:46", + "nodeType": "YulLiteral", + "src": "36493:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36478:3:46", + "nodeType": "YulIdentifier", + "src": "36478:3:46" + }, + "nativeSrc": "36478:18:46", + "nodeType": "YulFunctionCall", + "src": "36478:18:46" + }, + { + "name": "value1", + "nativeSrc": "36498:6:46", + "nodeType": "YulIdentifier", + "src": "36498:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36471:6:46", + "nodeType": "YulIdentifier", + "src": "36471:6:46" + }, + "nativeSrc": "36471:34:46", + "nodeType": "YulFunctionCall", + "src": "36471:34:46" + }, + "nativeSrc": "36471:34:46", + "nodeType": "YulExpressionStatement", + "src": "36471:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36525:9:46", + "nodeType": "YulIdentifier", + "src": "36525:9:46" + }, + { + "kind": "number", + "nativeSrc": "36536:2:46", + "nodeType": "YulLiteral", + "src": "36536:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36521:3:46", + "nodeType": "YulIdentifier", + "src": "36521:3:46" + }, + "nativeSrc": "36521:18:46", + "nodeType": "YulFunctionCall", + "src": "36521:18:46" + }, + { + "name": "value2", + "nativeSrc": "36541:6:46", + "nodeType": "YulIdentifier", + "src": "36541:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36514:6:46", + "nodeType": "YulIdentifier", + "src": "36514:6:46" + }, + "nativeSrc": "36514:34:46", + "nodeType": "YulFunctionCall", + "src": "36514:34:46" + }, + "nativeSrc": "36514:34:46", + "nodeType": "YulExpressionStatement", + "src": "36514:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36568:9:46", + "nodeType": "YulIdentifier", + "src": "36568:9:46" + }, + { + "kind": "number", + "nativeSrc": "36579:2:46", + "nodeType": "YulLiteral", + "src": "36579:2:46", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36564:3:46", + "nodeType": "YulIdentifier", + "src": "36564:3:46" + }, + "nativeSrc": "36564:18:46", + "nodeType": "YulFunctionCall", + "src": "36564:18:46" + }, + { + "name": "value3", + "nativeSrc": "36584:6:46", + "nodeType": "YulIdentifier", + "src": "36584:6:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36557:6:46", + "nodeType": "YulIdentifier", + "src": "36557:6:46" + }, + "nativeSrc": "36557:34:46", + "nodeType": "YulFunctionCall", + "src": "36557:34:46" + }, + "nativeSrc": "36557:34:46", + "nodeType": "YulExpressionStatement", + "src": "36557:34:46" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "36611:9:46", + "nodeType": "YulIdentifier", + "src": "36611:9:46" + }, + { + "kind": "number", + "nativeSrc": "36622:3:46", + "nodeType": "YulLiteral", + "src": "36622:3:46", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "36607:3:46", + "nodeType": "YulIdentifier", + "src": "36607:3:46" + }, + "nativeSrc": "36607:19:46", + "nodeType": "YulFunctionCall", + "src": "36607:19:46" + }, + { + "arguments": [ + { + "name": "value4", + "nativeSrc": "36632:6:46", + "nodeType": "YulIdentifier", + "src": "36632:6:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nativeSrc": "36648:3:46", + "nodeType": "YulLiteral", + "src": "36648:3:46", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nativeSrc": "36653:1:46", + "nodeType": "YulLiteral", + "src": "36653:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nativeSrc": "36644:3:46", + "nodeType": "YulIdentifier", + "src": "36644:3:46" + }, + "nativeSrc": "36644:11:46", + "nodeType": "YulFunctionCall", + "src": "36644:11:46" + }, + { + "kind": "number", + "nativeSrc": "36657:1:46", + "nodeType": "YulLiteral", + "src": "36657:1:46", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "36640:3:46", + "nodeType": "YulIdentifier", + "src": "36640:3:46" + }, + "nativeSrc": "36640:19:46", + "nodeType": "YulFunctionCall", + "src": "36640:19:46" + } + ], + "functionName": { + "name": "and", + "nativeSrc": "36628:3:46", + "nodeType": "YulIdentifier", + "src": "36628:3:46" + }, + "nativeSrc": "36628:32:46", + "nodeType": "YulFunctionCall", + "src": "36628:32:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "36600:6:46", + "nodeType": "YulIdentifier", + "src": "36600:6:46" + }, + "nativeSrc": "36600:61:46", + "nodeType": "YulFunctionCall", + "src": "36600:61:46" + }, + "nativeSrc": "36600:61:46", + "nodeType": "YulExpressionStatement", + "src": "36600:61:46" + } + ] + }, + "name": "abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed", + "nativeSrc": "36178:489:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "36328:9:46", + "nodeType": "YulTypedName", + "src": "36328:9:46", + "type": "" + }, + { + "name": "value4", + "nativeSrc": "36339:6:46", + "nodeType": "YulTypedName", + "src": "36339:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "36347:6:46", + "nodeType": "YulTypedName", + "src": "36347:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "36355:6:46", + "nodeType": "YulTypedName", + "src": "36355:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "36363:6:46", + "nodeType": "YulTypedName", + "src": "36363:6:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "36371:6:46", + "nodeType": "YulTypedName", + "src": "36371:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "36382:4:46", + "nodeType": "YulTypedName", + "src": "36382:4:46", + "type": "" + } + ], + "src": "36178:489:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_uint64(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffffffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_uint64(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_uint64(headStart)\n }\n function abi_encode_bool(value, pos)\n {\n mstore(pos, iszero(iszero(value)))\n }\n function abi_encode_struct_Proof(value, pos) -> end\n {\n let tail := add(pos, 0x0100)\n mstore(pos, mload(value))\n mstore(add(pos, 0x20), iszero(iszero(mload(add(value, 0x20)))))\n let memberValue0 := mload(add(value, 0x40))\n mstore(add(pos, 0x40), 0x0100)\n let pos_1 := tail\n let length := mload(memberValue0)\n mstore(tail, length)\n pos_1 := add(pos, 288)\n let srcPtr := add(memberValue0, 0x20)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos_1, mload(srcPtr))\n pos_1 := add(pos_1, 0x20)\n srcPtr := add(srcPtr, 0x20)\n }\n mstore(add(pos, 0x60), mload(add(value, 0x60)))\n mstore(add(pos, 0x80), mload(add(value, 0x80)))\n let memberValue0_1 := mload(add(value, 0xa0))\n abi_encode_bool(memberValue0_1, add(pos, 0xa0))\n mstore(add(pos, 0xc0), mload(add(value, 0xc0)))\n mstore(add(pos, 0xe0), mload(add(value, 0xe0)))\n end := pos_1\n }\n function abi_encode_struct_StateInfo(value, pos)\n {\n mstore(pos, mload(value))\n mstore(add(pos, 0x20), mload(add(value, 0x20)))\n mstore(add(pos, 0x40), mload(add(value, 0x40)))\n mstore(add(pos, 0x60), mload(add(value, 0x60)))\n }\n function abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr_t_struct$_StateInfo_$1400_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 160)\n tail := abi_encode_struct_Proof(value0, add(headStart, 160))\n abi_encode_struct_StateInfo(value1, add(headStart, 32))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n value0 := value\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 validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n validator_revert_address(value)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_decode_tuple_t_uint256t_uint64(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n value1 := abi_decode_uint64(add(headStart, 32))\n }\n function abi_encode_tuple_t_struct$_CredentialStatus_$133_memory_ptr__to_t_struct$_CredentialStatus_$133_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n abi_encode_struct_StateInfo(mload(value0), add(headStart, 32))\n let memberValue0 := mload(add(value0, 32))\n mstore(add(headStart, 0xa0), 0xa0)\n tail := abi_encode_struct_Proof(memberValue0, add(headStart, 192))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_struct$_Proof_$2979_memory_ptr__to_t_struct$_Proof_$2979_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_struct_Proof(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let tail_1 := add(headStart, 32)\n mstore(headStart, 32)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, 32)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n pos := add(pos, 32)\n srcPtr := add(srcPtr, 32)\n }\n tail := pos\n }\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n }\n function abi_decode_bytes2(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, shl(240, 65535)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_bytes2(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := abi_decode_bytes2(add(headStart, 32))\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_4237() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 64)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory_4238() -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 0x0100)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n let src := add(offset, 0x20)\n let array_1 := 0\n array_1 := allocate_memory(array_allocation_size_bytes(length))\n mstore(array_1, length)\n if gt(add(src, length), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), src, length)\n mstore(add(add(array_1, length), 0x20), 0)\n array := array_1\n }\n function abi_decode_tuple_t_bytes_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n mstore(add(dst, length), 0)\n }\n function abi_encode_string(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__to_t_bytes1_t_string_memory_ptr_t_string_memory_ptr_t_uint256_t_address_t_bytes32_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, shl(248, 255)))\n mstore(add(headStart, 32), 224)\n let tail_1 := abi_encode_string(value1, add(headStart, 224))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n let tail_2 := abi_encode_string(value2, tail_1)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), sub(tail_2, headStart))\n let pos := tail_2\n let length := mload(value6)\n mstore(tail_2, length)\n pos := add(tail_2, 32)\n let srcPtr := add(value6, 32)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, 32)\n srcPtr := add(srcPtr, 32)\n }\n tail := pos\n }\n function abi_decode_tuple_t_contract$_IAttestationValidator_$14634(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_decode_tuple_t_uint256t_uint256t_uint64(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n value2 := abi_decode_uint64(add(headStart, 64))\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_struct$_Roots_$1390_memory_ptr__to_t_struct$_Roots_$1390_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, mload(value0))\n mstore(add(headStart, 0x20), mload(add(value0, 0x20)))\n mstore(add(headStart, 0x40), mload(add(value0, 0x40)))\n }\n function abi_decode_array_string_calldata_dyn_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value0_1, value1_1 := abi_decode_array_string_calldata_dyn_calldata(add(headStart, offset), dataEnd)\n value0 := value0_1\n value1 := value1_1\n let offset_1 := calldataload(add(headStart, 32))\n if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n let value2_1, value3_1 := abi_decode_array_string_calldata_dyn_calldata(add(headStart, offset_1), dataEnd)\n value2 := value2_1\n value3 := value3_1\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_uint64t_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_uint64(headStart)\n let value := 0\n value := calldataload(add(headStart, 32))\n value1 := value\n }\n function abi_decode_tuple_t_uint256t_uint256t_uint256t_array$_t_string_calldata_ptr_$dyn_calldata_ptrt_array$_t_address_$dyn_calldata_ptrt_struct$_StateInfo_$16117_calldata_ptrt_addresst_contract$_IAttestationValidator_$14634(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9\n {\n let _1 := sub(dataEnd, headStart)\n if slt(_1, 288) { revert(0, 0) }\n let value := 0\n value := calldataload(headStart)\n value0 := value\n let value_1 := 0\n value_1 := calldataload(add(headStart, 32))\n value1 := value_1\n let value_2 := 0\n value_2 := calldataload(add(headStart, 64))\n value2 := value_2\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let value3_1, value4_1 := abi_decode_array_string_calldata_dyn_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n let offset_1 := calldataload(add(headStart, 128))\n if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n let value5_1, value6_1 := abi_decode_array_string_calldata_dyn_calldata(add(headStart, offset_1), dataEnd)\n value5 := value5_1\n value6 := value6_1\n if slt(add(_1, not(159)), 64) { revert(0, 0) }\n value7 := add(headStart, 160)\n value8 := abi_decode_address(add(headStart, 224))\n value9 := abi_decode_address(add(headStart, 256))\n }\n function abi_decode_tuple_t_struct$_CredentialProof_$16133_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let offset := calldataload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if slt(sub(dataEnd, _1), 64) { revert(0, 0) }\n let value := allocate_memory_4237()\n let offset_1 := calldataload(_1)\n if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n mstore(value, abi_decode_bytes(add(_1, offset_1), dataEnd))\n let offset_2 := calldataload(add(_1, 32))\n if gt(offset_2, 0xffffffffffffffff) { revert(0, 0) }\n mstore(add(value, 32), abi_decode_bytes(add(_1, offset_2), dataEnd))\n value0 := value\n let offset_3 := calldataload(add(headStart, 32))\n if gt(offset_3, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset_3), dataEnd)\n }\n function abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint64__to_t_uint256_t_uint64__fromStack_library_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n }\n function abi_decode_bool_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_array_uint256_dyn_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := mload(offset)\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n let _1 := shl(5, length)\n let dst := allocate_memory(add(_1, 0x20))\n let array_1 := dst\n mstore(dst, length)\n dst := add(dst, 0x20)\n let srcEnd := add(add(offset, _1), 0x20)\n if gt(srcEnd, end) { revert(0, 0) }\n let src := add(offset, 0x20)\n for { } lt(src, srcEnd) { src := add(src, 0x20) }\n {\n let value := 0\n value := mload(src)\n mstore(dst, value)\n dst := add(dst, 0x20)\n }\n array := array_1\n }\n function abi_decode_struct_Proof_fromMemory(headStart, end) -> value\n {\n if slt(sub(end, headStart), 0x0100) { revert(0, 0) }\n value := allocate_memory_4238()\n let value_1 := 0\n value_1 := mload(headStart)\n mstore(value, value_1)\n mstore(add(value, 32), abi_decode_bool_fromMemory(add(headStart, 32)))\n let offset := mload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n mstore(add(value, 64), abi_decode_array_uint256_dyn_fromMemory(add(headStart, offset), end))\n let value_2 := 0\n value_2 := mload(add(headStart, 96))\n mstore(add(value, 96), value_2)\n let value_3 := 0\n value_3 := mload(add(headStart, 128))\n mstore(add(value, 128), value_3)\n mstore(add(value, 160), abi_decode_bool_fromMemory(add(headStart, 160)))\n let value_4 := 0\n value_4 := mload(add(headStart, 192))\n mstore(add(value, 192), value_4)\n let value_5 := 0\n value_5 := mload(add(headStart, 224))\n mstore(add(value, 224), value_5)\n }\n function abi_decode_tuple_t_struct$_Proof_$2979_memory_ptrt_struct$_StateInfo_$1400_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n let _1 := sub(dataEnd, headStart)\n if slt(_1, 160) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_struct_Proof_fromMemory(add(headStart, offset), dataEnd)\n if slt(add(_1, not(31)), 0x80) { revert(0, 0) }\n let memPtr := 0\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 0x80)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n let value := 0\n value := mload(add(headStart, 32))\n mstore(memPtr, value)\n let value_1 := 0\n value_1 := mload(add(headStart, 64))\n mstore(add(memPtr, 32), value_1)\n let value_2 := 0\n value_2 := mload(add(headStart, 96))\n mstore(add(memPtr, 64), value_2)\n let value_3 := 0\n value_3 := mload(add(headStart, 0x80))\n mstore(add(memPtr, 96), value_3)\n value1 := memPtr\n }\n function abi_encode_tuple_t_struct$_Data_$1371_storage_ptr__to_t_uint256__fromStack_library_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := 0\n value := mload(headStart)\n value0 := value\n }\n function abi_encode_tuple_t_uint256_t_uint64__to_t_uint256_t_uint64__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n }\n function abi_decode_tuple_t_struct$_Proof_$2979_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_struct_Proof_fromMemory(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_library_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_address_t_address_t_uint256_t_bytes2__to_t_uint256_t_address_t_address_t_uint256_t_bytes2__fromStack_library_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), and(value4, shl(240, 65535)))\n }\n function abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint256__to_t_uint256_t_uint256__fromStack_library_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_string(value0, add(headStart, 32))\n }\n function abi_decode_bytes_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := mload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(length))\n mstore(array_1, length)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(offset, 0x20), add(array_1, 0x20), length)\n array := array_1\n }\n function abi_decode_tuple_t_bytes_memory_ptrt_bytes32t_bool_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_bytes_fromMemory(add(headStart, offset), dataEnd)\n value1 := mload(add(headStart, 32))\n value2 := abi_decode_bool_fromMemory(add(headStart, 64))\n }\n function abi_encode_tuple_t_stringliteral_2e5045ff73280aa8e8acd8c82710f23812497f87f7f576e2220a2ddd0d45eade__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), \"EIP712: Uninitialized\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_stringliteral_b95c2f31a6045566300565f2774af75c15f58eae84f1e4dafcb6cd16a89e425e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"Identity id mismatch\")\n tail := add(headStart, 96)\n }\n function abi_decode_tuple_t_struct$_Roots_$1390_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := slt(sub(dataEnd, headStart), 96)\n if _1 { revert(0, 0) }\n _1 := 0\n let memPtr := _1\n memPtr := mload(64)\n let newFreePtr := add(memPtr, 96)\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n let value := _1\n value := mload(headStart)\n mstore(memPtr, value)\n let value_1 := _1\n value_1 := mload(add(headStart, 32))\n mstore(add(memPtr, 32), value_1)\n let value_2 := _1\n value_2 := mload(add(headStart, 64))\n mstore(add(memPtr, 64), value_2)\n value0 := memPtr\n }\n function abi_encode_tuple_t_struct$_Data_$1371_storage_ptr_t_uint64_t_uint256__to_t_uint256_t_uint64_t_uint256__fromStack_library_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xffffffffffffffff))\n mstore(add(headStart, 64), value2)\n }\n function abi_decode_tuple_t_bytes2(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_bytes2(headStart)\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_decode_array_uint256_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let size := 0\n let _1 := 0\n _1 := 0\n size := 64\n let dst := allocate_memory(64)\n let array_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 let value := 0\n value := mload(src)\n mstore(dst, value)\n dst := add(dst, 0x20)\n }\n array := array_1\n }\n function abi_decode_tuple_t_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$2_memory_ptrt_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptrt_array$_t_uint256_$2_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 288) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value0 := abi_decode_array_uint256_dyn_fromMemory(add(headStart, offset), dataEnd)\n value1 := abi_decode_array_uint256_fromMemory(add(headStart, 32), dataEnd)\n if iszero(slt(add(headStart, 127), dataEnd)) { revert(0, 0) }\n let size := 0\n let _1 := 0\n _1 := 0\n size := 64\n let dst := allocate_memory(64)\n let array := dst\n let srcEnd := add(headStart, 224)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(headStart, 96)\n for { } lt(src, srcEnd) { src := add(src, size) }\n {\n mstore(dst, abi_decode_array_uint256_fromMemory(src, dataEnd))\n dst := add(dst, 32)\n }\n value2 := array\n value3 := abi_decode_array_uint256_fromMemory(srcEnd, dataEnd)\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function abi_decode_tuple_t_struct$_PassportSignatureProof_$16128_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n let _2 := sub(dataEnd, _1)\n if slt(_2, 0x60) { revert(0, 0) }\n let value := allocate_memory_4237()\n if slt(_2, 0x40) { revert(0, 0) }\n let value_1 := allocate_memory_4237()\n let value_2 := 0\n value_2 := mload(_1)\n mstore(value_1, value_2)\n let value_3 := 0\n value_3 := mload(add(_1, 32))\n mstore(add(value_1, 32), value_3)\n mstore(value, value_1)\n let offset_1 := mload(add(_1, 0x40))\n if gt(offset_1, 0xffffffffffffffff) { revert(0, 0) }\n mstore(add(value, 32), abi_decode_bytes_fromMemory(add(_1, offset_1), dataEnd))\n value0 := value\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length\n {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, add(sub(calldatasize(), base_ref), not(30)))) { revert(0, 0) }\n let addr_1 := add(base_ref, rel_offset_of_tail)\n length := calldataload(addr_1)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr_1, 0x20)\n if sgt(addr, sub(calldatasize(), length)) { revert(0, 0) }\n }\n function abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, 0)\n end := _1\n }\n function abi_encode_tuple_t_string_calldata_ptr_t_address__to_t_string_memory_ptr_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, 64)\n mstore(add(headStart, 64), value1)\n calldatacopy(add(headStart, 96), value0, value1)\n mstore(add(add(headStart, value1), 96), 0)\n tail := add(add(headStart, and(add(value1, 31), not(31))), 96)\n mstore(add(headStart, 0x20), and(value2, sub(shl(160, 1), 1)))\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n mstore(0, array)\n let data := keccak256(0, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _1 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _1) { start := add(start, 1) }\n { sstore(start, 0) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n srcOffset := 0x20\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 0x20)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_array_uint256(value, pos)\n {\n pos := pos\n let srcPtr := value\n let i := 0\n for { } lt(i, 0x02) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, 0x20)\n srcPtr := add(srcPtr, 0x20)\n }\n }\n function abi_encode_tuple_t_array$_t_uint256_$2_memory_ptr_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_t_array$_t_uint256_$2_memory_ptr_t_array$_t_uint256_$8_memory_ptr__to_t_array$_t_uint256_$2_memory_ptr_t_array$_t_array$_t_uint256_$2_memory_ptr_$2_memory_ptr_t_array$_t_uint256_$2_memory_ptr_t_array$_t_uint256_$8_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 512)\n abi_encode_array_uint256(value0, headStart)\n let pos := add(headStart, 64)\n pos := pos\n let srcPtr := value1\n let i := 0\n for { } lt(i, 0x02) { i := add(i, 1) }\n {\n abi_encode_array_uint256(mload(srcPtr), pos)\n pos := add(pos, 64)\n srcPtr := add(srcPtr, 0x20)\n }\n abi_encode_array_uint256(value2, add(headStart, 192))\n let pos_1 := add(headStart, 256)\n pos_1 := pos_1\n let srcPtr_1 := value3\n let i_1 := 0\n for { } lt(i_1, 0x08) { i_1 := add(i_1, 1) }\n {\n mstore(pos_1, mload(srcPtr_1))\n pos_1 := add(pos_1, 0x20)\n srcPtr_1 := add(srcPtr_1, 0x20)\n }\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_bool_fromMemory(headStart)\n }\n function abi_encode_tuple_t_bytes32_t_uint256_t_uint256__to_t_bytes32_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum) { panic_error_0x11() }\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function abi_encode_tuple_t_uint64__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__to_t_bytes32_t_bytes32_t_bytes32_t_uint256_t_address__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), and(value4, sub(shl(160, 1), 1)))\n }\n}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": { + "@iden3/contracts/lib/IdentityLib.sol": { + "IdentityLib": [ + { + "length": 20, + "start": 2089 + }, + { + "length": 20, + "start": 2230 + }, + { + "length": 20, + "start": 2825 + }, + { + "length": 20, + "start": 3060 + }, + { + "length": 20, + "start": 3295 + }, + { + "length": 20, + "start": 3381 + }, + { + "length": 20, + "start": 3490 + }, + { + "length": 20, + "start": 3661 + }, + { + "length": 20, + "start": 4846 + }, + { + "length": 20, + "start": 5041 + }, + { + "length": 20, + "start": 5439 + }, + { + "length": 20, + "start": 5518 + }, + { + "length": 20, + "start": 5625 + }, + { + "length": 20, + "start": 5857 + }, + { + "length": 20, + "start": 5943 + }, + { + "length": 20, + "start": 6048 + }, + { + "length": 20, + "start": 7390 + }, + { + "length": 20, + "start": 7498 + }, + { + "length": 20, + "start": 10986 + }, + { + "length": 20, + "start": 11224 + }, + { + "length": 20, + "start": 11332 + } + ] + } + }, + "object": "608060405234801561001057600080fd5b50600436106103825760003560e01c806384b0196e116101de578063badf055d1161010f578063e26ecb0b116100ad578063f2fde38b1161007c578063f2fde38b14610776578063f84c7c1e14610789578063fa78d88c14610791578063ffa1ad74146107a457600080fd5b8063e26ecb0b14610735578063e30c397814610748578063e633436f14610750578063e7c25d231461076357600080fd5b8063c6365a3b116100e9578063c6365a3b146106f6578063da68a0b1146106fe578063da93654014610706578063e23a845a1461072d57600080fd5b8063badf055d146106bd578063c0cc365d146106d0578063c1e32733146106e357600080fd5b8063aad729211161017c578063b354c2d811610156578063b354c2d81461064f578063b37feda414610662578063b57a40cb14610675578063b8db68711461068857600080fd5b8063aad72921146105f8578063acb8cc491461060b578063b1af19e71461063c57600080fd5b80638da5cb5b116101b85780638da5cb5b146105b557806394cf795e146105d55780639674cfa4146105dd578063a635c785146105e557600080fd5b806384b0196e146105745780638a03c1661461058f5780638a684553146105a257600080fd5b80632e798ec1116102b8578063523b813611610256578063715018a611610230578063715018a61461054957806376dfc7761461055157806376ee7b491461055957806379ba50971461056c57600080fd5b8063523b8136146105265780635d1ca6311461052e57806370f4f9df1461053657600080fd5b80633df432fc116102925780633df432fc146104f15780633f0c6648146104f9578063406e8b4c14610500578063443d75341461051357600080fd5b80632e798ec1146104c3578063310d0d5b146104d65780633d59ec60146104e957600080fd5b80631f0f4f7a116103255780632afab62f116102ff5780632afab62f146104805780632c1d3204146104935780632d26b3091461049b5780632d5c4f25146104b057600080fd5b80631f0f4f7a1461043a57806323aafe3b1461044d578063264850631461046057600080fd5b806305417f791161036157806305417f79146103ea5780630e316ab7146103f2578063110c96a7146104075780631b87278d1461042757600080fd5b806233058d1461038757806301c85c77146103b157806301ffc9a7146103c7575b600080fd5b61039a610395366004613087565b6107c8565b6040516103a8929190613144565b60405180910390f35b6103b9610895565b6040519081526020016103a8565b6103da6103d5366004613187565b61091a565b60405190151581526020016103a8565b6103b9610951565b6104056104003660046131d1565b610964565b005b61041a6104153660046131ee565b610985565b6040516103a8919061321a565b610405610435366004613267565b6109b0565b6104056104483660046131d1565b610a83565b61040561045b366004613267565b610aa0565b61047361046e366004613087565b610ad3565b6040516103a89190613280565b6103da61048e366004613267565b610b6c565b6103b9610b97565b6104a3610baa565b6040516103a89190613293565b6104736104be3660046132df565b610bbf565b6104056104d1366004613267565b610c5e565b6104736104e43660046132df565b610caa565b6103b9610d01565b6103b9610d14565b60286103b9565b61040561050e366004613319565b610d57565b61039a610521366004613267565b610df4565b6103b9610e6f565b6103b9610e82565b6104056105443660046131d1565b610e92565b610405610ef4565b6103b9610f08565b610405610567366004613456565b610f1b565b61040561109e565b61057c6110e6565b6040516103a897969594939291906134da565b61040561059d366004613267565b611192565b6104056105b03660046131d1565b6111a4565b6105bd6111d9565b6040516001600160a01b0390911681526020016103a8565b6104a361120e565b6103b9611223565b6105bd6105f3366004613456565b611236565b61041a610606366004613572565b611270565b61062f604051806040016040528060058152602001640312e302e360dc1b81525081565b6040516103a891906135a7565b61040561064a366004613267565b611489565b61040561065d366004613267565b6114a1565b61039a610670366004613267565b6114e6565b610473610683366004613267565b611561565b61069b610696366004613267565b6115af565b60408051825181526020808401519082015291810151908201526060016103a8565b6104056106cb3660046135fe565b611657565b6104056106de366004613267565b611671565b6104736106f1366004613267565b6116b3565b6103b9611703565b6103b9611716565b6103b97f0d2a15c3140485b6db2a8c0f755486294daaae1eabcdd518f6beaf8e4ab4d83481565b6103b9611759565b61047361074336600461366d565b611763565b6105bd6117c2565b61040561075e366004613697565b6117eb565b610405610771366004613765565b6119ba565b6104056107843660046131d1565b611b65565b6103da611bea565b6103da61079f366004613267565b611c00565b61062f60405180604001604052806005815260200164312e302e3360d81b81525081565b6107d0612f96565b6107fb6040518060800160405280600081526020016000815260200160008152602001600081525090565b610803611c21565b604051631f17004d60e31b815260048101919091526001600160401b038416602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__9063f8b80268906044015b600060405180830381865af4158015610864573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261088c919081019061395c565b91509150915091565b600061089f611c21565b60405163765c2c6160e01b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__9063765c2c61906024015b602060405180830381865af41580156108f1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109159190613a00565b905090565b60006001600160e01b03198216635d1ca63160e01b148061094b57506301ffc9a760e01b6001600160e01b03198316145b92915050565b600061095b611c45565b600b0154905090565b61096c611c69565b61098181610978611c45565b60040190611c9b565b5050565b61098d612fdf565b6000610997611c21565b6001015490506109a8848285611270565b949350505050565b6109b8611c69565b60006109c2611c45565b6000838152600a820160205260408120549192506001600160401b0390911690819003610a0a57604051635204776960e01b8152600481018490526024015b60405180910390fd5b610a1381611cb0565b6000838152600a8301602052604090819020805467ffffffffffffffff19169055517f725d312746be14d750d0493aa7960a5aca3c30f98f74b0e07afc8f1a36b355c290610a7690859084909182526001600160401b0316602082015260400190565b60405180910390a1505050565b610a8b611c69565b61098181610a97611c45565b60080190611c9b565b610aa8611c69565b6000610ab2611c45565b60009283526007016020526040909120805460ff1916911515919091179055565b610adb612f96565b610ae3611c21565b604051637d0aba4f60e01b815260048101919091526001600160401b038316602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__90637d0aba4f906044015b600060405180830381865af4158015610b44573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261094b9190810190613a19565b600080610b77611c45565b6000938452600a01602052505060409020546001600160401b0316151590565b6000610ba1611c45565b60010154905090565b6060610915610bb7611c45565b600801611d9a565b610bc7612f96565b610bcf611c21565b60405163d55da6a360e01b81526004810191909152602481018490526044810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063d55da6a3906064015b600060405180830381865af4158015610c2f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c579190810190613a19565b9392505050565b610c66611c69565b80610c6f611c45565b600201556040518181527f73293f7b4f3fe4eeb423f647c95d70844d99749a80c8a93aa4c3d4996a63bc4a906020015b60405180910390a150565b610cb2612f96565b610cba611c21565b604051636ac0c5c760e11b81526004810191909152602481018490526044810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063d5818b8e90606401610c12565b6000610d0b611c21565b60010154919050565b6000610d1e611c21565b604051631b8bf99b60e21b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90636e2fe66c906024016108d4565b610d5f611c21565b6040516359a6069160e01b815260048101919091526001600160a01b0383166024820152306044820152602860648201526001600160f01b03198216608482015273__$068aad146bf104111ba65c4a1de2cd0e23$__906359a606919060a4015b60006040518083038186803b158015610dd857600080fd5b505af4158015610dec573d6000803e3d6000fd5b505050505050565b610dfc612f96565b610e276040518060800160405280600081526020016000815260200160008152602001600081525090565b610e2f611c21565b60405163a3018d7960e01b815260048101919091526024810184905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063a3018d7990604401610847565b6000610e79611c21565b609a0154919050565b6000610e8c611c21565b54919050565b610e9a611c69565b6000610ea4611c45565b9050610eb36008820183611da7565b506040516001600160a01b03831681527f0a33c33ca5c931f5cbdaa4137c8b7f3ea632aa05390959f913c410776733061b9060200160405180910390a15050565b610efc611c69565b610f066000611dbc565b565b6000610f12611c45565b60020154905090565b610f23611df4565b6000610f2d611c45565b6006810154604051634cc3a4a560e01b8152919250600091829182916001600160a01b0390911690634cc3a4a590610f699088906004016135a7565b6000604051808303816000875af1158015610f88573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fb09190810190613a92565b925092509250610fbf82611c00565b610fdf57604051638338dba560e01b815260048101839052602401610a01565b80610ffd5760405163bd8ba84d60e01b815260040160405180910390fd5b6014835110156110205760405163025198d560e31b815260040160405180910390fd5b60148301516001600160a01b03811661104c57604051634501a91960e01b815260040160405180910390fd5b6110596004860182611da7565b506040516001600160a01b03821681527f47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f249060200160405180910390a1505050505050565b33806110a86117c2565b6001600160a01b0316146110da5760405163118cdaa760e01b81526001600160a01b0382166004820152602401610a01565b6110e381611dbc565b50565b60006060808280808381600080516020614059833981519152805490915015801561111357506001810154155b6111575760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610a01565b61115f611e28565b611167611eeb565b60408051600080825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b61119a611c69565b6001610ab2611c45565b6111ac611c69565b806111b5611c45565b60060180546001600160a01b0319166001600160a01b039290921691909117905550565b6000807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c1993005b546001600160a01b031692915050565b606061091561121b611c45565b600401611d9a565b600061122d611c21565b609b0154919050565b6000611240611c45565b600301826040516112519190613adf565b908152604051908190036020019020546001600160a01b031692915050565b611278612fdf565b611280611c21565b5484146112c65760405162461bcd60e51b8152602060048201526014602482015273092c8cadce8d2e8f240d2c840dad2e6dac2e8c6d60631b6044820152606401610a01565b60006112d0611c21565b604051630b1a9cd360e01b815260048101919091526024810185905273__$068aad146bf104111ba65c4a1de2cd0e23$__90630b1a9cd390604401606060405180830381865af4158015611328573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134c9190613afb565b604080516080810182528681528251602080830191909152830151818301529082015160608201529091506000611381611c21565b6020840151604051630b2bcd1b60e11b815260048101929092526001600160401b0387166024830152604482015273__$068aad146bf104111ba65c4a1de2cd0e23$__906316579a3690606401600060405180830381865af41580156113eb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114139190810190613a19565b6040805161010081018252825181526020808401511515818301528284015182840152606080850151908301526080808501519083015260a08085015115159083015260c0808501519083015260e093840151938201939093528151808301909252938152908101929092525095945050505050565b611491611c69565b8061149a611c45565b600b015550565b6114a9611c69565b806114b2611c45565b600101556040518181527ff007a02ba428e63fa98b65269e70f9a9db847e0a839049a2f31f06928226773490602001610c9f565b6114ee612f96565b6115196040518060800160405280600081526020016000815260200160008152602001600081525090565b611521611c21565b604051636ad1d8a760e11b815260048101919091526024810184905273__$068aad146bf104111ba65c4a1de2cd0e23$__9063d5a3b14e90604401610847565b611569612f96565b611571611c21565b604051620cf08960e41b815260048101919091526024810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__9062cf089090604401610b27565b6115d360405180606001604052806000815260200160008152602001600081525090565b6115db611c21565b604051630b1a9cd360e01b815260048101919091526024810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__90630b1a9cd390604401606060405180830381865af4158015611633573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061094b9190613afb565b61165f611c69565b61166b84848484611f2a565b50505050565b611679611c69565b80611682611c45565b556040518181527f7f7f3071c3c286700c199acae2fe071beb4a63dae1afff85186fa75d18090ae890602001610c9f565b6116bb612f96565b6116c3611c21565b6040516397ac539160e01b815260048101919091526024810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__906397ac539190604401610b27565b600061170d611c21565b609c0154919050565b6000611720611c21565b604051631e75e7f360e01b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90631e75e7f3906024016108d4565b6000610e8c611c45565b61176b612f96565b611773611c21565b604051630b2bcd1b60e11b815260048101919091526001600160401b03841660248201526044810183905273__$068aad146bf104111ba65c4a1de2cd0e23$__906316579a3690606401610c12565b6000807f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c006111fe565b60006117f5612082565b805490915060ff600160401b82041615906001600160401b031660008115801561181c5750825b90506000826001600160401b031660011480156118385750303b155b905081158015611846575080155b156118645760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561188e57845460ff60401b1916600160401b1785555b6118ae61189e60208a018a6131d1565b61050e60408b0160208c01613b5a565b6118b7876120ab565b60006118c1611c45565b90508f81600001819055508e81600201819055508d8160010181905550868160060160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506119566040518060400160405280601081526020016f50617373706f7274497373756572563160801b815250604051806040016040528060058152602001640312e302e360dc1b8152506120bc565b6119628d8d8d8d611f2a565b5083156119a957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050505050565b8151516000036119e0578151604051631d44e47160e21b8152610a0191906004016135a7565b60008060008085602001518060200190518101906119fe9190613bbc565b93509350935093506000604051806080016040528085815260200184815260200183815260200160405180610100016040528088600081518110611a4457611a44613c76565b6020026020010151815260200188600181518110611a6457611a64613c76565b6020026020010151815260200188600281518110611a8457611a84613c76565b6020026020010151815260200188600381518110611aa457611aa4613c76565b6020026020010151815260200188600481518110611ac457611ac4613c76565b6020026020010151815260200188600581518110611ae457611ae4613c76565b6020026020010151815260200188600681518110611b0457611b04613c76565b6020026020010151815260200188600781518110611b2457611b24613c76565b60200260200101518152508152509050600086806020019051810190611b4a9190613c8c565b9050611b5b886000015183836120ce565b5050505050505050565b611b6d611c69565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b0319166001600160a01b0383169081178255611bb16111d9565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a35050565b6000611bf4611c21565b6002015460ff16919050565b6000611c0a611c45565b600092835260070160205250604090205460ff1690565b7f3018a310c36c4f8228f09bf3b1822685cf0971daa8265a58ca807c4a4daba40090565b7f405d73f251ed6c997b1c097c46d2f830c946626e510c12346d80e7c5a4dad30090565b33611c726111d9565b6001600160a01b031614610f065760405163118cdaa760e01b8152336004820152602401610a01565b6000610c57836001600160a01b0384166120f0565b611cb8611c21565b604051638ad7195d60e01b815260048101919091526001600160401b038216602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__90638ad7195d9060440160006040518083038186803b158015611d1357600080fd5b505af4158015611d27573d6000803e3d6000fd5b50505050611d33611c21565b60405163175ba3e960e11b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90632eb747d29060240160006040518083038186803b158015611d7f57600080fd5b505af4158015611d93573d6000803e3d6000fd5b5050505050565b60606000610c57836121e3565b6000610c57836001600160a01b03841661223f565b7f237e158222e3e6968b72b9db0d8043aacf074ad9f650f0d1606b4d82ee432c0080546001600160a01b03191681556109818261228e565b611e0933611e00611c45565b600801906122ff565b610f0657604051631d83d27f60e01b8152336004820152602401610a01565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102805460609160008051602061405983398151915291611e6790613d2a565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9390613d2a565b8015611ee05780601f10611eb557610100808354040283529160200191611ee0565b820191906000526020600020905b815481529060010190602001808311611ec357829003601f168201915b505050505091505090565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d103805460609160008051602061405983398151915291611e6790613d2a565b6000611f34611c45565b9050838214611f60576040516355c5b3e360e11b81526004810185905260248101839052604401610a01565b60005b84811015610dec57838382818110611f7d57611f7d613c76565b9050602002016020810190611f9291906131d1565b82600301878784818110611fa857611fa8613c76565b9050602002810190611fba9190613d64565b604051611fc8929190613daa565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790557f5d864db8d88e9085fd5e7752a2094701e558355b75b561c00174d27aefd3e28986868381811061202a5761202a613c76565b905060200281019061203c9190613d64565b86868581811061204e5761204e613c76565b905060200201602081019061206391906131d1565b60405161207293929190613dba565b60405180910390a1600101611f63565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0061094b565b6120b3612321565b6110e381612346565b6120c4612321565b6109818282612378565b6120d883836123d9565b6120e1816124d1565b6120eb8282612545565b505050565b600081815260018301602052604081205480156121d9576000612114600183613e11565b855490915060009061212890600190613e11565b905080821461218d57600086600001828154811061214857612148613c76565b906000526020600020015490508087600001848154811061216b5761216b613c76565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061219e5761219e613e24565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061094b565b600091505061094b565b60608160000180548060200260200160405190810160405280929190818152602001828054801561223357602002820191906000526020600020905b81548152602001906001019080831161221f575b50505050509050919050565b60008181526001830160205260408120546122865750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561094b565b50600061094b565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6001600160a01b03811660009081526001830160205260408120541515610c57565b6123296125b4565b610f0657604051631afcd79f60e31b815260040160405180910390fd5b61234e612321565b6001600160a01b0381166110da57604051631e4fbdf760e01b815260006004820152602401610a01565b612380612321565b6000805160206140598339815191527fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1026123ba8482613e81565b50600381016123c98382613e81565b5060008082556001909101555050565b60006123e3611c45565b9050600081600301846040516123f99190613adf565b908152604051908190036020019020546001600160a01b0316905080612432576040516301dcf1ab60e31b815260040160405180910390fd5b806001600160a01b031663c9219a7a84600001518560200151866040015187606001516040518563ffffffff1660e01b81526004016124749493929190613f62565b602060405180830381865afa158015612491573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b59190613fe7565b61166b576040516281723b60e21b815260040160405180910390fd5b6000806124e6836000015184602001516125ce565b91509150816125085760405163df2b56ff60e01b815260040160405180910390fd5b61251d81612514611c45565b600401906122ff565b6120eb57604051631432861160e31b81526001600160a01b0382166004820152602401610a01565b600061255083612678565b905060008260000151602001519050612594826000015183602001518460400151856060015186608001518760a00151896000015160000151888a60e001516127e9565b6125a2818360c00151612a5a565b61166b82600001518360200151612bab565b60006125be612082565b54600160401b900460ff16919050565b600080600061263f7f0d2a15c3140485b6db2a8c0f755486294daaae1eabcdd518f6beaf8e4ab4d83486600001518760200151604051602001612624939291909283526020830191909152604082015260600190565b60405160208183030381529060405280519060200120612c66565b905060008061264e8387612c93565b509092509050600081600381111561266857612668614002565b14945090925050505b9250929050565b6126c960405180610100016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160401b03168152602001600081525090565b60405180610100016040528083606001516000600881106126ec576126ec613c76565b60200201518152602001836060015160016008811061270d5761270d613c76565b60200201518152602001836060015160046008811061272e5761272e613c76565b60200201518152602001836060015160036008811061274f5761274f613c76565b60200201518152602001836060015160056008811061277057612770613c76565b60200201518152602001836060015160026008811061279157612791613c76565b6020020151815260200183606001516007600881106127b2576127b2613c76565b60200201516001600160401b0316815260200183606001516006600881106127dc576127dc613c76565b6020020151905292915050565b60006127f3611c45565b90508960000361281957604051631b1aad8760e11b8152600481018b9052602401610a01565b8860000361283d57604051634bdc991b60e11b8152600481018a9052602401610a01565b8060010154861461287157600181015460405163e748379160e01b8152610a01918891600401918252602082015260400190565b84841461289e576040516001621d0d8360e21b031981526004810185905260248101869052604401610a01565b60006207a1208811156128c0576128b988630121eac0614018565b90506128d1565b6128ce886301312d00614018565b90505b60008060006128ee8560000154426128e99190613e11565b612ce0565b9194509250905060008161290384606461402b565b61290f8661271061402b565b6129199190614018565b6129239190614018565b90508481111561294957604051635d5e30bf60e01b8152600481018d9052602401610a01565b60008060006129618960020154426128e99190614018565b9194509250905060008161297684606461402b565b6129828661271061402b565b61298c9190614018565b6129969190614018565b9050808911156129bd578f6040516353f3b14160e01b8152600401610a0191815260200190565b50505050505050504282600001548a6129d69190614018565b10156129f75760405162bd09f160e11b8152600481018a9052602401610a01565b6002820154612a069042614018565b891115612a295760405163d818833560e01b8152600481018a9052602401610a01565b8282600b015414612a4d5760405163fe0c887b60e01b815260040160405180910390fd5b5050505050505050505050565b806001600160401b0316600003612a8f576040516337f969b360e11b81526001600160401b0382166004820152602401610a01565b6000612a99611c45565b6000848152600a820160205260409020549091506001600160401b03168015612b7a57612ac4611c21565b604051638ad7195d60e01b815260048101919091526001600160401b038216602482015273__$068aad146bf104111ba65c4a1de2cd0e23$__90638ad7195d9060440160006040518083038186803b158015612b1f57600080fd5b505af4158015612b33573d6000803e3d6000fd5b5050604080518781526001600160401b03851660208201527f725d312746be14d750d0493aa7960a5aca3c30f98f74b0e07afc8f1a36b355c2935001905060405180910390a15b506000928352600a016020526040909120805467ffffffffffffffff19166001600160401b03909216919091179055565b612bb3611c21565b6040516306fb157560e01b81526004810191909152602481018390526044810182905273__$068aad146bf104111ba65c4a1de2cd0e23$__906306fb15759060640160006040518083038186803b158015612c0d57600080fd5b505af4158015612c21573d6000803e3d6000fd5b50505050612c2d611c21565b60405163175ba3e960e11b8152600481019190915273__$068aad146bf104111ba65c4a1de2cd0e23$__90632eb747d290602401610dc0565b600061094b612c73612cff565b8360405161190160f01b8152600281019290925260228201526042902090565b60008060008351604103612ccd5760208401516040850151606086015160001a612cbf88828585612d09565b955095509550505050612cd9565b50508151600091506002905b9250925092565b60008080612cf2620151808504612dd8565b9196909550909350915050565b6000610915612e74565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115612d445750600091506003905082612dce565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612d98573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116612dc457506000925060019150829050612dce565b9250600091508190505b9450945094915050565b60008080836226496581018262023ab1600483020590506004600362023ab18302010590910390600062164b09610fa0600185010205905060046105b58202058303601f019250600061098f8460500281612e3557612e35614042565b0590506000605061098f83020585039050600b820560301994909401606402929092018301996002600c90940290910392909201975095509350505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612e9f612ee8565b612ea7612f52565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600060008051602061405983398151915281612f02611e28565b805190915015612f1a57805160209091012092915050565b81548015612f29579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b600060008051602061405983398151915281612f6c611eeb565b805190915015612f8457805160209091012092915050565b60018201548015612f29579392505050565b6040518061010001604052806000815260200160001515815260200160608152602001600081526020016000815260200160001515815260200160008152602001600081525090565b60405180604001604052806130156040518060800160405280600081526020016000815260200160008152602001600081525090565b81526020016130666040518061010001604052806000815260200160001515815260200160608152602001600081526020016000815260200160001515815260200160008152602001600081525090565b905290565b80356001600160401b038116811461308257600080fd5b919050565b60006020828403121561309957600080fd5b610c578261306b565b805182526020808201511515818401526040808301516101009185018290528051918501829052600092019082906101208601905b808310156130fa57835182526020820191506020840193506001830192506130d7565b50606085015160608701526080850151608087015260a0850151925061312460a087018415159052565b60c085015160c087015260e085015160e087015280935050505092915050565b60a08152600061315760a08301856130a2565b9050610c576020830184805182526020810151602083015260408101516040830152606081015160608301525050565b60006020828403121561319957600080fd5b81356001600160e01b031981168114610c5757600080fd5b6001600160a01b03811681146110e357600080fd5b8035613082816131b1565b6000602082840312156131e357600080fd5b8135610c57816131b1565b6000806040838503121561320157600080fd5b823591506132116020840161306b565b90509250929050565b6020815261324d602082018351805182526020810151602083015260408101516040830152606081015160608301525050565b6000602083015160a0808401526109a860c08401826130a2565b60006020828403121561327957600080fd5b5035919050565b602081526000610c5760208301846130a2565b602080825282518282018190526000918401906040840190835b818110156132d45783516001600160a01b03168352602093840193909201916001016132ad565b509095945050505050565b600080604083850312156132f257600080fd5b50508035926020909101359150565b80356001600160f01b03198116811461308257600080fd5b6000806040838503121561332c57600080fd5b8235613337816131b1565b915061321160208401613301565b634e487b7160e01b600052604160045260246000fd5b604080519081016001600160401b038111828210171561337d5761337d613345565b60405290565b60405161010081016001600160401b038111828210171561337d5761337d613345565b604051601f8201601f191681016001600160401b03811182821017156133ce576133ce613345565b604052919050565b60006001600160401b038211156133ef576133ef613345565b50601f01601f191660200190565b600082601f83011261340e57600080fd5b8135602083016000613427613422846133d6565b6133a6565b905082815285838301111561343b57600080fd5b82826020830137600092810160200192909252509392505050565b60006020828403121561346857600080fd5b81356001600160401b0381111561347e57600080fd5b6109a8848285016133fd565b60005b838110156134a557818101518382015260200161348d565b50506000910152565b600081518084526134c681602086016020860161348a565b601f01601f19169290920160200192915050565b60ff60f81b8816815260e0602082015260006134f960e08301896134ae565b828103604084015261350b81896134ae565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501528451808252602080870193509091019060005b81811015613561578351835260209384019390920191600101613543565b50909b9a5050505050505050505050565b60008060006060848603121561358757600080fd5b833592506020840135915061359e6040850161306b565b90509250925092565b602081526000610c5760208301846134ae565b60008083601f8401126135cc57600080fd5b5081356001600160401b038111156135e357600080fd5b6020830191508360208260051b850101111561267157600080fd5b6000806000806040858703121561361457600080fd5b84356001600160401b0381111561362a57600080fd5b613636878288016135ba565b90955093505060208501356001600160401b0381111561365557600080fd5b613661878288016135ba565b95989497509550505050565b6000806040838503121561368057600080fd5b6136898361306b565b946020939093013593505050565b6000806000806000806000806000808a8c036101208112156136b857600080fd5b8b359a5060208c0135995060408c0135985060608c01356001600160401b038111156136e357600080fd5b6136ef8e828f016135ba565b90995097505060808c01356001600160401b0381111561370e57600080fd5b61371a8e828f016135ba565b9097509550506040609f198201121561373257600080fd5b5060a08b01925061374560e08c016131c6565b91506137546101008c016131c6565b90509295989b9194979a5092959850565b6000806040838503121561377857600080fd5b82356001600160401b0381111561378e57600080fd5b8301604081860312156137a057600080fd5b6137a861335b565b81356001600160401b038111156137be57600080fd5b6137ca878285016133fd565b82525060208201356001600160401b038111156137e657600080fd5b6137f2878285016133fd565b602083015250809350505060208301356001600160401b0381111561381657600080fd5b613822858286016133fd565b9150509250929050565b8051801515811461308257600080fd5b600082601f83011261384d57600080fd5b81516001600160401b0381111561386657613866613345565b8060051b613876602082016133a6565b9182526020818501810192908101908684111561389257600080fd5b6020860192505b838310156138b4578251825260209283019290910190613899565b9695505050505050565b600061010082840312156138d157600080fd5b6138d9613383565b8251815290506138eb6020830161382c565b602082015260408201516001600160401b0381111561390957600080fd5b6139158482850161383c565b604083015250606082810151908201526080808301519082015261393b60a0830161382c565b60a082015260c0828101519082015260e09182015191810191909152919050565b60008082840360a081121561397057600080fd5b83516001600160401b0381111561398657600080fd5b613992868287016138be565b9350506080601f19820112156139a757600080fd5b50604051608081016001600160401b03811182821017156139ca576139ca613345565b60409081526020858101518352858201519083015260608086015191830191909152608090940151938101939093525092909150565b600060208284031215613a1257600080fd5b5051919050565b600060208284031215613a2b57600080fd5b81516001600160401b03811115613a4157600080fd5b6109a8848285016138be565b600082601f830112613a5e57600080fd5b8151613a6c613422826133d6565b818152846020838601011115613a8157600080fd5b6109a882602083016020870161348a565b600080600060608486031215613aa757600080fd5b83516001600160401b03811115613abd57600080fd5b613ac986828701613a4d565b9350506020840151915061359e6040850161382c565b60008251613af181846020870161348a565b9190910192915050565b60006060828403128015613b0e57600080fd5b50604051600090606081016001600160401b0381118282101715613b3457613b34613345565b604090815284518252602080860151908301529384015193810193909352509092915050565b600060208284031215613b6c57600080fd5b610c5782613301565b600082601f830112613b8657600080fd5b613b9060406133a6565b806040840185811115613ba257600080fd5b845b818110156132d4578051845260209384019301613ba4565b6000806000806101208587031215613bd357600080fd5b84516001600160401b03811115613be957600080fd5b613bf58782880161383c565b945050613c058660208701613b75565b925085607f860112613c1657600080fd5b6040613c21816133a6565b8060e0880189811115613c3357600080fd5b606089015b81811015613c5957613c4a8b82613b75565b84526020909301928401613c38565b50819550613c678a82613b75565b94505050505092959194509250565b634e487b7160e01b600052603260045260246000fd5b600060208284031215613c9e57600080fd5b81516001600160401b03811115613cb457600080fd5b82018084036060811215613cc757600080fd5b613ccf61335b565b6040821215613cdd57600080fd5b613ce561335b565b83518152602080850151908201528152604083015191506001600160401b03821115613d1057600080fd5b613d1c86838501613a4d565b602082015295945050505050565b600181811c90821680613d3e57607f821691505b602082108103613d5e57634e487b7160e01b600052602260045260246000fd5b50919050565b6000808335601e19843603018112613d7b57600080fd5b8301803591506001600160401b03821115613d9557600080fd5b60200191503681900382131561267157600080fd5b8183823760009101908152919050565b6040815282604082015282846060830137600060608483018101919091526001600160a01b03929092166020820152601f909201601f191690910101919050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561094b5761094b613dfb565b634e487b7160e01b600052603160045260246000fd5b601f8211156120eb57806000526020600020601f840160051c81016020851015613e615750805b601f840160051c820191505b81811015611d935760008155600101613e6d565b81516001600160401b03811115613e9a57613e9a613345565b613eae81613ea88454613d2a565b84613e3a565b6020601f821160018114613ee25760008315613eca5750848201515b600019600385901b1c1916600184901b178455611d93565b600084815260208120601f198516915b82811015613f125787850151825560209485019460019092019101613ef2565b5084821015613f305786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b8060005b600281101561166b578151845260209384019390910190600101613f43565b6102008101613f718287613f3f565b604082018560005b6002811015613fa357613f8d838351613f3f565b6040929092019160209190910190600101613f79565b505050613fb360c0830185613f3f565b61010082018360005b6008811015613fdb578151835260209283019290910190600101613fbc565b50505095945050505050565b600060208284031215613ff957600080fd5b610c578261382c565b634e487b7160e01b600052602160045260246000fd5b8082018082111561094b5761094b613dfb565b808202811582820484141761094b5761094b613dfb565b634e487b7160e01b600052601260045260246000fdfea16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100a2646970667358221220c81406f600bcfed96da6855cee7d976ee887c848f4d28d49de3c547bbc54d5d664736f6c634300081b0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x382 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x84B0196E GT PUSH2 0x1DE JUMPI DUP1 PUSH4 0xBADF055D GT PUSH2 0x10F JUMPI DUP1 PUSH4 0xE26ECB0B GT PUSH2 0xAD JUMPI DUP1 PUSH4 0xF2FDE38B GT PUSH2 0x7C JUMPI DUP1 PUSH4 0xF2FDE38B EQ PUSH2 0x776 JUMPI DUP1 PUSH4 0xF84C7C1E EQ PUSH2 0x789 JUMPI DUP1 PUSH4 0xFA78D88C EQ PUSH2 0x791 JUMPI DUP1 PUSH4 0xFFA1AD74 EQ PUSH2 0x7A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xE26ECB0B EQ PUSH2 0x735 JUMPI DUP1 PUSH4 0xE30C3978 EQ PUSH2 0x748 JUMPI DUP1 PUSH4 0xE633436F EQ PUSH2 0x750 JUMPI DUP1 PUSH4 0xE7C25D23 EQ PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xC6365A3B GT PUSH2 0xE9 JUMPI DUP1 PUSH4 0xC6365A3B EQ PUSH2 0x6F6 JUMPI DUP1 PUSH4 0xDA68A0B1 EQ PUSH2 0x6FE JUMPI DUP1 PUSH4 0xDA936540 EQ PUSH2 0x706 JUMPI DUP1 PUSH4 0xE23A845A EQ PUSH2 0x72D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xBADF055D EQ PUSH2 0x6BD JUMPI DUP1 PUSH4 0xC0CC365D EQ PUSH2 0x6D0 JUMPI DUP1 PUSH4 0xC1E32733 EQ PUSH2 0x6E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAAD72921 GT PUSH2 0x17C JUMPI DUP1 PUSH4 0xB354C2D8 GT PUSH2 0x156 JUMPI DUP1 PUSH4 0xB354C2D8 EQ PUSH2 0x64F JUMPI DUP1 PUSH4 0xB37FEDA4 EQ PUSH2 0x662 JUMPI DUP1 PUSH4 0xB57A40CB EQ PUSH2 0x675 JUMPI DUP1 PUSH4 0xB8DB6871 EQ PUSH2 0x688 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xAAD72921 EQ PUSH2 0x5F8 JUMPI DUP1 PUSH4 0xACB8CC49 EQ PUSH2 0x60B JUMPI DUP1 PUSH4 0xB1AF19E7 EQ PUSH2 0x63C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x8DA5CB5B GT PUSH2 0x1B8 JUMPI DUP1 PUSH4 0x8DA5CB5B EQ PUSH2 0x5B5 JUMPI DUP1 PUSH4 0x94CF795E EQ PUSH2 0x5D5 JUMPI DUP1 PUSH4 0x9674CFA4 EQ PUSH2 0x5DD JUMPI DUP1 PUSH4 0xA635C785 EQ PUSH2 0x5E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x84B0196E EQ PUSH2 0x574 JUMPI DUP1 PUSH4 0x8A03C166 EQ PUSH2 0x58F JUMPI DUP1 PUSH4 0x8A684553 EQ PUSH2 0x5A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2E798EC1 GT PUSH2 0x2B8 JUMPI DUP1 PUSH4 0x523B8136 GT PUSH2 0x256 JUMPI DUP1 PUSH4 0x715018A6 GT PUSH2 0x230 JUMPI DUP1 PUSH4 0x715018A6 EQ PUSH2 0x549 JUMPI DUP1 PUSH4 0x76DFC776 EQ PUSH2 0x551 JUMPI DUP1 PUSH4 0x76EE7B49 EQ PUSH2 0x559 JUMPI DUP1 PUSH4 0x79BA5097 EQ PUSH2 0x56C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x523B8136 EQ PUSH2 0x526 JUMPI DUP1 PUSH4 0x5D1CA631 EQ PUSH2 0x52E JUMPI DUP1 PUSH4 0x70F4F9DF EQ PUSH2 0x536 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x3DF432FC GT PUSH2 0x292 JUMPI DUP1 PUSH4 0x3DF432FC EQ PUSH2 0x4F1 JUMPI DUP1 PUSH4 0x3F0C6648 EQ PUSH2 0x4F9 JUMPI DUP1 PUSH4 0x406E8B4C EQ PUSH2 0x500 JUMPI DUP1 PUSH4 0x443D7534 EQ PUSH2 0x513 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x2E798EC1 EQ PUSH2 0x4C3 JUMPI DUP1 PUSH4 0x310D0D5B EQ PUSH2 0x4D6 JUMPI DUP1 PUSH4 0x3D59EC60 EQ PUSH2 0x4E9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1F0F4F7A GT PUSH2 0x325 JUMPI DUP1 PUSH4 0x2AFAB62F GT PUSH2 0x2FF JUMPI DUP1 PUSH4 0x2AFAB62F EQ PUSH2 0x480 JUMPI DUP1 PUSH4 0x2C1D3204 EQ PUSH2 0x493 JUMPI DUP1 PUSH4 0x2D26B309 EQ PUSH2 0x49B JUMPI DUP1 PUSH4 0x2D5C4F25 EQ PUSH2 0x4B0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x1F0F4F7A EQ PUSH2 0x43A JUMPI DUP1 PUSH4 0x23AAFE3B EQ PUSH2 0x44D JUMPI DUP1 PUSH4 0x26485063 EQ PUSH2 0x460 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x5417F79 GT PUSH2 0x361 JUMPI DUP1 PUSH4 0x5417F79 EQ PUSH2 0x3EA JUMPI DUP1 PUSH4 0xE316AB7 EQ PUSH2 0x3F2 JUMPI DUP1 PUSH4 0x110C96A7 EQ PUSH2 0x407 JUMPI DUP1 PUSH4 0x1B87278D EQ PUSH2 0x427 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH3 0x33058D EQ PUSH2 0x387 JUMPI DUP1 PUSH4 0x1C85C77 EQ PUSH2 0x3B1 JUMPI DUP1 PUSH4 0x1FFC9A7 EQ PUSH2 0x3C7 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x39A PUSH2 0x395 CALLDATASIZE PUSH1 0x4 PUSH2 0x3087 JUMP JUMPDEST PUSH2 0x7C8 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP3 SWAP2 SWAP1 PUSH2 0x3144 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x3B9 PUSH2 0x895 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A8 JUMP JUMPDEST PUSH2 0x3DA PUSH2 0x3D5 CALLDATASIZE PUSH1 0x4 PUSH2 0x3187 JUMP JUMPDEST PUSH2 0x91A JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A8 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x951 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x400 CALLDATASIZE PUSH1 0x4 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0x964 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x41A PUSH2 0x415 CALLDATASIZE PUSH1 0x4 PUSH2 0x31EE JUMP JUMPDEST PUSH2 0x985 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x321A JUMP JUMPDEST PUSH2 0x405 PUSH2 0x435 CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x9B0 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x448 CALLDATASIZE PUSH1 0x4 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0xA83 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x45B CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0xAA0 JUMP JUMPDEST PUSH2 0x473 PUSH2 0x46E CALLDATASIZE PUSH1 0x4 PUSH2 0x3087 JUMP JUMPDEST PUSH2 0xAD3 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x3280 JUMP JUMPDEST PUSH2 0x3DA PUSH2 0x48E CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0xB6C JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0xB97 JUMP JUMPDEST PUSH2 0x4A3 PUSH2 0xBAA JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x3293 JUMP JUMPDEST PUSH2 0x473 PUSH2 0x4BE CALLDATASIZE PUSH1 0x4 PUSH2 0x32DF JUMP JUMPDEST PUSH2 0xBBF JUMP JUMPDEST PUSH2 0x405 PUSH2 0x4D1 CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0xC5E JUMP JUMPDEST PUSH2 0x473 PUSH2 0x4E4 CALLDATASIZE PUSH1 0x4 PUSH2 0x32DF JUMP JUMPDEST PUSH2 0xCAA JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0xD01 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0xD14 JUMP JUMPDEST PUSH1 0x28 PUSH2 0x3B9 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x50E CALLDATASIZE PUSH1 0x4 PUSH2 0x3319 JUMP JUMPDEST PUSH2 0xD57 JUMP JUMPDEST PUSH2 0x39A PUSH2 0x521 CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0xDF4 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0xE6F JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0xE82 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x544 CALLDATASIZE PUSH1 0x4 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0xE92 JUMP JUMPDEST PUSH2 0x405 PUSH2 0xEF4 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0xF08 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x567 CALLDATASIZE PUSH1 0x4 PUSH2 0x3456 JUMP JUMPDEST PUSH2 0xF1B JUMP JUMPDEST PUSH2 0x405 PUSH2 0x109E JUMP JUMPDEST PUSH2 0x57C PUSH2 0x10E6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP8 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x34DA JUMP JUMPDEST PUSH2 0x405 PUSH2 0x59D CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x1192 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x5B0 CALLDATASIZE PUSH1 0x4 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0x11A4 JUMP JUMPDEST PUSH2 0x5BD PUSH2 0x11D9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3A8 JUMP JUMPDEST PUSH2 0x4A3 PUSH2 0x120E JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x1223 JUMP JUMPDEST PUSH2 0x5BD PUSH2 0x5F3 CALLDATASIZE PUSH1 0x4 PUSH2 0x3456 JUMP JUMPDEST PUSH2 0x1236 JUMP JUMPDEST PUSH2 0x41A PUSH2 0x606 CALLDATASIZE PUSH1 0x4 PUSH2 0x3572 JUMP JUMPDEST PUSH2 0x1270 JUMP JUMPDEST PUSH2 0x62F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x312E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3A8 SWAP2 SWAP1 PUSH2 0x35A7 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x64A CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x1489 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x65D CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x14A1 JUMP JUMPDEST PUSH2 0x39A PUSH2 0x670 CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x14E6 JUMP JUMPDEST PUSH2 0x473 PUSH2 0x683 CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x1561 JUMP JUMPDEST PUSH2 0x69B PUSH2 0x696 CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x15AF JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD SWAP1 DUP3 ADD MSTORE SWAP2 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x60 ADD PUSH2 0x3A8 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x6CB CALLDATASIZE PUSH1 0x4 PUSH2 0x35FE JUMP JUMPDEST PUSH2 0x1657 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x6DE CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x1671 JUMP JUMPDEST PUSH2 0x473 PUSH2 0x6F1 CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x16B3 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x1703 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x1716 JUMP JUMPDEST PUSH2 0x3B9 PUSH32 0xD2A15C3140485B6DB2A8C0F755486294DAAAE1EABCDD518F6BEAF8E4AB4D834 DUP2 JUMP JUMPDEST PUSH2 0x3B9 PUSH2 0x1759 JUMP JUMPDEST PUSH2 0x473 PUSH2 0x743 CALLDATASIZE PUSH1 0x4 PUSH2 0x366D JUMP JUMPDEST PUSH2 0x1763 JUMP JUMPDEST PUSH2 0x5BD PUSH2 0x17C2 JUMP JUMPDEST PUSH2 0x405 PUSH2 0x75E CALLDATASIZE PUSH1 0x4 PUSH2 0x3697 JUMP JUMPDEST PUSH2 0x17EB JUMP JUMPDEST PUSH2 0x405 PUSH2 0x771 CALLDATASIZE PUSH1 0x4 PUSH2 0x3765 JUMP JUMPDEST PUSH2 0x19BA JUMP JUMPDEST PUSH2 0x405 PUSH2 0x784 CALLDATASIZE PUSH1 0x4 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0x1B65 JUMP JUMPDEST PUSH2 0x3DA PUSH2 0x1BEA JUMP JUMPDEST PUSH2 0x3DA PUSH2 0x79F CALLDATASIZE PUSH1 0x4 PUSH2 0x3267 JUMP JUMPDEST PUSH2 0x1C00 JUMP JUMPDEST PUSH2 0x62F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x312E302E33 PUSH1 0xD8 SHL DUP2 MSTORE POP DUP2 JUMP JUMPDEST PUSH2 0x7D0 PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0x7FB PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x803 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1F17004D PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0xF8B80268 SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x864 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x88C SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x395C JUMP JUMPDEST SWAP2 POP SWAP2 POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x89F PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x765C2C61 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x765C2C61 SWAP1 PUSH1 0x24 ADD JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x8F1 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x915 SWAP2 SWAP1 PUSH2 0x3A00 JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP3 AND PUSH4 0x5D1CA631 PUSH1 0xE0 SHL EQ DUP1 PUSH2 0x94B JUMPI POP PUSH4 0x1FFC9A7 PUSH1 0xE0 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP4 AND EQ JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x95B PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0xB ADD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0x96C PUSH2 0x1C69 JUMP JUMPDEST PUSH2 0x981 DUP2 PUSH2 0x978 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x4 ADD SWAP1 PUSH2 0x1C9B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x98D PUSH2 0x2FDF JUMP JUMPDEST PUSH1 0x0 PUSH2 0x997 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP1 POP PUSH2 0x9A8 DUP5 DUP3 DUP6 PUSH2 0x1270 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH2 0x9B8 PUSH2 0x1C69 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9C2 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xA DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP2 AND SWAP1 DUP2 SWAP1 SUB PUSH2 0xA0A JUMPI PUSH1 0x40 MLOAD PUSH4 0x52047769 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xA13 DUP2 PUSH2 0x1CB0 JUMP JUMPDEST PUSH1 0x0 DUP4 DUP2 MSTORE PUSH1 0xA DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 DUP2 SWAP1 KECCAK256 DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND SWAP1 SSTORE MLOAD PUSH32 0x725D312746BE14D750D0493AA7960A5ACA3C30F98F74B0E07AFC8F1A36B355C2 SWAP1 PUSH2 0xA76 SWAP1 DUP6 SWAP1 DUP5 SWAP1 SWAP2 DUP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0xA8B PUSH2 0x1C69 JUMP JUMPDEST PUSH2 0x981 DUP2 PUSH2 0xA97 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x8 ADD SWAP1 PUSH2 0x1C9B JUMP JUMPDEST PUSH2 0xAA8 PUSH2 0x1C69 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xAB2 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x7 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND SWAP2 ISZERO ISZERO SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0xADB PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0xAE3 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x7D0ABA4F PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x7D0ABA4F SWAP1 PUSH1 0x44 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xB44 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x94B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3A19 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0xB77 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x0 SWAP4 DUP5 MSTORE PUSH1 0xA ADD PUSH1 0x20 MSTORE POP POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND ISZERO ISZERO SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xBA1 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH2 0x915 PUSH2 0xBB7 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x8 ADD PUSH2 0x1D9A JUMP JUMPDEST PUSH2 0xBC7 PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0xBCF PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xD55DA6A3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xD55DA6A3 SWAP1 PUSH1 0x64 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xC2F JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xC57 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3A19 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0xC66 PUSH2 0x1C69 JUMP JUMPDEST DUP1 PUSH2 0xC6F PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x2 ADD SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x73293F7B4F3FE4EEB423F647C95D70844D99749A80C8A93AA4C3D4996A63BC4A SWAP1 PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH2 0xCB2 PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0xCBA PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6AC0C5C7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xD5818B8E SWAP1 PUSH1 0x64 ADD PUSH2 0xC12 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD0B PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x1 ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xD1E PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1B8BF99B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x6E2FE66C SWAP1 PUSH1 0x24 ADD PUSH2 0x8D4 JUMP JUMPDEST PUSH2 0xD5F PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x59A60691 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x24 DUP3 ADD MSTORE ADDRESS PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x28 PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP3 AND PUSH1 0x84 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x59A60691 SWAP1 PUSH1 0xA4 ADD JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0xDD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0xDEC JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0xDFC PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0xE27 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0xE2F PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xA3018D79 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xA3018D79 SWAP1 PUSH1 0x44 ADD PUSH2 0x847 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE79 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x9A ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE8C PUSH2 0x1C21 JUMP JUMPDEST SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xE9A PUSH2 0x1C69 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xEA4 PUSH2 0x1C45 JUMP JUMPDEST SWAP1 POP PUSH2 0xEB3 PUSH1 0x8 DUP3 ADD DUP4 PUSH2 0x1DA7 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH32 0xA33C33CA5C931F5CBDAA4137C8B7F3EA632AA05390959F913C410776733061B SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST PUSH2 0xEFC PUSH2 0x1C69 JUMP JUMPDEST PUSH2 0xF06 PUSH1 0x0 PUSH2 0x1DBC JUMP JUMPDEST JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF12 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x2 ADD SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH2 0xF23 PUSH2 0x1DF4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xF2D PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x6 DUP2 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0x4CC3A4A5 PUSH1 0xE0 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x0 SWAP2 DUP3 SWAP2 DUP3 SWAP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x4CC3A4A5 SWAP1 PUSH2 0xF69 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0x35A7 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0xF88 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0xFB0 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3A92 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0xFBF DUP3 PUSH2 0x1C00 JUMP JUMPDEST PUSH2 0xFDF JUMPI PUSH1 0x40 MLOAD PUSH4 0x8338DBA5 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST DUP1 PUSH2 0xFFD JUMPI PUSH1 0x40 MLOAD PUSH4 0xBD8BA84D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x14 DUP4 MLOAD LT ISZERO PUSH2 0x1020 JUMPI PUSH1 0x40 MLOAD PUSH4 0x25198D5 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x14 DUP4 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x104C JUMPI PUSH1 0x40 MLOAD PUSH4 0x4501A919 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x1059 PUSH1 0x4 DUP7 ADD DUP3 PUSH2 0x1DA7 JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP2 MSTORE PUSH32 0x47D1C22A25BB3A5D4E481B9B1E6944C2EADE3181A0A20B495ED61D35B5323F24 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP POP POP POP JUMP JUMPDEST CALLER DUP1 PUSH2 0x10A8 PUSH2 0x17C2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0x10DA JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x10E3 DUP2 PUSH2 0x1DBC JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP1 DUP3 DUP1 DUP1 DUP4 DUP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4059 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP1 SLOAD SWAP1 SWAP2 POP ISZERO DUP1 ISZERO PUSH2 0x1113 JUMPI POP PUSH1 0x1 DUP2 ADD SLOAD ISZERO JUMPDEST PUSH2 0x1157 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 0x1152540DCC4C8E88155B9A5B9A5D1A585B1A5E9959 PUSH1 0x5A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x115F PUSH2 0x1E28 JUMP JUMPDEST PUSH2 0x1167 PUSH2 0x1EEB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 SWAP3 MSTORE PUSH1 0xF PUSH1 0xF8 SHL SWAP13 SWAP4 SWAP12 POP SWAP2 SWAP10 POP CHAINID SWAP9 POP ADDRESS SWAP8 POP SWAP6 POP SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH2 0x119A PUSH2 0x1C69 JUMP JUMPDEST PUSH1 0x1 PUSH2 0xAB2 PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x11AC PUSH2 0x1C69 JUMP JUMPDEST DUP1 PUSH2 0x11B5 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x6 ADD DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x915 PUSH2 0x121B PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x4 ADD PUSH2 0x1D9A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x122D PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x9B ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1240 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x3 ADD DUP3 PUSH1 0x40 MLOAD PUSH2 0x1251 SWAP2 SWAP1 PUSH2 0x3ADF JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x1278 PUSH2 0x2FDF JUMP JUMPDEST PUSH2 0x1280 PUSH2 0x1C21 JUMP JUMPDEST SLOAD DUP5 EQ PUSH2 0x12C6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x14 PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x92C8CADCE8D2E8F240D2C840DAD2E6DAC2E8C6D PUSH1 0x63 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x12D0 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB1A9CD3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB1A9CD3 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1328 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x134C SWAP2 SWAP1 PUSH2 0x3AFB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x80 DUP2 ADD DUP3 MSTORE DUP7 DUP2 MSTORE DUP3 MLOAD PUSH1 0x20 DUP1 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE DUP4 ADD MLOAD DUP2 DUP4 ADD MSTORE SWAP1 DUP3 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x0 PUSH2 0x1381 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 MLOAD PUSH4 0xB2BCD1B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP8 AND PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x16579A36 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x13EB JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x1413 SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x3A19 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH2 0x100 DUP2 ADD DUP3 MSTORE DUP3 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP5 ADD MLOAD ISZERO ISZERO DUP2 DUP4 ADD MSTORE DUP3 DUP5 ADD MLOAD DUP3 DUP5 ADD MSTORE PUSH1 0x60 DUP1 DUP6 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x80 DUP1 DUP6 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xA0 DUP1 DUP6 ADD MLOAD ISZERO ISZERO SWAP1 DUP4 ADD MSTORE PUSH1 0xC0 DUP1 DUP6 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0xE0 SWAP4 DUP5 ADD MLOAD SWAP4 DUP3 ADD SWAP4 SWAP1 SWAP4 MSTORE DUP2 MLOAD DUP1 DUP4 ADD SWAP1 SWAP3 MSTORE SWAP4 DUP2 MSTORE SWAP1 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1491 PUSH2 0x1C69 JUMP JUMPDEST DUP1 PUSH2 0x149A PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0xB ADD SSTORE POP JUMP JUMPDEST PUSH2 0x14A9 PUSH2 0x1C69 JUMP JUMPDEST DUP1 PUSH2 0x14B2 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x1 ADD SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0xF007A02BA428E63FA98B65269E70F9A9DB847E0A839049A2F31F069282267734 SWAP1 PUSH1 0x20 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH2 0x14EE PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0x1519 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x1521 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6AD1D8A7 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP5 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xD5A3B14E SWAP1 PUSH1 0x44 ADD PUSH2 0x847 JUMP JUMPDEST PUSH2 0x1569 PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0x1571 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH3 0xCF089 PUSH1 0xE4 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH3 0xCF0890 SWAP1 PUSH1 0x44 ADD PUSH2 0xB27 JUMP JUMPDEST PUSH2 0x15D3 PUSH1 0x40 MLOAD DUP1 PUSH1 0x60 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH2 0x15DB PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB1A9CD3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0xB1A9CD3 SWAP1 PUSH1 0x44 ADD PUSH1 0x60 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1633 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x94B SWAP2 SWAP1 PUSH2 0x3AFB JUMP JUMPDEST PUSH2 0x165F PUSH2 0x1C69 JUMP JUMPDEST PUSH2 0x166B DUP5 DUP5 DUP5 DUP5 PUSH2 0x1F2A JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x1679 PUSH2 0x1C69 JUMP JUMPDEST DUP1 PUSH2 0x1682 PUSH2 0x1C45 JUMP JUMPDEST SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x7F7F3071C3C286700C199ACAE2FE071BEB4A63DAE1AFFF85186FA75D18090AE8 SWAP1 PUSH1 0x20 ADD PUSH2 0xC9F JUMP JUMPDEST PUSH2 0x16BB PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0x16C3 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x97AC5391 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x97AC5391 SWAP1 PUSH1 0x44 ADD PUSH2 0xB27 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x170D PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x9C ADD SLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1720 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x1E75E7F3 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x1E75E7F3 SWAP1 PUSH1 0x24 ADD PUSH2 0x8D4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xE8C PUSH2 0x1C45 JUMP JUMPDEST PUSH2 0x176B PUSH2 0x2F96 JUMP JUMPDEST PUSH2 0x1773 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0xB2BCD1B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x16579A36 SWAP1 PUSH1 0x64 ADD PUSH2 0xC12 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 PUSH2 0x11FE JUMP JUMPDEST PUSH1 0x0 PUSH2 0x17F5 PUSH2 0x2082 JUMP JUMPDEST DUP1 SLOAD SWAP1 SWAP2 POP PUSH1 0xFF PUSH1 0x1 PUSH1 0x40 SHL DUP3 DIV AND ISZERO SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x181C JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x1838 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x1846 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x1864 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x188E JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH2 0x18AE PUSH2 0x189E PUSH1 0x20 DUP11 ADD DUP11 PUSH2 0x31D1 JUMP JUMPDEST PUSH2 0x50E PUSH1 0x40 DUP12 ADD PUSH1 0x20 DUP13 ADD PUSH2 0x3B5A JUMP JUMPDEST PUSH2 0x18B7 DUP8 PUSH2 0x20AB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x18C1 PUSH2 0x1C45 JUMP JUMPDEST SWAP1 POP DUP16 DUP2 PUSH1 0x0 ADD DUP2 SWAP1 SSTORE POP DUP15 DUP2 PUSH1 0x2 ADD DUP2 SWAP1 SSTORE POP DUP14 DUP2 PUSH1 0x1 ADD DUP2 SWAP1 SSTORE POP DUP7 DUP2 PUSH1 0x6 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB MUL NOT AND SWAP1 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND MUL OR SWAP1 SSTORE POP PUSH2 0x1956 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x10 DUP2 MSTORE PUSH1 0x20 ADD PUSH16 0x50617373706F72744973737565725631 PUSH1 0x80 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x5 DUP2 MSTORE PUSH1 0x20 ADD PUSH5 0x312E302E3 PUSH1 0xDC SHL DUP2 MSTORE POP PUSH2 0x20BC JUMP JUMPDEST PUSH2 0x1962 DUP14 DUP14 DUP14 DUP14 PUSH2 0x1F2A JUMP JUMPDEST POP DUP4 ISZERO PUSH2 0x19A9 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP POP POP POP POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP2 MLOAD MLOAD PUSH1 0x0 SUB PUSH2 0x19E0 JUMPI DUP2 MLOAD PUSH1 0x40 MLOAD PUSH4 0x1D44E471 PUSH1 0xE2 SHL DUP2 MSTORE PUSH2 0xA01 SWAP2 SWAP1 PUSH1 0x4 ADD PUSH2 0x35A7 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP6 PUSH1 0x20 ADD MLOAD DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x19FE SWAP2 SWAP1 PUSH2 0x3BBC JUMP JUMPDEST SWAP4 POP SWAP4 POP SWAP4 POP SWAP4 POP PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 DUP6 DUP2 MSTORE PUSH1 0x20 ADD DUP5 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 DUP9 PUSH1 0x0 DUP2 MLOAD DUP2 LT PUSH2 0x1A44 JUMPI PUSH2 0x1A44 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x1 DUP2 MLOAD DUP2 LT PUSH2 0x1A64 JUMPI PUSH2 0x1A64 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x2 DUP2 MLOAD DUP2 LT PUSH2 0x1A84 JUMPI PUSH2 0x1A84 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x3 DUP2 MLOAD DUP2 LT PUSH2 0x1AA4 JUMPI PUSH2 0x1AA4 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x4 DUP2 MLOAD DUP2 LT PUSH2 0x1AC4 JUMPI PUSH2 0x1AC4 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x5 DUP2 MLOAD DUP2 LT PUSH2 0x1AE4 JUMPI PUSH2 0x1AE4 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x6 DUP2 MLOAD DUP2 LT PUSH2 0x1B04 JUMPI PUSH2 0x1B04 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP9 PUSH1 0x7 DUP2 MLOAD DUP2 LT PUSH2 0x1B24 JUMPI PUSH2 0x1B24 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP2 MSTORE POP DUP2 MSTORE POP SWAP1 POP PUSH1 0x0 DUP7 DUP1 PUSH1 0x20 ADD SWAP1 MLOAD DUP2 ADD SWAP1 PUSH2 0x1B4A SWAP2 SWAP1 PUSH2 0x3C8C JUMP JUMPDEST SWAP1 POP PUSH2 0x1B5B DUP9 PUSH1 0x0 ADD MLOAD DUP4 DUP4 PUSH2 0x20CE JUMP JUMPDEST POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x1B6D PUSH2 0x1C69 JUMP JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND SWAP1 DUP2 OR DUP3 SSTORE PUSH2 0x1BB1 PUSH2 0x11D9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x38D16B8CAC22D99FC7C124B9CD0DE2D3FA1FAEF420BFE791D8C362D765E22700 PUSH1 0x40 MLOAD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1BF4 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x2 ADD SLOAD PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1C0A PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0x7 ADD PUSH1 0x20 MSTORE POP PUSH1 0x40 SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND SWAP1 JUMP JUMPDEST PUSH32 0x3018A310C36C4F8228F09BF3B1822685CF0971DAA8265A58CA807C4A4DABA400 SWAP1 JUMP JUMPDEST PUSH32 0x405D73F251ED6C997B1C097C46D2F830C946626E510C12346D80E7C5A4DAD300 SWAP1 JUMP JUMPDEST CALLER PUSH2 0x1C72 PUSH2 0x11D9 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EQ PUSH2 0xF06 JUMPI PUSH1 0x40 MLOAD PUSH4 0x118CDAA7 PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC57 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x20F0 JUMP JUMPDEST PUSH2 0x1CB8 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8AD7195D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x8AD7195D SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D13 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1D27 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x1D33 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x175BA3E9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x2EB747D2 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x1D7F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x1D93 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0xC57 DUP4 PUSH2 0x21E3 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xC57 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x223F JUMP JUMPDEST PUSH32 0x237E158222E3E6968B72B9DB0D8043AACF074AD9F650F0D1606B4D82EE432C00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND DUP2 SSTORE PUSH2 0x981 DUP3 PUSH2 0x228E JUMP JUMPDEST PUSH2 0x1E09 CALLER PUSH2 0x1E00 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x8 ADD SWAP1 PUSH2 0x22FF JUMP JUMPDEST PUSH2 0xF06 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1D83D27F PUSH1 0xE0 SHL DUP2 MSTORE CALLER PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH32 0xA16A46D94261C7517CC8FF89F61C0CE93598E3C849801011DEE649A6A557D102 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4059 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x1E67 SWAP1 PUSH2 0x3D2A JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x1E93 SWAP1 PUSH2 0x3D2A JUMP JUMPDEST DUP1 ISZERO PUSH2 0x1EE0 JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x1EB5 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x1EE0 JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x1EC3 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP2 POP POP SWAP1 JUMP JUMPDEST PUSH32 0xA16A46D94261C7517CC8FF89F61C0CE93598E3C849801011DEE649A6A557D103 DUP1 SLOAD PUSH1 0x60 SWAP2 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4059 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE SWAP2 PUSH2 0x1E67 SWAP1 PUSH2 0x3D2A JUMP JUMPDEST PUSH1 0x0 PUSH2 0x1F34 PUSH2 0x1C45 JUMP JUMPDEST SWAP1 POP DUP4 DUP3 EQ PUSH2 0x1F60 JUMPI PUSH1 0x40 MLOAD PUSH4 0x55C5B3E3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP5 DUP2 LT ISZERO PUSH2 0xDEC JUMPI DUP4 DUP4 DUP3 DUP2 DUP2 LT PUSH2 0x1F7D JUMPI PUSH2 0x1F7D PUSH2 0x3C76 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x1F92 SWAP2 SWAP1 PUSH2 0x31D1 JUMP JUMPDEST DUP3 PUSH1 0x3 ADD DUP8 DUP8 DUP5 DUP2 DUP2 LT PUSH2 0x1FA8 JUMPI PUSH2 0x1FA8 PUSH2 0x3C76 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x1FBA SWAP2 SWAP1 PUSH2 0x3D64 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x1FC8 SWAP3 SWAP2 SWAP1 PUSH2 0x3DAA JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH32 0x5D864DB8D88E9085FD5E7752A2094701E558355B75B561C00174D27AEFD3E289 DUP7 DUP7 DUP4 DUP2 DUP2 LT PUSH2 0x202A JUMPI PUSH2 0x202A PUSH2 0x3C76 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL DUP2 ADD SWAP1 PUSH2 0x203C SWAP2 SWAP1 PUSH2 0x3D64 JUMP JUMPDEST DUP7 DUP7 DUP6 DUP2 DUP2 LT PUSH2 0x204E JUMPI PUSH2 0x204E PUSH2 0x3C76 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 MUL ADD PUSH1 0x20 DUP2 ADD SWAP1 PUSH2 0x2063 SWAP2 SWAP1 PUSH2 0x31D1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x2072 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3DBA JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x1 ADD PUSH2 0x1F63 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 PUSH2 0x94B JUMP JUMPDEST PUSH2 0x20B3 PUSH2 0x2321 JUMP JUMPDEST PUSH2 0x10E3 DUP2 PUSH2 0x2346 JUMP JUMPDEST PUSH2 0x20C4 PUSH2 0x2321 JUMP JUMPDEST PUSH2 0x981 DUP3 DUP3 PUSH2 0x2378 JUMP JUMPDEST PUSH2 0x20D8 DUP4 DUP4 PUSH2 0x23D9 JUMP JUMPDEST PUSH2 0x20E1 DUP2 PUSH2 0x24D1 JUMP JUMPDEST PUSH2 0x20EB DUP3 DUP3 PUSH2 0x2545 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x21D9 JUMPI PUSH1 0x0 PUSH2 0x2114 PUSH1 0x1 DUP4 PUSH2 0x3E11 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x2128 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x3E11 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 EQ PUSH2 0x218D JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x2148 JUMPI PUSH2 0x2148 PUSH2 0x3C76 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x216B JUMPI PUSH2 0x216B PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x219E JUMPI PUSH2 0x219E PUSH2 0x3E24 JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x94B JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x94B JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x2233 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x221F JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x2286 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x94B JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x94B JUMP JUMPDEST PUSH32 0x9016D09D72D40FDAE2FD8CEAC6B6234C7706214FD39C1CD1E609A0528C199300 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT DUP2 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 DUP2 AND SWAP2 DUP3 OR DUP5 SSTORE PUSH1 0x40 MLOAD SWAP3 AND SWAP2 DUP3 SWAP1 PUSH32 0x8BE0079C531659141344CD1FD0A4F28419497F9722A3DAAFE3B4186F6B6457E0 SWAP1 PUSH1 0x0 SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0xC57 JUMP JUMPDEST PUSH2 0x2329 PUSH2 0x25B4 JUMP JUMPDEST PUSH2 0xF06 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1AFCD79F PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x234E PUSH2 0x2321 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x10DA JUMPI PUSH1 0x40 MLOAD PUSH4 0x1E4FBDF7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH2 0x2380 PUSH2 0x2321 JUMP JUMPDEST PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4059 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE PUSH32 0xA16A46D94261C7517CC8FF89F61C0CE93598E3C849801011DEE649A6A557D102 PUSH2 0x23BA DUP5 DUP3 PUSH2 0x3E81 JUMP JUMPDEST POP PUSH1 0x3 DUP2 ADD PUSH2 0x23C9 DUP4 DUP3 PUSH2 0x3E81 JUMP JUMPDEST POP PUSH1 0x0 DUP1 DUP3 SSTORE PUSH1 0x1 SWAP1 SWAP2 ADD SSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x23E3 PUSH2 0x1C45 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 ADD DUP5 PUSH1 0x40 MLOAD PUSH2 0x23F9 SWAP2 SWAP1 PUSH2 0x3ADF JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x40 MLOAD SWAP1 DUP2 SWAP1 SUB PUSH1 0x20 ADD SWAP1 KECCAK256 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 POP DUP1 PUSH2 0x2432 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1DCF1AB PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0xC9219A7A DUP5 PUSH1 0x0 ADD MLOAD DUP6 PUSH1 0x20 ADD MLOAD DUP7 PUSH1 0x40 ADD MLOAD DUP8 PUSH1 0x60 ADD MLOAD PUSH1 0x40 MLOAD DUP6 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x2474 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x3F62 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2491 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x24B5 SWAP2 SWAP1 PUSH2 0x3FE7 JUMP JUMPDEST PUSH2 0x166B JUMPI PUSH1 0x40 MLOAD PUSH3 0x81723B PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x24E6 DUP4 PUSH1 0x0 ADD MLOAD DUP5 PUSH1 0x20 ADD MLOAD PUSH2 0x25CE JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP2 PUSH2 0x2508 JUMPI PUSH1 0x40 MLOAD PUSH4 0xDF2B56FF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x251D DUP2 PUSH2 0x2514 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x4 ADD SWAP1 PUSH2 0x22FF JUMP JUMPDEST PUSH2 0x20EB JUMPI PUSH1 0x40 MLOAD PUSH4 0x14328611 PUSH1 0xE3 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2550 DUP4 PUSH2 0x2678 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH1 0x0 ADD MLOAD PUSH1 0x20 ADD MLOAD SWAP1 POP PUSH2 0x2594 DUP3 PUSH1 0x0 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD DUP5 PUSH1 0x40 ADD MLOAD DUP6 PUSH1 0x60 ADD MLOAD DUP7 PUSH1 0x80 ADD MLOAD DUP8 PUSH1 0xA0 ADD MLOAD DUP10 PUSH1 0x0 ADD MLOAD PUSH1 0x0 ADD MLOAD DUP9 DUP11 PUSH1 0xE0 ADD MLOAD PUSH2 0x27E9 JUMP JUMPDEST PUSH2 0x25A2 DUP2 DUP4 PUSH1 0xC0 ADD MLOAD PUSH2 0x2A5A JUMP JUMPDEST PUSH2 0x166B DUP3 PUSH1 0x0 ADD MLOAD DUP4 PUSH1 0x20 ADD MLOAD PUSH2 0x2BAB JUMP JUMPDEST PUSH1 0x0 PUSH2 0x25BE PUSH2 0x2082 JUMP JUMPDEST SLOAD PUSH1 0x1 PUSH1 0x40 SHL SWAP1 DIV PUSH1 0xFF AND SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x263F PUSH32 0xD2A15C3140485B6DB2A8C0F755486294DAAAE1EABCDD518F6BEAF8E4AB4D834 DUP7 PUSH1 0x0 ADD MLOAD DUP8 PUSH1 0x20 ADD MLOAD PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x2624 SWAP4 SWAP3 SWAP2 SWAP1 SWAP3 DUP4 MSTORE PUSH1 0x20 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 PUSH2 0x2C66 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP1 PUSH2 0x264E DUP4 DUP8 PUSH2 0x2C93 JUMP JUMPDEST POP SWAP1 SWAP3 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x2668 JUMPI PUSH2 0x2668 PUSH2 0x4002 JUMP JUMPDEST EQ SWAP5 POP SWAP1 SWAP3 POP POP POP JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH2 0x26C9 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x0 PUSH1 0x8 DUP2 LT PUSH2 0x26EC JUMPI PUSH2 0x26EC PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x1 PUSH1 0x8 DUP2 LT PUSH2 0x270D JUMPI PUSH2 0x270D PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x4 PUSH1 0x8 DUP2 LT PUSH2 0x272E JUMPI PUSH2 0x272E PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x3 PUSH1 0x8 DUP2 LT PUSH2 0x274F JUMPI PUSH2 0x274F PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x5 PUSH1 0x8 DUP2 LT PUSH2 0x2770 JUMPI PUSH2 0x2770 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x2 PUSH1 0x8 DUP2 LT PUSH2 0x2791 JUMPI PUSH2 0x2791 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x7 PUSH1 0x8 DUP2 LT PUSH2 0x27B2 JUMPI PUSH2 0x27B2 PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP2 MSTORE PUSH1 0x20 ADD DUP4 PUSH1 0x60 ADD MLOAD PUSH1 0x6 PUSH1 0x8 DUP2 LT PUSH2 0x27DC JUMPI PUSH2 0x27DC PUSH2 0x3C76 JUMP JUMPDEST PUSH1 0x20 MUL ADD MLOAD SWAP1 MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x27F3 PUSH2 0x1C45 JUMP JUMPDEST SWAP1 POP DUP10 PUSH1 0x0 SUB PUSH2 0x2819 JUMPI PUSH1 0x40 MLOAD PUSH4 0x1B1AAD87 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP12 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST DUP9 PUSH1 0x0 SUB PUSH2 0x283D JUMPI PUSH1 0x40 MLOAD PUSH4 0x4BDC991B PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST DUP1 PUSH1 0x1 ADD SLOAD DUP7 EQ PUSH2 0x2871 JUMPI PUSH1 0x1 DUP2 ADD SLOAD PUSH1 0x40 MLOAD PUSH4 0xE7483791 PUSH1 0xE0 SHL DUP2 MSTORE PUSH2 0xA01 SWAP2 DUP9 SWAP2 PUSH1 0x4 ADD SWAP2 DUP3 MSTORE PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 ADD SWAP1 JUMP JUMPDEST DUP5 DUP5 EQ PUSH2 0x289E JUMPI PUSH1 0x40 MLOAD PUSH1 0x1 PUSH3 0x1D0D83 PUSH1 0xE2 SHL SUB NOT DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x24 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x7A120 DUP9 GT ISZERO PUSH2 0x28C0 JUMPI PUSH2 0x28B9 DUP9 PUSH4 0x121EAC0 PUSH2 0x4018 JUMP JUMPDEST SWAP1 POP PUSH2 0x28D1 JUMP JUMPDEST PUSH2 0x28CE DUP9 PUSH4 0x1312D00 PUSH2 0x4018 JUMP JUMPDEST SWAP1 POP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x28EE DUP6 PUSH1 0x0 ADD SLOAD TIMESTAMP PUSH2 0x28E9 SWAP2 SWAP1 PUSH2 0x3E11 JUMP JUMPDEST PUSH2 0x2CE0 JUMP JUMPDEST SWAP2 SWAP5 POP SWAP3 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0x2903 DUP5 PUSH1 0x64 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x290F DUP7 PUSH2 0x2710 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x2919 SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST PUSH2 0x2923 SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST SWAP1 POP DUP5 DUP2 GT ISZERO PUSH2 0x2949 JUMPI PUSH1 0x40 MLOAD PUSH4 0x5D5E30BF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP14 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH2 0x2961 DUP10 PUSH1 0x2 ADD SLOAD TIMESTAMP PUSH2 0x28E9 SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST SWAP2 SWAP5 POP SWAP3 POP SWAP1 POP PUSH1 0x0 DUP2 PUSH2 0x2976 DUP5 PUSH1 0x64 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x2982 DUP7 PUSH2 0x2710 PUSH2 0x402B JUMP JUMPDEST PUSH2 0x298C SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST PUSH2 0x2996 SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST SWAP1 POP DUP1 DUP10 GT ISZERO PUSH2 0x29BD JUMPI DUP16 PUSH1 0x40 MLOAD PUSH4 0x53F3B141 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0xA01 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST POP POP POP POP POP POP POP POP TIMESTAMP DUP3 PUSH1 0x0 ADD SLOAD DUP11 PUSH2 0x29D6 SWAP2 SWAP1 PUSH2 0x4018 JUMP JUMPDEST LT ISZERO PUSH2 0x29F7 JUMPI PUSH1 0x40 MLOAD PUSH3 0xBD09F1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x2 DUP3 ADD SLOAD PUSH2 0x2A06 SWAP1 TIMESTAMP PUSH2 0x4018 JUMP JUMPDEST DUP10 GT ISZERO PUSH2 0x2A29 JUMPI PUSH1 0x40 MLOAD PUSH4 0xD8188335 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP11 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST DUP3 DUP3 PUSH1 0xB ADD SLOAD EQ PUSH2 0x2A4D JUMPI PUSH1 0x40 MLOAD PUSH4 0xFE0C887B PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST DUP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND PUSH1 0x0 SUB PUSH2 0x2A8F JUMPI PUSH1 0x40 MLOAD PUSH4 0x37F969B3 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0xA01 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A99 PUSH2 0x1C45 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0xA DUP3 ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB AND DUP1 ISZERO PUSH2 0x2B7A JUMPI PUSH2 0x2AC4 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x8AD7195D PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH20 0x0 SWAP1 PUSH4 0x8AD7195D SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2B1F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x2B33 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 DUP1 MLOAD DUP8 DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH32 0x725D312746BE14D750D0493AA7960A5ACA3C30F98F74B0E07AFC8F1A36B355C2 SWAP4 POP ADD SWAP1 POP PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 JUMPDEST POP PUSH1 0x0 SWAP3 DUP4 MSTORE PUSH1 0xA ADD PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE JUMP JUMPDEST PUSH2 0x2BB3 PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x6FB1575 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x24 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP3 SWAP1 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x6FB1575 SWAP1 PUSH1 0x64 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x2C0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS DELEGATECALL ISZERO DUP1 ISZERO PUSH2 0x2C21 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH2 0x2C2D PUSH2 0x1C21 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x175BA3E9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH20 0x0 SWAP1 PUSH4 0x2EB747D2 SWAP1 PUSH1 0x24 ADD PUSH2 0xDC0 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x94B PUSH2 0x2C73 PUSH2 0x2CFF JUMP JUMPDEST DUP4 PUSH1 0x40 MLOAD PUSH2 0x1901 PUSH1 0xF0 SHL DUP2 MSTORE PUSH1 0x2 DUP2 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x22 DUP3 ADD MSTORE PUSH1 0x42 SWAP1 KECCAK256 SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 SUB PUSH2 0x2CCD JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x2CBF DUP9 DUP3 DUP6 DUP6 PUSH2 0x2D09 JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x2CD9 JUMP JUMPDEST POP POP DUP2 MLOAD PUSH1 0x0 SWAP2 POP PUSH1 0x2 SWAP1 JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH2 0x2CF2 PUSH3 0x15180 DUP6 DIV PUSH2 0x2DD8 JUMP JUMPDEST SWAP2 SWAP7 SWAP1 SWAP6 POP SWAP1 SWAP4 POP SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x915 PUSH2 0x2E74 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP5 GT ISZERO PUSH2 0x2D44 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x2DCE JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP11 SWAP1 MSTORE PUSH1 0xFF DUP10 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x2D98 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x2DC4 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x2DCE JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP DUP2 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 DUP4 PUSH3 0x264965 DUP2 ADD DUP3 PUSH3 0x23AB1 PUSH1 0x4 DUP4 MUL SDIV SWAP1 POP PUSH1 0x4 PUSH1 0x3 PUSH3 0x23AB1 DUP4 MUL ADD SDIV SWAP1 SWAP2 SUB SWAP1 PUSH1 0x0 PUSH3 0x164B09 PUSH2 0xFA0 PUSH1 0x1 DUP6 ADD MUL SDIV SWAP1 POP PUSH1 0x4 PUSH2 0x5B5 DUP3 MUL SDIV DUP4 SUB PUSH1 0x1F ADD SWAP3 POP PUSH1 0x0 PUSH2 0x98F DUP5 PUSH1 0x50 MUL DUP2 PUSH2 0x2E35 JUMPI PUSH2 0x2E35 PUSH2 0x4042 JUMP JUMPDEST SDIV SWAP1 POP PUSH1 0x0 PUSH1 0x50 PUSH2 0x98F DUP4 MUL SDIV DUP6 SUB SWAP1 POP PUSH1 0xB DUP3 SDIV PUSH1 0x30 NOT SWAP5 SWAP1 SWAP5 ADD PUSH1 0x64 MUL SWAP3 SWAP1 SWAP3 ADD DUP4 ADD SWAP10 PUSH1 0x2 PUSH1 0xC SWAP1 SWAP5 MUL SWAP1 SWAP2 SUB SWAP3 SWAP1 SWAP3 ADD SWAP8 POP SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH32 0x8B73C3C69BB8FE3D512ECC4CF759CC79239F7B179B0FFACAA9A75D522B39400F PUSH2 0x2E9F PUSH2 0x2EE8 JUMP JUMPDEST PUSH2 0x2EA7 PUSH2 0x2F52 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x20 DUP2 ADD SWAP5 SWAP1 SWAP5 MSTORE DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x60 DUP3 ADD MSTORE CHAINID PUSH1 0x80 DUP3 ADD MSTORE ADDRESS PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 ADD PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4059 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 PUSH2 0x2F02 PUSH2 0x1E28 JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x2F1A JUMPI DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP2 SLOAD DUP1 ISZERO PUSH2 0x2F29 JUMPI SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH32 0xC5D2460186F7233C927E7DB2DCC703C0E500B653CA82273B7BFAD8045D85A470 SWAP4 POP POP POP POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x0 DUP1 MLOAD PUSH1 0x20 PUSH2 0x4059 DUP4 CODECOPY DUP2 MLOAD SWAP2 MSTORE DUP2 PUSH2 0x2F6C PUSH2 0x1EEB JUMP JUMPDEST DUP1 MLOAD SWAP1 SWAP2 POP ISZERO PUSH2 0x2F84 JUMPI DUP1 MLOAD PUSH1 0x20 SWAP1 SWAP2 ADD KECCAK256 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 ADD SLOAD DUP1 ISZERO PUSH2 0x2F29 JUMPI SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH2 0x3015 PUSH1 0x40 MLOAD DUP1 PUSH1 0x80 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x3066 PUSH1 0x40 MLOAD DUP1 PUSH2 0x100 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x60 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 DUP2 MSTORE POP SWAP1 JUMP JUMPDEST SWAP1 MSTORE SWAP1 JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x3082 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3099 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC57 DUP3 PUSH2 0x306B JUMP JUMPDEST DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP3 ADD MLOAD ISZERO ISZERO DUP2 DUP5 ADD MSTORE PUSH1 0x40 DUP1 DUP4 ADD MLOAD PUSH2 0x100 SWAP2 DUP6 ADD DUP3 SWAP1 MSTORE DUP1 MLOAD SWAP2 DUP6 ADD DUP3 SWAP1 MSTORE PUSH1 0x0 SWAP3 ADD SWAP1 DUP3 SWAP1 PUSH2 0x120 DUP7 ADD SWAP1 JUMPDEST DUP1 DUP4 LT ISZERO PUSH2 0x30FA JUMPI DUP4 MLOAD DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP2 POP PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x1 DUP4 ADD SWAP3 POP PUSH2 0x30D7 JUMP JUMPDEST POP PUSH1 0x60 DUP6 ADD MLOAD PUSH1 0x60 DUP8 ADD MSTORE PUSH1 0x80 DUP6 ADD MLOAD PUSH1 0x80 DUP8 ADD MSTORE PUSH1 0xA0 DUP6 ADD MLOAD SWAP3 POP PUSH2 0x3124 PUSH1 0xA0 DUP8 ADD DUP5 ISZERO ISZERO SWAP1 MSTORE JUMP JUMPDEST PUSH1 0xC0 DUP6 ADD MLOAD PUSH1 0xC0 DUP8 ADD MSTORE PUSH1 0xE0 DUP6 ADD MLOAD PUSH1 0xE0 DUP8 ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xA0 DUP2 MSTORE PUSH1 0x0 PUSH2 0x3157 PUSH1 0xA0 DUP4 ADD DUP6 PUSH2 0x30A2 JUMP JUMPDEST SWAP1 POP PUSH2 0xC57 PUSH1 0x20 DUP4 ADD DUP5 DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3199 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xC57 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x10E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x3082 DUP2 PUSH2 0x31B1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x31E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xC57 DUP2 PUSH2 0x31B1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3201 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH2 0x3211 PUSH1 0x20 DUP5 ADD PUSH2 0x306B JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH2 0x324D PUSH1 0x20 DUP3 ADD DUP4 MLOAD DUP1 MLOAD DUP3 MSTORE PUSH1 0x20 DUP2 ADD MLOAD PUSH1 0x20 DUP4 ADD MSTORE PUSH1 0x40 DUP2 ADD MLOAD PUSH1 0x40 DUP4 ADD MSTORE PUSH1 0x60 DUP2 ADD MLOAD PUSH1 0x60 DUP4 ADD MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0xA0 DUP1 DUP5 ADD MSTORE PUSH2 0x9A8 PUSH1 0xC0 DUP5 ADD DUP3 PUSH2 0x30A2 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3279 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xC57 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x30A2 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 DUP5 ADD SWAP1 PUSH1 0x40 DUP5 ADD SWAP1 DUP4 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x32D4 JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x32AD JUMP JUMPDEST POP SWAP1 SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x32F2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP1 CALLDATALOAD SWAP3 PUSH1 0x20 SWAP1 SWAP2 ADD CALLDATALOAD SWAP2 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xF0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0x3082 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x332C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x3337 DUP2 PUSH2 0x31B1 JUMP JUMPDEST SWAP2 POP PUSH2 0x3211 PUSH1 0x20 DUP5 ADD PUSH2 0x3301 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 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x337D JUMPI PUSH2 0x337D PUSH2 0x3345 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x100 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x337D JUMPI PUSH2 0x337D PUSH2 0x3345 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x33CE JUMPI PUSH2 0x33CE PUSH2 0x3345 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x33EF JUMPI PUSH2 0x33EF PUSH2 0x3345 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x340E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 DUP4 ADD PUSH1 0x0 PUSH2 0x3427 PUSH2 0x3422 DUP5 PUSH2 0x33D6 JUMP JUMPDEST PUSH2 0x33A6 JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE DUP6 DUP4 DUP4 ADD GT ISZERO PUSH2 0x343B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 DUP3 PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP3 DUP2 ADD PUSH1 0x20 ADD SWAP3 SWAP1 SWAP3 MSTORE POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3468 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x347E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9A8 DUP5 DUP3 DUP6 ADD PUSH2 0x33FD JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x34A5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x348D JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x34C6 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x348A JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0xFF PUSH1 0xF8 SHL DUP9 AND DUP2 MSTORE PUSH1 0xE0 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x34F9 PUSH1 0xE0 DUP4 ADD DUP10 PUSH2 0x34AE JUMP JUMPDEST DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0x350B DUP2 DUP10 PUSH2 0x34AE JUMP JUMPDEST PUSH1 0x60 DUP5 ADD DUP9 SWAP1 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 AND PUSH1 0x80 DUP6 ADD MSTORE PUSH1 0xA0 DUP5 ADD DUP7 SWAP1 MSTORE DUP4 DUP2 SUB PUSH1 0xC0 DUP6 ADD MSTORE DUP5 MLOAD DUP1 DUP3 MSTORE PUSH1 0x20 DUP1 DUP8 ADD SWAP4 POP SWAP1 SWAP2 ADD SWAP1 PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3561 JUMPI DUP4 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x3543 JUMP JUMPDEST POP SWAP1 SWAP12 SWAP11 POP POP POP POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3587 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x359E PUSH1 0x40 DUP6 ADD PUSH2 0x306B JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xC57 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x34AE JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x35CC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x35E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x20 DUP3 PUSH1 0x5 SHL DUP6 ADD ADD GT ISZERO PUSH2 0x2671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x40 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3614 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x362A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3636 DUP8 DUP3 DUP9 ADD PUSH2 0x35BA JUMP JUMPDEST SWAP1 SWAP6 POP SWAP4 POP POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3655 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3661 DUP8 DUP3 DUP9 ADD PUSH2 0x35BA JUMP JUMPDEST SWAP6 SWAP9 SWAP5 SWAP8 POP SWAP6 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3680 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3689 DUP4 PUSH2 0x306B JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 DUP11 DUP13 SUB PUSH2 0x120 DUP2 SLT ISZERO PUSH2 0x36B8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP12 CALLDATALOAD SWAP11 POP PUSH1 0x20 DUP13 ADD CALLDATALOAD SWAP10 POP PUSH1 0x40 DUP13 ADD CALLDATALOAD SWAP9 POP PUSH1 0x60 DUP13 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x36E3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x36EF DUP15 DUP3 DUP16 ADD PUSH2 0x35BA JUMP JUMPDEST SWAP1 SWAP10 POP SWAP8 POP POP PUSH1 0x80 DUP13 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x370E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x371A DUP15 DUP3 DUP16 ADD PUSH2 0x35BA JUMP JUMPDEST SWAP1 SWAP8 POP SWAP6 POP POP PUSH1 0x40 PUSH1 0x9F NOT DUP3 ADD SLT ISZERO PUSH2 0x3732 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0xA0 DUP12 ADD SWAP3 POP PUSH2 0x3745 PUSH1 0xE0 DUP13 ADD PUSH2 0x31C6 JUMP JUMPDEST SWAP2 POP PUSH2 0x3754 PUSH2 0x100 DUP13 ADD PUSH2 0x31C6 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP9 SWAP12 SWAP2 SWAP5 SWAP8 SWAP11 POP SWAP3 SWAP6 SWAP9 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x3778 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x378E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x40 DUP2 DUP7 SUB SLT ISZERO PUSH2 0x37A0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x37A8 PUSH2 0x335B JUMP JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x37BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x37CA DUP8 DUP3 DUP6 ADD PUSH2 0x33FD JUMP JUMPDEST DUP3 MSTORE POP PUSH1 0x20 DUP3 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x37E6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x37F2 DUP8 DUP3 DUP6 ADD PUSH2 0x33FD JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP DUP1 SWAP4 POP POP POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3816 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3822 DUP6 DUP3 DUP7 ADD PUSH2 0x33FD JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST DUP1 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x3082 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x384D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3866 JUMPI PUSH2 0x3866 PUSH2 0x3345 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH2 0x3876 PUSH1 0x20 DUP3 ADD PUSH2 0x33A6 JUMP JUMPDEST SWAP2 DUP3 MSTORE PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD SWAP3 SWAP1 DUP2 ADD SWAP1 DUP7 DUP5 GT ISZERO PUSH2 0x3892 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP7 ADD SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0x38B4 JUMPI DUP3 MLOAD DUP3 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH2 0x3899 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x100 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x38D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x38D9 PUSH2 0x3383 JUMP JUMPDEST DUP3 MLOAD DUP2 MSTORE SWAP1 POP PUSH2 0x38EB PUSH1 0x20 DUP4 ADD PUSH2 0x382C JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x40 DUP3 ADD MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3909 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3915 DUP5 DUP3 DUP6 ADD PUSH2 0x383C JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x60 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0x80 DUP1 DUP4 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH2 0x393B PUSH1 0xA0 DUP4 ADD PUSH2 0x382C JUMP JUMPDEST PUSH1 0xA0 DUP3 ADD MSTORE PUSH1 0xC0 DUP3 DUP2 ADD MLOAD SWAP1 DUP3 ADD MSTORE PUSH1 0xE0 SWAP2 DUP3 ADD MLOAD SWAP2 DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP3 DUP5 SUB PUSH1 0xA0 DUP2 SLT ISZERO PUSH2 0x3970 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3986 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3992 DUP7 DUP3 DUP8 ADD PUSH2 0x38BE JUMP JUMPDEST SWAP4 POP POP PUSH1 0x80 PUSH1 0x1F NOT DUP3 ADD SLT ISZERO PUSH2 0x39A7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x80 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x39CA JUMPI PUSH2 0x39CA PUSH2 0x3345 JUMP JUMPDEST PUSH1 0x40 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP6 DUP2 ADD MLOAD DUP4 MSTORE DUP6 DUP3 ADD MLOAD SWAP1 DUP4 ADD MSTORE PUSH1 0x60 DUP1 DUP7 ADD MLOAD SWAP2 DUP4 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x80 SWAP1 SWAP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP3 SWAP1 SWAP2 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A12 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3A2B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3A41 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9A8 DUP5 DUP3 DUP6 ADD PUSH2 0x38BE JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3A5E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x3A6C PUSH2 0x3422 DUP3 PUSH2 0x33D6 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x3A81 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x9A8 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP8 ADD PUSH2 0x348A JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x3AA7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3ABD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3AC9 DUP7 DUP3 DUP8 ADD PUSH2 0x3A4D JUMP JUMPDEST SWAP4 POP POP PUSH1 0x20 DUP5 ADD MLOAD SWAP2 POP PUSH2 0x359E PUSH1 0x40 DUP6 ADD PUSH2 0x382C JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x3AF1 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x348A JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT DUP1 ISZERO PUSH2 0x3B0E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x0 SWAP1 PUSH1 0x60 DUP2 ADD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x3B34 JUMPI PUSH2 0x3B34 PUSH2 0x3345 JUMP JUMPDEST PUSH1 0x40 SWAP1 DUP2 MSTORE DUP5 MLOAD DUP3 MSTORE PUSH1 0x20 DUP1 DUP7 ADD MLOAD SWAP1 DUP4 ADD MSTORE SWAP4 DUP5 ADD MLOAD SWAP4 DUP2 ADD SWAP4 SWAP1 SWAP4 MSTORE POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3B6C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC57 DUP3 PUSH2 0x3301 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x3B86 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3B90 PUSH1 0x40 PUSH2 0x33A6 JUMP JUMPDEST DUP1 PUSH1 0x40 DUP5 ADD DUP6 DUP2 GT ISZERO PUSH2 0x3BA2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x32D4 JUMPI DUP1 MLOAD DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 ADD PUSH2 0x3BA4 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x120 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x3BD3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3BE9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3BF5 DUP8 DUP3 DUP9 ADD PUSH2 0x383C JUMP JUMPDEST SWAP5 POP POP PUSH2 0x3C05 DUP7 PUSH1 0x20 DUP8 ADD PUSH2 0x3B75 JUMP JUMPDEST SWAP3 POP DUP6 PUSH1 0x7F DUP7 ADD SLT PUSH2 0x3C16 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 PUSH2 0x3C21 DUP2 PUSH2 0x33A6 JUMP JUMPDEST DUP1 PUSH1 0xE0 DUP9 ADD DUP10 DUP2 GT ISZERO PUSH2 0x3C33 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x60 DUP10 ADD JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x3C59 JUMPI PUSH2 0x3C4A DUP12 DUP3 PUSH2 0x3B75 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 SWAP1 SWAP4 ADD SWAP3 DUP5 ADD PUSH2 0x3C38 JUMP JUMPDEST POP DUP2 SWAP6 POP PUSH2 0x3C67 DUP11 DUP3 PUSH2 0x3B75 JUMP JUMPDEST SWAP5 POP POP POP POP 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 PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3C9E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3CB4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD DUP1 DUP5 SUB PUSH1 0x60 DUP2 SLT ISZERO PUSH2 0x3CC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3CCF PUSH2 0x335B JUMP JUMPDEST PUSH1 0x40 DUP3 SLT ISZERO PUSH2 0x3CDD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3CE5 PUSH2 0x335B JUMP JUMPDEST DUP4 MLOAD DUP2 MSTORE PUSH1 0x20 DUP1 DUP6 ADD MLOAD SWAP1 DUP3 ADD MSTORE DUP2 MSTORE PUSH1 0x40 DUP4 ADD MLOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3D10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x3D1C DUP7 DUP4 DUP6 ADD PUSH2 0x3A4D JUMP JUMPDEST PUSH1 0x20 DUP3 ADD MSTORE SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x3D3E JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x3D5E JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 CALLDATALOAD PUSH1 0x1E NOT DUP5 CALLDATASIZE SUB ADD DUP2 SLT PUSH2 0x3D7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD DUP1 CALLDATALOAD SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP3 GT ISZERO PUSH2 0x3D95 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 ADD SWAP2 POP CALLDATASIZE DUP2 SWAP1 SUB DUP3 SGT ISZERO PUSH2 0x2671 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP4 DUP3 CALLDATACOPY PUSH1 0x0 SWAP2 ADD SWAP1 DUP2 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE DUP3 PUSH1 0x40 DUP3 ADD MSTORE DUP3 DUP5 PUSH1 0x60 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x60 DUP5 DUP4 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x1F SWAP1 SWAP3 ADD PUSH1 0x1F NOT AND SWAP1 SWAP2 ADD ADD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x94B JUMPI PUSH2 0x94B PUSH2 0x3DFB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH2 0x20EB JUMPI DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP6 LT ISZERO PUSH2 0x3E61 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP5 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1D93 JUMPI PUSH1 0x0 DUP2 SSTORE PUSH1 0x1 ADD PUSH2 0x3E6D JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH2 0x3E9A JUMPI PUSH2 0x3E9A PUSH2 0x3345 JUMP JUMPDEST PUSH2 0x3EAE DUP2 PUSH2 0x3EA8 DUP5 SLOAD PUSH2 0x3D2A JUMP JUMPDEST DUP5 PUSH2 0x3E3A JUMP JUMPDEST PUSH1 0x20 PUSH1 0x1F DUP3 GT PUSH1 0x1 DUP2 EQ PUSH2 0x3EE2 JUMPI PUSH1 0x0 DUP4 ISZERO PUSH2 0x3ECA JUMPI POP DUP5 DUP3 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP6 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP5 SWAP1 SHL OR DUP5 SSTORE PUSH2 0x1D93 JUMP JUMPDEST PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP6 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x3F12 JUMPI DUP8 DUP6 ADD MLOAD DUP3 SSTORE PUSH1 0x20 SWAP5 DUP6 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP3 ADD SWAP2 ADD PUSH2 0x3EF2 JUMP JUMPDEST POP DUP5 DUP3 LT ISZERO PUSH2 0x3F30 JUMPI DUP7 DUP5 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP8 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP2 LT ISZERO PUSH2 0x166B JUMPI DUP2 MLOAD DUP5 MSTORE PUSH1 0x20 SWAP4 DUP5 ADD SWAP4 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3F43 JUMP JUMPDEST PUSH2 0x200 DUP2 ADD PUSH2 0x3F71 DUP3 DUP8 PUSH2 0x3F3F JUMP JUMPDEST PUSH1 0x40 DUP3 ADD DUP6 PUSH1 0x0 JUMPDEST PUSH1 0x2 DUP2 LT ISZERO PUSH2 0x3FA3 JUMPI PUSH2 0x3F8D DUP4 DUP4 MLOAD PUSH2 0x3F3F JUMP JUMPDEST PUSH1 0x40 SWAP3 SWAP1 SWAP3 ADD SWAP2 PUSH1 0x20 SWAP2 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3F79 JUMP JUMPDEST POP POP POP PUSH2 0x3FB3 PUSH1 0xC0 DUP4 ADD DUP6 PUSH2 0x3F3F JUMP JUMPDEST PUSH2 0x100 DUP3 ADD DUP4 PUSH1 0x0 JUMPDEST PUSH1 0x8 DUP2 LT ISZERO PUSH2 0x3FDB JUMPI DUP2 MLOAD DUP4 MSTORE PUSH1 0x20 SWAP3 DUP4 ADD SWAP3 SWAP1 SWAP2 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x3FBC JUMP JUMPDEST POP POP POP SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x3FF9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC57 DUP3 PUSH2 0x382C JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x94B JUMPI PUSH2 0x94B PUSH2 0x3DFB JUMP JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x94B JUMPI PUSH2 0x94B PUSH2 0x3DFB JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x12 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG1 PUSH11 0x46D94261C7517CC8FF89F6 SHR 0xC 0xE9 CALLDATALOAD SWAP9 0xE3 0xC8 BLOBHASH DUP1 LT GT 0xDE 0xE6 BLOBHASH 0xA6 0xA5 JUMPI 0xD1 STOP LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xC8 EQ MOD 0xF6 STOP 0xBC INVALID 0xD9 PUSH14 0xA6855CEE7D976EE887C848F4D28D BLOBHASH 0xDE EXTCODECOPY SLOAD PUSH28 0xBC54D5D664736F6C634300081B003300000000000000000000000000 ", + "sourceMap": "2021:23542:39:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4302:266:7;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;5238:155;;;:::i;:::-;;;2331:25:46;;;2319:2;2304:18;5238:155:7;2185:177:46;11023:213:7;;;;;;:::i;:::-;;:::i;:::-;;;2823:14:46;;2816:22;2798:41;;2786:2;2771:18;11023:213:7;2658:187:46;16323:136:39;;;:::i;15784:135::-;;;;;;:::i;:::-;;:::i;:::-;;9166:289:7;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12143:461:39:-;;;;;;:::i;:::-;;:::i;16068:151::-;;;;;;:::i;:::-;;:::i;15482:169::-;;;;;;:::i;:::-;;:::i;3812:210:7:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;12772:231:39:-;;;;;;:::i;:::-;;:::i;9858:142::-;;;:::i;9032:150::-;;;:::i;:::-;;;;;;;:::i;6618:237:7:-;;;;;;:::i;:::-;;:::i;10672:203:39:-;;;;;;:::i;:::-;;:::i;3071:239:7:-;;;;;;:::i;:::-;;:::i;8816:144::-;;;:::i;3419:145::-;;;:::i;1347:87::-;1425:2;1347:87;;1571:256;;;;;;:::i;:::-;;:::i;6076:251::-;;;;;;:::i;:::-;;:::i;7998:164::-;;;:::i;7550:108::-;;;:::i;8728:240:39:-;;;;;;:::i;:::-;;:::i;3155:101:13:-;;;:::i;10412:144:39:-;;;:::i;7543:977::-;;;;;;:::i;:::-;;:::i;3257:229:12:-;;;:::i;5172:903:16:-;;;:::i;:::-;;;;;;;;;;;;;:::i;15167:163:39:-;;;;;;:::i;:::-;;:::i;10983:173::-;;;;;;:::i;:::-;;:::i;2441:144:13:-;;;:::i;:::-;;;-1:-1:-1;;;;;10478:32:46;;;10460:51;;10448:2;10433:18;2441:144:13;10314:203:46;8580:142:39;;;:::i;8273:174:7:-;;;:::i;11833:187:39:-;;;;;;:::i;:::-;;:::i;9709:1216:7:-;;;;;;:::i;:::-;;:::i;2434:47:39:-;;;;;;;;;;;;;;;-1:-1:-1;;;2434:47:39;;;;;;;;;;;;:::i;16578:153::-;;;;;;:::i;:::-;;:::i;10111:197::-;;;;;;:::i;:::-;;:::i;2528:255:7:-;;;;;;:::i;:::-;;:::i;2062:199::-;;;;;;:::i;:::-;;:::i;7294:176::-;;;;;;:::i;:::-;;:::i;:::-;;;;11706:13:46;;11688:32;;11776:4;11764:17;;;11758:24;11736:20;;;11729:54;11827:17;;;11821:24;11799:20;;;11792:54;11676:2;11661:18;7294:176:7;11496:356:46;11407:224:39;;;;;;:::i;:::-;;:::i;9549:209::-;;;;;;:::i;:::-;;:::i;5628:181:7:-;;;;;;:::i;:::-;;:::i;8547:162::-;;;:::i;6962:143::-;;;:::i;2616:136:39:-;;2687:65;2616:136;;9286:146;;;:::i;4869:250:7:-;;;;;;:::i;:::-;;:::i;2038:168:12:-;;;:::i;6671:866:39:-;;;;;;:::i;:::-;;:::i;13247:1386::-;;;;;;:::i;:::-;;:::i;2524:247:12:-;;;;;;:::i;:::-;;:::i;7761:135:7:-;;;:::i;14843:180:39:-;;;;;;:::i;:::-;;:::i;2333:40::-;;;;;;;;;;;;;;;-1:-1:-1;;;2333:40:39;;;;;4302:266:7;4410:19;;:::i;:::-;4431:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4431:28:7;4478:25;:23;:25::i;:::-;:83;;-1:-1:-1;;;4478:83:7;;;;;16242:25:46;;;;-1:-1:-1;;;;;16303:31:46;;16283:18;;;16276:59;4478:66:7;;;;16215:18:46;;4478:83:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4478:83:7;;;;;;;;;;;;:::i;:::-;4471:90;;;;4302:266;;;:::o;5238:155::-;5301:7;5327:25;:23;:25::i;:::-;:59;;-1:-1:-1;;;5327:59:7;;;;;2331:25:46;;;;5327:57:7;;;;2304:18:46;;5327:59:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5320:66;;5238:155;:::o;11023:213::-;11108:4;-1:-1:-1;;;;;;11143:46:7;;-1:-1:-1;;;11143:46:7;;:86;;-1:-1:-1;;;;;;;;;;862:40:26;;;11193:36:7;11124:105;11023:213;-1:-1:-1;;11023:213:7:o;16323:136:39:-;16374:7;16400:37;:35;:37::i;:::-;:52;;;16393:59;;16323:136;:::o;15784:135::-;2334:13:13;:11;:13::i;:::-;15851:61:39::1;15905:6;15851:37;:35;:37::i;:::-;:46;;::::0;:53:::1;:61::i;:::-;;15784:135:::0;:::o;9166:289:7:-;9264:23;;:::i;:::-;9299:19;9321:25;:23;:25::i;:::-;:55;;;;-1:-1:-1;9393:55:7;9425:2;9321:55;9442:5;9393:31;:55::i;:::-;9386:62;9166:289;-1:-1:-1;;;;9166:289:7:o;12143:461:39:-;2334:13:13;:11;:13::i;:::-;12217:41:39::1;12261:37;:35;:37::i;:::-;12308:12;12323:41:::0;;;:30:::1;::::0;::::1;:41;::::0;;;;;12217:81;;-1:-1:-1;;;;;;12323:41:39;;::::1;::::0;12378:10;;;12374:80:::1;;12411:32;::::0;-1:-1:-1;;;12411:32:39;;::::1;::::0;::::1;2331:25:46::0;;;2304:18;;12411:32:39::1;;;;;;;;12374:80;12463:29;12486:5;12463:22;:29::i;:::-;12546:1;12502:41:::0;;;:30:::1;::::0;::::1;:41;::::0;;;;;;:45;;-1:-1:-1;;12502:45:39::1;::::0;;12562:35;::::1;::::0;::::1;::::0;12533:9;;12591:5;;16242:25:46;;;-1:-1:-1;;;;;16303:31:46;16298:2;16283:18;;16276:59;16230:2;16215:18;;16039:302;12562:35:39::1;;;;;;;;12207:397;;12143:461:::0;:::o;16068:151::-;2334:13:13;:11;:13::i;:::-;16143:69:39::1;16201:10;16143:37;:35;:37::i;:::-;:50;;::::0;:57:::1;:69::i;15482:169::-:0;2334:13:13;:11;:13::i;:::-;15639:5:39::1;15566:37;:35;:37::i;:::-;:70;::::0;;;:59:::1;;:70;::::0;;;;;:78;;-1:-1:-1;;15566:78:39::1;::::0;::::1;;::::0;;;::::1;::::0;;15482:169::o;3812:210:7:-;3907:19;;:::i;:::-;3945:25;:23;:25::i;:::-;:70;;-1:-1:-1;;;3945:70:7;;;;;16242:25:46;;;;-1:-1:-1;;;;;16303:31:46;;16283:18;;;16276:59;3945:53:7;;;;16215:18:46;;3945:70:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3945:70:7;;;;;;;;;;;;:::i;12772:231:39:-;12839:4;12855:12;12870:37;:35;:37::i;:::-;:99;;;;:66;;:99;;-1:-1:-1;;12870:99:39;;;;-1:-1:-1;;;;;12870:99:39;12986:10;;;12772:231::o;9858:142::-;9916:7;9942:37;:35;:37::i;:::-;:51;;;9935:58;;9858:142;:::o;9032:150::-;9081:16;9116:59;:37;:35;:37::i;:::-;:50;;:57;:59::i;6618:237:7:-;6735:19;;:::i;:::-;6773:25;:23;:25::i;:::-;:75;;-1:-1:-1;;;6773:75:7;;;;;20865:25:46;;;;20906:18;;;20899:34;;;20949:18;;;20942:34;;;6773:53:7;;;;20838:18:46;;6773:75:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6773:75:7;;;;;;;;;;;;:::i;:::-;6766:82;6618:237;-1:-1:-1;;;6618:237:7:o;10672:203:39:-;2334:13:13;:11;:13::i;:::-;10805::39::1;10750:37;:35;:37::i;:::-;:52;;:68:::0;10833:35:::1;::::0;2331:25:46;;;10833:35:39::1;::::0;2319:2:46;2304:18;10833:35:39::1;;;;;;;;10672:203:::0;:::o;3071:239:7:-;3189:19;;:::i;:::-;3227:25;:23;:25::i;:::-;:76;;-1:-1:-1;;;3227:76:7;;;;;20865:25:46;;;;20906:18;;;20899:34;;;20949:18;;;20942:34;;;3227:54:7;;;;20838:18:46;;3227:76:7;20632:350:46;8816:144:7;8872:7;8898:25;:23;:25::i;:::-;:55;;;;8816:144;-1:-1:-1;8816:144:7:o;3419:145::-;3477:7;3503:25;:23;:25::i;:::-;:54;;-1:-1:-1;;;3503:54:7;;;;;2331:25:46;;;;3503:52:7;;;;2304:18:46;;3503:54:7;2185:177:46;1571:256:7;1659:25;:23;:25::i;:::-;:161;;-1:-1:-1;;;1659:161:7;;;;;21275:25:46;;;;-1:-1:-1;;;;;21336:32:46;;21316:18;;;21309:60;1758:4:7;21385:18:46;;;21378:60;1425:2:7;21454:18:46;;;21447:34;-1:-1:-1;;;;;;21518:28:46;;21497:19;;;21490:57;1659:45:7;;;;21247:19:46;;1659:161:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1571:256;;:::o;6076:251::-;6177:19;;:::i;:::-;6198:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6198:28:7;6245:25;:23;:25::i;:::-;:75;;-1:-1:-1;;;6245:75:7;;;;;21763:25:46;;;;21804:18;;;21797:34;;;6245:60:7;;;;21736:18:46;;6245:75:7;21558:279:46;7998:164:7;8059:7;8085:25;:23;:25::i;:::-;:59;;:70;;7998:164;-1:-1:-1;7998:164:7:o;7550:108::-;7588:7;7614:25;:23;:25::i;:::-;:37;;7550:108;-1:-1:-1;7550:108:7:o;8728:240:39:-;2334:13:13;:11;:13::i;:::-;8798:41:39::1;8842:37;:35;:37::i;:::-;8798:81:::0;-1:-1:-1;8889:30:39::1;:14;::::0;::::1;8908:10:::0;8889:18:::1;:30::i;:::-;-1:-1:-1::0;8934:27:39::1;::::0;-1:-1:-1;;;;;10478:32:46;;10460:51;;8934:27:39::1;::::0;10448:2:46;10433:18;8934:27:39::1;;;;;;;8788:180;8728:240:::0;:::o;3155:101:13:-;2334:13;:11;:13::i;:::-;3219:30:::1;3246:1;3219:18;:30::i;:::-;3155:101::o:0;10412:144:39:-;10471:7;10497:37;:35;:37::i;:::-;:52;;;10490:59;;10412:144;:::o;7543:977::-;6489:18;:16;:18::i;:::-;7621:41:::1;7665:37;:35;:37::i;:::-;7774:36;::::0;::::1;::::0;:82:::1;::::0;-1:-1:-1;;;7774:82:39;;7621:81;;-1:-1:-1;7714:21:39::1;::::0;;;;;-1:-1:-1;;;;;7774:36:39;;::::1;::::0;:69:::1;::::0;:82:::1;::::0;7844:11;;7774:82:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;7774:82:39::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;7713:143;;;;;;7872:33;7895:9;7872:22;:33::i;:::-;7867:108;;7928:36;::::0;-1:-1:-1;;;7928:36:39;;::::1;::::0;::::1;2331:25:46::0;;;2304:18;;7928:36:39::1;2185:177:46::0;7867:108:39::1;7990:9;7985:68;;8022:20;;-1:-1:-1::0;;;8022:20:39::1;;;;;;;;;;;7985:68;8085:2;8067:8;:15;:20;8063:92;;;8110:34;;-1:-1:-1::0;;;8110:34:39::1;;;;;;;;;;;8063:92;8291:2;8277:17:::0;::::1;8271:24:::0;-1:-1:-1;;;;;8319:29:39;::::1;8315:89;;8371:22;;-1:-1:-1::0;;;8371:22:39::1;;;;;;;;;;;8315:89;8439:31;:10;::::0;::::1;8454:15:::0;8439:14:::1;:31::i;:::-;-1:-1:-1::0;8485:28:39::1;::::0;-1:-1:-1;;;;;10478:32:46;;10460:51;;8485:28:39::1;::::0;10448:2:46;10433:18;8485:28:39::1;;;;;;;7611:909;;;;;7543:977:::0;:::o;3257:229:12:-;966:10:15;;3352:14:12;:12;:14::i;:::-;-1:-1:-1;;;;;3352:24:12;;3348:96;;3399:34;;-1:-1:-1;;;3399:34:12;;-1:-1:-1;;;;;10478:32:46;;3399:34:12;;;10460:51:46;10433:18;;3399:34:12;10314:203:46;3348:96:12;3453:26;3472:6;3453:18;:26::i;:::-;3299:187;3257:229::o;5172:903:16:-;5270:13;5297:18;;5270:13;;;5297:18;5270:13;-1:-1:-1;;;;;;;;;;;5776:13:16;;5510:45;;-1:-1:-1;5776:18:16;:43;;;;-1:-1:-1;5798:16:16;;;;:21;5776:43;5768:77;;;;-1:-1:-1;;;5768:77:16;;23213:2:46;5768:77:16;;;23195:21:46;23252:2;23232:18;;;23225:30;-1:-1:-1;;;23271:18:46;;;23264:51;23332:18;;5768:77:16;23011:345:46;5768:77:16;5907:13;:11;:13::i;:::-;5934:16;:14;:16::i;:::-;6042;;;6026:1;6042:16;;;;;;;;;-1:-1:-1;;;5856:212:16;;;-1:-1:-1;5856:212:16;;-1:-1:-1;5964:13:16;;-1:-1:-1;5999:4:16;;-1:-1:-1;6026:1:16;-1:-1:-1;6042:16:16;-1:-1:-1;5856:212:16;-1:-1:-1;;5172:903:16:o;15167:163:39:-;2334:13:13;:11;:13::i;:::-;15319:4:39::1;15246:37;:35;:37::i;10983:173::-:0;2334:13:13;:11;:13::i;:::-;11140:9:39::1;11078:37;:35;:37::i;:::-;:59;;:71:::0;;-1:-1:-1;;;;;;11078:71:39::1;-1:-1:-1::0;;;;;11078:71:39;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;10983:173:39:o;2441:144:13:-;2487:7;;1313:22;2533:20;2570:8;-1:-1:-1;;;;;2570:8:13;;2441:144;-1:-1:-1;;2441:144:13:o;8580:142:39:-;8625:16;8660:55;:37;:35;:37::i;:::-;:46;;:53;:55::i;8273:174:7:-;8339:7;8365:25;:23;:25::i;:::-;:75;;;;8273:174;-1:-1:-1;8273:174:7:o;11833:187:39:-;11918:7;11944:37;:35;:37::i;:::-;:58;;12003:9;11944:69;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;11944:69:39;;11833:187;-1:-1:-1;;11833:187:39:o;9709:1216:7:-;9842:23;;:::i;:::-;9891:25;:23;:25::i;:::-;:37;9885:43;;9877:76;;;;-1:-1:-1;;;9877:76:7;;23857:2:46;9877:76:7;;;23839:21:46;23896:2;23876:18;;;23869:30;-1:-1:-1;;;23915:18:46;;;23908:50;23975:18;;9877:76:7;23655:344:46;9877:76:7;9963:41;10007:25;:23;:25::i;:::-;:83;;-1:-1:-1;;;10007:83:7;;;;;21763:25:46;;;;21804:18;;;21797:34;;;10007:76:7;;;;21736:18:46;;10007:83:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10141:232;;;;;;;;;;;10269:27;;10141:232;;;;;;;;10330:32;;;10141:232;;;;10213:26;;;;10141:232;;;;9963:127;;-1:-1:-1;10100:38:7;10408:25;:23;:25::i;:::-;10500:32;;;;10408:134;;-1:-1:-1;;;10408:134:7;;;;;25009:25:46;;;;-1:-1:-1;;;;;25070:31:46;;25050:18;;;25043:59;25118:18;;;25111:34;10408:59:7;;;;24982:18:46;;10408:134:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10408:134:7;;;;;;;;;;;;:::i;:::-;10571:279;;;;;;;;10597:6;;10571:279;;;10628:11;;;;10571:279;;;;;;10663:10;;;;10571:279;;;;;10694:7;;;;10571:279;;;;;10722:7;;;;10571:279;;;;;10757:14;;;;10571:279;;;;;;;10795:10;;;;10571:279;;;;;10829:10;;;;10571:279;;;;;;;10868:50;;;;;;;;;;;;;;;;;;-1:-1:-1;10868:50:7;9709:1216;-1:-1:-1;;;;;9709:1216:7:o;16578:153:39:-;2334:13:13;:11;:13::i;:::-;16711::39::1;16656:37;:35;:37::i;:::-;:52;;:68:::0;-1:-1:-1;16578:153:39:o;10111:197::-;2334:13:13;:11;:13::i;:::-;10241:12:39::1;10187:37;:35;:37::i;:::-;:51;;:66:::0;10268:33:::1;::::0;2331:25:46;;;10268:33:39::1;::::0;2319:2:46;2304:18;10268:33:39::1;2185:177:46::0;2528:255:7;2631:19;;:::i;:::-;2652:28;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2652:28:7;2699:25;:23;:25::i;:::-;:77;;-1:-1:-1;;;2699:77:7;;;;;21763:25:46;;;;21804:18;;;21797:34;;;2699:61:7;;;;21736:18:46;;2699:77:7;21558:279:46;2062:199:7;2152:19;;:::i;:::-;2190:25;:23;:25::i;:::-;:64;;-1:-1:-1;;;2190:64:7;;;;;21763:25:46;;;;21804:18;;;21797:34;;;2190:48:7;;;;21736:18:46;;2190:64:7;21558:279:46;7294:176:7;7363:24;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;7363:24:7;7406:25;:23;:25::i;:::-;:57;;-1:-1:-1;;;7406:57:7;;;;;21763:25:46;;;;21804:18;;;21797:34;;;7406:50:7;;;;21736:18:46;;7406:57:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;11407:224:39:-;2334:13:13;:11;:13::i;:::-;11567:57:39::1;11594:10;;11606:17;;11567:26;:57::i;:::-;11407:224:::0;;;;:::o;9549:209::-;2334:13:13;:11;:13::i;:::-;9685:14:39::1;9629:37;:35;:37::i;:::-;:70:::0;9714:37:::1;::::0;2331:25:46;;;9714:37:39::1;::::0;2319:2:46;2304:18;9714:37:39::1;2185:177:46::0;5628:181:7;5702:19;;:::i;:::-;5740:25;:23;:25::i;:::-;:62;;-1:-1:-1;;;5740:62:7;;;;;21763:25:46;;;;21804:18;;;21797:34;;;5740:47:7;;;;21736:18:46;;5740:62:7;21558:279:46;8547:162:7;8607:7;8633:25;:23;:25::i;:::-;:69;;;;8547:162;-1:-1:-1;8547:162:7:o;6962:143::-;7019:7;7045:25;:23;:25::i;:::-;:53;;-1:-1:-1;;;7045:53:7;;;;;2331:25:46;;;;7045:51:7;;;;2304:18:46;;7045:53:7;2185:177:46;9286:146:39;9346:7;9372:37;:35;:37::i;4869:250:7:-;4992:19;;:::i;:::-;5030:25;:23;:25::i;:::-;:82;;-1:-1:-1;;;5030:82:7;;;;;25009:25:46;;;;-1:-1:-1;;;;;25070:31:46;;25050:18;;;25043:59;25118:18;;;25111:34;;;5030:59:7;;;;24982:18:46;;5030:82:7;24778:373:46;2038:168:12;2091:7;;1676:27;2142:25;1545:174;6671:866:39;4158:30:14;4191:26;:24;:26::i;:::-;4302:15;;4158:59;;-1:-1:-1;4302:15:14;-1:-1:-1;;;4302:15:14;;;4301:16;;-1:-1:-1;;;;;4348:14:14;4279:19;4724:16;;:34;;;;;4744:14;4724:34;4704:54;;4768:17;4788:11;-1:-1:-1;;;;;4788:16:14;4803:1;4788:16;:50;;;;-1:-1:-1;4816:4:14;4808:25;:30;4788:50;4768:70;;4854:12;4853:13;:30;;;;;4871:12;4870:13;4853:30;4849:91;;;4906:23;;-1:-1:-1;;;4906:23:14;;;;;;;;;;;4849:91;4949:18;;-1:-1:-1;;4949:18:14;4966:1;4949:18;;;4977:67;;;;5011:22;;-1:-1:-1;;;;5011:22:14;-1:-1:-1;;;5011:22:14;;;4977:67;7031:58:39::1;7048:22;;::::0;::::1;:9:::0;:22:::1;:::i;:::-;7072:16;::::0;;;::::1;::::0;::::1;;:::i;7031:58::-;7099:21;7114:5;7099:14;:21::i;:::-;7131:41;7175:37;:35;:37::i;:::-;7131:81;;7242:14;7222:1;:17;;:34;;;;7285:13;7266:1;:16;;:32;;;;7326:12;7308:1;:15;;:30;;;;7374:9;7348:1;:23;;;:35;;;;;-1:-1:-1::0;;;;;7348:35:39::1;;;;;-1:-1:-1::0;;;;;7348:35:39::1;;;;;;7394:49;;;;;;;;;;;;;;-1:-1:-1::0;;;7394:49:39::1;;::::0;7428:14:::1;;;;;;;;;;;;;-1:-1:-1::0;;;7428:14:39::1;;::::0;7394:13:::1;:49::i;:::-;7453:77;7480:20;;7502:27;;7453:26;:77::i;:::-;7021:516;5068:14:14::0;5064:101;;;5098:23;;-1:-1:-1;;;;5098:23:14;;;5140:14;;-1:-1:-1;25498:50:46;;5140:14:14;;25486:2:46;25471:18;5140:14:14;;;;;;;5064:101;4092:1079;;;;;6671:866:39;;;;;;;;;;:::o;13247:1386::-;13399:25;;13393:39;13399:25;13393:44;13389:135;;13487:25;;13460:53;;-1:-1:-1;;;13460:53:39;;;;13487:25;13460:53;;;:::i;13389:135::-;13548:24;13586:20;13620:23;13657:20;13701:15;:21;;;13690:85;;;;;;;;;;;;:::i;:::-;13534:241;;;;;;;;13786:91;13880:415;;;;;;;;13947:2;13880:415;;;;13967:2;13880:415;;;;13987:2;13880:415;;;;;;;;;;;;14029:7;14037:1;14029:10;;;;;;;;:::i;:::-;;;;;;;13880:415;;;;14061:7;14069:1;14061:10;;;;;;;;:::i;:::-;;;;;;;13880:415;;;;14093:7;14101:1;14093:10;;;;;;;;:::i;:::-;;;;;;;13880:415;;;;14125:7;14133:1;14125:10;;;;;;;;:::i;:::-;;;;;;;13880:415;;;;14157:7;14165:1;14157:10;;;;;;;;:::i;:::-;;;;;;;13880:415;;;;14189:7;14197:1;14189:10;;;;;;;;:::i;:::-;;;;;;;13880:415;;;;14221:7;14229:1;14221:10;;;;;;;;:::i;:::-;;;;;;;13880:415;;;;14253:7;14261:1;14253:10;;;;;;;;:::i;:::-;;;;;;;13880:415;;;;;;13786:509;;14306:59;14392:22;14368:94;;;;;;;;;;;;:::i;:::-;14306:156;;14473:153;14512:15;:25;;;14551:22;14587:29;14473:25;:153::i;:::-;13379:1254;;;;;;13247:1386;;:::o;2524:247:12:-;2334:13:13;:11;:13::i;:::-;1676:27:12;2680:26;;-1:-1:-1;;;;;;2680:26:12::1;-1:-1:-1::0;;;;;2680:26:12;::::1;::::0;;::::1;::::0;;2746:7:::1;:5;:7::i;:::-;-1:-1:-1::0;;;;;2721:43:12::1;;;;;;;;;;;2603:168;2524:247:::0;:::o;7761:135:7:-;7814:4;7837:25;:23;:25::i;:::-;:52;;;;;;7761:135;-1:-1:-1;7761:135:7:o;14843:180:39:-;14923:4;14946:37;:35;:37::i;:::-;:70;;;;:59;;:70;;-1:-1:-1;14946:70:39;;;;;;;14843:180::o;1071:175:7:-;1203:27;;1071:175::o;4398:246:39:-;4589:39;;4398:246::o;2658:162:13:-;966:10:15;2717:7:13;:5;:7::i;:::-;-1:-1:-1;;;;;2717:23:13;;2713:101;;2763:40;;-1:-1:-1;;;2763:40:13;;966:10:15;2763:40:13;;;10460:51:46;10433:18;;2763:40:13;10314:203:46;9650:156:31;9723:4;9746:53;9754:3;-1:-1:-1;;;;;9774:23:31;;9746:7;:53::i;19934:184:39:-;19999:25;:23;:25::i;:::-;:53;;-1:-1:-1;;;19999:53:39;;;;;16242:25:46;;;;-1:-1:-1;;;;;16303:31:46;;16283:18;;;16276:59;19999:46:39;;;;16215:18:46;;19999:53:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20062:25;:23;:25::i;:::-;:49;;-1:-1:-1;;;20062:49:39;;;;;2331:25:46;;;;20062:47:39;;;;2304:18:46;;20062:49:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19934:184;:::o;11683:273:31:-;11746:16;11774:22;11799:19;11807:3;11799:7;:19::i;9332:150::-;9402:4;9425:50;9430:3;-1:-1:-1;;;;;9450:23:31;;9425:4;:50::i;2955:222:12:-;1676:27;3104:22;;-1:-1:-1;;;;;;3104:22:12;;;3136:34;3161:8;3136:24;:34::i;16737:201:39:-;16794:73;966:10:15;16794:37:39;:35;:37::i;:::-;:50;;;:59;:73::i;:::-;16789:143;;16890:31;;-1:-1:-1;;;16890:31:39;;966:10:15;16890:31:39;;;10460:51:46;10433:18;;16890:31:39;10314:203:46;6299:155:16;6440:7;6433:14;;6353:13;;-1:-1:-1;;;;;;;;;;;2839:21:16;6433:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6299:155;:::o;6681:161::-;6825:10;6818:17;;6738:13;;-1:-1:-1;;;;;;;;;;;2839:21:16;6818:17;;;:::i;23442:615:39:-;23587:41;23631:37;:35;:37::i;:::-;23587:81;-1:-1:-1;23682:45:39;;;23678:142;;23750:59;;-1:-1:-1;;;23750:59:39;;;;;21763:25:46;;;21804:18;;;21797:34;;;21736:18;;23750:59:39;21558:279:46;23678:142:39;23834:9;23829:222;23849:21;;;23829:222;;;23931:17;;23949:1;23931:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;23891:1;:22;;23914:10;;23925:1;23914:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;23891:37;;;;;;;:::i;:::-;;;;;;;;;;;;;;:60;;-1:-1:-1;;;;;23891:60:39;;;;-1:-1:-1;;;;;;23891:60:39;;;;;;;;;23971:69;24004:10;;24015:1;24004:13;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;24019:17;;24037:1;24019:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;23971:69;;;;;;;;:::i;:::-;;;;;;;;23872:3;;23829:222;;9071:205:14;9129:30;;3147:66;9186:27;8819:122;1847:127:13;6929:20:14;:18;:20::i;:::-;1929:38:13::1;1954:12;1929:24;:38::i;3446:147:16:-:0;6929:20:14;:18;:20::i;:::-;3548:38:16::1;3572:4;3578:7;3548:23;:38::i;16944:454:39:-:0;17198:67;17221:19;17242:22;17198;:67::i;:::-;17275:40;17292:22;17275:16;:40::i;:::-;17325:66;17344:22;17368;17325:18;:66::i;:::-;16944:454;;;:::o;2910:1368:31:-;2976:4;3105:21;;;:14;;;:21;;;;;;3141:13;;3137:1135;;3508:18;3529:12;3540:1;3529:8;:12;:::i;:::-;3575:18;;3508:33;;-1:-1:-1;3555:17:31;;3575:22;;3596:1;;3575:22;:::i;:::-;3555:42;;3630:9;3616:10;:23;3612:378;;3659:17;3679:3;:11;;3691:9;3679:22;;;;;;;;:::i;:::-;;;;;;;;;3659:42;;3826:9;3800:3;:11;;3812:10;3800:23;;;;;;;;:::i;:::-;;;;;;;;;;;;:35;;;;3939:25;;;:14;;;:25;;;;;:36;;;3612:378;4068:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4171:3;:14;;:21;4186:5;4171:21;;;;;;;;;;;4164:28;;;4214:4;4207:11;;;;;;;3137:1135;4256:5;4249:12;;;;;6227:109;6283:16;6318:3;:11;;6311:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6227:109;;;:::o;2336:406::-;2399:4;5006:21;;;:14;;;:21;;;;;;2415:321;;-1:-1:-1;2457:23:31;;;;;;;;:11;:23;;;;;;;;;;;;;2639:18;;2615:21;;;:14;;;:21;;;;;;:42;;;;2671:11;;2415:321;-1:-1:-1;2720:5:31;2713:12;;3774:248:13;1313:22;3923:8;;-1:-1:-1;;;;;;3941:19:13;;-1:-1:-1;;;;;3941:19:13;;;;;;;;3975:40;;3923:8;;;;;3975:40;;3847:24;;3975:40;3837:185;;3774:248;:::o;10284:165:31:-;-1:-1:-1;;;;;10417:23:31;;10364:4;5006:21;;;:14;;;:21;;;;;;:26;;10387:55;4910:129;7082:141:14;7149:17;:15;:17::i;:::-;7144:73;;7189:17;;-1:-1:-1;;;7189:17:14;;;;;;;;;;;1980:235:13;6929:20:14;:18;:20::i;:::-;-1:-1:-1;;;;;2076:26:13;::::1;2072:95;;2125:31;::::0;-1:-1:-1;;;2125:31:13;;2153:1:::1;2125:31;::::0;::::1;10460:51:46::0;10433:18;;2125:31:13::1;10314:203:46::0;3599:330:16;6929:20:14;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;3766:7:16;:14:::1;3776:4:::0;3766:7;:14:::1;:::i;:::-;-1:-1:-1::0;3790:10:16::1;::::0;::::1;:20;3803:7:::0;3790:10;:20:::1;:::i;:::-;-1:-1:-1::0;3891:1:16::1;3875:17:::0;;;3902:16:::1;::::0;;::::1;:20:::0;-1:-1:-1;;3599:330:16:o;20709:771:39:-;20903:41;20947:37;:35;:37::i;:::-;20903:81;;20994:16;21013:1;:22;;21036:19;21013:43;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;21013:43:39;;-1:-1:-1;21013:43:39;21066:75;;21115:15;;-1:-1:-1;;;21115:15:39;;;;;;;;;;;21066:75;21195:8;-1:-1:-1;;;;;21168:48:39;;21234:22;:24;;;21276:22;:24;;;21318:22;:24;;;21360:22;:33;;;21168:239;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21150:324;;21439:24;;-1:-1:-1;;;21439:24:39;;;;;;;;;;;21486:543;21591:12;21605:17;21626:150;21676:22;:44;;;21734:22;:32;;;21626:36;:150::i;:::-;21590:186;;;;21791:7;21786:77;;21821:31;;-1:-1:-1;;;21821:31:39;;;;;;;;;;;21786:77;21877:66;21933:9;21877:37;:35;:37::i;:::-;:46;;;:55;:66::i;:::-;21872:151;;21966:46;;-1:-1:-1;;;21966:46:39;;-1:-1:-1;;;;;10478:32:46;;21966:46:39;;;10460:51:46;10433:18;;21966:46:39;10314:203:46;22584:852:39;22788:25;22816:43;22836:22;22816:19;:43::i;:::-;22788:71;;22870:17;22890:22;:44;;;:54;;;22870:74;;22954:353;22989:6;:16;;;23019:6;:16;;;23049:6;:19;;;23082:6;:18;;;23114:6;:19;;;23147:6;:28;;;23189:22;:44;;;:51;;;23254:9;23277:6;:20;;;22954:21;:353::i;:::-;23317:48;23331:9;23342:6;:22;;;23317:13;:48::i;:::-;23375:54;23394:6;:16;;;23412:6;:16;;;23375:18;:54::i;8485:120:14:-;8535:4;8558:26;:24;:26::i;:::-;:40;-1:-1:-1;;;8558:40:14;;;;;;-1:-1:-1;8485:120:14:o;22035:543:39:-;22200:4;22206:7;22225:21;22249:164;2687:65;22355:7;:14;;;22371:7;:17;;;22306:83;;;;;;;;;20865:25:46;;;20921:2;20906:18;;20899:34;;;;20964:2;20949:18;;20942:34;20853:2;20838:18;;20632:350;22306:83:39;;;;;;;;;;;;;22279:124;;;;;;22249:16;:164::i;:::-;22225:188;-1:-1:-1;22425:17:39;;22472:35;22225:188;22497:9;22472:24;:35::i;:::-;-1:-1:-1;22424:83:39;;-1:-1:-1;22424:83:39;-1:-1:-1;22533:26:39;22526:3;:33;;;;;;;;:::i;:::-;;;-1:-1:-1;22561:9:39;;-1:-1:-1;;;22035:543:39;;;;;;:::o;24063:1498::-;24210:18;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24210:18:39;24259:1295;;;;;;;;24300:22;:33;;;611:1:33;24300:117:39;;;;;;;:::i;:::-;;;;;24259:1295;;;;24446:22;:33;;;768:1:33;24446:117:39;;;;;;;:::i;:::-;;;;;24259:1295;;;;24595:22;:33;;;1243:1:33;24595:120:39;;;;;;;:::i;:::-;;;;;24259:1295;;;;24746:22;:33;;;1080:1:33;24746:119:39;;;;;;;:::i;:::-;;;;;24259:1295;;;;24897:22;:33;;;1406:1:33;24897:120:39;;;;;;;:::i;:::-;;;;;24259:1295;;;;25058:22;:33;;;919:1:33;25058:114:39;;;;;;;:::i;:::-;;;;;24259:1295;;;;25235:22;:33;;;1741:1:33;25235:131:39;;;;;;;:::i;:::-;;;;;-1:-1:-1;;;;;24259:1295:39;;;;;25417:22;:33;;;1572:1:33;25417:122:39;;;;;;;:::i;:::-;;;;;24259:1295;;24240:1314;24063:1498;-1:-1:-1;;24063:1498:39:o;17404:2326::-;17738:41;17782:37;:35;:37::i;:::-;17738:81;;17833:9;17846:1;17833:14;17829:54;;17856:27;;-1:-1:-1;;;17856:27:39;;;;;2331:25:46;;;2304:18;;17856:27:39;2185:177:46;17829:54:39;17897:9;17910:1;17897:14;17893:54;;17920:27;;-1:-1:-1;;;17920:27:39;;;;;2331:25:46;;;2304:18;;17920:27:39;2185:177:46;17893:54:39;17978:1;:15;;;17962:12;:31;17958:106;;18048:15;;;;18014:50;;-1:-1:-1;;;18014:50:39;;;;18034:12;;18014:50;;21763:25:46;;;21819:2;21804:18;;21797:34;21751:2;21736:18;;21558:279;17958:106:39;18098:21;18079:15;:40;18075:118;;18140:53;;-1:-1:-1;;;;;;18140:53:39;;;;;21763:25:46;;;21804:18;;;21797:34;;;21736:18;;18140:53:39;21558:279:46;18075:118:39;18204:31;2533:6;18289:11;:31;18285:229;;;18382:22;:11;18396:8;18382:22;:::i;:::-;18356:48;;18285:229;;;18481:22;:11;18495:8;18481:22;:::i;:::-;18455:48;;18285:229;18658:12;18672:13;18687:11;18702:91;18762:1;:17;;;18744:15;:35;;;;:::i;:::-;18702:24;:91::i;:::-;18657:136;;-1:-1:-1;18657:136:39;-1:-1:-1;18657:136:39;-1:-1:-1;18807:34:39;18657:136;18859:11;18657:136;18867:3;18859:11;:::i;:::-;18844:12;:4;18851:5;18844:12;:::i;:::-;:26;;;;:::i;:::-;:32;;;;:::i;:::-;18807:69;;18923:23;18894:26;:52;18890:129;;;18973:31;;-1:-1:-1;;;18973:31:39;;;;;2331:25:46;;;2304:18;;18973:31:39;2185:177:46;18890:129:39;19033:18;19053:19;19074:17;19095:90;19155:1;:16;;;19137:15;:34;;;;:::i;19095:90::-;19032:153;;-1:-1:-1;19032:153:39;-1:-1:-1;19032:153:39;-1:-1:-1;19199:18:39;19032:153;19241:17;19032:153;19255:3;19241:17;:::i;:::-;19220:18;:10;19233:5;19220:18;:::i;:::-;:38;;;;:::i;:::-;:50;;;;:::i;:::-;19199:71;;19314:10;19288:23;:36;19284:114;;;19371:11;19351:32;;-1:-1:-1;;;19351:32:39;;;;;;2331:25:46;;2319:2;2304:18;;2185:177;19284:114:39;18643:765;;;;;;;;19457:15;19437:1;:17;;;19422:12;:32;;;;:::i;:::-;:50;19418:108;;;19493:33;;-1:-1:-1;;;19493:33:39;;;;;2331:25:46;;;2304:18;;19493:33:39;2185:177:46;19418:108:39;19573:16;;;;19555:34;;:15;:34;:::i;:::-;19540:12;:49;19536:108;;;19610:34;;-1:-1:-1;;;19610:34:39;;;;;2331:25:46;;;2304:18;;19610:34:39;2185:177:46;19536:108:39;19679:13;19659:1;:16;;;:33;19655:68;;19701:22;;-1:-1:-1;;;19701:22:39;;;;;;;;;;;19655:68;17728:2002;;17404:2326;;;;;;;;;:::o;20124:579::-;20213:15;-1:-1:-1;;;;;20213:20:39;20232:1;20213:20;20209:72;;20242:39;;-1:-1:-1;;;20242:39:39;;-1:-1:-1;;;;;25516:31:46;;20242:39:39;;;25498:50:46;25471:18;;20242:39:39;25345:209:46;20209:72:39;20291:41;20335:37;:35;:37::i;:::-;20382:20;20405:41;;;:30;;;:41;;;;;;20291:81;;-1:-1:-1;;;;;;20405:41:39;20460:18;;20456:172;;20494:25;:23;:25::i;:::-;:61;;-1:-1:-1;;;20494:61:39;;;;;16242:25:46;;;;-1:-1:-1;;;;;16303:31:46;;16283:18;;;16276:59;20494:46:39;;;;16215:18:46;;20494:61:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20574:43:39;;;16242:25:46;;;-1:-1:-1;;;;;16303:31:46;;16298:2;16283:18;;16276:59;20574:43:39;;-1:-1:-1;16215:18:46;;-1:-1:-1;20574:43:39;;;;;;;20456:172;-1:-1:-1;20637:41:39;;;;:30;;:41;;;;;;:59;;-1:-1:-1;;20637:59:39;-1:-1:-1;;;;;20637:59:39;;;;;;;;;20124:579::o;19736:192::-;19807:25;:23;:25::i;:::-;:55;;-1:-1:-1;;;19807:55:39;;;;;20865:25:46;;;;20906:18;;;20899:34;;;20949:18;;;20942:34;;;19807:47:39;;;;20838:18:46;;19807:55:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19872:25;:23;:25::i;:::-;:49;;-1:-1:-1;;;19872:49:39;;;;;2331:25:46;;;;19872:47:39;;;;2304:18:46;;19872:49:39;2185:177:46;4946:176:16;5023:7;5049:66;5082:20;:18;:20::i;:::-;5104:10;4049:4:25;4043:11;-1:-1:-1;;;4067:23:25;;4119:4;4110:14;;4103:39;;;;4171:4;4162:14;;4155:34;4227:4;4212:20;;;3874:374;2129:778:24;2232:17;2251:16;2269:14;2299:9;:16;2319:2;2299:22;2295:606;;2604:4;2589:20;;2583:27;2653:4;2638:20;;2632:27;2710:4;2695:20;;2689:27;2337:9;2681:36;2751:25;2762:4;2681:36;2583:27;2632;2751:10;:25::i;:::-;2744:32;;;;;;;;;;;2295:606;-1:-1:-1;;2872:16:24;;2823:1;;-1:-1:-1;2827:35:24;;2295:606;2129:778;;;;;:::o;4671:221:32:-;4738:12;;;4835:40;986:12;4847:9;:27;4835:11;:40::i;:::-;4814:61;;;;-1:-1:-1;4814:61:32;;-1:-1:-1;4671:221:32;-1:-1:-1;;4671:221:32:o;4015:109:16:-;4068:7;4094:23;:21;:23::i;5203:1551:24:-;5329:17;;;6283:66;6270:79;;6266:164;;;-1:-1:-1;6381:1:24;;-1:-1:-1;6385:30:24;;-1:-1:-1;6417:1:24;6365:54;;6266:164;6541:24;;;6524:14;6541:24;;;;;;;;;36002:25:46;;;36075:4;36063:17;;36043:18;;;36036:45;;;;36097:18;;;36090:34;;;36140:18;;;36133:34;;;6541:24:24;;35974:19:46;;6541:24:24;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6541:24:24;;-1:-1:-1;;6541:24:24;;;-1:-1:-1;;;;;;;6579:20:24;;6575:113;;-1:-1:-1;6631:1:24;;-1:-1:-1;6635:29:24;;-1:-1:-1;6631:1:24;;-1:-1:-1;6615:62:24;;6575:113;6706:6;-1:-1:-1;6714:20:24;;-1:-1:-1;6714:20:24;;-1:-1:-1;5203:1551:24;;;;;;;;;:::o;3323:743:32:-;3382:12;;;3481:5;3513:31;;;3382:12;3579:6;3570:1;:5;;3569:16;;-1:-1:-1;3626:1:32;3621;3608:6;:10;;:14;3607:20;3603:24;;;;3641:12;3675:7;3657:4;3669:1;3665:5;;3657:14;3656:26;;-1:-1:-1;3721:1:32;3705:4;:12;;3704:18;3700:1;:22;3725:2;3700:27;3696:31;;3741:13;3768:4;3763:1;3758:2;:6;3757:15;;;;;:::i;:::-;;;-1:-1:-1;3786:11:32;3822:2;3805:4;:13;;3804:20;3800:24;;;-1:-1:-1;3851:2:32;3842:6;:11;-1:-1:-1;;3924:6:32;;;;3917:3;:14;:22;;;;:26;;;3885:1;3889:2;:6;;;3876:19;;;;;;;;-1:-1:-1;3842:11:32;-1:-1:-1;3917:26:32;-1:-1:-1;;;;3323:743:32:o;4130:191:16:-;4185:7;2073:95;4243:17;:15;:17::i;:::-;4262:20;:18;:20::i;:::-;4221:92;;;;;;36437:25:46;;;;36478:18;;36471:34;;;;36521:18;;;36514:34;4284:13:16;36564:18:46;;;36557:34;4307:4:16;36607:19:46;;;36600:61;36409:19;;4221:92:16;;;;;;;;;;;;4211:103;;;;;;4204:110;;4130:191;:::o;7057:687::-;7107:7;-1:-1:-1;;;;;;;;;;;7107:7:16;7202:13;:11;:13::i;:::-;7229:18;;7181:34;;-1:-1:-1;7229:22:16;7225:513;;7274:22;;;;;;;;7057:687;-1:-1:-1;;7057:687:16:o;7225:513::-;7571:13;;7602:15;;7598:130;;7644:10;7057:687;-1:-1:-1;;;7057:687:16:o;7598:130::-;7700:13;7693:20;;;;;7057:687;:::o;7965:723::-;8018:7;-1:-1:-1;;;;;;;;;;;8018:7:16;8116:16;:14;:16::i;:::-;8146:21;;8092:40;;-1:-1:-1;8146:25:16;8142:540;;8194:25;;;;;;;;7965:723;-1:-1:-1;;7965:723:16:o;8142:540::-;8506:16;;;;8540:18;;8536:136;;8585:13;7965:723;-1:-1:-1;;;7965:723:16:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:171:46:-;81:20;;-1:-1:-1;;;;;130:30:46;;120:41;;110:69;;175:1;172;165:12;110:69;14:171;;;:::o;190:184::-;248:6;301:2;289:9;280:7;276:23;272:32;269:52;;;317:1;314;307:12;269:52;340:28;358:9;340:28;:::i;475:1033::-;590:12;;578:25;;666:4;655:16;;;649:23;642:31;635:39;619:14;;;612:63;721:4;710:16;;;704:23;562:6;743:14;;;736:30;;;815:19;;553:16;;;843:20;;;523:3;;917:23;;523:3;;890;881:13;;;968:179;982:6;979:1;976:13;968:179;;;1051:6;1045:13;1038:5;1031:28;1092:4;1085:5;1081:16;1072:25;;1132:4;1124:6;1120:17;1110:27;;1004:1;1001;997:9;992:14;;968:179;;;972:3;1196:4;1189:5;1185:16;1179:23;1172:4;1167:3;1163:14;1156:47;1252:4;1245:5;1241:16;1235:23;1228:4;1223:3;1219:14;1212:47;1307:4;1300:5;1296:16;1290:23;1268:45;;1322:47;1363:4;1358:3;1354:14;1338;449:13;442:21;430:34;;379:91;1322:47;1418:4;1411:5;1407:16;1401:23;1394:4;1389:3;1385:14;1378:47;1474:4;1467:5;1463:16;1457:23;1450:4;1445:3;1441:14;1434:47;1497:5;1490:12;;;;;475:1033;;;;:::o;1780:400::-;2037:3;2026:9;2019:22;2000:4;2058:52;2105:3;2094:9;2090:19;2082:6;2058:52;:::i;:::-;2050:60;;2119:55;2170:2;2159:9;2155:18;2147:6;1594:5;1588:12;1583:3;1576:25;1650:4;1643:5;1639:16;1633:23;1626:4;1621:3;1617:14;1610:47;1706:4;1699:5;1695:16;1689:23;1682:4;1677:3;1673:14;1666:47;1762:4;1755:5;1751:16;1745:23;1738:4;1733:3;1729:14;1722:47;;;1513:262;2367:286;2425:6;2478:2;2466:9;2457:7;2453:23;2449:32;2446:52;;;2494:1;2491;2484:12;2446:52;2520:23;;-1:-1:-1;;;;;;2572:32:46;;2562:43;;2552:71;;2619:1;2616;2609:12;2850:131;-1:-1:-1;;;;;2925:31:46;;2915:42;;2905:70;;2971:1;2968;2961:12;2986:134;3054:20;;3083:31;3054:20;3083:31;:::i;3125:247::-;3184:6;3237:2;3225:9;3216:7;3212:23;3208:32;3205:52;;;3253:1;3250;3243:12;3205:52;3292:9;3279:23;3311:31;3336:5;3311:31;:::i;3377:298::-;3444:6;3452;3505:2;3493:9;3484:7;3480:23;3476:32;3473:52;;;3521:1;3518;3511:12;3473:52;3566:23;;;-1:-1:-1;3632:37:46;3665:2;3650:18;;3632:37;:::i;:::-;3622:47;;3377:298;;;;;:::o;3680:444::-;3875:2;3864:9;3857:21;3887:62;3945:2;3934:9;3930:18;3921:6;3915:13;1594:5;1588:12;1583:3;1576:25;1650:4;1643:5;1639:16;1633:23;1626:4;1621:3;1617:14;1610:47;1706:4;1699:5;1695:16;1689:23;1682:4;1677:3;1673:14;1666:47;1762:4;1755:5;1751:16;1745:23;1738:4;1733:3;1729:14;1722:47;;;1513:262;3887:62;3838:4;3996:2;3988:6;3984:15;3978:22;4038:4;4031;4020:9;4016:20;4009:34;4060:58;4113:3;4102:9;4098:19;4084:12;4060:58;:::i;4129:226::-;4188:6;4241:2;4229:9;4220:7;4216:23;4212:32;4209:52;;;4257:1;4254;4247:12;4209:52;-1:-1:-1;4302:23:46;;4129:226;-1:-1:-1;4129:226:46:o;4545:252::-;4720:2;4709:9;4702:21;4683:4;4740:51;4787:2;4776:9;4772:18;4764:6;4740:51;:::i;4802:637::-;4992:2;5004:21;;;5074:13;;4977:18;;;5096:22;;;4944:4;;5175:15;;;5149:2;5134:18;;;4944:4;5218:195;5232:6;5229:1;5226:13;5218:195;;;5297:13;;-1:-1:-1;;;;;5293:39:46;5281:52;;5362:2;5388:15;;;;5353:12;;;;5329:1;5247:9;5218:195;;;-1:-1:-1;5430:3:46;;4802:637;-1:-1:-1;;;;;4802:637:46:o;5444:346::-;5512:6;5520;5573:2;5561:9;5552:7;5548:23;5544:32;5541:52;;;5589:1;5586;5579:12;5541:52;-1:-1:-1;;5634:23:46;;;5754:2;5739:18;;;5726:32;;-1:-1:-1;5444:346:46:o;5795:168::-;5862:20;;-1:-1:-1;;;;;;5911:27:46;;5901:38;;5891:66;;5953:1;5950;5943:12;5968:319;6035:6;6043;6096:2;6084:9;6075:7;6071:23;6067:32;6064:52;;;6112:1;6109;6102:12;6064:52;6151:9;6138:23;6170:31;6195:5;6170:31;:::i;:::-;6220:5;-1:-1:-1;6244:37:46;6277:2;6262:18;;6244:37;:::i;6292:127::-;6353:10;6348:3;6344:20;6341:1;6334:31;6384:4;6381:1;6374:15;6408:4;6405:1;6398:15;6424:251;6496:2;6490:9;;;6526:15;;-1:-1:-1;;;;;6556:34:46;;6592:22;;;6553:62;6550:88;;;6618:18;;:::i;:::-;6654:2;6647:22;6424:251;:::o;6680:255::-;6752:2;6746:9;6794:6;6782:19;;-1:-1:-1;;;;;6816:34:46;;6852:22;;;6813:62;6810:88;;;6878:18;;:::i;6940:275::-;7011:2;7005:9;7076:2;7057:13;;-1:-1:-1;;7053:27:46;7041:40;;-1:-1:-1;;;;;7096:34:46;;7132:22;;;7093:62;7090:88;;;7158:18;;:::i;:::-;7194:2;7187:22;6940:275;;-1:-1:-1;6940:275:46:o;7220:186::-;7268:4;-1:-1:-1;;;;;7293:6:46;7290:30;7287:56;;;7323:18;;:::i;:::-;-1:-1:-1;7389:2:46;7368:15;-1:-1:-1;;7364:29:46;7395:4;7360:40;;7220:186::o;7411:516::-;7453:5;7506:3;7499:4;7491:6;7487:17;7483:27;7473:55;;7524:1;7521;7514:12;7473:55;7564:6;7551:20;7603:4;7595:6;7591:17;7632:1;7653:52;7669:35;7697:6;7669:35;:::i;:::-;7653:52;:::i;:::-;7642:63;;7730:6;7721:7;7714:23;7770:3;7761:6;7756:3;7752:16;7749:25;7746:45;;;7787:1;7784;7777:12;7746:45;7838:6;7833:3;7826:4;7817:7;7813:18;7800:45;7894:1;7865:20;;;7887:4;7861:31;7854:42;;;;-1:-1:-1;7869:7:46;7411:516;-1:-1:-1;;;7411:516:46:o;7932:320::-;8000:6;8053:2;8041:9;8032:7;8028:23;8024:32;8021:52;;;8069:1;8066;8059:12;8021:52;8109:9;8096:23;-1:-1:-1;;;;;8134:6:46;8131:30;8128:50;;;8174:1;8171;8164:12;8128:50;8197:49;8238:7;8229:6;8218:9;8214:22;8197:49;:::i;8257:250::-;8342:1;8352:113;8366:6;8363:1;8360:13;8352:113;;;8442:11;;;8436:18;8423:11;;;8416:39;8388:2;8381:10;8352:113;;;-1:-1:-1;;8499:1:46;8481:16;;8474:27;8257:250::o;8512:271::-;8554:3;8592:5;8586:12;8619:6;8614:3;8607:19;8635:76;8704:6;8697:4;8692:3;8688:14;8681:4;8674:5;8670:16;8635:76;:::i;:::-;8765:2;8744:15;-1:-1:-1;;8740:29:46;8731:39;;;;8772:4;8727:50;;8512:271;-1:-1:-1;;8512:271:46:o;8788:1238::-;9194:3;9189;9185:13;9177:6;9173:26;9162:9;9155:45;9236:3;9231:2;9220:9;9216:18;9209:31;9136:4;9263:46;9304:3;9293:9;9289:19;9281:6;9263:46;:::i;:::-;9357:9;9349:6;9345:22;9340:2;9329:9;9325:18;9318:50;9391:33;9417:6;9409;9391:33;:::i;:::-;9455:2;9440:18;;9433:34;;;-1:-1:-1;;;;;9504:32:46;;9498:3;9483:19;;9476:61;9524:3;9553:19;;9546:35;;;9618:22;;;9612:3;9597:19;;9590:51;9690:13;;9712:22;;;9762:2;9788:15;;;;-1:-1:-1;9750:15:46;;;;-1:-1:-1;9831:169:46;9845:6;9842:1;9839:13;9831:169;;;9906:13;;9894:26;;9949:2;9975:15;;;;9940:12;;;;9867:1;9860:9;9831:169;;;-1:-1:-1;10017:3:46;;8788:1238;-1:-1:-1;;;;;;;;;;;8788:1238:46:o;10848:418::-;10924:6;10932;10940;10993:2;10981:9;10972:7;10968:23;10964:32;10961:52;;;11009:1;11006;10999:12;10961:52;11054:23;;;-1:-1:-1;11174:2:46;11159:18;;11146:32;;-1:-1:-1;11223:37:46;11256:2;11241:18;;11223:37;:::i;:::-;11213:47;;10848:418;;;;;:::o;11271:220::-;11420:2;11409:9;11402:21;11383:4;11440:45;11481:2;11470:9;11466:18;11458:6;11440:45;:::i;11857:375::-;11928:8;11938:6;11992:3;11985:4;11977:6;11973:17;11969:27;11959:55;;12010:1;12007;12000:12;11959:55;-1:-1:-1;12033:20:46;;-1:-1:-1;;;;;12065:30:46;;12062:50;;;12108:1;12105;12098:12;12062:50;12145:4;12137:6;12133:17;12121:29;;12205:3;12198:4;12188:6;12185:1;12181:14;12173:6;12169:27;12165:38;12162:47;12159:67;;;12222:1;12219;12212:12;12237:796;12371:6;12379;12387;12395;12448:2;12436:9;12427:7;12423:23;12419:32;12416:52;;;12464:1;12461;12454:12;12416:52;12504:9;12491:23;-1:-1:-1;;;;;12529:6:46;12526:30;12523:50;;;12569:1;12566;12559:12;12523:50;12608:78;12678:7;12669:6;12658:9;12654:22;12608:78;:::i;:::-;12705:8;;-1:-1:-1;12582:104:46;-1:-1:-1;;12793:2:46;12778:18;;12765:32;-1:-1:-1;;;;;12809:32:46;;12806:52;;;12854:1;12851;12844:12;12806:52;12893:80;12965:7;12954:8;12943:9;12939:24;12893:80;:::i;:::-;12237:796;;;;-1:-1:-1;12992:8:46;-1:-1:-1;;;;12237:796:46:o;13220:298::-;13287:6;13295;13348:2;13336:9;13327:7;13323:23;13319:32;13316:52;;;13364:1;13361;13354:12;13316:52;13387:28;13405:9;13387:28;:::i;:::-;13377:38;13484:2;13469:18;;;;13456:32;;-1:-1:-1;;;13220:298:46:o;13523:1494::-;13772:6;13780;13788;13796;13804;13812;13820;13828;13836;13844;13888:9;13879:7;13875:23;13918:3;13914:2;13910:12;13907:32;;;13935:1;13932;13925:12;13907:32;13980:23;;;-1:-1:-1;14100:2:46;14085:18;;14072:32;;-1:-1:-1;14203:2:46;14188:18;;14175:32;;-1:-1:-1;14284:2:46;14269:18;;14256:32;-1:-1:-1;;;;;14300:30:46;;14297:50;;;14343:1;14340;14333:12;14297:50;14382:78;14452:7;14443:6;14432:9;14428:22;14382:78;:::i;:::-;14479:8;;-1:-1:-1;14356:104:46;-1:-1:-1;;14567:3:46;14552:19;;14539:33;-1:-1:-1;;;;;14584:32:46;;14581:52;;;14629:1;14626;14619:12;14581:52;14668:80;14740:7;14729:8;14718:9;14714:24;14668:80;:::i;:::-;14767:8;;-1:-1:-1;14642:106:46;-1:-1:-1;;14837:2:46;-1:-1:-1;;14818:17:46;;14814:26;14811:46;;;14853:1;14850;14843:12;14811:46;;14891:3;14880:9;14876:19;14866:29;;14914:39;14948:3;14937:9;14933:19;14914:39;:::i;:::-;14904:49;;14972:39;15006:3;14995:9;14991:19;14972:39;:::i;:::-;14962:49;;13523:1494;;;;;;;;;;;;;:::o;15022:1012::-;15133:6;15141;15194:2;15182:9;15173:7;15169:23;15165:32;15162:52;;;15210:1;15207;15200:12;15162:52;15250:9;15237:23;-1:-1:-1;;;;;15275:6:46;15272:30;15269:50;;;15315:1;15312;15305:12;15269:50;15338:22;;15394:2;15376:16;;;15372:25;15369:45;;;15410:1;15407;15400:12;15369:45;15436:22;;:::i;:::-;15496:2;15483:16;-1:-1:-1;;;;;15514:8:46;15511:32;15508:52;;;15556:1;15553;15546:12;15508:52;15583:44;15619:7;15608:8;15604:2;15600:17;15583:44;:::i;:::-;15576:5;15569:59;;15674:2;15670;15666:11;15653:25;-1:-1:-1;;;;;15693:8:46;15690:32;15687:52;;;15735:1;15732;15725:12;15687:52;15771:44;15807:7;15796:8;15792:2;15788:17;15771:44;:::i;:::-;15766:2;15759:5;15755:14;15748:68;;15835:5;15825:15;;;;15893:2;15882:9;15878:18;15865:32;-1:-1:-1;;;;;15912:8:46;15909:32;15906:52;;;15954:1;15951;15944:12;15906:52;15977:51;16020:7;16009:8;15998:9;15994:24;15977:51;:::i;:::-;15967:61;;;15022:1012;;;;;:::o;16346:164::-;16422:13;;16471;;16464:21;16454:32;;16444:60;;16500:1;16497;16490:12;16515:772;16580:5;16633:3;16626:4;16618:6;16614:17;16610:27;16600:55;;16651:1;16648;16641:12;16600:55;16684:6;16678:13;-1:-1:-1;;;;;16706:6:46;16703:30;16700:56;;;16736:18;;:::i;:::-;16782:6;16779:1;16775:14;16809:30;16833:4;16829:2;16825:13;16809:30;:::i;:::-;16875:19;;;16919:4;16951:15;;;16947:26;;;16910:14;;;;16985:15;;;16982:35;;;17013:1;17010;17003:12;16982:35;17049:4;17041:6;17037:17;17026:28;;17063:193;17079:6;17074:3;17071:15;17063:193;;;17171:10;;17194:18;;17241:4;17096:14;;;;17232;;;;17063:193;;;17274:7;16515:772;-1:-1:-1;;;;;;16515:772:46:o;17292:1087::-;17355:5;17403:6;17391:9;17386:3;17382:19;17378:32;17375:52;;;17423:1;17420;17413:12;17375:52;17445:22;;:::i;:::-;17512:16;;17537:22;;17436:31;-1:-1:-1;17591:46:46;17633:2;17618:18;;17591:46;:::i;:::-;17586:2;17579:5;17575:14;17568:70;17682:2;17671:9;17667:18;17661:25;-1:-1:-1;;;;;17701:6:46;17698:30;17695:50;;;17741:1;17738;17731:12;17695:50;17777:68;17841:3;17832:6;17821:9;17817:22;17777:68;:::i;:::-;17772:2;17761:14;;17754:92;-1:-1:-1;17912:2:46;17897:18;;;17891:25;17932:14;;;17925:31;18022:3;18007:19;;;18001:26;18043:15;;;18036:32;18101:47;18143:3;18128:19;;18101:47;:::i;:::-;18095:3;18084:15;;18077:72;18215:3;18200:19;;;18194:26;18236:15;;;18229:32;18327:3;18312:19;;;18306:26;18348:15;;;18341:32;;;;18088:5;17292:1087;-1:-1:-1;17292:1087:46:o;18384:1158::-;18513:6;18521;18565:9;18556:7;18552:23;18595:3;18591:2;18587:12;18584:32;;;18612:1;18609;18602:12;18584:32;18645:9;18639:16;-1:-1:-1;;;;;18670:6:46;18667:30;18664:50;;;18710:1;18707;18700:12;18664:50;18733:67;18792:7;18783:6;18772:9;18768:22;18733:67;:::i;:::-;18723:77;-1:-1:-1;;18834:4:46;-1:-1:-1;;18816:16:46;;18812:27;18809:47;;;18852:1;18849;18842:12;18809:47;-1:-1:-1;18905:2:46;18899:9;18947:4;18935:17;;-1:-1:-1;;;;;18967:34:46;;19003:22;;;18964:62;18961:88;;;19029:18;;:::i;:::-;19065:2;19058:22;;;19142:2;19127:18;;;19121:25;19155:21;;19227:18;;;19221:25;19262:15;;;19255:32;19353:2;19338:18;;;19332:25;19373:15;;;19366:32;;;;19464:4;19449:20;;;19443:27;19486:15;;;19479:32;;;;-1:-1:-1;18384:1158:46;19162:6;;-1:-1:-1;18384:1158:46:o;19760:230::-;19830:6;19883:2;19871:9;19862:7;19858:23;19854:32;19851:52;;;19899:1;19896;19889:12;19851:52;-1:-1:-1;19944:16:46;;19760:230;-1:-1:-1;19760:230:46:o;20271:356::-;20364:6;20417:2;20405:9;20396:7;20392:23;20388:32;20385:52;;;20433:1;20430;20423:12;20385:52;20466:9;20460:16;-1:-1:-1;;;;;20491:6:46;20488:30;20485:50;;;20531:1;20528;20521:12;20485:50;20554:67;20613:7;20604:6;20593:9;20589:22;20554:67;:::i;22065:461::-;22118:5;22171:3;22164:4;22156:6;22152:17;22148:27;22138:55;;22189:1;22186;22179:12;22138:55;22222:6;22216:13;22253:52;22269:35;22297:6;22269:35;:::i;22253:52::-;22330:6;22321:7;22314:23;22384:3;22377:4;22368:6;22360;22356:19;22352:30;22349:39;22346:59;;;22401:1;22398;22391:12;22346:59;22414:81;22488:6;22481:4;22472:7;22468:18;22461:4;22453:6;22449:17;22414:81;:::i;22531:475::-;22625:6;22633;22641;22694:2;22682:9;22673:7;22669:23;22665:32;22662:52;;;22710:1;22707;22700:12;22662:52;22743:9;22737:16;-1:-1:-1;;;;;22768:6:46;22765:30;22762:50;;;22808:1;22805;22798:12;22762:50;22831:60;22883:7;22874:6;22863:9;22859:22;22831:60;:::i;:::-;22821:70;;;22931:2;22920:9;22916:18;22910:25;22900:35;;22954:46;22996:2;22985:9;22981:18;22954:46;:::i;23361:289::-;23492:3;23530:6;23524:13;23546:66;23605:6;23600:3;23593:4;23585:6;23581:17;23546:66;:::i;:::-;23628:16;;;;;23361:289;-1:-1:-1;;23361:289:46:o;24004:769::-;24097:6;24157:2;24145:9;24136:7;24132:23;24128:32;24172:2;24169:22;;;24187:1;24184;24177:12;24169:22;-1:-1:-1;24257:2:46;24251:9;24206:1;;24299:2;24287:15;;-1:-1:-1;;;;;24317:34:46;;24353:22;;;24314:62;24311:88;;;24379:18;;:::i;:::-;24415:2;24408:22;;;24472:16;;24497:21;;24585:2;24570:18;;;24564:25;24605:15;;;24598:32;24682:18;;;24676:25;24717:15;;;24710:32;;;;-1:-1:-1;24504:6:46;;24004:769;-1:-1:-1;;24004:769:46:o;25156:184::-;25214:6;25267:2;25255:9;25246:7;25242:23;25238:32;25235:52;;;25283:1;25280;25273:12;25235:52;25306:28;25324:9;25306:28;:::i;25559:620::-;25620:5;25673:3;25666:4;25658:6;25654:17;25650:27;25640:55;;25691:1;25688;25681:12;25640:55;25792:19;25770:2;25792:19;:::i;:::-;25835:3;25873:2;25865:6;25861:15;25899:3;25891:6;25888:15;25885:35;;;25916:1;25913;25906:12;25885:35;25940:6;25955:193;25971:6;25966:3;25963:15;25955:193;;;26063:10;;26086:18;;26133:4;26124:14;;;;25988;25955:193;;26184:1209;26398:6;26406;26414;26422;26475:3;26463:9;26454:7;26450:23;26446:33;26443:53;;;26492:1;26489;26482:12;26443:53;26525:9;26519:16;-1:-1:-1;;;;;26550:6:46;26547:30;26544:50;;;26590:1;26587;26580:12;26544:50;26613:72;26677:7;26668:6;26657:9;26653:22;26613:72;:::i;:::-;26603:82;;;26704:64;26760:7;26755:2;26744:9;26740:18;26704:64;:::i;:::-;26694:74;;26812:7;26806:3;26795:9;26791:19;26787:33;26777:61;;26834:1;26831;26824:12;26777:61;26913:2;26935:19;26913:2;26935:19;:::i;:::-;26976:3;27017;27006:9;27002:19;27044:7;27036:6;27033:19;27030:39;;;27065:1;27062;27055:12;27030:39;27104:2;27093:9;27089:18;27116:176;27132:6;27127:3;27124:15;27116:176;;;27200:49;27241:7;27236:3;27200:49;:::i;:::-;27188:62;;27279:2;27270:12;;;;27149:14;;27116:176;;;27120:3;27311:5;27301:15;;27335:52;27379:7;27371:6;27335:52;:::i;:::-;27325:62;;;;;;26184:1209;;;;;;;:::o;27398:127::-;27459:10;27454:3;27450:20;27447:1;27440:31;27490:4;27487:1;27480:15;27514:4;27511:1;27504:15;27530:979;27641:6;27694:2;27682:9;27673:7;27669:23;27665:32;27662:52;;;27710:1;27707;27700:12;27662:52;27743:9;27737:16;-1:-1:-1;;;;;27768:6:46;27765:30;27762:50;;;27808:1;27805;27798:12;27762:50;27831:22;;27872:16;;;27908:4;27900:13;;27897:33;;;27926:1;27923;27916:12;27897:33;27952:22;;:::i;:::-;27994:4;27990:2;27986:13;27983:33;;;28012:1;28009;28002:12;27983:33;28040:22;;:::i;:::-;28107:9;;28125:24;;28208:2;28200:11;;;28194:18;28228:16;;;28221:33;28263:22;;28324:4;28316:13;;28310:20;;-1:-1:-1;;;;;;28342:32:46;;28339:52;;;28387:1;28384;28377:12;28339:52;28423:55;28470:7;28459:8;28455:2;28451:17;28423:55;:::i;:::-;28418:2;28407:14;;28400:79;28411:5;27530:979;-1:-1:-1;;;;;27530:979:46:o;28514:380::-;28593:1;28589:12;;;;28636;;;28657:61;;28711:4;28703:6;28699:17;28689:27;;28657:61;28764:2;28756:6;28753:14;28733:18;28730:38;28727:161;;28810:10;28805:3;28801:20;28798:1;28791:31;28845:4;28842:1;28835:15;28873:4;28870:1;28863:15;28727:161;;28514:380;;;:::o;29152:522::-;29230:4;29236:6;29296:11;29283:25;29390:2;29386:7;29375:8;29359:14;29355:29;29351:43;29331:18;29327:68;29317:96;;29409:1;29406;29399:12;29317:96;29436:33;;29488:20;;;-1:-1:-1;;;;;;29520:30:46;;29517:50;;;29563:1;29560;29553:12;29517:50;29596:4;29584:17;;-1:-1:-1;29627:14:46;29623:27;;;29613:38;;29610:58;;;29664:1;29661;29654:12;29679:273;29864:6;29856;29851:3;29838:33;29820:3;29890:16;;29915:13;;;29890:16;29679:273;-1:-1:-1;29679:273:46:o;29957:489::-;30144:2;30133:9;30126:21;30183:6;30178:2;30167:9;30163:18;30156:34;30240:6;30232;30227:2;30216:9;30212:18;30199:48;30296:1;30291:2;30267:22;;;30263:31;;30256:42;;;;-1:-1:-1;;;;;30407:32:46;;;;30400:4;30385:20;;30378:62;30359:2;30338:15;;;-1:-1:-1;;30334:29:46;30319:45;;;30315:54;;;-1:-1:-1;29957:489:46:o;30451:127::-;30512:10;30507:3;30503:20;30500:1;30493:31;30543:4;30540:1;30533:15;30567:4;30564:1;30557:15;30583:128;30650:9;;;30671:11;;;30668:37;;;30685:18;;:::i;30716:127::-;30777:10;30772:3;30768:20;30765:1;30758:31;30808:4;30805:1;30798:15;30832:4;30829:1;30822:15;30974:518;31076:2;31071:3;31068:11;31065:421;;;31112:5;31109:1;31102:16;31156:4;31153:1;31143:18;31226:2;31214:10;31210:19;31207:1;31203:27;31197:4;31193:38;31262:4;31250:10;31247:20;31244:47;;;-1:-1:-1;31285:4:46;31244:47;31340:2;31335:3;31331:12;31328:1;31324:20;31318:4;31314:31;31304:41;;31395:81;31413:2;31406:5;31403:13;31395:81;;;31472:1;31458:16;;31439:1;31428:13;31395:81;;31668:1299;31794:3;31788:10;-1:-1:-1;;;;;31813:6:46;31810:30;31807:56;;;31843:18;;:::i;:::-;31872:97;31962:6;31922:38;31954:4;31948:11;31922:38;:::i;:::-;31916:4;31872:97;:::i;:::-;32018:4;32049:2;32038:14;;32066:1;32061:649;;;;32754:1;32771:6;32768:89;;;-1:-1:-1;32823:19:46;;;32817:26;32768:89;-1:-1:-1;;31625:1:46;31621:11;;;31617:24;31613:29;31603:40;31649:1;31645:11;;;31600:57;32870:81;;32031:930;;32061:649;30921:1;30914:14;;;30958:4;30945:18;;-1:-1:-1;;32097:20:46;;;32215:222;32229:7;32226:1;32223:14;32215:222;;;32311:19;;;32305:26;32290:42;;32418:4;32403:20;;;;32371:1;32359:14;;;;32245:12;32215:222;;;32219:3;32465:6;32456:7;32453:19;32450:201;;;32526:19;;;32520:26;-1:-1:-1;;32609:1:46;32605:14;;;32621:3;32601:24;32597:37;32593:42;32578:58;32563:74;;32450:201;-1:-1:-1;;;;32697:1:46;32681:14;;;32677:22;32664:36;;-1:-1:-1;31668:1299:46:o;32972:303::-;33065:5;33088:1;33098:171;33112:4;33109:1;33106:11;33098:171;;;33171:13;;33159:26;;33214:4;33205:14;;;;33242:17;;;;33132:1;33125:9;33098:171;;33280:1187;33728:3;33713:19;;33741:43;33717:9;33766:6;33741:43;:::i;:::-;33819:2;33808:9;33804:18;33864:6;33888:1;33898:187;33912:4;33909:1;33906:11;33898:187;;;33959:44;33999:3;33990:6;33984:13;33959:44;:::i;:::-;34032:2;34023:12;;;;;34070:4;34058:17;;;;;33932:1;33925:9;33898:187;;;33902:3;;;34094:53;34142:3;34131:9;34127:19;34119:6;34094:53;:::i;:::-;34184:3;34173:9;34169:19;34236:6;34262:1;34272:189;34288:4;34283:3;34280:13;34272:189;;;34353:15;;34339:30;;34402:4;34391:16;;;;34432:19;;;;34312:1;34303:11;34272:189;;;34276:3;;;33280:1187;;;;;;;:::o;34472:202::-;34539:6;34592:2;34580:9;34571:7;34567:23;34563:32;34560:52;;;34608:1;34605;34598:12;34560:52;34631:37;34658:9;34631:37;:::i;35003:127::-;35064:10;35059:3;35055:20;35052:1;35045:31;35095:4;35092:1;35085:15;35119:4;35116:1;35109:15;35135:125;35200:9;;;35221:10;;;35218:36;;;35234:18;;:::i;35265:168::-;35338:9;;;35369;;35386:15;;;35380:22;;35366:37;35356:71;;35407:18;;:::i;35643:127::-;35704:10;35699:3;35695:20;35692:1;35685:31;35735:4;35732:1;35725:15;35759:4;35756:1;35749:15" + }, + "methodIdentifiers": { + "DOMAIN_VERSION()": "acb8cc49", + "PASSPORT_CREDENTIAL_MESSAGE_TYPEHASH()": "da936540", + "VERSION()": "ffa1ad74", + "acceptOwnership()": "79ba5097", + "addImageHashToWhitelist(bytes32)": "8a03c166", + "addSigner(bytes)": "76ee7b49", + "addTransactor(address)": "70f4f9df", + "credentialVerifiers(string)": "a635c785", + "eip712Domain()": "84b0196e", + "getClaimProof(uint256)": "b57a40cb", + "getClaimProofByRoot(uint256,uint256)": "310d0d5b", + "getClaimProofWithStateInfo(uint256)": "b37feda4", + "getClaimsTreeRoot()": "3df432fc", + "getExpirationTime()": "e23a845a", + "getId()": "5d1ca631", + "getIsOldStateGenesis()": "f84c7c1e", + "getIssuerDIDHash()": "05417f79", + "getLatestPublishedClaimsRoot()": "523b8136", + "getLatestPublishedRevocationsRoot()": "9674cfa4", + "getLatestPublishedRootsRoot()": "c6365a3b", + "getLatestPublishedState()": "3d59ec60", + "getMaxFutureTime()": "76dfc776", + "getRevocationProof(uint64)": "26485063", + "getRevocationProofByRoot(uint64,uint256)": "e26ecb0b", + "getRevocationProofWithStateInfo(uint64)": "0033058d", + "getRevocationStatus(uint256,uint64)": "110c96a7", + "getRevocationStatusByIdAndState(uint256,uint256,uint64)": "aad72921", + "getRevocationsTreeRoot()": "01c85c77", + "getRootProof(uint256)": "c1e32733", + "getRootProofByRoot(uint256,uint256)": "2d5c4f25", + "getRootProofWithStateInfo(uint256)": "443d7534", + "getRootsByState(uint256)": "b8db6871", + "getRootsTreeRoot()": "da68a0b1", + "getSigners()": "94cf795e", + "getSmtDepth()": "3f0c6648", + "getTemplateRoot()": "2c1d3204", + "getTransactors()": "2d26b309", + "initialize(address,bytes2)": "406e8b4c", + "initializeIssuer(uint256,uint256,uint256,string[],address[],(address,bytes2),address,address)": "e633436f", + "isWhitelistedImageHash(bytes32)": "fa78d88c", + "nullifierExists(uint256)": "2afab62f", + "owner()": "8da5cb5b", + "pendingOwner()": "e30c3978", + "removeImageHashFromWhitelist(bytes32)": "23aafe3b", + "removeSigner(address)": "0e316ab7", + "removeTransactor(address)": "1f0f4f7a", + "renounceOwnership()": "715018a6", + "revokeCredential(uint256)": "1b87278d", + "setAttestationValidator(address)": "8a684553", + "setExpirationTime(uint256)": "c0cc365d", + "setIssuerDIDHash(uint256)": "b1af19e7", + "setMaxFutureTime(uint256)": "2e798ec1", + "setTemplateRoot(uint256)": "b354c2d8", + "supportsInterface(bytes4)": "01ffc9a7", + "transferOwnership(address)": "f2fde38b", + "updateCredentialVerifiers(string[],address[])": "badf055d", + "verifyPassport((string,bytes),bytes)": "e7c25d23" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentDate\",\"type\":\"uint256\"}],\"name\":\"CurrentDateExpired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"currentDate\",\"type\":\"uint256\"}],\"name\":\"CurrentDateInFuture\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"imageHash\",\"type\":\"bytes32\"}],\"name\":\"ImageHashIsNotWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAttestation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAttestationUserDataLength\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidCredentialProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"hashIndex\",\"type\":\"uint256\"}],\"name\":\"InvalidHashIndex\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"hashValue\",\"type\":\"uint256\"}],\"name\":\"InvalidHashValue\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidIssuerDidHash\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"linkId1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"linkId2\",\"type\":\"uint256\"}],\"name\":\"InvalidLinkId\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPassportSignatureProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"}],\"name\":\"InvalidRevocationNonce\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidSignerAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"InvalidSignerPassportSignatureProof\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"expectedTemplateRoot\",\"type\":\"uint256\"}],\"name\":\"InvalidTemplateRoot\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"transactor\",\"type\":\"address\"}],\"name\":\"InvalidTransactor\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"issuanceDate\",\"type\":\"uint256\"}],\"name\":\"IssuanceDateExpired\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"issuanceDate\",\"type\":\"uint256\"}],\"name\":\"IssuanceDateInFuture\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length2\",\"type\":\"uint256\"}],\"name\":\"LengthMismatch\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"circuitId\",\"type\":\"string\"}],\"name\":\"NoCredentialCircuitIdFound\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoVerifierSet\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nullifier\",\"type\":\"uint256\"}],\"name\":\"NullifierDoesNotExist\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"circuitId\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"verifier\",\"type\":\"address\"}],\"name\":\"CredentialCircuitVerifierUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nullifier\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"}],\"name\":\"CredentialRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"EIP712DomainChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"}],\"name\":\"ExpirationTimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxFutureTime\",\"type\":\"uint256\"}],\"name\":\"MaxFutureTimeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"SignerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tampletRoot\",\"type\":\"uint256\"}],\"name\":\"TemplateRootUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"transactor\",\"type\":\"address\"}],\"name\":\"TransactorAdded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PASSPORT_CREDENTIAL_MESSAGE_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"imageHash\",\"type\":\"bytes32\"}],\"name\":\"addImageHashToWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"attestation\",\"type\":\"bytes\"}],\"name\":\"addSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"transactor\",\"type\":\"address\"}],\"name\":\"addTransactor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"circuitId\",\"type\":\"string\"}],\"name\":\"credentialVerifiers\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"eip712Domain\",\"outputs\":[{\"internalType\":\"bytes1\",\"name\":\"fields\",\"type\":\"bytes1\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"version\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"chainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"verifyingContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"uint256[]\",\"name\":\"extensions\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimIndexHash\",\"type\":\"uint256\"}],\"name\":\"getClaimProof\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimIndexHash\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getClaimProofByRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimIndexHash\",\"type\":\"uint256\"}],\"name\":\"getClaimProofWithStateInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimsTreeRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getExpirationTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIsOldStateGenesis\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getIssuerDIDHash\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedClaimsRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedRevocationsRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedRootsRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getLatestPublishedState\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxFutureTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationProof\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"},{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getRevocationProofByRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"revocationNonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationProofWithStateInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationStatus\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootOfRoots\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.IdentityStateRoots\",\"name\":\"issuer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.Proof\",\"name\":\"mtp\",\"type\":\"tuple\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.CredentialStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint64\",\"name\":\"nonce\",\"type\":\"uint64\"}],\"name\":\"getRevocationStatusByIdAndState\",\"outputs\":[{\"components\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootOfRoots\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.IdentityStateRoots\",\"name\":\"issuer\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.Proof\",\"name\":\"mtp\",\"type\":\"tuple\"}],\"internalType\":\"struct IOnchainCredentialStatusResolver.CredentialStatus\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRevocationsTreeRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rootsTreeRoot\",\"type\":\"uint256\"}],\"name\":\"getRootProof\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"claimsTreeRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"}],\"name\":\"getRootProofByRoot\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"rootsTreeRoot\",\"type\":\"uint256\"}],\"name\":\"getRootProofWithStateInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"root\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"existence\",\"type\":\"bool\"},{\"internalType\":\"uint256[]\",\"name\":\"siblings\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"auxExistence\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"auxIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"auxValue\",\"type\":\"uint256\"}],\"internalType\":\"struct SmtLib.Proof\",\"name\":\"\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.StateInfo\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"state\",\"type\":\"uint256\"}],\"name\":\"getRootsByState\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"claimsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"revocationsRoot\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"rootsRoot\",\"type\":\"uint256\"}],\"internalType\":\"struct IdentityLib.Roots\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRootsTreeRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSigners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSmtDepth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTemplateRoot\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTransactors\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_stateContractAddr\",\"type\":\"address\"},{\"internalType\":\"bytes2\",\"name\":\"idType\",\"type\":\"bytes2\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxFutureTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"templateRoot\",\"type\":\"uint256\"},{\"internalType\":\"string[]\",\"name\":\"credentialCircuitIds\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"credentialVerifierAddresses\",\"type\":\"address[]\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"stateAddress\",\"type\":\"address\"},{\"internalType\":\"bytes2\",\"name\":\"idType\",\"type\":\"bytes2\"}],\"internalType\":\"struct PassportCredentialIssuer.StateInfo\",\"name\":\"stateInfo\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"contract IAttestationValidator\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"initializeIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"imageHash\",\"type\":\"bytes32\"}],\"name\":\"isWhitelistedImageHash\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nullifier\",\"type\":\"uint256\"}],\"name\":\"nullifierExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"imageHash\",\"type\":\"bytes32\"}],\"name\":\"removeImageHashFromWhitelist\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"}],\"name\":\"removeSigner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"transactor\",\"type\":\"address\"}],\"name\":\"removeTransactor\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"nullifier\",\"type\":\"uint256\"}],\"name\":\"revokeCredential\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IAttestationValidator\",\"name\":\"validator\",\"type\":\"address\"}],\"name\":\"setAttestationValidator\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expirationTime\",\"type\":\"uint256\"}],\"name\":\"setExpirationTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"issuerDidHash\",\"type\":\"uint256\"}],\"name\":\"setIssuerDIDHash\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"maxFutureTime\",\"type\":\"uint256\"}],\"name\":\"setMaxFutureTime\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"templateRoot\",\"type\":\"uint256\"}],\"name\":\"setTemplateRoot\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string[]\",\"name\":\"circuitIds\",\"type\":\"string[]\"},{\"internalType\":\"address[]\",\"name\":\"verifierAddresses\",\"type\":\"address[]\"}],\"name\":\"updateCredentialVerifiers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"string\",\"name\":\"circuitId\",\"type\":\"string\"},{\"internalType\":\"bytes\",\"name\":\"proof\",\"type\":\"bytes\"}],\"internalType\":\"struct PassportCredentialIssuer.CredentialProof\",\"name\":\"credentialProof\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"passportSignatureProof\",\"type\":\"bytes\"}],\"name\":\"verifyPassport\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Address ownership credential issuer. This issuer issue non-merklized credentials decentralized.\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"OwnableInvalidOwner(address)\":[{\"details\":\"The owner is not a valid owner account. (eg. `address(0)`)\"}],\"OwnableUnauthorizedAccount(address)\":[{\"details\":\"The caller account is not authorized to perform an operation.\"}]},\"events\":{\"CredentialCircuitVerifierUpdated(string,address)\":{\"params\":{\"circuitId\":\"The credential circuit id.\",\"verifier\":\"The new verifier address for the credential circuit.\"}},\"CredentialRevoked(uint256,uint64)\":{\"params\":{\"revocationNonce\":\"The revocation nonce of the revoked credential.\"}},\"EIP712DomainChanged()\":{\"details\":\"MAY be emitted to signal that the domain could have changed.\"},\"ExpirationTimeUpdated(uint256)\":{\"params\":{\"expirationTime\":\"The new expiration time.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"MaxFutureTimeUpdated(uint256)\":{\"params\":{\"maxFutureTime\":\"The new max future time.\"}},\"SignerAdded(address)\":{\"params\":{\"signer\":\"The signer address.\"}},\"TemplateRootUpdated(uint256)\":{\"params\":{\"tampletRoot\":\"The new template root.\"}},\"TransactorAdded(address)\":{\"params\":{\"transactor\":\"The transactor address.\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"The new owner accepts the ownership transfer.\"},\"addImageHashToWhitelist(bytes32)\":{\"details\":\"Adds an imageHash of the enclave to the whitelist\",\"params\":{\"imageHash\":\"The imageHash of the enclave to add\"}},\"constructor\":{\"details\":\"Prevents direct initialization of the implementation contract.\"},\"credentialVerifiers(string)\":{\"params\":{\"circuitId\":\"The circuit id identifier.\"},\"returns\":{\"_0\":\"The credential verifier address.\"}},\"eip712Domain()\":{\"details\":\"returns the fields and values that describe the domain separator used by this contract for EIP-712 signature.\"},\"getClaimProof(uint256)\":{\"details\":\"Retrieve Claim inclusion or non-inclusion proof for a given claim index.\",\"params\":{\"claimIndexHash\":\"- hash of Claim Index\"},\"returns\":{\"_0\":\"The ClaimsTree inclusion or non-inclusion proof for the claim\"}},\"getClaimProofByRoot(uint256,uint256)\":{\"details\":\"Retrieve Claim inclusion or non-inclusion proof for a given claim index by target root.\",\"params\":{\"claimIndexHash\":\"- hash of Claim Index\",\"root\":\"- root of the tree\"},\"returns\":{\"_0\":\"The ClaimsTree inclusion or non-inclusion proof for the claim\"}},\"getClaimProofWithStateInfo(uint256)\":{\"details\":\"Retrieve Claim inclusion or non-inclusion proof for a given claim index with state info.\",\"params\":{\"claimIndexHash\":\"- hash of Claim Index\"},\"returns\":{\"_0\":\"The ClaimsTree inclusion or non-inclusion proof for the claim and state info.\"}},\"getClaimsTreeRoot()\":{\"details\":\"Retrieve ClaimsTree latest root.\",\"returns\":{\"_0\":\"The latest ClaimsTree root\"}},\"getExpirationTime()\":{\"returns\":{\"_0\":\"The expiration time.\"}},\"getId()\":{\"details\":\"returns identity Id\",\"returns\":{\"_0\":\"uint256 Id\"}},\"getIsOldStateGenesis()\":{\"details\":\"returns isOldStateGenesis flag\",\"returns\":{\"_0\":\"bool isOldStateGenesis\"}},\"getIssuerDIDHash()\":{\"returns\":{\"_0\":\"The issuer DID hash.\"}},\"getLatestPublishedClaimsRoot()\":{\"details\":\"returns latest published claims tree root\",\"returns\":{\"_0\":\"claimsRoot\"}},\"getLatestPublishedRevocationsRoot()\":{\"details\":\"returns latest published revocation tree root\",\"returns\":{\"_0\":\"revocationsRoot\"}},\"getLatestPublishedRootsRoot()\":{\"details\":\"returns latest published roots tree root\",\"returns\":{\"_0\":\"rootsRoot\"}},\"getLatestPublishedState()\":{\"details\":\"returns identity latest state\",\"returns\":{\"_0\":\"uint256 identityLatestState\"}},\"getMaxFutureTime()\":{\"returns\":{\"_0\":\"The max future time.\"}},\"getRevocationProof(uint64)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given revocation nonce.\",\"params\":{\"revocationNonce\":\"- revocation nonce\"},\"returns\":{\"_0\":\"The RevocationsTree inclusion or non-inclusion proof for the revocation nonce\"}},\"getRevocationProofByRoot(uint64,uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given revocation nonce by target root.\",\"params\":{\"revocationNonce\":\"- revocation nonce\",\"root\":\"- root of the tree\"},\"returns\":{\"_0\":\"The RevocationsTree inclusion or non-inclusion proof for the revocation nonce\"}},\"getRevocationProofWithStateInfo(uint64)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given revocation nonce with state info.\",\"params\":{\"revocationNonce\":\"- revocation nonce\"},\"returns\":{\"_0\":\"The RevocationsTree inclusion or non-inclusion proof for the revocation nonce and state info.\"}},\"getRevocationStatus(uint256,uint64)\":{\"details\":\"returns revocation status of a claim using given revocation nonce\",\"params\":{\"id\":\"Issuer's identifier\",\"nonce\":\"Revocation nonce\"},\"returns\":{\"_0\":\"CredentialStatus\"}},\"getRevocationStatusByIdAndState(uint256,uint256,uint64)\":{\"details\":\"returns revocation status of a claim using given revocation nonce, id and state\",\"params\":{\"id\":\"Issuer's identifier\",\"nonce\":\"Revocation nonce\",\"state\":\"of the Issuer\"},\"returns\":{\"_0\":\"CredentialStatus\"}},\"getRevocationsTreeRoot()\":{\"details\":\"Retrieve RevocationsTree latest root.\",\"returns\":{\"_0\":\"The latest RevocationsTree root\"}},\"getRootProof(uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot.\",\"params\":{\"rootsTreeRoot\":\"- roots tree root\"},\"returns\":{\"_0\":\"The RootsTree inclusion or non-inclusion proof for the roots tree root\"}},\"getRootProofByRoot(uint256,uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given claimsTreeRoot by target root.\",\"params\":{\"claimsTreeRoot\":\"- claims tree root\",\"root\":\"- root of the tree\"},\"returns\":{\"_0\":\"The RootsTree inclusion or non-inclusion proof for the claim tree root\"}},\"getRootProofWithStateInfo(uint256)\":{\"details\":\"Retrieve inclusion or non-inclusion proof for a given rootsTreeRoot with state info.\",\"params\":{\"rootsTreeRoot\":\"- roots tree root\"},\"returns\":{\"_0\":\"The RootsTree inclusion or non-inclusion proof for the claim tree root and state info.\"}},\"getRootsByState(uint256)\":{\"details\":\"returns historical claimsTree roots, revocationsTree roots, rootsTree roots by state\",\"params\":{\"state\":\"identity state\"},\"returns\":{\"_0\":\"set of roots\"}},\"getRootsTreeRoot()\":{\"details\":\"Retrieve RootsTree latest root.\",\"returns\":{\"_0\":\"The latest RootsTree root\"}},\"getSmtDepth()\":{\"details\":\"Get configured Identity SMT depth.\",\"returns\":{\"_0\":\"depth of the SMT\"}},\"getTemplateRoot()\":{\"returns\":{\"_0\":\"The template root.\"}},\"initialize(address,bytes2)\":{\"details\":\"Initialization of IdentityLib library\",\"params\":{\"_stateContractAddr\":\"- address of the State contract\"}},\"isWhitelistedImageHash(bytes32)\":{\"details\":\"Checks if imageHash of the enclave is whitelisted\",\"params\":{\"imageHash\":\"The imageHash of the enclave\"},\"returns\":{\"_0\":\"True if imageHash is whitelisted, otherwise returns false\"}},\"nullifierExists(uint256)\":{\"params\":{\"nullifier\":\"The nullifier to check.\"},\"returns\":{\"_0\":\"Wether the nullifier exists.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"pendingOwner()\":{\"details\":\"Returns the address of the pending owner.\"},\"removeImageHashFromWhitelist(bytes32)\":{\"details\":\"Removes an imageHash of the enclave from the whitelist\",\"params\":{\"imageHash\":\"The imageHash of the enclave to remove\"}},\"removeSigner(address)\":{\"details\":\"Removes a signer from the list of signers\",\"params\":{\"signer\":\"The address of the signer to remove\"}},\"removeTransactor(address)\":{\"details\":\"Removes a transactor from the list of transactors\",\"params\":{\"transactor\":\"The address of the transactor to remove\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"revokeCredential(uint256)\":{\"params\":{\"nullifier\":\"credential nullifier.\"}},\"setAttestationValidator(address)\":{\"details\":\"Set attestation validator\",\"params\":{\"validator\":\"- attestation validator\"}},\"setExpirationTime(uint256)\":{\"params\":{\"expirationTime\":\"The new expiration time.\"}},\"setIssuerDIDHash(uint256)\":{\"params\":{\"issuerDidHash\":\"The new issuer DID hash.\"}},\"setMaxFutureTime(uint256)\":{\"params\":{\"maxFutureTime\":\"The new max future time.\"}},\"setTemplateRoot(uint256)\":{\"params\":{\"templateRoot\":\"The new template root.\"}},\"supportsInterface(bytes4)\":{\"details\":\"supportsInterface. Check if the contract supports the interface\"},\"transferOwnership(address)\":{\"details\":\"Starts the ownership transfer of the contract to a new account. Replaces the pending transfer if there is one. Can only be called by the current owner. Setting `newOwner` to the zero address is allowed; this can be used to cancel an initiated ownership transfer.\"},\"updateCredentialVerifiers(string[],address[])\":{\"details\":\"Updates the credential circuit verifiers for a specific circuit identifiers.\",\"params\":{\"circuitIds\":\"The credential circuit identifiers.\",\"verifierAddresses\":\"The new credential circuit verifier addresses.\"}},\"verifyPassport((string,bytes),bytes)\":{\"params\":{\"credentialProof\":\"Credential proof for the passport credential\",\"passportSignatureProof\":\"Signature proof of the validation of the passport credential\"}}},\"stateVariables\":{\"DOMAIN_VERSION\":{\"details\":\"Version of EIP 712 domain\"},\"PASSPORT_CREDENTIAL_MESSAGE_TYPEHASH\":{\"details\":\"PassportCredential message data type hash\"},\"VERSION\":{\"details\":\"Version of the contract\"}},\"version\":1},\"userdoc\":{\"events\":{\"CredentialCircuitVerifierUpdated(string,address)\":{\"notice\":\"Emitted when a credential circuit verifier is updated.\"},\"CredentialRevoked(uint256,uint64)\":{\"notice\":\"Emitted when a credential is revoked.\"},\"ExpirationTimeUpdated(uint256)\":{\"notice\":\"Emitted when the expiration time is updated.\"},\"MaxFutureTimeUpdated(uint256)\":{\"notice\":\"Emitted when the max future time is updated.\"},\"SignerAdded(address)\":{\"notice\":\"Emitted when a new signer is added.\"},\"TemplateRootUpdated(uint256)\":{\"notice\":\"Emitted when the template root is updated.\"},\"TransactorAdded(address)\":{\"notice\":\"Emitted when a new transactor is added.\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Constructor that disables initializers.\"},\"credentialVerifiers(string)\":{\"notice\":\"Retrieves the credential verifier address for a given circuit id.\"},\"getExpirationTime()\":{\"notice\":\"Retrieves the expiration time.\"},\"getIssuerDIDHash()\":{\"notice\":\"Retrieves the issuer DID hash.\"},\"getMaxFutureTime()\":{\"notice\":\"Retrieves the max future time.\"},\"getSigners()\":{\"notice\":\"Retrieves the signers.\"},\"getTemplateRoot()\":{\"notice\":\"Retrieves the template root.\"},\"getTransactors()\":{\"notice\":\"Retrieves the transactors.\"},\"nullifierExists(uint256)\":{\"notice\":\"Retrieves wether the nullifier exists.\"},\"revokeCredential(uint256)\":{\"notice\":\"Revoke credential and remove nullifier.\"},\"setExpirationTime(uint256)\":{\"notice\":\"Sets the expiration time.\"},\"setIssuerDIDHash(uint256)\":{\"notice\":\"Updates the issuer DID hash.\"},\"setMaxFutureTime(uint256)\":{\"notice\":\"Sets the max future time.\"},\"setTemplateRoot(uint256)\":{\"notice\":\"Sets the template root.\"},\"verifyPassport((string,bytes),bytes)\":{\"notice\":\"Verifies the passport credential.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/verifiers/PassportCredentialIssuer.sol\":\"PassportCredentialIssuer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iden3/contracts/interfaces/IIdentifiable.sol\":{\"keccak256\":\"0x622cb97ad95adc38d5b3138fa9ee14b38f11f541c6976687309d61b1d2f2e607\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://6e21fa8dccc84d47f0db37fb5747f4d1514187cf4d94ec5fbc54e9ad3f520f74\",\"dweb:/ipfs/QmXM34XGaASwW3QdrbSJXHmwfVurnDdyuYbbiW8wsKaxH3\"]},\"@iden3/contracts/interfaces/IOnchainCredentialStatusResolver.sol\":{\"keccak256\":\"0x88aa3921c23502bfa297133354aaff8b2428fb49082f3e1644458956a73b06f5\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://0dd69acd52723b03751f383ec2f0f6772197c8b100a525cb40448ac4f25bdc42\",\"dweb:/ipfs/QmVcugmmLC3hoHzvCe5nEx7GT1jTKcriKbtB4PZ3LEwnrE\"]},\"@iden3/contracts/interfaces/IState.sol\":{\"keccak256\":\"0x9ad1637f51eefacb8b80afab1a2568389da02142dfd0bddf2a769f8fe118f1d6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://41253a4bb51672482bfb1207ccae04f5a173e47872f52240f5b94f0e24ccd64a\",\"dweb:/ipfs/QmfC7LpzWsUtPrDJvtT3swQ52nCZGVMC4SRtFVx3qZ5RFU\"]},\"@iden3/contracts/lib/ArrayUtils.sol\":{\"keccak256\":\"0x7c5e3f9c56e8e80811db1f1336a1e37c657947f44687451e5a1d6bd12e9e6141\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://c9497d8d8fe9fc2b2c9d61bbdfa5a4eb881ddf8948bbc099024e5026fadd6846\",\"dweb:/ipfs/Qmczkk8FLcxpM91ZAWpixowBEdq64YVLke3ZqVDt3NkYiT\"]},\"@iden3/contracts/lib/GenesisUtils.sol\":{\"keccak256\":\"0xcd0456a57885d39010095d9642a4cbf8d723e975af6e3a7bcce6d2ed9d8adc05\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dd03b9ab5422c9b715399ea889e68a7e85b1caa0a74a1f7238dc1a8377f32a6e\",\"dweb:/ipfs/QmUUvKPdP6KuciKjKi9jKkiT4EezjdfdfJsAGaqfFCdRR2\"]},\"@iden3/contracts/lib/IdentityBase.sol\":{\"keccak256\":\"0xf8d2962e1838b9c850e887cd52736545b8d4228b14a1d64eb9ce5d8f53501b6f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://06dd87da9c644be8abe583c1c066d0926c860b110940b173f1a42f6766c20f52\",\"dweb:/ipfs/QmfK64Jf613m2eU1Dz6M7R6rjjKfCzscvyXdaoerw7kr4v\"]},\"@iden3/contracts/lib/IdentityLib.sol\":{\"keccak256\":\"0x1bbb8fbe53fcc817c216b4fd1fed3936ab6659bf83ceb7cb10fa474bcc8812f3\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1ee97a30fcba35d3c269b58b628c9114df4b915ff413c6f2b85f2a2454a9b54e\",\"dweb:/ipfs/QmbopmBVWniJcMLdFMHg7wkRwC2uTpRNXWLLAuCKUaAFcD\"]},\"@iden3/contracts/lib/Poseidon.sol\":{\"keccak256\":\"0x1776fa64b19c5e2f42d1449537ea5e911d7f067ee5d0409ca7daf7319853381f\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://516c8ae954d17c4c5e4366249b93e85660f5887640c8141c6912831a42b89539\",\"dweb:/ipfs/QmVMZW5sFUmb3Bgypmfn19z1cNUWhubYXWFthbFruopZNc\"]},\"@iden3/contracts/lib/PrimitiveTypeUtils.sol\":{\"keccak256\":\"0x3126dd4b236d36112a66f54ae70e791d153480248ab485373b4259b2498b7235\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://f704ec7d5ee0bb109532a32f75d0457213c0852797a257392a95b64ed63b8b3a\",\"dweb:/ipfs/QmSAAH9gecdDxtrf52Pyq73g61GsKwPnBWYH1gzTiWUn3s\"]},\"@iden3/contracts/lib/SmtLib.sol\":{\"keccak256\":\"0x9c67be9b7d045ded48a63bd827a5bdc3f2255c68f9640bae41eef074640f1779\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://1f2b2452120f5b2b2c5589fcf58183f7d800d3f8a2c202ebdc3b69815bcfb2aa\",\"dweb:/ipfs/QmbnvLnfJaKL3eqt1CfXofsiLJ7G3nYTawUEqGpCazWbrQ\"]},\"@openzeppelin/contracts-upgradeable/access/Ownable2StepUpgradeable.sol\":{\"keccak256\":\"0xe9570c90b688339474e80090b0cdf0b2c85c25aa28cc6044d489dda9efc2c716\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f358f7eab8cc53b784d5ff3f82073124d797638aee71487beca3543414a46a23\",\"dweb:/ipfs/QmWy153MjdHfUbqtCKELubAmMavjBEeRByTDv9MMoUVZN4\"]},\"@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0xc163fcf9bb10138631a9ba5564df1fa25db9adff73bd9ee868a8ae1858fe093a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9706d43a0124053d9880f6e31a59f31bc0a6a3dc1acd66ce0a16e1111658c5f6\",\"dweb:/ipfs/QmUFmfowzkRwGtDu36cXV9SPTBHJ3n7dG9xQiK5B28jTf2\"]},\"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xdb4d24ee2c087c391d587cd17adfe5b3f9d93b3110b1388c2ab6c7c0ad1dcd05\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab7b6d5b9e2b88176312967fe0f0e78f3d9a1422fa5e4b64e2440c35869b5d08\",\"dweb:/ipfs/QmXKYWWyzcLg1B2k7Sb1qkEXgLCYfXecR9wYW5obRzWP1Q\"]},\"@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol\":{\"keccak256\":\"0xd45a5b1d0e451376b08e1bc7e332426c24382053300acf0ac667be1b8abb6cc2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://824eb0b8c71db8b95b707218d8540c2046a2fefc642e74b343ae90e5c72e2b52\",\"dweb:/ipfs/QmdQTZTomqxRrySDNdv1FEyh3ZWibxwC9FRdcV3DCuASpx\"]},\"@openzeppelin/contracts/interfaces/IERC5267.sol\":{\"keccak256\":\"0x92aa1df62dc3d33f1656d63bede0923e0df0b706ad4137c8b10b0a8fe549fd92\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5c0f29195ad64cbe556da8e257dac8f05f78c53f90323c0d2accf8e6922d33a\",\"dweb:/ipfs/QmQ61TED8uaCZwcbh8KkgRSsCav7x7HbcGHwHts3U4DmUP\"]},\"@openzeppelin/contracts/utils/Arrays.sol\":{\"keccak256\":\"0x55a4fdb408e3db950b48f4a6131e538980be8c5f48ee59829d92d66477140cd6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e1ad251e692822ce1494135a4ecb5b97c19b90aa82418fd2959ce32017953fd\",\"dweb:/ipfs/QmT6N7mf6heZYhY2BAQ5kwZp9o3SXzGVdkMqUszx67WRDN\"]},\"@openzeppelin/contracts/utils/Comparators.sol\":{\"keccak256\":\"0x302eecd8cf323b4690e3494a7d960b3cbce077032ab8ef655b323cdd136cec58\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49ba706f1bc476d68fe6c1fad75517acea4e9e275be0989b548e292eb3a3eacd\",\"dweb:/ipfs/QmeBpvcdGWzWMKTQESUCEhHgnEQYYATVwPxLMxa6vMT7jC\"]},\"@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"@openzeppelin/contracts/utils/SlotDerivation.sol\":{\"keccak256\":\"0x67672e4ca1dafdcc661d4eba8475cfac631fa0933309258e3af7644b92e1fb26\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30192451f05ea5ddb0c18bd0f9003f098505836ba19c08a9c365adf829454da2\",\"dweb:/ipfs/QmfCuZSCTyCdFoSKn7MSaN6hZksnQn9ZhrZDAdRTCbwGu2\"]},\"@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x81c274a60a7ae232ae3dc9ff3a4011b4849a853c13b0832cd3351bb1bb2f0dae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9da0c20dc74358a2a76330818f3bac9d1e2ce3371aec847b9cbf5d147fbae4f6\",\"dweb:/ipfs/QmeczhmnFv1hbXKGLwbYXY6Rrytc9a5A2YaRi5QMMgjPnb\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0x69f54c02b7d81d505910ec198c11ed4c6a728418a868b906b4a0cf29946fda84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8e25e4bdb7ae1f21d23bfee996e22736fc0ab44cfabedac82a757b1edc5623b9\",\"dweb:/ipfs/QmQdWQvB6JCP9ZMbzi8EvQ1PTETqkcTWrbcVurS7DKpa5n\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0x26670fef37d4adf55570ba78815eec5f31cb017e708f61886add4fc4da665631\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b16d45febff462bafd8a5669f904796a835baf607df58a8461916d3bf4f08c59\",\"dweb:/ipfs/QmU2eJFpjmT4vxeJWJyLeQb8Xht1kdB8Y6MKLDPFA9WPux\"]},\"@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x1225214420c83ebcca88f2ae2b50f053aaa7df7bd684c3e878d334627f2edfc6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c5fab4970634f9ab9a620983dc1c8a30153981a0b1a521666e269d0a11399d3\",\"dweb:/ipfs/QmVRnBC575MESGkEHndjujtR7qub2FzU9RWy9eKLp4hPZB\"]},\"@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xb1970fac7b64e6c09611e6691791e848d5e3fe410fa5899e7df2e0afd77a99e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db5fbb3dddd8b7047465b62575d96231ba8a2774d37fb4737fbf23340fabbb03\",\"dweb:/ipfs/QmVUSvooZKEdEdap619tcJjTLcAuH6QBdZqAzWwnAXZAWJ\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0xecd5f3c702f549fb88555e44e5f2415a4dfd6db09081aec7e98c26b6a3739c06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed40e907a6d80458a0556a609d0d3991d718c20f9f1f21475e5ec739af523231\",\"dweb:/ipfs/QmejkwADsZRxkusNU94sswMJfpLrbq8RkJTbNccUEQpc7Y\"]},\"@quant-finance/solidity-datetime/contracts/DateTime.sol\":{\"keccak256\":\"0x3e6031d05cd13aa1ea1bcaf59d6a4b20054ddc18a86514e44e66cd4ed4dc4445\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ce88e00d8a888f45bcf3ef95df7bcf8b90b97e4465b0427ba3407e3d19dc931\",\"dweb:/ipfs/QmWwtMzN9fpxWF3RvhzsPFjQCsmiKhWV7LMKngKj5Xu3ne\"]},\"contracts/constants/CircuitConstants.sol\":{\"keccak256\":\"0x5bbc800b86d3fbdc49c1c623edc2c0d2ae78b39a4c73aa44151bc1e197ba2932\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d1f3eda9b0821649efd7ab5404bece757779ce38fd56ea7cd7d328bb64aaa98a\",\"dweb:/ipfs/QmdP5NBDHd3Q3eWW4thiT9UJmjjzr4QRXZ2pR3MRBL2mz6\"]},\"contracts/interfaces/IAttestationValidator.sol\":{\"keccak256\":\"0xf40e9a3b6a82c21e8b25633bc3a72952a4b6d48fd0da32ae1ad0d32084434528\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://9ac45a1dd1fa838f312a7f76cdabd4d38256cd493922f22db1887d96ba927153\",\"dweb:/ipfs/QmV7nEmQYTMRbKbhDWL37LGiKGd13Yt7zSgAD8KUzG3czg\"]},\"contracts/interfaces/ICertificatesValidator.sol\":{\"keccak256\":\"0x756669e7a268cb0c810e2149fe2d710e21936b0ffb2bc09121db10d647b0711e\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://61ad0c55851ecabc69ab88577753a1124611400c22a128c0574b1060d531d107\",\"dweb:/ipfs/QmSRzY4Qg9JD8nagkpt5qn8ivyRewYqZhcmzV7AZ1njVKa\"]},\"contracts/interfaces/ICredentialCircuitVerifier.sol\":{\"keccak256\":\"0xb1a3df3c8a23f37950e5cc0d783dcf2e5a6ec0abd640f7ab835f659da618cf38\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d2b1470d31938a8a60ccdeace9dae9d045070e5bec472210ace32d9c9f2a370\",\"dweb:/ipfs/QmXQpXPizwmMjXXTfLnX6K5CH4gXkPRJaLxUgiHsGgv6ad\"]},\"contracts/verifiers/PassportCredentialIssuer.sol\":{\"keccak256\":\"0xb2fe5a7c00b005b281045de6fbed5980833e8d02d73ee92e384aa3f6b2a55844\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://64430d06230fde2d930f143197351413ff97bb17ebaedaa4d528d6bf3a067870\",\"dweb:/ipfs/QmW4vdStSR4k2etTFCKCTKPRDNeFpUXLPzkvitAt2BfMWr\"]},\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xf75784dfc94ea43668eb195d5690a1dde1b6eda62017e73a3899721583821d29\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://ca16cef8b94f3ac75d376489a668618f6c4595a906b939d674a883f4bf426014\",\"dweb:/ipfs/QmceGU7qhyFLSejaj6i4dEtMzXDCSF3aYDtW1UeKjXQaRn\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/verifiers/idcard/Verifier_idcard_sha1.sol": { + "Verifier_idcard_sha1": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[2]", + "name": "_pA", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2][2]", + "name": "_pB", + "type": "uint256[2][2]" + }, + { + "internalType": "uint256[2]", + "name": "_pC", + "type": "uint256[2]" + }, + { + "internalType": "uint256[8]", + "name": "_pubSignals", + "type": "uint256[8]" + } + ], + "name": "verifyProof", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b506107ea8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074d565b610057565b604051901515815260200160405180910390f35b60006106aa565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f29ff83716be0d0baba31c32369198c3a0da0d3adb699e63974dffb2879c0004f85527f19b404e25643468fe418e76b619a2c6428a0633a40d103d5894b37e99529acbf60208601526000608086018661019a87357f16c55556093c6b890f0c5dbf45fa1cdef9018f18bd4eeb4691e2394cfa0f97037f0632a709df6078ef66518fd7bdb865efa6f334611ce9d8e05bdee6700540e09d84610092565b6101ea60208801357f034073fb529bb35fa59e74920754aaf5a64b144e94adf12be18d33cafdf3f5b37f07c5bc1b0461526996152c27bfb5412b3a941b76b249890eae3361e6cdee6ffa84610092565b61023a60408801357f2256a3ff0336fdeb8ff15bbe6346f98c1cd42e6150d79d4f8b9c003850784ac57f15d95dd681e29f94806fb623e0862a45150d72df468511f82464e5139464d86484610092565b61028a60608801357f0b2f0cf054017cca1b84a473fe1fd685ad3a8de1e55247a1bc8ae2112887a5517f04346fbf59f32c3d2b1b463ecfde357cac72df041fb8c1a85d51546870b0963e84610092565b6102da60808801357f1c059e750eed8681d720e766016ec290944eb71864552c1a52ce200defcf8ef57f2d2c02b7a423b7732cc79c938965ab3ba3adf42dd092ca8695dc65488b8bf42284610092565b61032a60a08801357f25642f13b43067b9c9c93ad4b0918816217767a4116f400b650e2bc9a8f8b8ee7f08e0171aba726132a10be358c6ed6444e2cf74b70406220e84bd6e88cf0881d084610092565b61037a60c08801357f21a15536da869bca92c54269c8c1cdb7e9fbd0a3efc6fc543e86000936056b797f1bc0d2072947c3e8cfb7ac85e1289da7053d9d7a7c96237702ce1ea514a01a4284610092565b6103ca60e08801357f0389fcbecfc1981ce90ca521226aa862843fa4f308ccaca21bcf102347310c267f14b209a7aa6e362049249d21af4dca9112c998aa7ec20b6b6a17675e93667c6c84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f26f48dde35d1f1d8c281adeb4197bedd259ca49042dde75dcde76053a7eb12766102808201527f29f4fb47ddb8af1bf4744010c8885de42323e9367c620c072308d0e12410fc436102a08201527f2e3a09772fe0d7e39904965e43d9dde3b63c41a8eeee9869e39c9ca0fb7917d06102c08201527f1f74e3ac6d4de5da5f21f8689d45ae00bc4ecd4a5f9d62f800a39d5568c1685c6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c2600084013561005e565b6106cf602084013561005e565b6106dc604084013561005e565b6106e9606084013561005e565b6106f6608084013561005e565b61070360a084013561005e565b61071060c084013561005e565b61071d60e084013561005e565b61072a818486888a6100fd565b90508060005260206000f35b806040810183101561074757600080fd5b92915050565b600080600080610200858703121561076457600080fd5b61076e8686610736565b935060c085018681111561078157600080fd5b6040860193506107918782610736565b92505085610200860111156107a557600080fd5b5091949093509091610100019056fea26469706673582212207169d3c5cbe1262075a1081a8b19a4a874f6a5bac877d87bbbfcea44ed6525c764736f6c634300081b0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7EA DUP1 PUSH2 0x1F 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 0xC9219A7A EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x74D 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 0x6AA JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x8F JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP POP DUP1 PUSH2 0xF6 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH32 0x29FF83716BE0D0BABA31C32369198C3A0DA0D3ADB699E63974DFFB2879C0004F DUP6 MSTORE PUSH32 0x19B404E25643468FE418E76B619A2C6428A0633A40D103D5894B37E99529ACBF PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x0 PUSH1 0x80 DUP7 ADD DUP7 PUSH2 0x19A DUP8 CALLDATALOAD PUSH32 0x16C55556093C6B890F0C5DBF45FA1CDEF9018F18BD4EEB4691E2394CFA0F9703 PUSH32 0x632A709DF6078EF66518FD7BDB865EFA6F334611CE9D8E05BDEE6700540E09D DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x1EA PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH32 0x34073FB529BB35FA59E74920754AAF5A64B144E94ADF12BE18D33CAFDF3F5B3 PUSH32 0x7C5BC1B0461526996152C27BFB5412B3A941B76B249890EAE3361E6CDEE6FFA DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x23A PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH32 0x2256A3FF0336FDEB8FF15BBE6346F98C1CD42E6150D79D4F8B9C003850784AC5 PUSH32 0x15D95DD681E29F94806FB623E0862A45150D72DF468511F82464E5139464D864 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x28A PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH32 0xB2F0CF054017CCA1B84A473FE1FD685AD3A8DE1E55247A1BC8AE2112887A551 PUSH32 0x4346FBF59F32C3D2B1B463ECFDE357CAC72DF041FB8C1A85D51546870B0963E DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x2DA PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH32 0x1C059E750EED8681D720E766016EC290944EB71864552C1A52CE200DEFCF8EF5 PUSH32 0x2D2C02B7A423B7732CC79C938965AB3BA3ADF42DD092CA8695DC65488B8BF422 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x32A PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH32 0x25642F13B43067B9C9C93AD4B0918816217767A4116F400B650E2BC9A8F8B8EE PUSH32 0x8E0171ABA726132A10BE358C6ED6444E2CF74B70406220E84BD6E88CF0881D0 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x37A PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH32 0x21A15536DA869BCA92C54269C8C1CDB7E9FBD0A3EFC6FC543E86000936056B79 PUSH32 0x1BC0D2072947C3E8CFB7AC85E1289DA7053D9D7A7C96237702CE1EA514A01A42 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x3CA PUSH1 0xE0 DUP9 ADD CALLDATALOAD PUSH32 0x389FCBECFC1981CE90CA521226AA862843FA4F308CCACA21BCF102347310C26 PUSH32 0x14B209A7AA6E362049249D21AF4DCA9112C998AA7EC20B6B6A17675E93667C6C DUP5 PUSH2 0x92 JUMP JUMPDEST POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD PUSH1 0x20 DUP3 ADD MSTORE DUP4 CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x2D4D9AA7E302D9DF41749D5507949D05DBEA33FBB16C643B22F599A2BE6DF2E2 PUSH1 0xC0 DUP3 ADD MSTORE PUSH32 0x14BEDD503C37CEB061D8EC60209FE345CE89830A19230301F076CAFF004D1926 PUSH1 0xE0 DUP3 ADD MSTORE PUSH32 0x967032FCBF776D1AFC985F88877F182D38480A653F2DECAA9794CBC3BF3060C PUSH2 0x100 DUP3 ADD MSTORE PUSH32 0xE187847AD4C798374D0D6732BF501847DD68BC0E071241E0213BC7FC13DB7AB PUSH2 0x120 DUP3 ADD MSTORE PUSH32 0x304CFBD1E08A704A99F5E847D93F8C3CAAFDDEC46B7A0D379DA69A4D112346A7 PUSH2 0x140 DUP3 ADD MSTORE PUSH32 0x1739C1B1A457A8C7313123D24D2F9192F896B7C63EEA05A9D57F06547AD0CEC8 PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x0 DUP8 ADD MLOAD PUSH2 0x180 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 ADD DUP8 ADD MLOAD PUSH2 0x1A0 DUP3 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x1C0 DUP3 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x1E0 DUP3 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x200 DUP3 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x220 DUP3 ADD MSTORE DUP5 CALLDATALOAD PUSH2 0x240 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x260 DUP3 ADD MSTORE PUSH32 0x26F48DDE35D1F1D8C281ADEB4197BEDD259CA49042DDE75DCDE76053A7EB1276 PUSH2 0x280 DUP3 ADD MSTORE PUSH32 0x29F4FB47DDB8AF1BF4744010C8885DE42323E9367C620C072308D0E12410FC43 PUSH2 0x2A0 DUP3 ADD MSTORE PUSH32 0x2E3A09772FE0D7E39904965E43D9DDE3B63C41A8EEEE9869E39C9CA0FB7917D0 PUSH2 0x2C0 DUP3 ADD MSTORE PUSH32 0x1F74E3AC6D4DE5DA5F21F8689D45AE00BC4ECD4A5F9D62F800A39D5568C1685C PUSH2 0x2E0 DUP3 ADD MSTORE PUSH1 0x20 DUP2 PUSH2 0x300 DUP4 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 MLOAD AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x380 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x6C2 PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6CF PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6DC PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6E9 PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6F6 PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x703 PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x710 PUSH1 0xC0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x71D PUSH1 0xE0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x72A DUP2 DUP5 DUP7 DUP9 DUP11 PUSH2 0xFD JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP1 PUSH1 0x40 DUP2 ADD DUP4 LT ISZERO PUSH2 0x747 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x200 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x764 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76E DUP7 DUP7 PUSH2 0x736 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP6 ADD DUP7 DUP2 GT ISZERO PUSH2 0x781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP7 ADD SWAP4 POP PUSH2 0x791 DUP8 DUP3 PUSH2 0x736 JUMP JUMPDEST SWAP3 POP POP DUP6 PUSH2 0x200 DUP7 ADD GT ISZERO PUSH2 0x7A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP5 SWAP1 SWAP4 POP SWAP1 SWAP2 PUSH2 0x100 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH18 0x69D3C5CBE1262075A1081A8B19A4A874F6A5 0xBA 0xC8 PUSH24 0xD87BBBFCEA44ED6525C764736F6C634300081B0033000000 ", + "sourceMap": "831:8957:40:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@verifyProof_17678": { + "entryPoint": 87, + "id": 17678, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_decode_array_uint256_calldata": { + "entryPoint": 1846, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptrt_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptrt_array$_t_uint256_$2_calldata_ptrt_array$_t_uint256_$8_calldata_ptr": { + "entryPoint": 1869, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:1042:46", + "nodeType": "YulBlock", + "src": "0:1042:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "86:87:46", + "nodeType": "YulBlock", + "src": "86:87:46", + "statements": [ + { + "nativeSrc": "96:18:46", + "nodeType": "YulAssignment", + "src": "96:18:46", + "value": { + "name": "offset", + "nativeSrc": "108:6:46", + "nodeType": "YulIdentifier", + "src": "108:6:46" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "96:8:46", + "nodeType": "YulIdentifier", + "src": "96:8:46" + } + ] + }, + { + "body": { + "nativeSrc": "151:16:46", + "nodeType": "YulBlock", + "src": "151:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "160:1:46", + "nodeType": "YulLiteral", + "src": "160:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "163:1:46", + "nodeType": "YulLiteral", + "src": "163:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "153:6:46", + "nodeType": "YulIdentifier", + "src": "153:6:46" + }, + "nativeSrc": "153:12:46", + "nodeType": "YulFunctionCall", + "src": "153:12:46" + }, + "nativeSrc": "153:12:46", + "nodeType": "YulExpressionStatement", + "src": "153:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "133:6:46", + "nodeType": "YulIdentifier", + "src": "133:6:46" + }, + { + "kind": "number", + "nativeSrc": "141:2:46", + "nodeType": "YulLiteral", + "src": "141:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "129:3:46", + "nodeType": "YulIdentifier", + "src": "129:3:46" + }, + "nativeSrc": "129:15:46", + "nodeType": "YulFunctionCall", + "src": "129:15:46" + }, + { + "name": "end", + "nativeSrc": "146:3:46", + "nodeType": "YulIdentifier", + "src": "146:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "126:2:46", + "nodeType": "YulIdentifier", + "src": "126:2:46" + }, + "nativeSrc": "126:24:46", + "nodeType": "YulFunctionCall", + "src": "126:24:46" + }, + "nativeSrc": "123:44:46", + "nodeType": "YulIf", + "src": "123:44:46" + } + ] + }, + "name": "abi_decode_array_uint256_calldata", + "nativeSrc": "14:159:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "57:6:46", + "nodeType": "YulTypedName", + "src": "57:6:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "65:3:46", + "nodeType": "YulTypedName", + "src": "65:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "73:8:46", + "nodeType": "YulTypedName", + "src": "73:8:46", + "type": "" + } + ], + "src": "14:159:46" + }, + { + "body": { + "nativeSrc": "424:424:46", + "nodeType": "YulBlock", + "src": "424:424:46", + "statements": [ + { + "body": { + "nativeSrc": "471:16:46", + "nodeType": "YulBlock", + "src": "471:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "480:1:46", + "nodeType": "YulLiteral", + "src": "480:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "483:1:46", + "nodeType": "YulLiteral", + "src": "483:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "473:6:46", + "nodeType": "YulIdentifier", + "src": "473:6:46" + }, + "nativeSrc": "473:12:46", + "nodeType": "YulFunctionCall", + "src": "473:12:46" + }, + "nativeSrc": "473:12:46", + "nodeType": "YulExpressionStatement", + "src": "473:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "445:7:46", + "nodeType": "YulIdentifier", + "src": "445:7:46" + }, + { + "name": "headStart", + "nativeSrc": "454:9:46", + "nodeType": "YulIdentifier", + "src": "454:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "441:3:46", + "nodeType": "YulIdentifier", + "src": "441:3:46" + }, + "nativeSrc": "441:23:46", + "nodeType": "YulFunctionCall", + "src": "441:23:46" + }, + { + "kind": "number", + "nativeSrc": "466:3:46", + "nodeType": "YulLiteral", + "src": "466:3:46", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "437:3:46", + "nodeType": "YulIdentifier", + "src": "437:3:46" + }, + "nativeSrc": "437:33:46", + "nodeType": "YulFunctionCall", + "src": "437:33:46" + }, + "nativeSrc": "434:53:46", + "nodeType": "YulIf", + "src": "434:53:46" + }, + { + "nativeSrc": "496:63:46", + "nodeType": "YulAssignment", + "src": "496:63:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "540:9:46", + "nodeType": "YulIdentifier", + "src": "540:9:46" + }, + { + "name": "dataEnd", + "nativeSrc": "551:7:46", + "nodeType": "YulIdentifier", + "src": "551:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_calldata", + "nativeSrc": "506:33:46", + "nodeType": "YulIdentifier", + "src": "506:33:46" + }, + "nativeSrc": "506:53:46", + "nodeType": "YulFunctionCall", + "src": "506:53:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "496:6:46", + "nodeType": "YulIdentifier", + "src": "496:6:46" + } + ] + }, + { + "nativeSrc": "568:29:46", + "nodeType": "YulVariableDeclaration", + "src": "568:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "582:9:46", + "nodeType": "YulIdentifier", + "src": "582:9:46" + }, + { + "kind": "number", + "nativeSrc": "593:3:46", + "nodeType": "YulLiteral", + "src": "593:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "578:3:46", + "nodeType": "YulIdentifier", + "src": "578:3:46" + }, + "nativeSrc": "578:19:46", + "nodeType": "YulFunctionCall", + "src": "578:19:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "572:2:46", + "nodeType": "YulTypedName", + "src": "572:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "625:16:46", + "nodeType": "YulBlock", + "src": "625:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "634:1:46", + "nodeType": "YulLiteral", + "src": "634:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "637:1:46", + "nodeType": "YulLiteral", + "src": "637:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "627:6:46", + "nodeType": "YulIdentifier", + "src": "627:6:46" + }, + "nativeSrc": "627:12:46", + "nodeType": "YulFunctionCall", + "src": "627:12:46" + }, + "nativeSrc": "627:12:46", + "nodeType": "YulExpressionStatement", + "src": "627:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "612:2:46", + "nodeType": "YulIdentifier", + "src": "612:2:46" + }, + { + "name": "dataEnd", + "nativeSrc": "616:7:46", + "nodeType": "YulIdentifier", + "src": "616:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "609:2:46", + "nodeType": "YulIdentifier", + "src": "609:2:46" + }, + "nativeSrc": "609:15:46", + "nodeType": "YulFunctionCall", + "src": "609:15:46" + }, + "nativeSrc": "606:35:46", + "nodeType": "YulIf", + "src": "606:35:46" + }, + { + "nativeSrc": "650:28:46", + "nodeType": "YulAssignment", + "src": "650:28:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "664:9:46", + "nodeType": "YulIdentifier", + "src": "664:9:46" + }, + { + "kind": "number", + "nativeSrc": "675:2:46", + "nodeType": "YulLiteral", + "src": "675:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "660:3:46", + "nodeType": "YulIdentifier", + "src": "660:3:46" + }, + "nativeSrc": "660:18:46", + "nodeType": "YulFunctionCall", + "src": "660:18:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "650:6:46", + "nodeType": "YulIdentifier", + "src": "650:6:46" + } + ] + }, + { + "nativeSrc": "687:56:46", + "nodeType": "YulAssignment", + "src": "687:56:46", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "731:2:46", + "nodeType": "YulIdentifier", + "src": "731:2:46" + }, + { + "name": "dataEnd", + "nativeSrc": "735:7:46", + "nodeType": "YulIdentifier", + "src": "735:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_calldata", + "nativeSrc": "697:33:46", + "nodeType": "YulIdentifier", + "src": "697:33:46" + }, + "nativeSrc": "697:46:46", + "nodeType": "YulFunctionCall", + "src": "697:46:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "687:6:46", + "nodeType": "YulIdentifier", + "src": "687:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "788:16:46", + "nodeType": "YulBlock", + "src": "788:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "797:1:46", + "nodeType": "YulLiteral", + "src": "797:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "800:1:46", + "nodeType": "YulLiteral", + "src": "800:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "790:6:46", + "nodeType": "YulIdentifier", + "src": "790:6:46" + }, + "nativeSrc": "790:12:46", + "nodeType": "YulFunctionCall", + "src": "790:12:46" + }, + "nativeSrc": "790:12:46", + "nodeType": "YulExpressionStatement", + "src": "790:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "762:9:46", + "nodeType": "YulIdentifier", + "src": "762:9:46" + }, + { + "kind": "number", + "nativeSrc": "773:3:46", + "nodeType": "YulLiteral", + "src": "773:3:46", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "758:3:46", + "nodeType": "YulIdentifier", + "src": "758:3:46" + }, + "nativeSrc": "758:19:46", + "nodeType": "YulFunctionCall", + "src": "758:19:46" + }, + { + "name": "dataEnd", + "nativeSrc": "779:7:46", + "nodeType": "YulIdentifier", + "src": "779:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "755:2:46", + "nodeType": "YulIdentifier", + "src": "755:2:46" + }, + "nativeSrc": "755:32:46", + "nodeType": "YulFunctionCall", + "src": "755:32:46" + }, + "nativeSrc": "752:52:46", + "nodeType": "YulIf", + "src": "752:52:46" + }, + { + "nativeSrc": "813:29:46", + "nodeType": "YulAssignment", + "src": "813:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "827:9:46", + "nodeType": "YulIdentifier", + "src": "827:9:46" + }, + { + "kind": "number", + "nativeSrc": "838:3:46", + "nodeType": "YulLiteral", + "src": "838:3:46", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "823:3:46", + "nodeType": "YulIdentifier", + "src": "823:3:46" + }, + "nativeSrc": "823:19:46", + "nodeType": "YulFunctionCall", + "src": "823:19:46" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "813:6:46", + "nodeType": "YulIdentifier", + "src": "813:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptrt_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptrt_array$_t_uint256_$2_calldata_ptrt_array$_t_uint256_$8_calldata_ptr", + "nativeSrc": "178:670:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "366:9:46", + "nodeType": "YulTypedName", + "src": "366:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "377:7:46", + "nodeType": "YulTypedName", + "src": "377:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "389:6:46", + "nodeType": "YulTypedName", + "src": "389:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "397:6:46", + "nodeType": "YulTypedName", + "src": "397:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "405:6:46", + "nodeType": "YulTypedName", + "src": "405:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "413:6:46", + "nodeType": "YulTypedName", + "src": "413:6:46", + "type": "" + } + ], + "src": "178:670:46" + }, + { + "body": { + "nativeSrc": "948:92:46", + "nodeType": "YulBlock", + "src": "948:92:46", + "statements": [ + { + "nativeSrc": "958:26:46", + "nodeType": "YulAssignment", + "src": "958:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "970:9:46", + "nodeType": "YulIdentifier", + "src": "970:9:46" + }, + { + "kind": "number", + "nativeSrc": "981:2:46", + "nodeType": "YulLiteral", + "src": "981:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "966:3:46", + "nodeType": "YulIdentifier", + "src": "966:3:46" + }, + "nativeSrc": "966:18:46", + "nodeType": "YulFunctionCall", + "src": "966:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "958:4:46", + "nodeType": "YulIdentifier", + "src": "958:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1000:9:46", + "nodeType": "YulIdentifier", + "src": "1000:9:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1025:6:46", + "nodeType": "YulIdentifier", + "src": "1025:6:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1018:6:46", + "nodeType": "YulIdentifier", + "src": "1018:6:46" + }, + "nativeSrc": "1018:14:46", + "nodeType": "YulFunctionCall", + "src": "1018:14:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1011:6:46", + "nodeType": "YulIdentifier", + "src": "1011:6:46" + }, + "nativeSrc": "1011:22:46", + "nodeType": "YulFunctionCall", + "src": "1011:22:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "993:6:46", + "nodeType": "YulIdentifier", + "src": "993:6:46" + }, + "nativeSrc": "993:41:46", + "nodeType": "YulFunctionCall", + "src": "993:41:46" + }, + "nativeSrc": "993:41:46", + "nodeType": "YulExpressionStatement", + "src": "993:41:46" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "853:187:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "917:9:46", + "nodeType": "YulTypedName", + "src": "917:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "928:6:46", + "nodeType": "YulTypedName", + "src": "928:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "939:4:46", + "nodeType": "YulTypedName", + "src": "939:4:46", + "type": "" + } + ], + "src": "853:187:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_array_uint256_calldata(offset, end) -> arrayPos\n {\n arrayPos := offset\n if gt(add(offset, 64), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptrt_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptrt_array$_t_uint256_$2_calldata_ptrt_array$_t_uint256_$8_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 512) { revert(0, 0) }\n value0 := abi_decode_array_uint256_calldata(headStart, dataEnd)\n let _1 := add(headStart, 192)\n if gt(_1, dataEnd) { revert(0, 0) }\n value1 := add(headStart, 64)\n value2 := abi_decode_array_uint256_calldata(_1, dataEnd)\n if gt(add(headStart, 512), dataEnd) { revert(0, 0) }\n value3 := add(headStart, 256)\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}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074d565b610057565b604051901515815260200160405180910390f35b60006106aa565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f29ff83716be0d0baba31c32369198c3a0da0d3adb699e63974dffb2879c0004f85527f19b404e25643468fe418e76b619a2c6428a0633a40d103d5894b37e99529acbf60208601526000608086018661019a87357f16c55556093c6b890f0c5dbf45fa1cdef9018f18bd4eeb4691e2394cfa0f97037f0632a709df6078ef66518fd7bdb865efa6f334611ce9d8e05bdee6700540e09d84610092565b6101ea60208801357f034073fb529bb35fa59e74920754aaf5a64b144e94adf12be18d33cafdf3f5b37f07c5bc1b0461526996152c27bfb5412b3a941b76b249890eae3361e6cdee6ffa84610092565b61023a60408801357f2256a3ff0336fdeb8ff15bbe6346f98c1cd42e6150d79d4f8b9c003850784ac57f15d95dd681e29f94806fb623e0862a45150d72df468511f82464e5139464d86484610092565b61028a60608801357f0b2f0cf054017cca1b84a473fe1fd685ad3a8de1e55247a1bc8ae2112887a5517f04346fbf59f32c3d2b1b463ecfde357cac72df041fb8c1a85d51546870b0963e84610092565b6102da60808801357f1c059e750eed8681d720e766016ec290944eb71864552c1a52ce200defcf8ef57f2d2c02b7a423b7732cc79c938965ab3ba3adf42dd092ca8695dc65488b8bf42284610092565b61032a60a08801357f25642f13b43067b9c9c93ad4b0918816217767a4116f400b650e2bc9a8f8b8ee7f08e0171aba726132a10be358c6ed6444e2cf74b70406220e84bd6e88cf0881d084610092565b61037a60c08801357f21a15536da869bca92c54269c8c1cdb7e9fbd0a3efc6fc543e86000936056b797f1bc0d2072947c3e8cfb7ac85e1289da7053d9d7a7c96237702ce1ea514a01a4284610092565b6103ca60e08801357f0389fcbecfc1981ce90ca521226aa862843fa4f308ccaca21bcf102347310c267f14b209a7aa6e362049249d21af4dca9112c998aa7ec20b6b6a17675e93667c6c84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f26f48dde35d1f1d8c281adeb4197bedd259ca49042dde75dcde76053a7eb12766102808201527f29f4fb47ddb8af1bf4744010c8885de42323e9367c620c072308d0e12410fc436102a08201527f2e3a09772fe0d7e39904965e43d9dde3b63c41a8eeee9869e39c9ca0fb7917d06102c08201527f1f74e3ac6d4de5da5f21f8689d45ae00bc4ecd4a5f9d62f800a39d5568c1685c6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c2600084013561005e565b6106cf602084013561005e565b6106dc604084013561005e565b6106e9606084013561005e565b6106f6608084013561005e565b61070360a084013561005e565b61071060c084013561005e565b61071d60e084013561005e565b61072a818486888a6100fd565b90508060005260206000f35b806040810183101561074757600080fd5b92915050565b600080600080610200858703121561076457600080fd5b61076e8686610736565b935060c085018681111561078157600080fd5b6040860193506107918782610736565b92505085610200860111156107a557600080fd5b5091949093509091610100019056fea26469706673582212207169d3c5cbe1262075a1081a8b19a4a874f6a5bac877d87bbbfcea44ed6525c764736f6c634300081b0033", + "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 0xC9219A7A EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x74D 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 0x6AA JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x8F JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP POP DUP1 PUSH2 0xF6 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH32 0x29FF83716BE0D0BABA31C32369198C3A0DA0D3ADB699E63974DFFB2879C0004F DUP6 MSTORE PUSH32 0x19B404E25643468FE418E76B619A2C6428A0633A40D103D5894B37E99529ACBF PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x0 PUSH1 0x80 DUP7 ADD DUP7 PUSH2 0x19A DUP8 CALLDATALOAD PUSH32 0x16C55556093C6B890F0C5DBF45FA1CDEF9018F18BD4EEB4691E2394CFA0F9703 PUSH32 0x632A709DF6078EF66518FD7BDB865EFA6F334611CE9D8E05BDEE6700540E09D DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x1EA PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH32 0x34073FB529BB35FA59E74920754AAF5A64B144E94ADF12BE18D33CAFDF3F5B3 PUSH32 0x7C5BC1B0461526996152C27BFB5412B3A941B76B249890EAE3361E6CDEE6FFA DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x23A PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH32 0x2256A3FF0336FDEB8FF15BBE6346F98C1CD42E6150D79D4F8B9C003850784AC5 PUSH32 0x15D95DD681E29F94806FB623E0862A45150D72DF468511F82464E5139464D864 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x28A PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH32 0xB2F0CF054017CCA1B84A473FE1FD685AD3A8DE1E55247A1BC8AE2112887A551 PUSH32 0x4346FBF59F32C3D2B1B463ECFDE357CAC72DF041FB8C1A85D51546870B0963E DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x2DA PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH32 0x1C059E750EED8681D720E766016EC290944EB71864552C1A52CE200DEFCF8EF5 PUSH32 0x2D2C02B7A423B7732CC79C938965AB3BA3ADF42DD092CA8695DC65488B8BF422 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x32A PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH32 0x25642F13B43067B9C9C93AD4B0918816217767A4116F400B650E2BC9A8F8B8EE PUSH32 0x8E0171ABA726132A10BE358C6ED6444E2CF74B70406220E84BD6E88CF0881D0 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x37A PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH32 0x21A15536DA869BCA92C54269C8C1CDB7E9FBD0A3EFC6FC543E86000936056B79 PUSH32 0x1BC0D2072947C3E8CFB7AC85E1289DA7053D9D7A7C96237702CE1EA514A01A42 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x3CA PUSH1 0xE0 DUP9 ADD CALLDATALOAD PUSH32 0x389FCBECFC1981CE90CA521226AA862843FA4F308CCACA21BCF102347310C26 PUSH32 0x14B209A7AA6E362049249D21AF4DCA9112C998AA7EC20B6B6A17675E93667C6C DUP5 PUSH2 0x92 JUMP JUMPDEST POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD PUSH1 0x20 DUP3 ADD MSTORE DUP4 CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x2D4D9AA7E302D9DF41749D5507949D05DBEA33FBB16C643B22F599A2BE6DF2E2 PUSH1 0xC0 DUP3 ADD MSTORE PUSH32 0x14BEDD503C37CEB061D8EC60209FE345CE89830A19230301F076CAFF004D1926 PUSH1 0xE0 DUP3 ADD MSTORE PUSH32 0x967032FCBF776D1AFC985F88877F182D38480A653F2DECAA9794CBC3BF3060C PUSH2 0x100 DUP3 ADD MSTORE PUSH32 0xE187847AD4C798374D0D6732BF501847DD68BC0E071241E0213BC7FC13DB7AB PUSH2 0x120 DUP3 ADD MSTORE PUSH32 0x304CFBD1E08A704A99F5E847D93F8C3CAAFDDEC46B7A0D379DA69A4D112346A7 PUSH2 0x140 DUP3 ADD MSTORE PUSH32 0x1739C1B1A457A8C7313123D24D2F9192F896B7C63EEA05A9D57F06547AD0CEC8 PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x0 DUP8 ADD MLOAD PUSH2 0x180 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 ADD DUP8 ADD MLOAD PUSH2 0x1A0 DUP3 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x1C0 DUP3 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x1E0 DUP3 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x200 DUP3 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x220 DUP3 ADD MSTORE DUP5 CALLDATALOAD PUSH2 0x240 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x260 DUP3 ADD MSTORE PUSH32 0x26F48DDE35D1F1D8C281ADEB4197BEDD259CA49042DDE75DCDE76053A7EB1276 PUSH2 0x280 DUP3 ADD MSTORE PUSH32 0x29F4FB47DDB8AF1BF4744010C8885DE42323E9367C620C072308D0E12410FC43 PUSH2 0x2A0 DUP3 ADD MSTORE PUSH32 0x2E3A09772FE0D7E39904965E43D9DDE3B63C41A8EEEE9869E39C9CA0FB7917D0 PUSH2 0x2C0 DUP3 ADD MSTORE PUSH32 0x1F74E3AC6D4DE5DA5F21F8689D45AE00BC4ECD4A5F9D62F800A39D5568C1685C PUSH2 0x2E0 DUP3 ADD MSTORE PUSH1 0x20 DUP2 PUSH2 0x300 DUP4 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 MLOAD AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x380 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x6C2 PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6CF PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6DC PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6E9 PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6F6 PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x703 PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x710 PUSH1 0xC0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x71D PUSH1 0xE0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x72A DUP2 DUP5 DUP7 DUP9 DUP11 PUSH2 0xFD JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP1 PUSH1 0x40 DUP2 ADD DUP4 LT ISZERO PUSH2 0x747 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x200 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x764 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76E DUP7 DUP7 PUSH2 0x736 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP6 ADD DUP7 DUP2 GT ISZERO PUSH2 0x781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP7 ADD SWAP4 POP PUSH2 0x791 DUP8 DUP3 PUSH2 0x736 JUMP JUMPDEST SWAP3 POP POP DUP6 PUSH2 0x200 DUP7 ADD GT ISZERO PUSH2 0x7A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP5 SWAP1 SWAP4 POP SWAP1 SWAP2 PUSH2 0x100 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH18 0x69D3C5CBE1262075A1081A8B19A4A874F6A5 0xBA 0xC8 PUSH24 0xD87BBBFCEA44ED6525C764736F6C634300081B0033000000 ", + "sourceMap": "831:8957:40:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4785:5000;;;;;;:::i;:::-;;:::i;:::-;;;1018:14:46;;1011:22;993:41;;981:2;966:18;4785:5000:40;;;;;;;;4926:4;4965:163;;;5022:1;5019;5016:8;5006:108;;5058:1;5055;5048:12;5091:4;5088:1;5081:15;5006:108;4965:163;:::o;5232:738::-;5283:11;5328:4;5322:11;5362:1;5357:3;5350:14;5402:1;5397:2;5392:3;5388:12;5381:23;5442:1;5437:2;5432:3;5428:12;5421:23;5519:2;5514:3;5510:2;5505:3;5502:1;5495:4;5488:5;5484:16;5473:49;5462:60;;5550:7;5540:107;;5591:1;5588;5581:12;5624:4;5621:1;5614:15;5540:107;5692:2;5686:9;5681:2;5676:3;5672:12;5665:31;5748:2;5744;5740:11;5734:18;5729:2;5724:3;5720:12;5713:40;5828:2;5824;5819:3;5814;5811:1;5804:4;5797:5;5793:16;5782:49;5771:60;;;5859:7;5849:107;;5900:1;5897;5890:12;5933:4;5930:1;5923:15;5849:107;;5232:738;;;;:::o;5984:2880::-;6172:4;6159:18;;6216:4;6211:2;6201:13;;6194:27;6039:4;6089:8;6079:19;;6083:4;6311:62;6340:32;;6334:4;6328;6083;6311:62;:::i;:::-;6407:63;6465:2;6453:10;6449:19;6436:33;6430:4;6424;6418;6407:63;:::i;:::-;6504;6562:2;6550:10;6546:19;6533:33;6527:4;6521;6515;6504:63;:::i;:::-;6601;6659:2;6647:10;6643:19;6630:33;6624:4;6618;6612;6601:63;:::i;:::-;6698:64;6756:3;6744:10;6740:20;6727:34;6721:4;6715;6709;6698:64;:::i;:::-;6796;6854:3;6842:10;6838:20;6825:34;6819:4;6813;6807;6796:64;:::i;:::-;6894;6952:3;6940:10;6936:20;6923:34;6917:4;6911;6905;6894:64;:::i;:::-;6992;7050:3;7038:10;7034:20;7021:34;7015:4;7009;7003;6992:64;:::i;:::-;;7144:2;7131:16;7120:9;7113:35;7231:1;7224:2;7220;7216:11;7203:25;7200:1;7196:33;7192:41;7187:2;7176:9;7172:18;7165:69;7313:2;7300:16;7295:2;7284:9;7280:18;7273:44;7382:2;7378;7374:11;7361:25;7356:2;7345:9;7341:18;7334:53;7453:2;7449;7445:11;7432:25;7426:3;7415:9;7411:19;7404:54;7524:2;7520;7516:11;7503:25;7497:3;7486:9;7482:19;7475:54;7601:6;7595:3;7584:9;7580:19;7573:35;7653:6;7647:3;7636:9;7632:19;7625:35;7731:6;7725:3;7714:9;7710:19;7703:35;7783:6;7777:3;7766:9;7762:19;7755:35;7835:6;7829:3;7818:9;7814:19;7807:35;7887:6;7881:3;7870:9;7866:19;7859:35;7980:3;7974:4;7970:14;7964:21;7958:3;7947:9;7943:19;7936:50;8056:2;8051:3;8047:12;8041:4;8037:23;8031:30;8025:3;8014:9;8010:19;8003:59;8135:7;8129:3;8118:9;8114:19;8107:36;8188:7;8182:3;8171:9;8167:19;8160:36;8241:7;8235:3;8224:9;8220:19;8213:36;8294:7;8288:3;8277:9;8273:19;8266:36;8382:2;8369:16;8363:3;8352:9;8348:19;8341:45;8452:2;8448;8444:11;8431:25;8425:3;8414:9;8410:19;8403:54;8529:7;8523:3;8512:9;8508:19;8501:36;8582:7;8576:3;8565:9;8561:19;8554:36;8635:7;8629:3;8618:9;8614:19;8607:36;8688:7;8682:3;8671:9;8667:19;8660:36;8789:4;8778:9;8773:3;8762:9;8759:1;8752:4;8745:5;8741:16;8730:64;8833:16;;8820:30;;5984:2880;-1:-1:-1;;;;;;5984:2880:40:o;:::-;8896:4;8890:11;8937:8;8931:4;8927:19;8921:4;8914:33;9025:45;9066:1;9053:11;9049:19;9036:33;9025:45;:::i;:::-;9096:46;9137:2;9124:11;9120:20;9107:34;9096:46;:::i;:::-;9168;9209:2;9196:11;9192:20;9179:34;9168:46;:::i;:::-;9240;9281:2;9268:11;9264:20;9251:34;9240:46;:::i;:::-;9312:47;9353:3;9340:11;9336:21;9323:35;9312:47;:::i;:::-;9385;9426:3;9413:11;9409:21;9396:35;9385:47;:::i;:::-;9458;9499:3;9486:11;9482:21;9469:35;9458:47;:::i;:::-;9531;9572:3;9559:11;9555:21;9542:35;9531:47;:::i;:::-;9660:46;9701:4;9688:11;9683:3;9678;9673;9660:46;:::i;:::-;9645:61;;9730:7;9727:1;9720:18;9762:4;9759:1;9752:15;14:159:46;108:6;141:2;129:15;;126:24;-1:-1:-1;123:44:46;;;163:1;160;153:12;123:44;14:159;;;;:::o;178:670::-;389:6;397;405;413;466:3;454:9;445:7;441:23;437:33;434:53;;;483:1;480;473:12;434:53;506;551:7;540:9;506:53;:::i;:::-;496:63;;593:3;582:9;578:19;616:7;612:2;609:15;606:35;;;637:1;634;627:12;606:35;675:2;664:9;660:18;650:28;;697:46;735:7;731:2;697:46;:::i;:::-;687:56;;;779:7;773:3;762:9;758:19;755:32;752:52;;;800:1;797;790:12;752:52;-1:-1:-1;178:670:46;;;;-1:-1:-1;178:670:46;;838:3;823:19;;178:670::o" + }, + "methodIdentifiers": { + "verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[8])": "c9219a7a" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"_pA\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"_pB\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"_pC\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[8]\",\"name\":\"_pubSignals\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/verifiers/idcard/Verifier_idcard_sha1.sol\":\"Verifier_idcard_sha1\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/verifiers/idcard/Verifier_idcard_sha1.sol\":{\"keccak256\":\"0x3e1f7eff9870283f7e2251564422aa0b9277c75be80c8b69cb14ab1efb2149cb\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://176ce64bce0cad4381f8facccaf465e55f1e0bea0ce7f0abd64e881994f904f0\",\"dweb:/ipfs/Qmbti92RWM1aaaiRtgeSbNhkMDMHsPVz7gxqv8xwNvFR6z\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/verifiers/idcard/Verifier_idcard_sha224.sol": { + "Verifier_idcard_sha224": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[2]", + "name": "_pA", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2][2]", + "name": "_pB", + "type": "uint256[2][2]" + }, + { + "internalType": "uint256[2]", + "name": "_pC", + "type": "uint256[2]" + }, + { + "internalType": "uint256[8]", + "name": "_pubSignals", + "type": "uint256[8]" + } + ], + "name": "verifyProof", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b506107e98061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f11973f474a9d34afdd7843a7608ff0ae39ea710449bb2ddce2c97f347407aeb485527f302d1ceb23adb83e735f2d9307fd9c8d5225f92ef4155d44a30b08d3b6a77ecb60208601526000608086018661019987357f1a865b19cfa36eea966cbe7d4d92b4904cdad4505fb2ec15c9b2a6765b7167397e6e14ccddfc69162a32f34c140d8c093a8d3674d15e3b314cf4393d17379d9184610092565b6101e960208801357f0feefa866182c1ae80b82c864c1063fb7df2c93043d62d4bf5f8a35dcf72a3f27f2dcca5e323089b977858c88af7496df925c9b42f102286cdcdaf415652dc6e6f84610092565b61023960408801357f2f8be3a5549b4052f08756eff14cdeec7f5d5a64a29f207b905f0dec2cd532267f22983a4e6ec998b82a0cfb95f046e06c9f813b65fe5cc2adac7a659fac4dade084610092565b61028960608801357f0358f2b1aa492aaab540b985158a892654fd6cb1c6c003f88cbd91b5deaa027f7f2de31ecf9c91ed8976ae908f7773e234d9f1f6eb1c44c7637a50fa13920aaa7b84610092565b6102d960808801357f2b6d819ff3d0d2a246de92182d690f6369e492794cd21d2410634f86778269e77f01354f5feefb732d89299e6411d059803c2c6779f0e400f25821bc9df211194784610092565b61032960a08801357f0db2027c422c6d687a1520b696eef810da5005fda5a632e1cc24856452940f5c7f1322c6978537b4a4abeae331b56a7fe3047cd803e57aa283898c8861bb5319ad84610092565b61037960c08801357f1169b20c696b7f37bea02355b8143573bb516342bd3717778b0dabd321ccd01a7f2c37024bc413a754e54fc89d8ffb474ed036267310d7b708c0772b9965b0588d84610092565b6103c960e08801357f1b16cebbc5f3bd0268dfc6c16bb4a368b779aa89ff334bd767ca1928157c132f7f279e29138702830e26b031b922a49b1b856a2235cba1ace7ca5c0794df688aaf84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f197cffe80ab9091e47b041687a323278bb14f779901c2dda5c60237854589b276102808201527f03b1182bbb25acac962b67dafe6e00aac983f45d4b743c228dba0ac3e36cc2066102a08201527f0f58c8a26a26d6aec2202f28a8c9bf78a4779d8a198aaa268d4fc451e1919ac16102c08201527f0ce3e786335608bde300a258db0ce7f4cf1caffd63c37f3158e47e4f264caadb6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212205a7895a774b70cbf0308911d4d7b438347c3e0a9c313e82a4108a625d50ac3fe64736f6c634300081b0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7E9 DUP1 PUSH2 0x1F 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 0xC9219A7A EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x74C 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 0x6A9 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x8F JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP POP DUP1 PUSH2 0xF6 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH32 0x11973F474A9D34AFDD7843A7608FF0AE39EA710449BB2DDCE2C97F347407AEB4 DUP6 MSTORE PUSH32 0x302D1CEB23ADB83E735F2D9307FD9C8D5225F92EF4155D44A30B08D3B6A77ECB PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x0 PUSH1 0x80 DUP7 ADD DUP7 PUSH2 0x199 DUP8 CALLDATALOAD PUSH32 0x1A865B19CFA36EEA966CBE7D4D92B4904CDAD4505FB2EC15C9B2A6765B716739 PUSH31 0x6E14CCDDFC69162A32F34C140D8C093A8D3674D15E3B314CF4393D17379D91 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x1E9 PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH32 0xFEEFA866182C1AE80B82C864C1063FB7DF2C93043D62D4BF5F8A35DCF72A3F2 PUSH32 0x2DCCA5E323089B977858C88AF7496DF925C9B42F102286CDCDAF415652DC6E6F DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x239 PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH32 0x2F8BE3A5549B4052F08756EFF14CDEEC7F5D5A64A29F207B905F0DEC2CD53226 PUSH32 0x22983A4E6EC998B82A0CFB95F046E06C9F813B65FE5CC2ADAC7A659FAC4DADE0 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x289 PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH32 0x358F2B1AA492AAAB540B985158A892654FD6CB1C6C003F88CBD91B5DEAA027F PUSH32 0x2DE31ECF9C91ED8976AE908F7773E234D9F1F6EB1C44C7637A50FA13920AAA7B DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x2D9 PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH32 0x2B6D819FF3D0D2A246DE92182D690F6369E492794CD21D2410634F86778269E7 PUSH32 0x1354F5FEEFB732D89299E6411D059803C2C6779F0E400F25821BC9DF2111947 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x329 PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH32 0xDB2027C422C6D687A1520B696EEF810DA5005FDA5A632E1CC24856452940F5C PUSH32 0x1322C6978537B4A4ABEAE331B56A7FE3047CD803E57AA283898C8861BB5319AD DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x379 PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH32 0x1169B20C696B7F37BEA02355B8143573BB516342BD3717778B0DABD321CCD01A PUSH32 0x2C37024BC413A754E54FC89D8FFB474ED036267310D7B708C0772B9965B0588D DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x3C9 PUSH1 0xE0 DUP9 ADD CALLDATALOAD PUSH32 0x1B16CEBBC5F3BD0268DFC6C16BB4A368B779AA89FF334BD767CA1928157C132F PUSH32 0x279E29138702830E26B031B922A49B1B856A2235CBA1ACE7CA5C0794DF688AAF DUP5 PUSH2 0x92 JUMP JUMPDEST POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD PUSH1 0x20 DUP3 ADD MSTORE DUP4 CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x2D4D9AA7E302D9DF41749D5507949D05DBEA33FBB16C643B22F599A2BE6DF2E2 PUSH1 0xC0 DUP3 ADD MSTORE PUSH32 0x14BEDD503C37CEB061D8EC60209FE345CE89830A19230301F076CAFF004D1926 PUSH1 0xE0 DUP3 ADD MSTORE PUSH32 0x967032FCBF776D1AFC985F88877F182D38480A653F2DECAA9794CBC3BF3060C PUSH2 0x100 DUP3 ADD MSTORE PUSH32 0xE187847AD4C798374D0D6732BF501847DD68BC0E071241E0213BC7FC13DB7AB PUSH2 0x120 DUP3 ADD MSTORE PUSH32 0x304CFBD1E08A704A99F5E847D93F8C3CAAFDDEC46B7A0D379DA69A4D112346A7 PUSH2 0x140 DUP3 ADD MSTORE PUSH32 0x1739C1B1A457A8C7313123D24D2F9192F896B7C63EEA05A9D57F06547AD0CEC8 PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x0 DUP8 ADD MLOAD PUSH2 0x180 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 ADD DUP8 ADD MLOAD PUSH2 0x1A0 DUP3 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x1C0 DUP3 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x1E0 DUP3 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x200 DUP3 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x220 DUP3 ADD MSTORE DUP5 CALLDATALOAD PUSH2 0x240 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x260 DUP3 ADD MSTORE PUSH32 0x197CFFE80AB9091E47B041687A323278BB14F779901C2DDA5C60237854589B27 PUSH2 0x280 DUP3 ADD MSTORE PUSH32 0x3B1182BBB25ACAC962B67DAFE6E00AAC983F45D4B743C228DBA0AC3E36CC206 PUSH2 0x2A0 DUP3 ADD MSTORE PUSH32 0xF58C8A26A26D6AEC2202F28A8C9BF78A4779D8A198AAA268D4FC451E1919AC1 PUSH2 0x2C0 DUP3 ADD MSTORE PUSH32 0xCE3E786335608BDE300A258DB0CE7F4CF1CAFFD63C37F3158E47E4F264CAADB PUSH2 0x2E0 DUP3 ADD MSTORE PUSH1 0x20 DUP2 PUSH2 0x300 DUP4 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 MLOAD AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x380 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x6C1 PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6CE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6DB PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6E8 PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6F5 PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x702 PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x70F PUSH1 0xC0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x71C PUSH1 0xE0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x729 DUP2 DUP5 DUP7 DUP9 DUP11 PUSH2 0xFD JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP1 PUSH1 0x40 DUP2 ADD DUP4 LT ISZERO PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x200 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76D DUP7 DUP7 PUSH2 0x735 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP6 ADD DUP7 DUP2 GT ISZERO PUSH2 0x780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP7 ADD SWAP4 POP PUSH2 0x790 DUP8 DUP3 PUSH2 0x735 JUMP JUMPDEST SWAP3 POP POP DUP6 PUSH2 0x200 DUP7 ADD GT ISZERO PUSH2 0x7A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP5 SWAP1 SWAP4 POP SWAP1 SWAP2 PUSH2 0x100 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GAS PUSH25 0x95A774B70CBF0308911D4D7B438347C3E0A9C313E82A4108A6 0x25 0xD5 EXP 0xC3 INVALID PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "831:8955:41:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@verifyProof_17817": { + "entryPoint": 87, + "id": 17817, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_decode_array_uint256_calldata": { + "entryPoint": 1845, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptrt_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptrt_array$_t_uint256_$2_calldata_ptrt_array$_t_uint256_$8_calldata_ptr": { + "entryPoint": 1868, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:1042:46", + "nodeType": "YulBlock", + "src": "0:1042:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "86:87:46", + "nodeType": "YulBlock", + "src": "86:87:46", + "statements": [ + { + "nativeSrc": "96:18:46", + "nodeType": "YulAssignment", + "src": "96:18:46", + "value": { + "name": "offset", + "nativeSrc": "108:6:46", + "nodeType": "YulIdentifier", + "src": "108:6:46" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "96:8:46", + "nodeType": "YulIdentifier", + "src": "96:8:46" + } + ] + }, + { + "body": { + "nativeSrc": "151:16:46", + "nodeType": "YulBlock", + "src": "151:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "160:1:46", + "nodeType": "YulLiteral", + "src": "160:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "163:1:46", + "nodeType": "YulLiteral", + "src": "163:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "153:6:46", + "nodeType": "YulIdentifier", + "src": "153:6:46" + }, + "nativeSrc": "153:12:46", + "nodeType": "YulFunctionCall", + "src": "153:12:46" + }, + "nativeSrc": "153:12:46", + "nodeType": "YulExpressionStatement", + "src": "153:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "133:6:46", + "nodeType": "YulIdentifier", + "src": "133:6:46" + }, + { + "kind": "number", + "nativeSrc": "141:2:46", + "nodeType": "YulLiteral", + "src": "141:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "129:3:46", + "nodeType": "YulIdentifier", + "src": "129:3:46" + }, + "nativeSrc": "129:15:46", + "nodeType": "YulFunctionCall", + "src": "129:15:46" + }, + { + "name": "end", + "nativeSrc": "146:3:46", + "nodeType": "YulIdentifier", + "src": "146:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "126:2:46", + "nodeType": "YulIdentifier", + "src": "126:2:46" + }, + "nativeSrc": "126:24:46", + "nodeType": "YulFunctionCall", + "src": "126:24:46" + }, + "nativeSrc": "123:44:46", + "nodeType": "YulIf", + "src": "123:44:46" + } + ] + }, + "name": "abi_decode_array_uint256_calldata", + "nativeSrc": "14:159:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "57:6:46", + "nodeType": "YulTypedName", + "src": "57:6:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "65:3:46", + "nodeType": "YulTypedName", + "src": "65:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "73:8:46", + "nodeType": "YulTypedName", + "src": "73:8:46", + "type": "" + } + ], + "src": "14:159:46" + }, + { + "body": { + "nativeSrc": "424:424:46", + "nodeType": "YulBlock", + "src": "424:424:46", + "statements": [ + { + "body": { + "nativeSrc": "471:16:46", + "nodeType": "YulBlock", + "src": "471:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "480:1:46", + "nodeType": "YulLiteral", + "src": "480:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "483:1:46", + "nodeType": "YulLiteral", + "src": "483:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "473:6:46", + "nodeType": "YulIdentifier", + "src": "473:6:46" + }, + "nativeSrc": "473:12:46", + "nodeType": "YulFunctionCall", + "src": "473:12:46" + }, + "nativeSrc": "473:12:46", + "nodeType": "YulExpressionStatement", + "src": "473:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "445:7:46", + "nodeType": "YulIdentifier", + "src": "445:7:46" + }, + { + "name": "headStart", + "nativeSrc": "454:9:46", + "nodeType": "YulIdentifier", + "src": "454:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "441:3:46", + "nodeType": "YulIdentifier", + "src": "441:3:46" + }, + "nativeSrc": "441:23:46", + "nodeType": "YulFunctionCall", + "src": "441:23:46" + }, + { + "kind": "number", + "nativeSrc": "466:3:46", + "nodeType": "YulLiteral", + "src": "466:3:46", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "437:3:46", + "nodeType": "YulIdentifier", + "src": "437:3:46" + }, + "nativeSrc": "437:33:46", + "nodeType": "YulFunctionCall", + "src": "437:33:46" + }, + "nativeSrc": "434:53:46", + "nodeType": "YulIf", + "src": "434:53:46" + }, + { + "nativeSrc": "496:63:46", + "nodeType": "YulAssignment", + "src": "496:63:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "540:9:46", + "nodeType": "YulIdentifier", + "src": "540:9:46" + }, + { + "name": "dataEnd", + "nativeSrc": "551:7:46", + "nodeType": "YulIdentifier", + "src": "551:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_calldata", + "nativeSrc": "506:33:46", + "nodeType": "YulIdentifier", + "src": "506:33:46" + }, + "nativeSrc": "506:53:46", + "nodeType": "YulFunctionCall", + "src": "506:53:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "496:6:46", + "nodeType": "YulIdentifier", + "src": "496:6:46" + } + ] + }, + { + "nativeSrc": "568:29:46", + "nodeType": "YulVariableDeclaration", + "src": "568:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "582:9:46", + "nodeType": "YulIdentifier", + "src": "582:9:46" + }, + { + "kind": "number", + "nativeSrc": "593:3:46", + "nodeType": "YulLiteral", + "src": "593:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "578:3:46", + "nodeType": "YulIdentifier", + "src": "578:3:46" + }, + "nativeSrc": "578:19:46", + "nodeType": "YulFunctionCall", + "src": "578:19:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "572:2:46", + "nodeType": "YulTypedName", + "src": "572:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "625:16:46", + "nodeType": "YulBlock", + "src": "625:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "634:1:46", + "nodeType": "YulLiteral", + "src": "634:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "637:1:46", + "nodeType": "YulLiteral", + "src": "637:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "627:6:46", + "nodeType": "YulIdentifier", + "src": "627:6:46" + }, + "nativeSrc": "627:12:46", + "nodeType": "YulFunctionCall", + "src": "627:12:46" + }, + "nativeSrc": "627:12:46", + "nodeType": "YulExpressionStatement", + "src": "627:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "612:2:46", + "nodeType": "YulIdentifier", + "src": "612:2:46" + }, + { + "name": "dataEnd", + "nativeSrc": "616:7:46", + "nodeType": "YulIdentifier", + "src": "616:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "609:2:46", + "nodeType": "YulIdentifier", + "src": "609:2:46" + }, + "nativeSrc": "609:15:46", + "nodeType": "YulFunctionCall", + "src": "609:15:46" + }, + "nativeSrc": "606:35:46", + "nodeType": "YulIf", + "src": "606:35:46" + }, + { + "nativeSrc": "650:28:46", + "nodeType": "YulAssignment", + "src": "650:28:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "664:9:46", + "nodeType": "YulIdentifier", + "src": "664:9:46" + }, + { + "kind": "number", + "nativeSrc": "675:2:46", + "nodeType": "YulLiteral", + "src": "675:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "660:3:46", + "nodeType": "YulIdentifier", + "src": "660:3:46" + }, + "nativeSrc": "660:18:46", + "nodeType": "YulFunctionCall", + "src": "660:18:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "650:6:46", + "nodeType": "YulIdentifier", + "src": "650:6:46" + } + ] + }, + { + "nativeSrc": "687:56:46", + "nodeType": "YulAssignment", + "src": "687:56:46", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "731:2:46", + "nodeType": "YulIdentifier", + "src": "731:2:46" + }, + { + "name": "dataEnd", + "nativeSrc": "735:7:46", + "nodeType": "YulIdentifier", + "src": "735:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_calldata", + "nativeSrc": "697:33:46", + "nodeType": "YulIdentifier", + "src": "697:33:46" + }, + "nativeSrc": "697:46:46", + "nodeType": "YulFunctionCall", + "src": "697:46:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "687:6:46", + "nodeType": "YulIdentifier", + "src": "687:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "788:16:46", + "nodeType": "YulBlock", + "src": "788:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "797:1:46", + "nodeType": "YulLiteral", + "src": "797:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "800:1:46", + "nodeType": "YulLiteral", + "src": "800:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "790:6:46", + "nodeType": "YulIdentifier", + "src": "790:6:46" + }, + "nativeSrc": "790:12:46", + "nodeType": "YulFunctionCall", + "src": "790:12:46" + }, + "nativeSrc": "790:12:46", + "nodeType": "YulExpressionStatement", + "src": "790:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "762:9:46", + "nodeType": "YulIdentifier", + "src": "762:9:46" + }, + { + "kind": "number", + "nativeSrc": "773:3:46", + "nodeType": "YulLiteral", + "src": "773:3:46", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "758:3:46", + "nodeType": "YulIdentifier", + "src": "758:3:46" + }, + "nativeSrc": "758:19:46", + "nodeType": "YulFunctionCall", + "src": "758:19:46" + }, + { + "name": "dataEnd", + "nativeSrc": "779:7:46", + "nodeType": "YulIdentifier", + "src": "779:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "755:2:46", + "nodeType": "YulIdentifier", + "src": "755:2:46" + }, + "nativeSrc": "755:32:46", + "nodeType": "YulFunctionCall", + "src": "755:32:46" + }, + "nativeSrc": "752:52:46", + "nodeType": "YulIf", + "src": "752:52:46" + }, + { + "nativeSrc": "813:29:46", + "nodeType": "YulAssignment", + "src": "813:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "827:9:46", + "nodeType": "YulIdentifier", + "src": "827:9:46" + }, + { + "kind": "number", + "nativeSrc": "838:3:46", + "nodeType": "YulLiteral", + "src": "838:3:46", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "823:3:46", + "nodeType": "YulIdentifier", + "src": "823:3:46" + }, + "nativeSrc": "823:19:46", + "nodeType": "YulFunctionCall", + "src": "823:19:46" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "813:6:46", + "nodeType": "YulIdentifier", + "src": "813:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptrt_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptrt_array$_t_uint256_$2_calldata_ptrt_array$_t_uint256_$8_calldata_ptr", + "nativeSrc": "178:670:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "366:9:46", + "nodeType": "YulTypedName", + "src": "366:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "377:7:46", + "nodeType": "YulTypedName", + "src": "377:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "389:6:46", + "nodeType": "YulTypedName", + "src": "389:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "397:6:46", + "nodeType": "YulTypedName", + "src": "397:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "405:6:46", + "nodeType": "YulTypedName", + "src": "405:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "413:6:46", + "nodeType": "YulTypedName", + "src": "413:6:46", + "type": "" + } + ], + "src": "178:670:46" + }, + { + "body": { + "nativeSrc": "948:92:46", + "nodeType": "YulBlock", + "src": "948:92:46", + "statements": [ + { + "nativeSrc": "958:26:46", + "nodeType": "YulAssignment", + "src": "958:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "970:9:46", + "nodeType": "YulIdentifier", + "src": "970:9:46" + }, + { + "kind": "number", + "nativeSrc": "981:2:46", + "nodeType": "YulLiteral", + "src": "981:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "966:3:46", + "nodeType": "YulIdentifier", + "src": "966:3:46" + }, + "nativeSrc": "966:18:46", + "nodeType": "YulFunctionCall", + "src": "966:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "958:4:46", + "nodeType": "YulIdentifier", + "src": "958:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1000:9:46", + "nodeType": "YulIdentifier", + "src": "1000:9:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1025:6:46", + "nodeType": "YulIdentifier", + "src": "1025:6:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1018:6:46", + "nodeType": "YulIdentifier", + "src": "1018:6:46" + }, + "nativeSrc": "1018:14:46", + "nodeType": "YulFunctionCall", + "src": "1018:14:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1011:6:46", + "nodeType": "YulIdentifier", + "src": "1011:6:46" + }, + "nativeSrc": "1011:22:46", + "nodeType": "YulFunctionCall", + "src": "1011:22:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "993:6:46", + "nodeType": "YulIdentifier", + "src": "993:6:46" + }, + "nativeSrc": "993:41:46", + "nodeType": "YulFunctionCall", + "src": "993:41:46" + }, + "nativeSrc": "993:41:46", + "nodeType": "YulExpressionStatement", + "src": "993:41:46" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "853:187:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "917:9:46", + "nodeType": "YulTypedName", + "src": "917:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "928:6:46", + "nodeType": "YulTypedName", + "src": "928:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "939:4:46", + "nodeType": "YulTypedName", + "src": "939:4:46", + "type": "" + } + ], + "src": "853:187:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_array_uint256_calldata(offset, end) -> arrayPos\n {\n arrayPos := offset\n if gt(add(offset, 64), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptrt_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptrt_array$_t_uint256_$2_calldata_ptrt_array$_t_uint256_$8_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 512) { revert(0, 0) }\n value0 := abi_decode_array_uint256_calldata(headStart, dataEnd)\n let _1 := add(headStart, 192)\n if gt(_1, dataEnd) { revert(0, 0) }\n value1 := add(headStart, 64)\n value2 := abi_decode_array_uint256_calldata(_1, dataEnd)\n if gt(add(headStart, 512), dataEnd) { revert(0, 0) }\n value3 := add(headStart, 256)\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}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f11973f474a9d34afdd7843a7608ff0ae39ea710449bb2ddce2c97f347407aeb485527f302d1ceb23adb83e735f2d9307fd9c8d5225f92ef4155d44a30b08d3b6a77ecb60208601526000608086018661019987357f1a865b19cfa36eea966cbe7d4d92b4904cdad4505fb2ec15c9b2a6765b7167397e6e14ccddfc69162a32f34c140d8c093a8d3674d15e3b314cf4393d17379d9184610092565b6101e960208801357f0feefa866182c1ae80b82c864c1063fb7df2c93043d62d4bf5f8a35dcf72a3f27f2dcca5e323089b977858c88af7496df925c9b42f102286cdcdaf415652dc6e6f84610092565b61023960408801357f2f8be3a5549b4052f08756eff14cdeec7f5d5a64a29f207b905f0dec2cd532267f22983a4e6ec998b82a0cfb95f046e06c9f813b65fe5cc2adac7a659fac4dade084610092565b61028960608801357f0358f2b1aa492aaab540b985158a892654fd6cb1c6c003f88cbd91b5deaa027f7f2de31ecf9c91ed8976ae908f7773e234d9f1f6eb1c44c7637a50fa13920aaa7b84610092565b6102d960808801357f2b6d819ff3d0d2a246de92182d690f6369e492794cd21d2410634f86778269e77f01354f5feefb732d89299e6411d059803c2c6779f0e400f25821bc9df211194784610092565b61032960a08801357f0db2027c422c6d687a1520b696eef810da5005fda5a632e1cc24856452940f5c7f1322c6978537b4a4abeae331b56a7fe3047cd803e57aa283898c8861bb5319ad84610092565b61037960c08801357f1169b20c696b7f37bea02355b8143573bb516342bd3717778b0dabd321ccd01a7f2c37024bc413a754e54fc89d8ffb474ed036267310d7b708c0772b9965b0588d84610092565b6103c960e08801357f1b16cebbc5f3bd0268dfc6c16bb4a368b779aa89ff334bd767ca1928157c132f7f279e29138702830e26b031b922a49b1b856a2235cba1ace7ca5c0794df688aaf84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f197cffe80ab9091e47b041687a323278bb14f779901c2dda5c60237854589b276102808201527f03b1182bbb25acac962b67dafe6e00aac983f45d4b743c228dba0ac3e36cc2066102a08201527f0f58c8a26a26d6aec2202f28a8c9bf78a4779d8a198aaa268d4fc451e1919ac16102c08201527f0ce3e786335608bde300a258db0ce7f4cf1caffd63c37f3158e47e4f264caadb6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212205a7895a774b70cbf0308911d4d7b438347c3e0a9c313e82a4108a625d50ac3fe64736f6c634300081b0033", + "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 0xC9219A7A EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x74C 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 0x6A9 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x8F JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP POP DUP1 PUSH2 0xF6 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH32 0x11973F474A9D34AFDD7843A7608FF0AE39EA710449BB2DDCE2C97F347407AEB4 DUP6 MSTORE PUSH32 0x302D1CEB23ADB83E735F2D9307FD9C8D5225F92EF4155D44A30B08D3B6A77ECB PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x0 PUSH1 0x80 DUP7 ADD DUP7 PUSH2 0x199 DUP8 CALLDATALOAD PUSH32 0x1A865B19CFA36EEA966CBE7D4D92B4904CDAD4505FB2EC15C9B2A6765B716739 PUSH31 0x6E14CCDDFC69162A32F34C140D8C093A8D3674D15E3B314CF4393D17379D91 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x1E9 PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH32 0xFEEFA866182C1AE80B82C864C1063FB7DF2C93043D62D4BF5F8A35DCF72A3F2 PUSH32 0x2DCCA5E323089B977858C88AF7496DF925C9B42F102286CDCDAF415652DC6E6F DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x239 PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH32 0x2F8BE3A5549B4052F08756EFF14CDEEC7F5D5A64A29F207B905F0DEC2CD53226 PUSH32 0x22983A4E6EC998B82A0CFB95F046E06C9F813B65FE5CC2ADAC7A659FAC4DADE0 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x289 PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH32 0x358F2B1AA492AAAB540B985158A892654FD6CB1C6C003F88CBD91B5DEAA027F PUSH32 0x2DE31ECF9C91ED8976AE908F7773E234D9F1F6EB1C44C7637A50FA13920AAA7B DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x2D9 PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH32 0x2B6D819FF3D0D2A246DE92182D690F6369E492794CD21D2410634F86778269E7 PUSH32 0x1354F5FEEFB732D89299E6411D059803C2C6779F0E400F25821BC9DF2111947 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x329 PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH32 0xDB2027C422C6D687A1520B696EEF810DA5005FDA5A632E1CC24856452940F5C PUSH32 0x1322C6978537B4A4ABEAE331B56A7FE3047CD803E57AA283898C8861BB5319AD DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x379 PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH32 0x1169B20C696B7F37BEA02355B8143573BB516342BD3717778B0DABD321CCD01A PUSH32 0x2C37024BC413A754E54FC89D8FFB474ED036267310D7B708C0772B9965B0588D DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x3C9 PUSH1 0xE0 DUP9 ADD CALLDATALOAD PUSH32 0x1B16CEBBC5F3BD0268DFC6C16BB4A368B779AA89FF334BD767CA1928157C132F PUSH32 0x279E29138702830E26B031B922A49B1B856A2235CBA1ACE7CA5C0794DF688AAF DUP5 PUSH2 0x92 JUMP JUMPDEST POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD PUSH1 0x20 DUP3 ADD MSTORE DUP4 CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x2D4D9AA7E302D9DF41749D5507949D05DBEA33FBB16C643B22F599A2BE6DF2E2 PUSH1 0xC0 DUP3 ADD MSTORE PUSH32 0x14BEDD503C37CEB061D8EC60209FE345CE89830A19230301F076CAFF004D1926 PUSH1 0xE0 DUP3 ADD MSTORE PUSH32 0x967032FCBF776D1AFC985F88877F182D38480A653F2DECAA9794CBC3BF3060C PUSH2 0x100 DUP3 ADD MSTORE PUSH32 0xE187847AD4C798374D0D6732BF501847DD68BC0E071241E0213BC7FC13DB7AB PUSH2 0x120 DUP3 ADD MSTORE PUSH32 0x304CFBD1E08A704A99F5E847D93F8C3CAAFDDEC46B7A0D379DA69A4D112346A7 PUSH2 0x140 DUP3 ADD MSTORE PUSH32 0x1739C1B1A457A8C7313123D24D2F9192F896B7C63EEA05A9D57F06547AD0CEC8 PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x0 DUP8 ADD MLOAD PUSH2 0x180 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 ADD DUP8 ADD MLOAD PUSH2 0x1A0 DUP3 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x1C0 DUP3 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x1E0 DUP3 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x200 DUP3 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x220 DUP3 ADD MSTORE DUP5 CALLDATALOAD PUSH2 0x240 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x260 DUP3 ADD MSTORE PUSH32 0x197CFFE80AB9091E47B041687A323278BB14F779901C2DDA5C60237854589B27 PUSH2 0x280 DUP3 ADD MSTORE PUSH32 0x3B1182BBB25ACAC962B67DAFE6E00AAC983F45D4B743C228DBA0AC3E36CC206 PUSH2 0x2A0 DUP3 ADD MSTORE PUSH32 0xF58C8A26A26D6AEC2202F28A8C9BF78A4779D8A198AAA268D4FC451E1919AC1 PUSH2 0x2C0 DUP3 ADD MSTORE PUSH32 0xCE3E786335608BDE300A258DB0CE7F4CF1CAFFD63C37F3158E47E4F264CAADB PUSH2 0x2E0 DUP3 ADD MSTORE PUSH1 0x20 DUP2 PUSH2 0x300 DUP4 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 MLOAD AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x380 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x6C1 PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6CE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6DB PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6E8 PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6F5 PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x702 PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x70F PUSH1 0xC0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x71C PUSH1 0xE0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x729 DUP2 DUP5 DUP7 DUP9 DUP11 PUSH2 0xFD JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP1 PUSH1 0x40 DUP2 ADD DUP4 LT ISZERO PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x200 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76D DUP7 DUP7 PUSH2 0x735 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP6 ADD DUP7 DUP2 GT ISZERO PUSH2 0x780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP7 ADD SWAP4 POP PUSH2 0x790 DUP8 DUP3 PUSH2 0x735 JUMP JUMPDEST SWAP3 POP POP DUP6 PUSH2 0x200 DUP7 ADD GT ISZERO PUSH2 0x7A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP5 SWAP1 SWAP4 POP SWAP1 SWAP2 PUSH2 0x100 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GAS PUSH25 0x95A774B70CBF0308911D4D7B438347C3E0A9C313E82A4108A6 0x25 0xD5 EXP 0xC3 INVALID PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "831:8955:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4783:5000;;;;;;:::i;:::-;;:::i;:::-;;;1018:14:46;;1011:22;993:41;;981:2;966:18;4783:5000:41;;;;;;;;4924:4;4963:163;;;5020:1;5017;5014:8;5004:108;;5056:1;5053;5046:12;5089:4;5086:1;5079:15;5004:108;4963:163;:::o;5230:738::-;5281:11;5326:4;5320:11;5360:1;5355:3;5348:14;5400:1;5395:2;5390:3;5386:12;5379:23;5440:1;5435:2;5430:3;5426:12;5419:23;5517:2;5512:3;5508:2;5503:3;5500:1;5493:4;5486:5;5482:16;5471:49;5460:60;;5548:7;5538:107;;5589:1;5586;5579:12;5622:4;5619:1;5612:15;5538:107;5690:2;5684:9;5679:2;5674:3;5670:12;5663:31;5746:2;5742;5738:11;5732:18;5727:2;5722:3;5718:12;5711:40;5826:2;5822;5817:3;5812;5809:1;5802:4;5795:5;5791:16;5780:49;5769:60;;;5857:7;5847:107;;5898:1;5895;5888:12;5931:4;5928:1;5921:15;5847:107;;5230:738;;;;:::o;5982:2880::-;6170:4;6157:18;;6214:4;6209:2;6199:13;;6192:27;6037:4;6087:8;6077:19;;6081:4;6309:62;6338:32;;6332:4;6326;6081;6309:62;:::i;:::-;6405:63;6463:2;6451:10;6447:19;6434:33;6428:4;6422;6416;6405:63;:::i;:::-;6502;6560:2;6548:10;6544:19;6531:33;6525:4;6519;6513;6502:63;:::i;:::-;6599;6657:2;6645:10;6641:19;6628:33;6622:4;6616;6610;6599:63;:::i;:::-;6696:64;6754:3;6742:10;6738:20;6725:34;6719:4;6713;6707;6696:64;:::i;:::-;6794;6852:3;6840:10;6836:20;6823:34;6817:4;6811;6805;6794:64;:::i;:::-;6892;6950:3;6938:10;6934:20;6921:34;6915:4;6909;6903;6892:64;:::i;:::-;6990;7048:3;7036:10;7032:20;7019:34;7013:4;7007;7001;6990:64;:::i;:::-;;7142:2;7129:16;7118:9;7111:35;7229:1;7222:2;7218;7214:11;7201:25;7198:1;7194:33;7190:41;7185:2;7174:9;7170:18;7163:69;7311:2;7298:16;7293:2;7282:9;7278:18;7271:44;7380:2;7376;7372:11;7359:25;7354:2;7343:9;7339:18;7332:53;7451:2;7447;7443:11;7430:25;7424:3;7413:9;7409:19;7402:54;7522:2;7518;7514:11;7501:25;7495:3;7484:9;7480:19;7473:54;7599:6;7593:3;7582:9;7578:19;7571:35;7651:6;7645:3;7634:9;7630:19;7623:35;7729:6;7723:3;7712:9;7708:19;7701:35;7781:6;7775:3;7764:9;7760:19;7753:35;7833:6;7827:3;7816:9;7812:19;7805:35;7885:6;7879:3;7868:9;7864:19;7857:35;7978:3;7972:4;7968:14;7962:21;7956:3;7945:9;7941:19;7934:50;8054:2;8049:3;8045:12;8039:4;8035:23;8029:30;8023:3;8012:9;8008:19;8001:59;8133:7;8127:3;8116:9;8112:19;8105:36;8186:7;8180:3;8169:9;8165:19;8158:36;8239:7;8233:3;8222:9;8218:19;8211:36;8292:7;8286:3;8275:9;8271:19;8264:36;8380:2;8367:16;8361:3;8350:9;8346:19;8339:45;8450:2;8446;8442:11;8429:25;8423:3;8412:9;8408:19;8401:54;8527:7;8521:3;8510:9;8506:19;8499:36;8580:7;8574:3;8563:9;8559:19;8552:36;8633:7;8627:3;8616:9;8612:19;8605:36;8686:7;8680:3;8669:9;8665:19;8658:36;8787:4;8776:9;8771:3;8760:9;8757:1;8750:4;8743:5;8739:16;8728:64;8831:16;;8818:30;;5982:2880;-1:-1:-1;;;;;;5982:2880:41:o;:::-;8894:4;8888:11;8935:8;8929:4;8925:19;8919:4;8912:33;9023:45;9064:1;9051:11;9047:19;9034:33;9023:45;:::i;:::-;9094:46;9135:2;9122:11;9118:20;9105:34;9094:46;:::i;:::-;9166;9207:2;9194:11;9190:20;9177:34;9166:46;:::i;:::-;9238;9279:2;9266:11;9262:20;9249:34;9238:46;:::i;:::-;9310:47;9351:3;9338:11;9334:21;9321:35;9310:47;:::i;:::-;9383;9424:3;9411:11;9407:21;9394:35;9383:47;:::i;:::-;9456;9497:3;9484:11;9480:21;9467:35;9456:47;:::i;:::-;9529;9570:3;9557:11;9553:21;9540:35;9529:47;:::i;:::-;9658:46;9699:4;9686:11;9681:3;9676;9671;9658:46;:::i;:::-;9643:61;;9728:7;9725:1;9718:18;9760:4;9757:1;9750:15;14:159:46;108:6;141:2;129:15;;126:24;-1:-1:-1;123:44:46;;;163:1;160;153:12;123:44;14:159;;;;:::o;178:670::-;389:6;397;405;413;466:3;454:9;445:7;441:23;437:33;434:53;;;483:1;480;473:12;434:53;506;551:7;540:9;506:53;:::i;:::-;496:63;;593:3;582:9;578:19;616:7;612:2;609:15;606:35;;;637:1;634;627:12;606:35;675:2;664:9;660:18;650:28;;697:46;735:7;731:2;697:46;:::i;:::-;687:56;;;779:7;773:3;762:9;758:19;755:32;752:52;;;800:1;797;790:12;752:52;-1:-1:-1;178:670:46;;;;-1:-1:-1;178:670:46;;838:3;823:19;;178:670::o" + }, + "methodIdentifiers": { + "verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[8])": "c9219a7a" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"_pA\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"_pB\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"_pC\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[8]\",\"name\":\"_pubSignals\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/verifiers/idcard/Verifier_idcard_sha224.sol\":\"Verifier_idcard_sha224\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/verifiers/idcard/Verifier_idcard_sha224.sol\":{\"keccak256\":\"0x1f73b6e4ea318222eeaa131f03238ca7ce2451348013d2b091e22d5baa077589\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://55d2a2ec96a8b35b410b30a5105e58f578fae49da7db8c809c9915301045bb65\",\"dweb:/ipfs/QmQ9oQPeqhVPq77ymTUSx8k6sQNEFKu232Dp12vJ5Nmx5h\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/verifiers/idcard/Verifier_idcard_sha256.sol": { + "Verifier_idcard_sha256": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[2]", + "name": "_pA", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2][2]", + "name": "_pB", + "type": "uint256[2][2]" + }, + { + "internalType": "uint256[2]", + "name": "_pC", + "type": "uint256[2]" + }, + { + "internalType": "uint256[8]", + "name": "_pubSignals", + "type": "uint256[8]" + } + ], + "name": "verifyProof", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b506107e98061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f0cd6aff1fa0a9129ebcd0d8730384db02e0bfa436267ecb5cf274fdbc3f26a1585527f06f91217704e02514adec5f28bd3649e1ddc998121b47c2c31c19401b7b23ffc60208601526000608086018661019a87357f04fa45f2ecccbe65d69d748bd2b6d6ea86deb2d20030e8c25c25787d8d4c63167f0bae7afe1eac90147127668dc58fc76faf3c848ee0b9b8523ab93bd4e249d02f84610092565b6101ea60208801357f291a8e69d0febb19616b5c66ed0319e132ad06b60aaf16d2c01556311b27658b7f2f53f65e53c6780eb5fe71aee3c8f00081708df10822e15b14b11923975bef2084610092565b61023a60408801357f238326fb19dd47a63673695dd8f99844a81b31176e482fb8b2309932da62bfe27f238400b3360abfaa0dd61f6a45374d67f78054f2fd3986b216c84057f85e295884610092565b61028a60608801357f1ce1d2aae4306f6a7cc1099fe711f272c163eeca105c10aa51c2ae52da1164c27f036b292ee7ecc83260988e0bfaf999f45906c45d485097875cce48af2d78259584610092565b6102da60808801357f0fd7dc27fee49cf7d40b5afd6e709e4fdaf95ffa781327b6176f91f44a0176ad7f0285d3f81014d1935ed2ca4b56e847106dec5fe9494f6e733ad0ca8be4315b4784610092565b61032960a08801357e1ca084afa10add72ed685121b18f11aabdfb8132b53b64c7c3b51a4e9a72397f045ba5e85d4e083dabc4d2dd39cfdb28a81deb6d318654eeb704f5bb42344af084610092565b61037960c08801357f0f9c7a5277f89dc198fe9c286f0be8efab776b96c9e27d4291a09770ba2bdfe57f141e87d10dea1ba8dc0c60ccb217bdd5a5ee1a268ab7cbd5388ea1352c68c16c84610092565b6103c960e08801357f1c2e761161aa3606dd11643c2fc867d27c5e8a26fb9254d1a905ed14405947597f266439e94c68d5d4fd08ef015b8644289e5a9a9d40263d2c8b6f7a9d25881a5484610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f0fb71534758df3012a60e8d9833566b0f5298d25446afd64b2fc77079d09c9c36102808201527f156f6c8e48273df70286225e4f26197c271cef35a6621b53d6045277c21d5ac16102a08201527f24c12e433ee45e7d3a3274d5839d05c6c3ef2d87c17a064d4fcb78b34c60f0ba6102c08201527f2a9e6042c4bbf9ecb4420344847aeb071c36a1e04636408978cceb314c31b5566102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212204b10495355562cfb3ac941ba24f5cb2370270079bf0fc6526a85016c1eea7ced64736f6c634300081b0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7E9 DUP1 PUSH2 0x1F 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 0xC9219A7A EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x74C 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 0x6A9 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x8F JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP POP DUP1 PUSH2 0xF6 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH32 0xCD6AFF1FA0A9129EBCD0D8730384DB02E0BFA436267ECB5CF274FDBC3F26A15 DUP6 MSTORE PUSH32 0x6F91217704E02514ADEC5F28BD3649E1DDC998121B47C2C31C19401B7B23FFC PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x0 PUSH1 0x80 DUP7 ADD DUP7 PUSH2 0x19A DUP8 CALLDATALOAD PUSH32 0x4FA45F2ECCCBE65D69D748BD2B6D6EA86DEB2D20030E8C25C25787D8D4C6316 PUSH32 0xBAE7AFE1EAC90147127668DC58FC76FAF3C848EE0B9B8523AB93BD4E249D02F DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x1EA PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH32 0x291A8E69D0FEBB19616B5C66ED0319E132AD06B60AAF16D2C01556311B27658B PUSH32 0x2F53F65E53C6780EB5FE71AEE3C8F00081708DF10822E15B14B11923975BEF20 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x23A PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH32 0x238326FB19DD47A63673695DD8F99844A81B31176E482FB8B2309932DA62BFE2 PUSH32 0x238400B3360ABFAA0DD61F6A45374D67F78054F2FD3986B216C84057F85E2958 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x28A PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH32 0x1CE1D2AAE4306F6A7CC1099FE711F272C163EECA105C10AA51C2AE52DA1164C2 PUSH32 0x36B292EE7ECC83260988E0BFAF999F45906C45D485097875CCE48AF2D782595 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x2DA PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH32 0xFD7DC27FEE49CF7D40B5AFD6E709E4FDAF95FFA781327B6176F91F44A0176AD PUSH32 0x285D3F81014D1935ED2CA4B56E847106DEC5FE9494F6E733AD0CA8BE4315B47 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x329 PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH31 0x1CA084AFA10ADD72ED685121B18F11AABDFB8132B53B64C7C3B51A4E9A7239 PUSH32 0x45BA5E85D4E083DABC4D2DD39CFDB28A81DEB6D318654EEB704F5BB42344AF0 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x379 PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH32 0xF9C7A5277F89DC198FE9C286F0BE8EFAB776B96C9E27D4291A09770BA2BDFE5 PUSH32 0x141E87D10DEA1BA8DC0C60CCB217BDD5A5EE1A268AB7CBD5388EA1352C68C16C DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x3C9 PUSH1 0xE0 DUP9 ADD CALLDATALOAD PUSH32 0x1C2E761161AA3606DD11643C2FC867D27C5E8A26FB9254D1A905ED1440594759 PUSH32 0x266439E94C68D5D4FD08EF015B8644289E5A9A9D40263D2C8B6F7A9D25881A54 DUP5 PUSH2 0x92 JUMP JUMPDEST POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD PUSH1 0x20 DUP3 ADD MSTORE DUP4 CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x2D4D9AA7E302D9DF41749D5507949D05DBEA33FBB16C643B22F599A2BE6DF2E2 PUSH1 0xC0 DUP3 ADD MSTORE PUSH32 0x14BEDD503C37CEB061D8EC60209FE345CE89830A19230301F076CAFF004D1926 PUSH1 0xE0 DUP3 ADD MSTORE PUSH32 0x967032FCBF776D1AFC985F88877F182D38480A653F2DECAA9794CBC3BF3060C PUSH2 0x100 DUP3 ADD MSTORE PUSH32 0xE187847AD4C798374D0D6732BF501847DD68BC0E071241E0213BC7FC13DB7AB PUSH2 0x120 DUP3 ADD MSTORE PUSH32 0x304CFBD1E08A704A99F5E847D93F8C3CAAFDDEC46B7A0D379DA69A4D112346A7 PUSH2 0x140 DUP3 ADD MSTORE PUSH32 0x1739C1B1A457A8C7313123D24D2F9192F896B7C63EEA05A9D57F06547AD0CEC8 PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x0 DUP8 ADD MLOAD PUSH2 0x180 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 ADD DUP8 ADD MLOAD PUSH2 0x1A0 DUP3 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x1C0 DUP3 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x1E0 DUP3 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x200 DUP3 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x220 DUP3 ADD MSTORE DUP5 CALLDATALOAD PUSH2 0x240 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x260 DUP3 ADD MSTORE PUSH32 0xFB71534758DF3012A60E8D9833566B0F5298D25446AFD64B2FC77079D09C9C3 PUSH2 0x280 DUP3 ADD MSTORE PUSH32 0x156F6C8E48273DF70286225E4F26197C271CEF35A6621B53D6045277C21D5AC1 PUSH2 0x2A0 DUP3 ADD MSTORE PUSH32 0x24C12E433EE45E7D3A3274D5839D05C6C3EF2D87C17A064D4FCB78B34C60F0BA PUSH2 0x2C0 DUP3 ADD MSTORE PUSH32 0x2A9E6042C4BBF9ECB4420344847AEB071C36A1E04636408978CCEB314C31B556 PUSH2 0x2E0 DUP3 ADD MSTORE PUSH1 0x20 DUP2 PUSH2 0x300 DUP4 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 MLOAD AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x380 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x6C1 PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6CE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6DB PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6E8 PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6F5 PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x702 PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x70F PUSH1 0xC0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x71C PUSH1 0xE0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x729 DUP2 DUP5 DUP7 DUP9 DUP11 PUSH2 0xFD JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP1 PUSH1 0x40 DUP2 ADD DUP4 LT ISZERO PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x200 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76D DUP7 DUP7 PUSH2 0x735 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP6 ADD DUP7 DUP2 GT ISZERO PUSH2 0x780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP7 ADD SWAP4 POP PUSH2 0x790 DUP8 DUP3 PUSH2 0x735 JUMP JUMPDEST SWAP3 POP POP DUP6 PUSH2 0x200 DUP7 ADD GT ISZERO PUSH2 0x7A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP5 SWAP1 SWAP4 POP SWAP1 SWAP2 PUSH2 0x100 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4B LT BLOBHASH MSTORE8 SSTORE JUMP 0x2C 0xFB GASPRICE 0xC9 COINBASE 0xBA 0x24 CREATE2 0xCB 0x23 PUSH17 0x270079BF0FC6526A85016C1EEA7CED6473 PUSH16 0x6C634300081B00330000000000000000 ", + "sourceMap": "831:8953:42:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@verifyProof_17956": { + "entryPoint": 87, + "id": 17956, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_decode_array_uint256_calldata": { + "entryPoint": 1845, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptrt_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptrt_array$_t_uint256_$2_calldata_ptrt_array$_t_uint256_$8_calldata_ptr": { + "entryPoint": 1868, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:1042:46", + "nodeType": "YulBlock", + "src": "0:1042:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "86:87:46", + "nodeType": "YulBlock", + "src": "86:87:46", + "statements": [ + { + "nativeSrc": "96:18:46", + "nodeType": "YulAssignment", + "src": "96:18:46", + "value": { + "name": "offset", + "nativeSrc": "108:6:46", + "nodeType": "YulIdentifier", + "src": "108:6:46" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "96:8:46", + "nodeType": "YulIdentifier", + "src": "96:8:46" + } + ] + }, + { + "body": { + "nativeSrc": "151:16:46", + "nodeType": "YulBlock", + "src": "151:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "160:1:46", + "nodeType": "YulLiteral", + "src": "160:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "163:1:46", + "nodeType": "YulLiteral", + "src": "163:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "153:6:46", + "nodeType": "YulIdentifier", + "src": "153:6:46" + }, + "nativeSrc": "153:12:46", + "nodeType": "YulFunctionCall", + "src": "153:12:46" + }, + "nativeSrc": "153:12:46", + "nodeType": "YulExpressionStatement", + "src": "153:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "133:6:46", + "nodeType": "YulIdentifier", + "src": "133:6:46" + }, + { + "kind": "number", + "nativeSrc": "141:2:46", + "nodeType": "YulLiteral", + "src": "141:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "129:3:46", + "nodeType": "YulIdentifier", + "src": "129:3:46" + }, + "nativeSrc": "129:15:46", + "nodeType": "YulFunctionCall", + "src": "129:15:46" + }, + { + "name": "end", + "nativeSrc": "146:3:46", + "nodeType": "YulIdentifier", + "src": "146:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "126:2:46", + "nodeType": "YulIdentifier", + "src": "126:2:46" + }, + "nativeSrc": "126:24:46", + "nodeType": "YulFunctionCall", + "src": "126:24:46" + }, + "nativeSrc": "123:44:46", + "nodeType": "YulIf", + "src": "123:44:46" + } + ] + }, + "name": "abi_decode_array_uint256_calldata", + "nativeSrc": "14:159:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "57:6:46", + "nodeType": "YulTypedName", + "src": "57:6:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "65:3:46", + "nodeType": "YulTypedName", + "src": "65:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "73:8:46", + "nodeType": "YulTypedName", + "src": "73:8:46", + "type": "" + } + ], + "src": "14:159:46" + }, + { + "body": { + "nativeSrc": "424:424:46", + "nodeType": "YulBlock", + "src": "424:424:46", + "statements": [ + { + "body": { + "nativeSrc": "471:16:46", + "nodeType": "YulBlock", + "src": "471:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "480:1:46", + "nodeType": "YulLiteral", + "src": "480:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "483:1:46", + "nodeType": "YulLiteral", + "src": "483:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "473:6:46", + "nodeType": "YulIdentifier", + "src": "473:6:46" + }, + "nativeSrc": "473:12:46", + "nodeType": "YulFunctionCall", + "src": "473:12:46" + }, + "nativeSrc": "473:12:46", + "nodeType": "YulExpressionStatement", + "src": "473:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "445:7:46", + "nodeType": "YulIdentifier", + "src": "445:7:46" + }, + { + "name": "headStart", + "nativeSrc": "454:9:46", + "nodeType": "YulIdentifier", + "src": "454:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "441:3:46", + "nodeType": "YulIdentifier", + "src": "441:3:46" + }, + "nativeSrc": "441:23:46", + "nodeType": "YulFunctionCall", + "src": "441:23:46" + }, + { + "kind": "number", + "nativeSrc": "466:3:46", + "nodeType": "YulLiteral", + "src": "466:3:46", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "437:3:46", + "nodeType": "YulIdentifier", + "src": "437:3:46" + }, + "nativeSrc": "437:33:46", + "nodeType": "YulFunctionCall", + "src": "437:33:46" + }, + "nativeSrc": "434:53:46", + "nodeType": "YulIf", + "src": "434:53:46" + }, + { + "nativeSrc": "496:63:46", + "nodeType": "YulAssignment", + "src": "496:63:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "540:9:46", + "nodeType": "YulIdentifier", + "src": "540:9:46" + }, + { + "name": "dataEnd", + "nativeSrc": "551:7:46", + "nodeType": "YulIdentifier", + "src": "551:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_calldata", + "nativeSrc": "506:33:46", + "nodeType": "YulIdentifier", + "src": "506:33:46" + }, + "nativeSrc": "506:53:46", + "nodeType": "YulFunctionCall", + "src": "506:53:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "496:6:46", + "nodeType": "YulIdentifier", + "src": "496:6:46" + } + ] + }, + { + "nativeSrc": "568:29:46", + "nodeType": "YulVariableDeclaration", + "src": "568:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "582:9:46", + "nodeType": "YulIdentifier", + "src": "582:9:46" + }, + { + "kind": "number", + "nativeSrc": "593:3:46", + "nodeType": "YulLiteral", + "src": "593:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "578:3:46", + "nodeType": "YulIdentifier", + "src": "578:3:46" + }, + "nativeSrc": "578:19:46", + "nodeType": "YulFunctionCall", + "src": "578:19:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "572:2:46", + "nodeType": "YulTypedName", + "src": "572:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "625:16:46", + "nodeType": "YulBlock", + "src": "625:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "634:1:46", + "nodeType": "YulLiteral", + "src": "634:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "637:1:46", + "nodeType": "YulLiteral", + "src": "637:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "627:6:46", + "nodeType": "YulIdentifier", + "src": "627:6:46" + }, + "nativeSrc": "627:12:46", + "nodeType": "YulFunctionCall", + "src": "627:12:46" + }, + "nativeSrc": "627:12:46", + "nodeType": "YulExpressionStatement", + "src": "627:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "612:2:46", + "nodeType": "YulIdentifier", + "src": "612:2:46" + }, + { + "name": "dataEnd", + "nativeSrc": "616:7:46", + "nodeType": "YulIdentifier", + "src": "616:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "609:2:46", + "nodeType": "YulIdentifier", + "src": "609:2:46" + }, + "nativeSrc": "609:15:46", + "nodeType": "YulFunctionCall", + "src": "609:15:46" + }, + "nativeSrc": "606:35:46", + "nodeType": "YulIf", + "src": "606:35:46" + }, + { + "nativeSrc": "650:28:46", + "nodeType": "YulAssignment", + "src": "650:28:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "664:9:46", + "nodeType": "YulIdentifier", + "src": "664:9:46" + }, + { + "kind": "number", + "nativeSrc": "675:2:46", + "nodeType": "YulLiteral", + "src": "675:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "660:3:46", + "nodeType": "YulIdentifier", + "src": "660:3:46" + }, + "nativeSrc": "660:18:46", + "nodeType": "YulFunctionCall", + "src": "660:18:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "650:6:46", + "nodeType": "YulIdentifier", + "src": "650:6:46" + } + ] + }, + { + "nativeSrc": "687:56:46", + "nodeType": "YulAssignment", + "src": "687:56:46", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "731:2:46", + "nodeType": "YulIdentifier", + "src": "731:2:46" + }, + { + "name": "dataEnd", + "nativeSrc": "735:7:46", + "nodeType": "YulIdentifier", + "src": "735:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_calldata", + "nativeSrc": "697:33:46", + "nodeType": "YulIdentifier", + "src": "697:33:46" + }, + "nativeSrc": "697:46:46", + "nodeType": "YulFunctionCall", + "src": "697:46:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "687:6:46", + "nodeType": "YulIdentifier", + "src": "687:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "788:16:46", + "nodeType": "YulBlock", + "src": "788:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "797:1:46", + "nodeType": "YulLiteral", + "src": "797:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "800:1:46", + "nodeType": "YulLiteral", + "src": "800:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "790:6:46", + "nodeType": "YulIdentifier", + "src": "790:6:46" + }, + "nativeSrc": "790:12:46", + "nodeType": "YulFunctionCall", + "src": "790:12:46" + }, + "nativeSrc": "790:12:46", + "nodeType": "YulExpressionStatement", + "src": "790:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "762:9:46", + "nodeType": "YulIdentifier", + "src": "762:9:46" + }, + { + "kind": "number", + "nativeSrc": "773:3:46", + "nodeType": "YulLiteral", + "src": "773:3:46", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "758:3:46", + "nodeType": "YulIdentifier", + "src": "758:3:46" + }, + "nativeSrc": "758:19:46", + "nodeType": "YulFunctionCall", + "src": "758:19:46" + }, + { + "name": "dataEnd", + "nativeSrc": "779:7:46", + "nodeType": "YulIdentifier", + "src": "779:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "755:2:46", + "nodeType": "YulIdentifier", + "src": "755:2:46" + }, + "nativeSrc": "755:32:46", + "nodeType": "YulFunctionCall", + "src": "755:32:46" + }, + "nativeSrc": "752:52:46", + "nodeType": "YulIf", + "src": "752:52:46" + }, + { + "nativeSrc": "813:29:46", + "nodeType": "YulAssignment", + "src": "813:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "827:9:46", + "nodeType": "YulIdentifier", + "src": "827:9:46" + }, + { + "kind": "number", + "nativeSrc": "838:3:46", + "nodeType": "YulLiteral", + "src": "838:3:46", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "823:3:46", + "nodeType": "YulIdentifier", + "src": "823:3:46" + }, + "nativeSrc": "823:19:46", + "nodeType": "YulFunctionCall", + "src": "823:19:46" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "813:6:46", + "nodeType": "YulIdentifier", + "src": "813:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptrt_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptrt_array$_t_uint256_$2_calldata_ptrt_array$_t_uint256_$8_calldata_ptr", + "nativeSrc": "178:670:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "366:9:46", + "nodeType": "YulTypedName", + "src": "366:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "377:7:46", + "nodeType": "YulTypedName", + "src": "377:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "389:6:46", + "nodeType": "YulTypedName", + "src": "389:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "397:6:46", + "nodeType": "YulTypedName", + "src": "397:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "405:6:46", + "nodeType": "YulTypedName", + "src": "405:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "413:6:46", + "nodeType": "YulTypedName", + "src": "413:6:46", + "type": "" + } + ], + "src": "178:670:46" + }, + { + "body": { + "nativeSrc": "948:92:46", + "nodeType": "YulBlock", + "src": "948:92:46", + "statements": [ + { + "nativeSrc": "958:26:46", + "nodeType": "YulAssignment", + "src": "958:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "970:9:46", + "nodeType": "YulIdentifier", + "src": "970:9:46" + }, + { + "kind": "number", + "nativeSrc": "981:2:46", + "nodeType": "YulLiteral", + "src": "981:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "966:3:46", + "nodeType": "YulIdentifier", + "src": "966:3:46" + }, + "nativeSrc": "966:18:46", + "nodeType": "YulFunctionCall", + "src": "966:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "958:4:46", + "nodeType": "YulIdentifier", + "src": "958:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1000:9:46", + "nodeType": "YulIdentifier", + "src": "1000:9:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1025:6:46", + "nodeType": "YulIdentifier", + "src": "1025:6:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1018:6:46", + "nodeType": "YulIdentifier", + "src": "1018:6:46" + }, + "nativeSrc": "1018:14:46", + "nodeType": "YulFunctionCall", + "src": "1018:14:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1011:6:46", + "nodeType": "YulIdentifier", + "src": "1011:6:46" + }, + "nativeSrc": "1011:22:46", + "nodeType": "YulFunctionCall", + "src": "1011:22:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "993:6:46", + "nodeType": "YulIdentifier", + "src": "993:6:46" + }, + "nativeSrc": "993:41:46", + "nodeType": "YulFunctionCall", + "src": "993:41:46" + }, + "nativeSrc": "993:41:46", + "nodeType": "YulExpressionStatement", + "src": "993:41:46" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "853:187:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "917:9:46", + "nodeType": "YulTypedName", + "src": "917:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "928:6:46", + "nodeType": "YulTypedName", + "src": "928:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "939:4:46", + "nodeType": "YulTypedName", + "src": "939:4:46", + "type": "" + } + ], + "src": "853:187:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_array_uint256_calldata(offset, end) -> arrayPos\n {\n arrayPos := offset\n if gt(add(offset, 64), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptrt_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptrt_array$_t_uint256_$2_calldata_ptrt_array$_t_uint256_$8_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 512) { revert(0, 0) }\n value0 := abi_decode_array_uint256_calldata(headStart, dataEnd)\n let _1 := add(headStart, 192)\n if gt(_1, dataEnd) { revert(0, 0) }\n value1 := add(headStart, 64)\n value2 := abi_decode_array_uint256_calldata(_1, dataEnd)\n if gt(add(headStart, 512), dataEnd) { revert(0, 0) }\n value3 := add(headStart, 256)\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}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f0cd6aff1fa0a9129ebcd0d8730384db02e0bfa436267ecb5cf274fdbc3f26a1585527f06f91217704e02514adec5f28bd3649e1ddc998121b47c2c31c19401b7b23ffc60208601526000608086018661019a87357f04fa45f2ecccbe65d69d748bd2b6d6ea86deb2d20030e8c25c25787d8d4c63167f0bae7afe1eac90147127668dc58fc76faf3c848ee0b9b8523ab93bd4e249d02f84610092565b6101ea60208801357f291a8e69d0febb19616b5c66ed0319e132ad06b60aaf16d2c01556311b27658b7f2f53f65e53c6780eb5fe71aee3c8f00081708df10822e15b14b11923975bef2084610092565b61023a60408801357f238326fb19dd47a63673695dd8f99844a81b31176e482fb8b2309932da62bfe27f238400b3360abfaa0dd61f6a45374d67f78054f2fd3986b216c84057f85e295884610092565b61028a60608801357f1ce1d2aae4306f6a7cc1099fe711f272c163eeca105c10aa51c2ae52da1164c27f036b292ee7ecc83260988e0bfaf999f45906c45d485097875cce48af2d78259584610092565b6102da60808801357f0fd7dc27fee49cf7d40b5afd6e709e4fdaf95ffa781327b6176f91f44a0176ad7f0285d3f81014d1935ed2ca4b56e847106dec5fe9494f6e733ad0ca8be4315b4784610092565b61032960a08801357e1ca084afa10add72ed685121b18f11aabdfb8132b53b64c7c3b51a4e9a72397f045ba5e85d4e083dabc4d2dd39cfdb28a81deb6d318654eeb704f5bb42344af084610092565b61037960c08801357f0f9c7a5277f89dc198fe9c286f0be8efab776b96c9e27d4291a09770ba2bdfe57f141e87d10dea1ba8dc0c60ccb217bdd5a5ee1a268ab7cbd5388ea1352c68c16c84610092565b6103c960e08801357f1c2e761161aa3606dd11643c2fc867d27c5e8a26fb9254d1a905ed14405947597f266439e94c68d5d4fd08ef015b8644289e5a9a9d40263d2c8b6f7a9d25881a5484610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f0fb71534758df3012a60e8d9833566b0f5298d25446afd64b2fc77079d09c9c36102808201527f156f6c8e48273df70286225e4f26197c271cef35a6621b53d6045277c21d5ac16102a08201527f24c12e433ee45e7d3a3274d5839d05c6c3ef2d87c17a064d4fcb78b34c60f0ba6102c08201527f2a9e6042c4bbf9ecb4420344847aeb071c36a1e04636408978cceb314c31b5566102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212204b10495355562cfb3ac941ba24f5cb2370270079bf0fc6526a85016c1eea7ced64736f6c634300081b0033", + "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 0xC9219A7A EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x74C 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 0x6A9 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x8F JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP POP DUP1 PUSH2 0xF6 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH32 0xCD6AFF1FA0A9129EBCD0D8730384DB02E0BFA436267ECB5CF274FDBC3F26A15 DUP6 MSTORE PUSH32 0x6F91217704E02514ADEC5F28BD3649E1DDC998121B47C2C31C19401B7B23FFC PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x0 PUSH1 0x80 DUP7 ADD DUP7 PUSH2 0x19A DUP8 CALLDATALOAD PUSH32 0x4FA45F2ECCCBE65D69D748BD2B6D6EA86DEB2D20030E8C25C25787D8D4C6316 PUSH32 0xBAE7AFE1EAC90147127668DC58FC76FAF3C848EE0B9B8523AB93BD4E249D02F DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x1EA PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH32 0x291A8E69D0FEBB19616B5C66ED0319E132AD06B60AAF16D2C01556311B27658B PUSH32 0x2F53F65E53C6780EB5FE71AEE3C8F00081708DF10822E15B14B11923975BEF20 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x23A PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH32 0x238326FB19DD47A63673695DD8F99844A81B31176E482FB8B2309932DA62BFE2 PUSH32 0x238400B3360ABFAA0DD61F6A45374D67F78054F2FD3986B216C84057F85E2958 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x28A PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH32 0x1CE1D2AAE4306F6A7CC1099FE711F272C163EECA105C10AA51C2AE52DA1164C2 PUSH32 0x36B292EE7ECC83260988E0BFAF999F45906C45D485097875CCE48AF2D782595 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x2DA PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH32 0xFD7DC27FEE49CF7D40B5AFD6E709E4FDAF95FFA781327B6176F91F44A0176AD PUSH32 0x285D3F81014D1935ED2CA4B56E847106DEC5FE9494F6E733AD0CA8BE4315B47 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x329 PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH31 0x1CA084AFA10ADD72ED685121B18F11AABDFB8132B53B64C7C3B51A4E9A7239 PUSH32 0x45BA5E85D4E083DABC4D2DD39CFDB28A81DEB6D318654EEB704F5BB42344AF0 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x379 PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH32 0xF9C7A5277F89DC198FE9C286F0BE8EFAB776B96C9E27D4291A09770BA2BDFE5 PUSH32 0x141E87D10DEA1BA8DC0C60CCB217BDD5A5EE1A268AB7CBD5388EA1352C68C16C DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x3C9 PUSH1 0xE0 DUP9 ADD CALLDATALOAD PUSH32 0x1C2E761161AA3606DD11643C2FC867D27C5E8A26FB9254D1A905ED1440594759 PUSH32 0x266439E94C68D5D4FD08EF015B8644289E5A9A9D40263D2C8B6F7A9D25881A54 DUP5 PUSH2 0x92 JUMP JUMPDEST POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD PUSH1 0x20 DUP3 ADD MSTORE DUP4 CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x2D4D9AA7E302D9DF41749D5507949D05DBEA33FBB16C643B22F599A2BE6DF2E2 PUSH1 0xC0 DUP3 ADD MSTORE PUSH32 0x14BEDD503C37CEB061D8EC60209FE345CE89830A19230301F076CAFF004D1926 PUSH1 0xE0 DUP3 ADD MSTORE PUSH32 0x967032FCBF776D1AFC985F88877F182D38480A653F2DECAA9794CBC3BF3060C PUSH2 0x100 DUP3 ADD MSTORE PUSH32 0xE187847AD4C798374D0D6732BF501847DD68BC0E071241E0213BC7FC13DB7AB PUSH2 0x120 DUP3 ADD MSTORE PUSH32 0x304CFBD1E08A704A99F5E847D93F8C3CAAFDDEC46B7A0D379DA69A4D112346A7 PUSH2 0x140 DUP3 ADD MSTORE PUSH32 0x1739C1B1A457A8C7313123D24D2F9192F896B7C63EEA05A9D57F06547AD0CEC8 PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x0 DUP8 ADD MLOAD PUSH2 0x180 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 ADD DUP8 ADD MLOAD PUSH2 0x1A0 DUP3 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x1C0 DUP3 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x1E0 DUP3 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x200 DUP3 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x220 DUP3 ADD MSTORE DUP5 CALLDATALOAD PUSH2 0x240 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x260 DUP3 ADD MSTORE PUSH32 0xFB71534758DF3012A60E8D9833566B0F5298D25446AFD64B2FC77079D09C9C3 PUSH2 0x280 DUP3 ADD MSTORE PUSH32 0x156F6C8E48273DF70286225E4F26197C271CEF35A6621B53D6045277C21D5AC1 PUSH2 0x2A0 DUP3 ADD MSTORE PUSH32 0x24C12E433EE45E7D3A3274D5839D05C6C3EF2D87C17A064D4FCB78B34C60F0BA PUSH2 0x2C0 DUP3 ADD MSTORE PUSH32 0x2A9E6042C4BBF9ECB4420344847AEB071C36A1E04636408978CCEB314C31B556 PUSH2 0x2E0 DUP3 ADD MSTORE PUSH1 0x20 DUP2 PUSH2 0x300 DUP4 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 MLOAD AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x380 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x6C1 PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6CE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6DB PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6E8 PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6F5 PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x702 PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x70F PUSH1 0xC0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x71C PUSH1 0xE0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x729 DUP2 DUP5 DUP7 DUP9 DUP11 PUSH2 0xFD JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP1 PUSH1 0x40 DUP2 ADD DUP4 LT ISZERO PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x200 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76D DUP7 DUP7 PUSH2 0x735 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP6 ADD DUP7 DUP2 GT ISZERO PUSH2 0x780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP7 ADD SWAP4 POP PUSH2 0x790 DUP8 DUP3 PUSH2 0x735 JUMP JUMPDEST SWAP3 POP POP DUP6 PUSH2 0x200 DUP7 ADD GT ISZERO PUSH2 0x7A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP5 SWAP1 SWAP4 POP SWAP1 SWAP2 PUSH2 0x100 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4B LT BLOBHASH MSTORE8 SSTORE JUMP 0x2C 0xFB GASPRICE 0xC9 COINBASE 0xBA 0x24 CREATE2 0xCB 0x23 PUSH17 0x270079BF0FC6526A85016C1EEA7CED6473 PUSH16 0x6C634300081B00330000000000000000 ", + "sourceMap": "831:8953:42:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4781:5000;;;;;;:::i;:::-;;:::i;:::-;;;1018:14:46;;1011:22;993:41;;981:2;966:18;4781:5000:42;;;;;;;;4922:4;4961:163;;;5018:1;5015;5012:8;5002:108;;5054:1;5051;5044:12;5087:4;5084:1;5077:15;5002:108;4961:163;:::o;5228:738::-;5279:11;5324:4;5318:11;5358:1;5353:3;5346:14;5398:1;5393:2;5388:3;5384:12;5377:23;5438:1;5433:2;5428:3;5424:12;5417:23;5515:2;5510:3;5506:2;5501:3;5498:1;5491:4;5484:5;5480:16;5469:49;5458:60;;5546:7;5536:107;;5587:1;5584;5577:12;5620:4;5617:1;5610:15;5536:107;5688:2;5682:9;5677:2;5672:3;5668:12;5661:31;5744:2;5740;5736:11;5730:18;5725:2;5720:3;5716:12;5709:40;5824:2;5820;5815:3;5810;5807:1;5800:4;5793:5;5789:16;5778:49;5767:60;;;5855:7;5845:107;;5896:1;5893;5886:12;5929:4;5926:1;5919:15;5845:107;;5228:738;;;;:::o;5980:2880::-;6168:4;6155:18;;6212:4;6207:2;6197:13;;6190:27;6035:4;6085:8;6075:19;;6079:4;6307:62;6336:32;;6330:4;6324;6079;6307:62;:::i;:::-;6403:63;6461:2;6449:10;6445:19;6432:33;6426:4;6420;6414;6403:63;:::i;:::-;6500;6558:2;6546:10;6542:19;6529:33;6523:4;6517;6511;6500:63;:::i;:::-;6597;6655:2;6643:10;6639:19;6626:33;6620:4;6614;6608;6597:63;:::i;:::-;6694:64;6752:3;6740:10;6736:20;6723:34;6717:4;6711;6705;6694:64;:::i;:::-;6792;6850:3;6838:10;6834:20;6821:34;6815:4;6809;6803;6792:64;:::i;:::-;6890;6948:3;6936:10;6932:20;6919:34;6913:4;6907;6901;6890:64;:::i;:::-;6988;7046:3;7034:10;7030:20;7017:34;7011:4;7005;6999;6988:64;:::i;:::-;;7140:2;7127:16;7116:9;7109:35;7227:1;7220:2;7216;7212:11;7199:25;7196:1;7192:33;7188:41;7183:2;7172:9;7168:18;7161:69;7309:2;7296:16;7291:2;7280:9;7276:18;7269:44;7378:2;7374;7370:11;7357:25;7352:2;7341:9;7337:18;7330:53;7449:2;7445;7441:11;7428:25;7422:3;7411:9;7407:19;7400:54;7520:2;7516;7512:11;7499:25;7493:3;7482:9;7478:19;7471:54;7597:6;7591:3;7580:9;7576:19;7569:35;7649:6;7643:3;7632:9;7628:19;7621:35;7727:6;7721:3;7710:9;7706:19;7699:35;7779:6;7773:3;7762:9;7758:19;7751:35;7831:6;7825:3;7814:9;7810:19;7803:35;7883:6;7877:3;7866:9;7862:19;7855:35;7976:3;7970:4;7966:14;7960:21;7954:3;7943:9;7939:19;7932:50;8052:2;8047:3;8043:12;8037:4;8033:23;8027:30;8021:3;8010:9;8006:19;7999:59;8131:7;8125:3;8114:9;8110:19;8103:36;8184:7;8178:3;8167:9;8163:19;8156:36;8237:7;8231:3;8220:9;8216:19;8209:36;8290:7;8284:3;8273:9;8269:19;8262:36;8378:2;8365:16;8359:3;8348:9;8344:19;8337:45;8448:2;8444;8440:11;8427:25;8421:3;8410:9;8406:19;8399:54;8525:7;8519:3;8508:9;8504:19;8497:36;8578:7;8572:3;8561:9;8557:19;8550:36;8631:7;8625:3;8614:9;8610:19;8603:36;8684:7;8678:3;8667:9;8663:19;8656:36;8785:4;8774:9;8769:3;8758:9;8755:1;8748:4;8741:5;8737:16;8726:64;8829:16;;8816:30;;5980:2880;-1:-1:-1;;;;;;5980:2880:42:o;:::-;8892:4;8886:11;8933:8;8927:4;8923:19;8917:4;8910:33;9021:45;9062:1;9049:11;9045:19;9032:33;9021:45;:::i;:::-;9092:46;9133:2;9120:11;9116:20;9103:34;9092:46;:::i;:::-;9164;9205:2;9192:11;9188:20;9175:34;9164:46;:::i;:::-;9236;9277:2;9264:11;9260:20;9247:34;9236:46;:::i;:::-;9308:47;9349:3;9336:11;9332:21;9319:35;9308:47;:::i;:::-;9381;9422:3;9409:11;9405:21;9392:35;9381:47;:::i;:::-;9454;9495:3;9482:11;9478:21;9465:35;9454:47;:::i;:::-;9527;9568:3;9555:11;9551:21;9538:35;9527:47;:::i;:::-;9656:46;9697:4;9684:11;9679:3;9674;9669;9656:46;:::i;:::-;9641:61;;9726:7;9723:1;9716:18;9758:4;9755:1;9748:15;14:159:46;108:6;141:2;129:15;;126:24;-1:-1:-1;123:44:46;;;163:1;160;153:12;123:44;14:159;;;;:::o;178:670::-;389:6;397;405;413;466:3;454:9;445:7;441:23;437:33;434:53;;;483:1;480;473:12;434:53;506;551:7;540:9;506:53;:::i;:::-;496:63;;593:3;582:9;578:19;616:7;612:2;609:15;606:35;;;637:1;634;627:12;606:35;675:2;664:9;660:18;650:28;;697:46;735:7;731:2;697:46;:::i;:::-;687:56;;;779:7;773:3;762:9;758:19;755:32;752:52;;;800:1;797;790:12;752:52;-1:-1:-1;178:670:46;;;;-1:-1:-1;178:670:46;;838:3;823:19;;178:670::o" + }, + "methodIdentifiers": { + "verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[8])": "c9219a7a" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"_pA\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"_pB\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"_pC\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[8]\",\"name\":\"_pubSignals\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/verifiers/idcard/Verifier_idcard_sha256.sol\":\"Verifier_idcard_sha256\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/verifiers/idcard/Verifier_idcard_sha256.sol\":{\"keccak256\":\"0x11f2a7261e6161f1f6aec9f349a32e1703e41870d9145844da5188068b1651f4\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7f8378f499ed7ba4b04baed66c4315e3151601c4897da6bbc899b2e4a3161ea5\",\"dweb:/ipfs/QmUKsNxxNcwfzSwxF6MfoSNBp4PG6yh2BCibuFM2xmQ4kE\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/verifiers/idcard/Verifier_idcard_sha384.sol": { + "Verifier_idcard_sha384": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[2]", + "name": "_pA", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2][2]", + "name": "_pB", + "type": "uint256[2][2]" + }, + { + "internalType": "uint256[2]", + "name": "_pC", + "type": "uint256[2]" + }, + { + "internalType": "uint256[8]", + "name": "_pubSignals", + "type": "uint256[8]" + } + ], + "name": "verifyProof", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b506107e98061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f18eab35ae854b5b39c8fa63363a88b91b1fdc6978e1743ca488c69ba334c508e85527f25cb546d2f84d371cebe397b54f233a9a52d99870aaa4a365770336498c72fd460208601526000608086018661019987357e0b5904467956cd88219e8fdf1a96df8a4c213eb1fbf9eb5fe8067bfaf10ef17f297514db6f675d3e19ab8fdf0ea98ee6a88ca0daa6e1d54b9c0a43906f21014484610092565b6101e960208801357f12c8a9e2fb08db9363aa1753295449c406b5e291291cad2109d4dcaeac213be37f0d2102cd75b5f4e3528620178980516fddac6cc3bb56d46d190511c07a7cb47984610092565b61023960408801357f1ec83a03b58de715f3a96521f3f5137ab7cbbb7b7286301bb46bbe060999e2a27f27cbc5427e7f642f4aca05e5a1d25b3322b8ca8af25e628664b9027abe05223e84610092565b61028960608801357f124c66accd609050ac9e16d1976ca5e08e3fc1d30a7a50414d4ce44a290975107f27d18d3bedbf40e95cce9f9acf5ffbcf4df76e3823aeeed405ac93620b1dd28684610092565b6102d960808801357f17cbc914663ab3ffe4fd118b3a74cf5f92b31927cc42ba57e2471259a7f52f4b7f03eb079f91ff2928de76dcf854249191077486f67be85633045b6080e69d7e8284610092565b61032960a08801357f18c97de166bbb60b90e9efcaf394cf75cbbbc9ac47e373b963779fd848cd3cb37f064a4ea511da2da6dd454bcc4aa7741cc915a9dc166abe5421311d1654afdd0284610092565b61037960c08801357f2b9841351fbaf8f4058703a0e7cc2cbdb433a1fabe068ff32f71eb1c9f67e3a07f2c89940fbc41366d4392cca6c2421407d7aeccc9925290dec36dfde35700eed084610092565b6103c960e08801357f18172fc61271230761b25bb8151d9ed3a87331b726e012f8c66c4be1406004427f0f9af5a25c3e4f28f4046e92261ac77c17b4f4a8a79e4af927541875154df27f84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f2b747cc47f5a9c39e1aec16db0fb336821d4df51fedb851b80927345bb8763c76102808201527f1f6265654b72215a6c597ae20915021be80ee0fff39a206a218296e460586a1b6102a08201527f1b4eb4714db298e715fc765588af847d7edf40519d19523210c482e74aaeaae86102c08201527f11269223b6e64d0e6bdb960fbb6df7b0d3bc91f95e291505d01ea668363a036f6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212201137da3daeaa7c27ef151cae110b4bd4f60f59ec7da0a75a183fd559af54fbff64736f6c634300081b0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7E9 DUP1 PUSH2 0x1F 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 0xC9219A7A EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x74C 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 0x6A9 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x8F JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP POP DUP1 PUSH2 0xF6 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH32 0x18EAB35AE854B5B39C8FA63363A88B91B1FDC6978E1743CA488C69BA334C508E DUP6 MSTORE PUSH32 0x25CB546D2F84D371CEBE397B54F233A9A52D99870AAA4A365770336498C72FD4 PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x0 PUSH1 0x80 DUP7 ADD DUP7 PUSH2 0x199 DUP8 CALLDATALOAD PUSH31 0xB5904467956CD88219E8FDF1A96DF8A4C213EB1FBF9EB5FE8067BFAF10EF1 PUSH32 0x297514DB6F675D3E19AB8FDF0EA98EE6A88CA0DAA6E1D54B9C0A43906F210144 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x1E9 PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH32 0x12C8A9E2FB08DB9363AA1753295449C406B5E291291CAD2109D4DCAEAC213BE3 PUSH32 0xD2102CD75B5F4E3528620178980516FDDAC6CC3BB56D46D190511C07A7CB479 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x239 PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH32 0x1EC83A03B58DE715F3A96521F3F5137AB7CBBB7B7286301BB46BBE060999E2A2 PUSH32 0x27CBC5427E7F642F4ACA05E5A1D25B3322B8CA8AF25E628664B9027ABE05223E DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x289 PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH32 0x124C66ACCD609050AC9E16D1976CA5E08E3FC1D30A7A50414D4CE44A29097510 PUSH32 0x27D18D3BEDBF40E95CCE9F9ACF5FFBCF4DF76E3823AEEED405AC93620B1DD286 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x2D9 PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH32 0x17CBC914663AB3FFE4FD118B3A74CF5F92B31927CC42BA57E2471259A7F52F4B PUSH32 0x3EB079F91FF2928DE76DCF854249191077486F67BE85633045B6080E69D7E82 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x329 PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH32 0x18C97DE166BBB60B90E9EFCAF394CF75CBBBC9AC47E373B963779FD848CD3CB3 PUSH32 0x64A4EA511DA2DA6DD454BCC4AA7741CC915A9DC166ABE5421311D1654AFDD02 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x379 PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH32 0x2B9841351FBAF8F4058703A0E7CC2CBDB433A1FABE068FF32F71EB1C9F67E3A0 PUSH32 0x2C89940FBC41366D4392CCA6C2421407D7AECCC9925290DEC36DFDE35700EED0 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x3C9 PUSH1 0xE0 DUP9 ADD CALLDATALOAD PUSH32 0x18172FC61271230761B25BB8151D9ED3A87331B726E012F8C66C4BE140600442 PUSH32 0xF9AF5A25C3E4F28F4046E92261AC77C17B4F4A8A79E4AF927541875154DF27F DUP5 PUSH2 0x92 JUMP JUMPDEST POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD PUSH1 0x20 DUP3 ADD MSTORE DUP4 CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x2D4D9AA7E302D9DF41749D5507949D05DBEA33FBB16C643B22F599A2BE6DF2E2 PUSH1 0xC0 DUP3 ADD MSTORE PUSH32 0x14BEDD503C37CEB061D8EC60209FE345CE89830A19230301F076CAFF004D1926 PUSH1 0xE0 DUP3 ADD MSTORE PUSH32 0x967032FCBF776D1AFC985F88877F182D38480A653F2DECAA9794CBC3BF3060C PUSH2 0x100 DUP3 ADD MSTORE PUSH32 0xE187847AD4C798374D0D6732BF501847DD68BC0E071241E0213BC7FC13DB7AB PUSH2 0x120 DUP3 ADD MSTORE PUSH32 0x304CFBD1E08A704A99F5E847D93F8C3CAAFDDEC46B7A0D379DA69A4D112346A7 PUSH2 0x140 DUP3 ADD MSTORE PUSH32 0x1739C1B1A457A8C7313123D24D2F9192F896B7C63EEA05A9D57F06547AD0CEC8 PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x0 DUP8 ADD MLOAD PUSH2 0x180 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 ADD DUP8 ADD MLOAD PUSH2 0x1A0 DUP3 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x1C0 DUP3 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x1E0 DUP3 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x200 DUP3 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x220 DUP3 ADD MSTORE DUP5 CALLDATALOAD PUSH2 0x240 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x260 DUP3 ADD MSTORE PUSH32 0x2B747CC47F5A9C39E1AEC16DB0FB336821D4DF51FEDB851B80927345BB8763C7 PUSH2 0x280 DUP3 ADD MSTORE PUSH32 0x1F6265654B72215A6C597AE20915021BE80EE0FFF39A206A218296E460586A1B PUSH2 0x2A0 DUP3 ADD MSTORE PUSH32 0x1B4EB4714DB298E715FC765588AF847D7EDF40519D19523210C482E74AAEAAE8 PUSH2 0x2C0 DUP3 ADD MSTORE PUSH32 0x11269223B6E64D0E6BDB960FBB6DF7B0D3BC91F95E291505D01EA668363A036F PUSH2 0x2E0 DUP3 ADD MSTORE PUSH1 0x20 DUP2 PUSH2 0x300 DUP4 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 MLOAD AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x380 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x6C1 PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6CE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6DB PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6E8 PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6F5 PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x702 PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x70F PUSH1 0xC0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x71C PUSH1 0xE0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x729 DUP2 DUP5 DUP7 DUP9 DUP11 PUSH2 0xFD JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP1 PUSH1 0x40 DUP2 ADD DUP4 LT ISZERO PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x200 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76D DUP7 DUP7 PUSH2 0x735 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP6 ADD DUP7 DUP2 GT ISZERO PUSH2 0x780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP7 ADD SWAP4 POP PUSH2 0x790 DUP8 DUP3 PUSH2 0x735 JUMP JUMPDEST SWAP3 POP POP DUP6 PUSH2 0x200 DUP7 ADD GT ISZERO PUSH2 0x7A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP5 SWAP1 SWAP4 POP SWAP1 SWAP2 PUSH2 0x100 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GT CALLDATACOPY 0xDA RETURNDATASIZE 0xAE 0xAA PUSH29 0x27EF151CAE110B4BD4F60F59EC7DA0A75A183FD559AF54FBFF64736F6C PUSH4 0x4300081B STOP CALLER ", + "sourceMap": "831:8958:43:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@verifyProof_18095": { + "entryPoint": 87, + "id": 18095, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_decode_array_uint256_calldata": { + "entryPoint": 1845, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptrt_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptrt_array$_t_uint256_$2_calldata_ptrt_array$_t_uint256_$8_calldata_ptr": { + "entryPoint": 1868, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:1042:46", + "nodeType": "YulBlock", + "src": "0:1042:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "86:87:46", + "nodeType": "YulBlock", + "src": "86:87:46", + "statements": [ + { + "nativeSrc": "96:18:46", + "nodeType": "YulAssignment", + "src": "96:18:46", + "value": { + "name": "offset", + "nativeSrc": "108:6:46", + "nodeType": "YulIdentifier", + "src": "108:6:46" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "96:8:46", + "nodeType": "YulIdentifier", + "src": "96:8:46" + } + ] + }, + { + "body": { + "nativeSrc": "151:16:46", + "nodeType": "YulBlock", + "src": "151:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "160:1:46", + "nodeType": "YulLiteral", + "src": "160:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "163:1:46", + "nodeType": "YulLiteral", + "src": "163:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "153:6:46", + "nodeType": "YulIdentifier", + "src": "153:6:46" + }, + "nativeSrc": "153:12:46", + "nodeType": "YulFunctionCall", + "src": "153:12:46" + }, + "nativeSrc": "153:12:46", + "nodeType": "YulExpressionStatement", + "src": "153:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "133:6:46", + "nodeType": "YulIdentifier", + "src": "133:6:46" + }, + { + "kind": "number", + "nativeSrc": "141:2:46", + "nodeType": "YulLiteral", + "src": "141:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "129:3:46", + "nodeType": "YulIdentifier", + "src": "129:3:46" + }, + "nativeSrc": "129:15:46", + "nodeType": "YulFunctionCall", + "src": "129:15:46" + }, + { + "name": "end", + "nativeSrc": "146:3:46", + "nodeType": "YulIdentifier", + "src": "146:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "126:2:46", + "nodeType": "YulIdentifier", + "src": "126:2:46" + }, + "nativeSrc": "126:24:46", + "nodeType": "YulFunctionCall", + "src": "126:24:46" + }, + "nativeSrc": "123:44:46", + "nodeType": "YulIf", + "src": "123:44:46" + } + ] + }, + "name": "abi_decode_array_uint256_calldata", + "nativeSrc": "14:159:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "57:6:46", + "nodeType": "YulTypedName", + "src": "57:6:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "65:3:46", + "nodeType": "YulTypedName", + "src": "65:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "73:8:46", + "nodeType": "YulTypedName", + "src": "73:8:46", + "type": "" + } + ], + "src": "14:159:46" + }, + { + "body": { + "nativeSrc": "424:424:46", + "nodeType": "YulBlock", + "src": "424:424:46", + "statements": [ + { + "body": { + "nativeSrc": "471:16:46", + "nodeType": "YulBlock", + "src": "471:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "480:1:46", + "nodeType": "YulLiteral", + "src": "480:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "483:1:46", + "nodeType": "YulLiteral", + "src": "483:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "473:6:46", + "nodeType": "YulIdentifier", + "src": "473:6:46" + }, + "nativeSrc": "473:12:46", + "nodeType": "YulFunctionCall", + "src": "473:12:46" + }, + "nativeSrc": "473:12:46", + "nodeType": "YulExpressionStatement", + "src": "473:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "445:7:46", + "nodeType": "YulIdentifier", + "src": "445:7:46" + }, + { + "name": "headStart", + "nativeSrc": "454:9:46", + "nodeType": "YulIdentifier", + "src": "454:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "441:3:46", + "nodeType": "YulIdentifier", + "src": "441:3:46" + }, + "nativeSrc": "441:23:46", + "nodeType": "YulFunctionCall", + "src": "441:23:46" + }, + { + "kind": "number", + "nativeSrc": "466:3:46", + "nodeType": "YulLiteral", + "src": "466:3:46", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "437:3:46", + "nodeType": "YulIdentifier", + "src": "437:3:46" + }, + "nativeSrc": "437:33:46", + "nodeType": "YulFunctionCall", + "src": "437:33:46" + }, + "nativeSrc": "434:53:46", + "nodeType": "YulIf", + "src": "434:53:46" + }, + { + "nativeSrc": "496:63:46", + "nodeType": "YulAssignment", + "src": "496:63:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "540:9:46", + "nodeType": "YulIdentifier", + "src": "540:9:46" + }, + { + "name": "dataEnd", + "nativeSrc": "551:7:46", + "nodeType": "YulIdentifier", + "src": "551:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_calldata", + "nativeSrc": "506:33:46", + "nodeType": "YulIdentifier", + "src": "506:33:46" + }, + "nativeSrc": "506:53:46", + "nodeType": "YulFunctionCall", + "src": "506:53:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "496:6:46", + "nodeType": "YulIdentifier", + "src": "496:6:46" + } + ] + }, + { + "nativeSrc": "568:29:46", + "nodeType": "YulVariableDeclaration", + "src": "568:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "582:9:46", + "nodeType": "YulIdentifier", + "src": "582:9:46" + }, + { + "kind": "number", + "nativeSrc": "593:3:46", + "nodeType": "YulLiteral", + "src": "593:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "578:3:46", + "nodeType": "YulIdentifier", + "src": "578:3:46" + }, + "nativeSrc": "578:19:46", + "nodeType": "YulFunctionCall", + "src": "578:19:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "572:2:46", + "nodeType": "YulTypedName", + "src": "572:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "625:16:46", + "nodeType": "YulBlock", + "src": "625:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "634:1:46", + "nodeType": "YulLiteral", + "src": "634:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "637:1:46", + "nodeType": "YulLiteral", + "src": "637:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "627:6:46", + "nodeType": "YulIdentifier", + "src": "627:6:46" + }, + "nativeSrc": "627:12:46", + "nodeType": "YulFunctionCall", + "src": "627:12:46" + }, + "nativeSrc": "627:12:46", + "nodeType": "YulExpressionStatement", + "src": "627:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "612:2:46", + "nodeType": "YulIdentifier", + "src": "612:2:46" + }, + { + "name": "dataEnd", + "nativeSrc": "616:7:46", + "nodeType": "YulIdentifier", + "src": "616:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "609:2:46", + "nodeType": "YulIdentifier", + "src": "609:2:46" + }, + "nativeSrc": "609:15:46", + "nodeType": "YulFunctionCall", + "src": "609:15:46" + }, + "nativeSrc": "606:35:46", + "nodeType": "YulIf", + "src": "606:35:46" + }, + { + "nativeSrc": "650:28:46", + "nodeType": "YulAssignment", + "src": "650:28:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "664:9:46", + "nodeType": "YulIdentifier", + "src": "664:9:46" + }, + { + "kind": "number", + "nativeSrc": "675:2:46", + "nodeType": "YulLiteral", + "src": "675:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "660:3:46", + "nodeType": "YulIdentifier", + "src": "660:3:46" + }, + "nativeSrc": "660:18:46", + "nodeType": "YulFunctionCall", + "src": "660:18:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "650:6:46", + "nodeType": "YulIdentifier", + "src": "650:6:46" + } + ] + }, + { + "nativeSrc": "687:56:46", + "nodeType": "YulAssignment", + "src": "687:56:46", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "731:2:46", + "nodeType": "YulIdentifier", + "src": "731:2:46" + }, + { + "name": "dataEnd", + "nativeSrc": "735:7:46", + "nodeType": "YulIdentifier", + "src": "735:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_calldata", + "nativeSrc": "697:33:46", + "nodeType": "YulIdentifier", + "src": "697:33:46" + }, + "nativeSrc": "697:46:46", + "nodeType": "YulFunctionCall", + "src": "697:46:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "687:6:46", + "nodeType": "YulIdentifier", + "src": "687:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "788:16:46", + "nodeType": "YulBlock", + "src": "788:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "797:1:46", + "nodeType": "YulLiteral", + "src": "797:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "800:1:46", + "nodeType": "YulLiteral", + "src": "800:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "790:6:46", + "nodeType": "YulIdentifier", + "src": "790:6:46" + }, + "nativeSrc": "790:12:46", + "nodeType": "YulFunctionCall", + "src": "790:12:46" + }, + "nativeSrc": "790:12:46", + "nodeType": "YulExpressionStatement", + "src": "790:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "762:9:46", + "nodeType": "YulIdentifier", + "src": "762:9:46" + }, + { + "kind": "number", + "nativeSrc": "773:3:46", + "nodeType": "YulLiteral", + "src": "773:3:46", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "758:3:46", + "nodeType": "YulIdentifier", + "src": "758:3:46" + }, + "nativeSrc": "758:19:46", + "nodeType": "YulFunctionCall", + "src": "758:19:46" + }, + { + "name": "dataEnd", + "nativeSrc": "779:7:46", + "nodeType": "YulIdentifier", + "src": "779:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "755:2:46", + "nodeType": "YulIdentifier", + "src": "755:2:46" + }, + "nativeSrc": "755:32:46", + "nodeType": "YulFunctionCall", + "src": "755:32:46" + }, + "nativeSrc": "752:52:46", + "nodeType": "YulIf", + "src": "752:52:46" + }, + { + "nativeSrc": "813:29:46", + "nodeType": "YulAssignment", + "src": "813:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "827:9:46", + "nodeType": "YulIdentifier", + "src": "827:9:46" + }, + { + "kind": "number", + "nativeSrc": "838:3:46", + "nodeType": "YulLiteral", + "src": "838:3:46", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "823:3:46", + "nodeType": "YulIdentifier", + "src": "823:3:46" + }, + "nativeSrc": "823:19:46", + "nodeType": "YulFunctionCall", + "src": "823:19:46" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "813:6:46", + "nodeType": "YulIdentifier", + "src": "813:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptrt_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptrt_array$_t_uint256_$2_calldata_ptrt_array$_t_uint256_$8_calldata_ptr", + "nativeSrc": "178:670:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "366:9:46", + "nodeType": "YulTypedName", + "src": "366:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "377:7:46", + "nodeType": "YulTypedName", + "src": "377:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "389:6:46", + "nodeType": "YulTypedName", + "src": "389:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "397:6:46", + "nodeType": "YulTypedName", + "src": "397:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "405:6:46", + "nodeType": "YulTypedName", + "src": "405:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "413:6:46", + "nodeType": "YulTypedName", + "src": "413:6:46", + "type": "" + } + ], + "src": "178:670:46" + }, + { + "body": { + "nativeSrc": "948:92:46", + "nodeType": "YulBlock", + "src": "948:92:46", + "statements": [ + { + "nativeSrc": "958:26:46", + "nodeType": "YulAssignment", + "src": "958:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "970:9:46", + "nodeType": "YulIdentifier", + "src": "970:9:46" + }, + { + "kind": "number", + "nativeSrc": "981:2:46", + "nodeType": "YulLiteral", + "src": "981:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "966:3:46", + "nodeType": "YulIdentifier", + "src": "966:3:46" + }, + "nativeSrc": "966:18:46", + "nodeType": "YulFunctionCall", + "src": "966:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "958:4:46", + "nodeType": "YulIdentifier", + "src": "958:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1000:9:46", + "nodeType": "YulIdentifier", + "src": "1000:9:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1025:6:46", + "nodeType": "YulIdentifier", + "src": "1025:6:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1018:6:46", + "nodeType": "YulIdentifier", + "src": "1018:6:46" + }, + "nativeSrc": "1018:14:46", + "nodeType": "YulFunctionCall", + "src": "1018:14:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1011:6:46", + "nodeType": "YulIdentifier", + "src": "1011:6:46" + }, + "nativeSrc": "1011:22:46", + "nodeType": "YulFunctionCall", + "src": "1011:22:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "993:6:46", + "nodeType": "YulIdentifier", + "src": "993:6:46" + }, + "nativeSrc": "993:41:46", + "nodeType": "YulFunctionCall", + "src": "993:41:46" + }, + "nativeSrc": "993:41:46", + "nodeType": "YulExpressionStatement", + "src": "993:41:46" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "853:187:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "917:9:46", + "nodeType": "YulTypedName", + "src": "917:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "928:6:46", + "nodeType": "YulTypedName", + "src": "928:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "939:4:46", + "nodeType": "YulTypedName", + "src": "939:4:46", + "type": "" + } + ], + "src": "853:187:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_array_uint256_calldata(offset, end) -> arrayPos\n {\n arrayPos := offset\n if gt(add(offset, 64), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptrt_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptrt_array$_t_uint256_$2_calldata_ptrt_array$_t_uint256_$8_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 512) { revert(0, 0) }\n value0 := abi_decode_array_uint256_calldata(headStart, dataEnd)\n let _1 := add(headStart, 192)\n if gt(_1, dataEnd) { revert(0, 0) }\n value1 := add(headStart, 64)\n value2 := abi_decode_array_uint256_calldata(_1, dataEnd)\n if gt(add(headStart, 512), dataEnd) { revert(0, 0) }\n value3 := add(headStart, 256)\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}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f18eab35ae854b5b39c8fa63363a88b91b1fdc6978e1743ca488c69ba334c508e85527f25cb546d2f84d371cebe397b54f233a9a52d99870aaa4a365770336498c72fd460208601526000608086018661019987357e0b5904467956cd88219e8fdf1a96df8a4c213eb1fbf9eb5fe8067bfaf10ef17f297514db6f675d3e19ab8fdf0ea98ee6a88ca0daa6e1d54b9c0a43906f21014484610092565b6101e960208801357f12c8a9e2fb08db9363aa1753295449c406b5e291291cad2109d4dcaeac213be37f0d2102cd75b5f4e3528620178980516fddac6cc3bb56d46d190511c07a7cb47984610092565b61023960408801357f1ec83a03b58de715f3a96521f3f5137ab7cbbb7b7286301bb46bbe060999e2a27f27cbc5427e7f642f4aca05e5a1d25b3322b8ca8af25e628664b9027abe05223e84610092565b61028960608801357f124c66accd609050ac9e16d1976ca5e08e3fc1d30a7a50414d4ce44a290975107f27d18d3bedbf40e95cce9f9acf5ffbcf4df76e3823aeeed405ac93620b1dd28684610092565b6102d960808801357f17cbc914663ab3ffe4fd118b3a74cf5f92b31927cc42ba57e2471259a7f52f4b7f03eb079f91ff2928de76dcf854249191077486f67be85633045b6080e69d7e8284610092565b61032960a08801357f18c97de166bbb60b90e9efcaf394cf75cbbbc9ac47e373b963779fd848cd3cb37f064a4ea511da2da6dd454bcc4aa7741cc915a9dc166abe5421311d1654afdd0284610092565b61037960c08801357f2b9841351fbaf8f4058703a0e7cc2cbdb433a1fabe068ff32f71eb1c9f67e3a07f2c89940fbc41366d4392cca6c2421407d7aeccc9925290dec36dfde35700eed084610092565b6103c960e08801357f18172fc61271230761b25bb8151d9ed3a87331b726e012f8c66c4be1406004427f0f9af5a25c3e4f28f4046e92261ac77c17b4f4a8a79e4af927541875154df27f84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f2b747cc47f5a9c39e1aec16db0fb336821d4df51fedb851b80927345bb8763c76102808201527f1f6265654b72215a6c597ae20915021be80ee0fff39a206a218296e460586a1b6102a08201527f1b4eb4714db298e715fc765588af847d7edf40519d19523210c482e74aaeaae86102c08201527f11269223b6e64d0e6bdb960fbb6df7b0d3bc91f95e291505d01ea668363a036f6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212201137da3daeaa7c27ef151cae110b4bd4f60f59ec7da0a75a183fd559af54fbff64736f6c634300081b0033", + "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 0xC9219A7A EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x74C 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 0x6A9 JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x8F JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP POP DUP1 PUSH2 0xF6 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH32 0x18EAB35AE854B5B39C8FA63363A88B91B1FDC6978E1743CA488C69BA334C508E DUP6 MSTORE PUSH32 0x25CB546D2F84D371CEBE397B54F233A9A52D99870AAA4A365770336498C72FD4 PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x0 PUSH1 0x80 DUP7 ADD DUP7 PUSH2 0x199 DUP8 CALLDATALOAD PUSH31 0xB5904467956CD88219E8FDF1A96DF8A4C213EB1FBF9EB5FE8067BFAF10EF1 PUSH32 0x297514DB6F675D3E19AB8FDF0EA98EE6A88CA0DAA6E1D54B9C0A43906F210144 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x1E9 PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH32 0x12C8A9E2FB08DB9363AA1753295449C406B5E291291CAD2109D4DCAEAC213BE3 PUSH32 0xD2102CD75B5F4E3528620178980516FDDAC6CC3BB56D46D190511C07A7CB479 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x239 PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH32 0x1EC83A03B58DE715F3A96521F3F5137AB7CBBB7B7286301BB46BBE060999E2A2 PUSH32 0x27CBC5427E7F642F4ACA05E5A1D25B3322B8CA8AF25E628664B9027ABE05223E DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x289 PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH32 0x124C66ACCD609050AC9E16D1976CA5E08E3FC1D30A7A50414D4CE44A29097510 PUSH32 0x27D18D3BEDBF40E95CCE9F9ACF5FFBCF4DF76E3823AEEED405AC93620B1DD286 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x2D9 PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH32 0x17CBC914663AB3FFE4FD118B3A74CF5F92B31927CC42BA57E2471259A7F52F4B PUSH32 0x3EB079F91FF2928DE76DCF854249191077486F67BE85633045B6080E69D7E82 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x329 PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH32 0x18C97DE166BBB60B90E9EFCAF394CF75CBBBC9AC47E373B963779FD848CD3CB3 PUSH32 0x64A4EA511DA2DA6DD454BCC4AA7741CC915A9DC166ABE5421311D1654AFDD02 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x379 PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH32 0x2B9841351FBAF8F4058703A0E7CC2CBDB433A1FABE068FF32F71EB1C9F67E3A0 PUSH32 0x2C89940FBC41366D4392CCA6C2421407D7AECCC9925290DEC36DFDE35700EED0 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x3C9 PUSH1 0xE0 DUP9 ADD CALLDATALOAD PUSH32 0x18172FC61271230761B25BB8151D9ED3A87331B726E012F8C66C4BE140600442 PUSH32 0xF9AF5A25C3E4F28F4046E92261AC77C17B4F4A8A79E4AF927541875154DF27F DUP5 PUSH2 0x92 JUMP JUMPDEST POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD PUSH1 0x20 DUP3 ADD MSTORE DUP4 CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x2D4D9AA7E302D9DF41749D5507949D05DBEA33FBB16C643B22F599A2BE6DF2E2 PUSH1 0xC0 DUP3 ADD MSTORE PUSH32 0x14BEDD503C37CEB061D8EC60209FE345CE89830A19230301F076CAFF004D1926 PUSH1 0xE0 DUP3 ADD MSTORE PUSH32 0x967032FCBF776D1AFC985F88877F182D38480A653F2DECAA9794CBC3BF3060C PUSH2 0x100 DUP3 ADD MSTORE PUSH32 0xE187847AD4C798374D0D6732BF501847DD68BC0E071241E0213BC7FC13DB7AB PUSH2 0x120 DUP3 ADD MSTORE PUSH32 0x304CFBD1E08A704A99F5E847D93F8C3CAAFDDEC46B7A0D379DA69A4D112346A7 PUSH2 0x140 DUP3 ADD MSTORE PUSH32 0x1739C1B1A457A8C7313123D24D2F9192F896B7C63EEA05A9D57F06547AD0CEC8 PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x0 DUP8 ADD MLOAD PUSH2 0x180 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 ADD DUP8 ADD MLOAD PUSH2 0x1A0 DUP3 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x1C0 DUP3 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x1E0 DUP3 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x200 DUP3 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x220 DUP3 ADD MSTORE DUP5 CALLDATALOAD PUSH2 0x240 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x260 DUP3 ADD MSTORE PUSH32 0x2B747CC47F5A9C39E1AEC16DB0FB336821D4DF51FEDB851B80927345BB8763C7 PUSH2 0x280 DUP3 ADD MSTORE PUSH32 0x1F6265654B72215A6C597AE20915021BE80EE0FFF39A206A218296E460586A1B PUSH2 0x2A0 DUP3 ADD MSTORE PUSH32 0x1B4EB4714DB298E715FC765588AF847D7EDF40519D19523210C482E74AAEAAE8 PUSH2 0x2C0 DUP3 ADD MSTORE PUSH32 0x11269223B6E64D0E6BDB960FBB6DF7B0D3BC91F95E291505D01EA668363A036F PUSH2 0x2E0 DUP3 ADD MSTORE PUSH1 0x20 DUP2 PUSH2 0x300 DUP4 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 MLOAD AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x380 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x6C1 PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6CE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6DB PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6E8 PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6F5 PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x702 PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x70F PUSH1 0xC0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x71C PUSH1 0xE0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x729 DUP2 DUP5 DUP7 DUP9 DUP11 PUSH2 0xFD JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP1 PUSH1 0x40 DUP2 ADD DUP4 LT ISZERO PUSH2 0x746 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x200 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x763 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76D DUP7 DUP7 PUSH2 0x735 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP6 ADD DUP7 DUP2 GT ISZERO PUSH2 0x780 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP7 ADD SWAP4 POP PUSH2 0x790 DUP8 DUP3 PUSH2 0x735 JUMP JUMPDEST SWAP3 POP POP DUP6 PUSH2 0x200 DUP7 ADD GT ISZERO PUSH2 0x7A4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP5 SWAP1 SWAP4 POP SWAP1 SWAP2 PUSH2 0x100 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GT CALLDATACOPY 0xDA RETURNDATASIZE 0xAE 0xAA PUSH29 0x27EF151CAE110B4BD4F60F59EC7DA0A75A183FD559AF54FBFF64736F6C PUSH4 0x4300081B STOP CALLER ", + "sourceMap": "831:8958:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4786:5000;;;;;;:::i;:::-;;:::i;:::-;;;1018:14:46;;1011:22;993:41;;981:2;966:18;4786:5000:43;;;;;;;;4927:4;4966:163;;;5023:1;5020;5017:8;5007:108;;5059:1;5056;5049:12;5092:4;5089:1;5082:15;5007:108;4966:163;:::o;5233:738::-;5284:11;5329:4;5323:11;5363:1;5358:3;5351:14;5403:1;5398:2;5393:3;5389:12;5382:23;5443:1;5438:2;5433:3;5429:12;5422:23;5520:2;5515:3;5511:2;5506:3;5503:1;5496:4;5489:5;5485:16;5474:49;5463:60;;5551:7;5541:107;;5592:1;5589;5582:12;5625:4;5622:1;5615:15;5541:107;5693:2;5687:9;5682:2;5677:3;5673:12;5666:31;5749:2;5745;5741:11;5735:18;5730:2;5725:3;5721:12;5714:40;5829:2;5825;5820:3;5815;5812:1;5805:4;5798:5;5794:16;5783:49;5772:60;;;5860:7;5850:107;;5901:1;5898;5891:12;5934:4;5931:1;5924:15;5850:107;;5233:738;;;;:::o;5985:2880::-;6173:4;6160:18;;6217:4;6212:2;6202:13;;6195:27;6040:4;6090:8;6080:19;;6084:4;6312:62;6341:32;;6335:4;6329;6084;6312:62;:::i;:::-;6408:63;6466:2;6454:10;6450:19;6437:33;6431:4;6425;6419;6408:63;:::i;:::-;6505;6563:2;6551:10;6547:19;6534:33;6528:4;6522;6516;6505:63;:::i;:::-;6602;6660:2;6648:10;6644:19;6631:33;6625:4;6619;6613;6602:63;:::i;:::-;6699:64;6757:3;6745:10;6741:20;6728:34;6722:4;6716;6710;6699:64;:::i;:::-;6797;6855:3;6843:10;6839:20;6826:34;6820:4;6814;6808;6797:64;:::i;:::-;6895;6953:3;6941:10;6937:20;6924:34;6918:4;6912;6906;6895:64;:::i;:::-;6993;7051:3;7039:10;7035:20;7022:34;7016:4;7010;7004;6993:64;:::i;:::-;;7145:2;7132:16;7121:9;7114:35;7232:1;7225:2;7221;7217:11;7204:25;7201:1;7197:33;7193:41;7188:2;7177:9;7173:18;7166:69;7314:2;7301:16;7296:2;7285:9;7281:18;7274:44;7383:2;7379;7375:11;7362:25;7357:2;7346:9;7342:18;7335:53;7454:2;7450;7446:11;7433:25;7427:3;7416:9;7412:19;7405:54;7525:2;7521;7517:11;7504:25;7498:3;7487:9;7483:19;7476:54;7602:6;7596:3;7585:9;7581:19;7574:35;7654:6;7648:3;7637:9;7633:19;7626:35;7732:6;7726:3;7715:9;7711:19;7704:35;7784:6;7778:3;7767:9;7763:19;7756:35;7836:6;7830:3;7819:9;7815:19;7808:35;7888:6;7882:3;7871:9;7867:19;7860:35;7981:3;7975:4;7971:14;7965:21;7959:3;7948:9;7944:19;7937:50;8057:2;8052:3;8048:12;8042:4;8038:23;8032:30;8026:3;8015:9;8011:19;8004:59;8136:7;8130:3;8119:9;8115:19;8108:36;8189:7;8183:3;8172:9;8168:19;8161:36;8242:7;8236:3;8225:9;8221:19;8214:36;8295:7;8289:3;8278:9;8274:19;8267:36;8383:2;8370:16;8364:3;8353:9;8349:19;8342:45;8453:2;8449;8445:11;8432:25;8426:3;8415:9;8411:19;8404:54;8530:7;8524:3;8513:9;8509:19;8502:36;8583:7;8577:3;8566:9;8562:19;8555:36;8636:7;8630:3;8619:9;8615:19;8608:36;8689:7;8683:3;8672:9;8668:19;8661:36;8790:4;8779:9;8774:3;8763:9;8760:1;8753:4;8746:5;8742:16;8731:64;8834:16;;8821:30;;5985:2880;-1:-1:-1;;;;;;5985:2880:43:o;:::-;8897:4;8891:11;8938:8;8932:4;8928:19;8922:4;8915:33;9026:45;9067:1;9054:11;9050:19;9037:33;9026:45;:::i;:::-;9097:46;9138:2;9125:11;9121:20;9108:34;9097:46;:::i;:::-;9169;9210:2;9197:11;9193:20;9180:34;9169:46;:::i;:::-;9241;9282:2;9269:11;9265:20;9252:34;9241:46;:::i;:::-;9313:47;9354:3;9341:11;9337:21;9324:35;9313:47;:::i;:::-;9386;9427:3;9414:11;9410:21;9397:35;9386:47;:::i;:::-;9459;9500:3;9487:11;9483:21;9470:35;9459:47;:::i;:::-;9532;9573:3;9560:11;9556:21;9543:35;9532:47;:::i;:::-;9661:46;9702:4;9689:11;9684:3;9679;9674;9661:46;:::i;:::-;9646:61;;9731:7;9728:1;9721:18;9763:4;9760:1;9753:15;14:159:46;108:6;141:2;129:15;;126:24;-1:-1:-1;123:44:46;;;163:1;160;153:12;123:44;14:159;;;;:::o;178:670::-;389:6;397;405;413;466:3;454:9;445:7;441:23;437:33;434:53;;;483:1;480;473:12;434:53;506;551:7;540:9;506:53;:::i;:::-;496:63;;593:3;582:9;578:19;616:7;612:2;609:15;606:35;;;637:1;634;627:12;606:35;675:2;664:9;660:18;650:28;;697:46;735:7;731:2;697:46;:::i;:::-;687:56;;;779:7;773:3;762:9;758:19;755:32;752:52;;;800:1;797;790:12;752:52;-1:-1:-1;178:670:46;;;;-1:-1:-1;178:670:46;;838:3;823:19;;178:670::o" + }, + "methodIdentifiers": { + "verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[8])": "c9219a7a" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"_pA\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"_pB\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"_pC\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[8]\",\"name\":\"_pubSignals\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/verifiers/idcard/Verifier_idcard_sha384.sol\":\"Verifier_idcard_sha384\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/verifiers/idcard/Verifier_idcard_sha384.sol\":{\"keccak256\":\"0x45544209241fc70ce364bff4fe9525490fb4f44c6e75cc2142d5986c6847e1d8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://fb10eb368a4cfd1a9fab46bf335de6a31d71252ec63d52abd697d4d24c3999c3\",\"dweb:/ipfs/QmcSs51snqQfiCaKeBudoK1WyJYUPL96dTBfKHbvuiVZ7r\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "contracts/verifiers/idcard/Verifier_idcard_sha512.sol": { + "Verifier_idcard_sha512": { + "abi": [ + { + "inputs": [ + { + "internalType": "uint256[2]", + "name": "_pA", + "type": "uint256[2]" + }, + { + "internalType": "uint256[2][2]", + "name": "_pB", + "type": "uint256[2][2]" + }, + { + "internalType": "uint256[2]", + "name": "_pC", + "type": "uint256[2]" + }, + { + "internalType": "uint256[8]", + "name": "_pubSignals", + "type": "uint256[8]" + } + ], + "name": "verifyProof", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "6080604052348015600f57600080fd5b506107ea8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074d565b610057565b604051901515815260200160405180910390f35b60006106aa565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f0efa8b7e9991fb75f19bb5ababa191b27889b6c72ddfe31e7b0e757882230f0285527f02c6feaa298fd3c18d6be3dad14166d2b0e42b4cac90c3f182e76b4e162ede0c60208601526000608086018661019a87357f2bfe6c32b4a50fb7d2b644be488602b7e2b458da3e6bbf3cff8953b7821e33d67f165a5eca7b5b08d42a140bb16d521ae5a9a9d878fb1d69a1b50e2d217c6d51ac84610092565b6101ea60208801357f210589b1d0b9623ccd9c768e7a8c8250711c866c53fe6131112d6473aa3cf5f97f2030c627df3f038d0d67b730a7b56604384a228c18376dee9e59c39ef1c81ab184610092565b61023a60408801357f0bb0716a88add9ea812103cb0210644eddc49a537b336ff73d0946b5f37010a97f1f15a1f568d0f4f0bdc70a1cfead7ecf49aef1bd66747f6ea7d005b56fca8dbf84610092565b61028a60608801357f0474bd03c61742c855ecc6bccbc089e95b9f92f182e2ea01099f1081934f30d37f0ed3ffc12a1552c83f4c0798c1d2bd2bf7a2a3d98984d4ff637f80d0a49e760284610092565b6102da60808801357f1578253252769f50fb14e2ddbc387dfdb907cb90f1e4393ea6a316f022a4b4e77f290118d4cd323220daa11ff48229b0b440ced4c9841e936263a5fc8d79daf69584610092565b61032a60a08801357f2bea0a06bc725b76b6ba723e619e43991d3601d4aadee7b393a91b0d72bba1c97f0134676e2c8b2559a41d9eaf556067fefeb2de935dc34a7b523a173ab0200c6c84610092565b61037a60c08801357f2b13eab7a13a737fb3123a1ad5538a1b367d2b8afb7cb91fda92098e32aa35417f14086337a06e6fe01c04ffd6c35807d5d6cd587818ca48f38758b3bb55cede8b84610092565b6103ca60e08801357f1c8636c70f3c36725dfd6222023c45c5994bbfef581a63643f302599c027294c7f15eb31619a7319107f0a8602f8b4b0c4432d57b01e0e6d69d8c51ab4e3700d6984610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f0ae9213fb9b06c533329ce9cf2c60c7cdfd3710f3026143f954d12139b2236c66102808201527f2140e18997ae8f5a7076abe639af9d1b57663c31fc00e9a2c46230b88da373646102a08201527f04700c77cef08a5aed2edb137cf02d1e04e9bda237232e3c8250db511bb2bc506102c08201527f290872336d0f063986f77518a56633db0ea7c8f0111b70e644e64183415248406102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c2600084013561005e565b6106cf602084013561005e565b6106dc604084013561005e565b6106e9606084013561005e565b6106f6608084013561005e565b61070360a084013561005e565b61071060c084013561005e565b61071d60e084013561005e565b61072a818486888a6100fd565b90508060005260206000f35b806040810183101561074757600080fd5b92915050565b600080600080610200858703121561076457600080fd5b61076e8686610736565b935060c085018681111561078157600080fd5b6040860193506107918782610736565b92505085610200860111156107a557600080fd5b5091949093509091610100019056fea2646970667358221220032f97f4ecb303fa37aa53fc81dae620186875de0d2d5f583823971e663efc7064736f6c634300081b0033", + "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x7EA DUP1 PUSH2 0x1F 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 0xC9219A7A EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x74D 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 0x6AA JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x8F JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP POP DUP1 PUSH2 0xF6 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH32 0xEFA8B7E9991FB75F19BB5ABABA191B27889B6C72DDFE31E7B0E757882230F02 DUP6 MSTORE PUSH32 0x2C6FEAA298FD3C18D6BE3DAD14166D2B0E42B4CAC90C3F182E76B4E162EDE0C PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x0 PUSH1 0x80 DUP7 ADD DUP7 PUSH2 0x19A DUP8 CALLDATALOAD PUSH32 0x2BFE6C32B4A50FB7D2B644BE488602B7E2B458DA3E6BBF3CFF8953B7821E33D6 PUSH32 0x165A5ECA7B5B08D42A140BB16D521AE5A9A9D878FB1D69A1B50E2D217C6D51AC DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x1EA PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH32 0x210589B1D0B9623CCD9C768E7A8C8250711C866C53FE6131112D6473AA3CF5F9 PUSH32 0x2030C627DF3F038D0D67B730A7B56604384A228C18376DEE9E59C39EF1C81AB1 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x23A PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH32 0xBB0716A88ADD9EA812103CB0210644EDDC49A537B336FF73D0946B5F37010A9 PUSH32 0x1F15A1F568D0F4F0BDC70A1CFEAD7ECF49AEF1BD66747F6EA7D005B56FCA8DBF DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x28A PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH32 0x474BD03C61742C855ECC6BCCBC089E95B9F92F182E2EA01099F1081934F30D3 PUSH32 0xED3FFC12A1552C83F4C0798C1D2BD2BF7A2A3D98984D4FF637F80D0A49E7602 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x2DA PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH32 0x1578253252769F50FB14E2DDBC387DFDB907CB90F1E4393EA6A316F022A4B4E7 PUSH32 0x290118D4CD323220DAA11FF48229B0B440CED4C9841E936263A5FC8D79DAF695 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x32A PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH32 0x2BEA0A06BC725B76B6BA723E619E43991D3601D4AADEE7B393A91B0D72BBA1C9 PUSH32 0x134676E2C8B2559A41D9EAF556067FEFEB2DE935DC34A7B523A173AB0200C6C DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x37A PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH32 0x2B13EAB7A13A737FB3123A1AD5538A1B367D2B8AFB7CB91FDA92098E32AA3541 PUSH32 0x14086337A06E6FE01C04FFD6C35807D5D6CD587818CA48F38758B3BB55CEDE8B DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x3CA PUSH1 0xE0 DUP9 ADD CALLDATALOAD PUSH32 0x1C8636C70F3C36725DFD6222023C45C5994BBFEF581A63643F302599C027294C PUSH32 0x15EB31619A7319107F0A8602F8B4B0C4432D57B01E0E6D69D8C51AB4E3700D69 DUP5 PUSH2 0x92 JUMP JUMPDEST POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD PUSH1 0x20 DUP3 ADD MSTORE DUP4 CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x2D4D9AA7E302D9DF41749D5507949D05DBEA33FBB16C643B22F599A2BE6DF2E2 PUSH1 0xC0 DUP3 ADD MSTORE PUSH32 0x14BEDD503C37CEB061D8EC60209FE345CE89830A19230301F076CAFF004D1926 PUSH1 0xE0 DUP3 ADD MSTORE PUSH32 0x967032FCBF776D1AFC985F88877F182D38480A653F2DECAA9794CBC3BF3060C PUSH2 0x100 DUP3 ADD MSTORE PUSH32 0xE187847AD4C798374D0D6732BF501847DD68BC0E071241E0213BC7FC13DB7AB PUSH2 0x120 DUP3 ADD MSTORE PUSH32 0x304CFBD1E08A704A99F5E847D93F8C3CAAFDDEC46B7A0D379DA69A4D112346A7 PUSH2 0x140 DUP3 ADD MSTORE PUSH32 0x1739C1B1A457A8C7313123D24D2F9192F896B7C63EEA05A9D57F06547AD0CEC8 PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x0 DUP8 ADD MLOAD PUSH2 0x180 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 ADD DUP8 ADD MLOAD PUSH2 0x1A0 DUP3 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x1C0 DUP3 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x1E0 DUP3 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x200 DUP3 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x220 DUP3 ADD MSTORE DUP5 CALLDATALOAD PUSH2 0x240 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x260 DUP3 ADD MSTORE PUSH32 0xAE9213FB9B06C533329CE9CF2C60C7CDFD3710F3026143F954D12139B2236C6 PUSH2 0x280 DUP3 ADD MSTORE PUSH32 0x2140E18997AE8F5A7076ABE639AF9D1B57663C31FC00E9A2C46230B88DA37364 PUSH2 0x2A0 DUP3 ADD MSTORE PUSH32 0x4700C77CEF08A5AED2EDB137CF02D1E04E9BDA237232E3C8250DB511BB2BC50 PUSH2 0x2C0 DUP3 ADD MSTORE PUSH32 0x290872336D0F063986F77518A56633DB0EA7C8F0111B70E644E6418341524840 PUSH2 0x2E0 DUP3 ADD MSTORE PUSH1 0x20 DUP2 PUSH2 0x300 DUP4 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 MLOAD AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x380 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x6C2 PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6CF PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6DC PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6E9 PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6F6 PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x703 PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x710 PUSH1 0xC0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x71D PUSH1 0xE0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x72A DUP2 DUP5 DUP7 DUP9 DUP11 PUSH2 0xFD JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP1 PUSH1 0x40 DUP2 ADD DUP4 LT ISZERO PUSH2 0x747 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x200 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x764 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76E DUP7 DUP7 PUSH2 0x736 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP6 ADD DUP7 DUP2 GT ISZERO PUSH2 0x781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP7 ADD SWAP4 POP PUSH2 0x791 DUP8 DUP3 PUSH2 0x736 JUMP JUMPDEST SWAP3 POP POP DUP6 PUSH2 0x200 DUP7 ADD GT ISZERO PUSH2 0x7A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP5 SWAP1 SWAP4 POP SWAP1 SWAP2 PUSH2 0x100 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SUB 0x2F SWAP8 DELEGATECALL 0xEC 0xB3 SUB STATICCALL CALLDATACOPY 0xAA MSTORE8 0xFC DUP2 0xDA 0xE6 KECCAK256 XOR PUSH9 0x75DE0D2D5F58382397 0x1E PUSH7 0x3EFC7064736F6C PUSH4 0x4300081B STOP CALLER ", + "sourceMap": "831:8956:44:-:0;;;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": { + "@verifyProof_18234": { + "entryPoint": 87, + "id": 18234, + "parameterSlots": 4, + "returnSlots": 1 + }, + "abi_decode_array_uint256_calldata": { + "entryPoint": 1846, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + }, + "abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptrt_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptrt_array$_t_uint256_$2_calldata_ptrt_array$_t_uint256_$8_calldata_ptr": { + "entryPoint": 1869, + "id": null, + "parameterSlots": 2, + "returnSlots": 4 + }, + "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": { + "entryPoint": null, + "id": null, + "parameterSlots": 2, + "returnSlots": 1 + } + }, + "generatedSources": [ + { + "ast": { + "nativeSrc": "0:1042:46", + "nodeType": "YulBlock", + "src": "0:1042:46", + "statements": [ + { + "nativeSrc": "6:3:46", + "nodeType": "YulBlock", + "src": "6:3:46", + "statements": [] + }, + { + "body": { + "nativeSrc": "86:87:46", + "nodeType": "YulBlock", + "src": "86:87:46", + "statements": [ + { + "nativeSrc": "96:18:46", + "nodeType": "YulAssignment", + "src": "96:18:46", + "value": { + "name": "offset", + "nativeSrc": "108:6:46", + "nodeType": "YulIdentifier", + "src": "108:6:46" + }, + "variableNames": [ + { + "name": "arrayPos", + "nativeSrc": "96:8:46", + "nodeType": "YulIdentifier", + "src": "96:8:46" + } + ] + }, + { + "body": { + "nativeSrc": "151:16:46", + "nodeType": "YulBlock", + "src": "151:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "160:1:46", + "nodeType": "YulLiteral", + "src": "160:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "163:1:46", + "nodeType": "YulLiteral", + "src": "163:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "153:6:46", + "nodeType": "YulIdentifier", + "src": "153:6:46" + }, + "nativeSrc": "153:12:46", + "nodeType": "YulFunctionCall", + "src": "153:12:46" + }, + "nativeSrc": "153:12:46", + "nodeType": "YulExpressionStatement", + "src": "153:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nativeSrc": "133:6:46", + "nodeType": "YulIdentifier", + "src": "133:6:46" + }, + { + "kind": "number", + "nativeSrc": "141:2:46", + "nodeType": "YulLiteral", + "src": "141:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "129:3:46", + "nodeType": "YulIdentifier", + "src": "129:3:46" + }, + "nativeSrc": "129:15:46", + "nodeType": "YulFunctionCall", + "src": "129:15:46" + }, + { + "name": "end", + "nativeSrc": "146:3:46", + "nodeType": "YulIdentifier", + "src": "146:3:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "126:2:46", + "nodeType": "YulIdentifier", + "src": "126:2:46" + }, + "nativeSrc": "126:24:46", + "nodeType": "YulFunctionCall", + "src": "126:24:46" + }, + "nativeSrc": "123:44:46", + "nodeType": "YulIf", + "src": "123:44:46" + } + ] + }, + "name": "abi_decode_array_uint256_calldata", + "nativeSrc": "14:159:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nativeSrc": "57:6:46", + "nodeType": "YulTypedName", + "src": "57:6:46", + "type": "" + }, + { + "name": "end", + "nativeSrc": "65:3:46", + "nodeType": "YulTypedName", + "src": "65:3:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nativeSrc": "73:8:46", + "nodeType": "YulTypedName", + "src": "73:8:46", + "type": "" + } + ], + "src": "14:159:46" + }, + { + "body": { + "nativeSrc": "424:424:46", + "nodeType": "YulBlock", + "src": "424:424:46", + "statements": [ + { + "body": { + "nativeSrc": "471:16:46", + "nodeType": "YulBlock", + "src": "471:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "480:1:46", + "nodeType": "YulLiteral", + "src": "480:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "483:1:46", + "nodeType": "YulLiteral", + "src": "483:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "473:6:46", + "nodeType": "YulIdentifier", + "src": "473:6:46" + }, + "nativeSrc": "473:12:46", + "nodeType": "YulFunctionCall", + "src": "473:12:46" + }, + "nativeSrc": "473:12:46", + "nodeType": "YulExpressionStatement", + "src": "473:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nativeSrc": "445:7:46", + "nodeType": "YulIdentifier", + "src": "445:7:46" + }, + { + "name": "headStart", + "nativeSrc": "454:9:46", + "nodeType": "YulIdentifier", + "src": "454:9:46" + } + ], + "functionName": { + "name": "sub", + "nativeSrc": "441:3:46", + "nodeType": "YulIdentifier", + "src": "441:3:46" + }, + "nativeSrc": "441:23:46", + "nodeType": "YulFunctionCall", + "src": "441:23:46" + }, + { + "kind": "number", + "nativeSrc": "466:3:46", + "nodeType": "YulLiteral", + "src": "466:3:46", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "slt", + "nativeSrc": "437:3:46", + "nodeType": "YulIdentifier", + "src": "437:3:46" + }, + "nativeSrc": "437:33:46", + "nodeType": "YulFunctionCall", + "src": "437:33:46" + }, + "nativeSrc": "434:53:46", + "nodeType": "YulIf", + "src": "434:53:46" + }, + { + "nativeSrc": "496:63:46", + "nodeType": "YulAssignment", + "src": "496:63:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "540:9:46", + "nodeType": "YulIdentifier", + "src": "540:9:46" + }, + { + "name": "dataEnd", + "nativeSrc": "551:7:46", + "nodeType": "YulIdentifier", + "src": "551:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_calldata", + "nativeSrc": "506:33:46", + "nodeType": "YulIdentifier", + "src": "506:33:46" + }, + "nativeSrc": "506:53:46", + "nodeType": "YulFunctionCall", + "src": "506:53:46" + }, + "variableNames": [ + { + "name": "value0", + "nativeSrc": "496:6:46", + "nodeType": "YulIdentifier", + "src": "496:6:46" + } + ] + }, + { + "nativeSrc": "568:29:46", + "nodeType": "YulVariableDeclaration", + "src": "568:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "582:9:46", + "nodeType": "YulIdentifier", + "src": "582:9:46" + }, + { + "kind": "number", + "nativeSrc": "593:3:46", + "nodeType": "YulLiteral", + "src": "593:3:46", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "578:3:46", + "nodeType": "YulIdentifier", + "src": "578:3:46" + }, + "nativeSrc": "578:19:46", + "nodeType": "YulFunctionCall", + "src": "578:19:46" + }, + "variables": [ + { + "name": "_1", + "nativeSrc": "572:2:46", + "nodeType": "YulTypedName", + "src": "572:2:46", + "type": "" + } + ] + }, + { + "body": { + "nativeSrc": "625:16:46", + "nodeType": "YulBlock", + "src": "625:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "634:1:46", + "nodeType": "YulLiteral", + "src": "634:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "637:1:46", + "nodeType": "YulLiteral", + "src": "637:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "627:6:46", + "nodeType": "YulIdentifier", + "src": "627:6:46" + }, + "nativeSrc": "627:12:46", + "nodeType": "YulFunctionCall", + "src": "627:12:46" + }, + "nativeSrc": "627:12:46", + "nodeType": "YulExpressionStatement", + "src": "627:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "612:2:46", + "nodeType": "YulIdentifier", + "src": "612:2:46" + }, + { + "name": "dataEnd", + "nativeSrc": "616:7:46", + "nodeType": "YulIdentifier", + "src": "616:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "609:2:46", + "nodeType": "YulIdentifier", + "src": "609:2:46" + }, + "nativeSrc": "609:15:46", + "nodeType": "YulFunctionCall", + "src": "609:15:46" + }, + "nativeSrc": "606:35:46", + "nodeType": "YulIf", + "src": "606:35:46" + }, + { + "nativeSrc": "650:28:46", + "nodeType": "YulAssignment", + "src": "650:28:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "664:9:46", + "nodeType": "YulIdentifier", + "src": "664:9:46" + }, + { + "kind": "number", + "nativeSrc": "675:2:46", + "nodeType": "YulLiteral", + "src": "675:2:46", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "660:3:46", + "nodeType": "YulIdentifier", + "src": "660:3:46" + }, + "nativeSrc": "660:18:46", + "nodeType": "YulFunctionCall", + "src": "660:18:46" + }, + "variableNames": [ + { + "name": "value1", + "nativeSrc": "650:6:46", + "nodeType": "YulIdentifier", + "src": "650:6:46" + } + ] + }, + { + "nativeSrc": "687:56:46", + "nodeType": "YulAssignment", + "src": "687:56:46", + "value": { + "arguments": [ + { + "name": "_1", + "nativeSrc": "731:2:46", + "nodeType": "YulIdentifier", + "src": "731:2:46" + }, + { + "name": "dataEnd", + "nativeSrc": "735:7:46", + "nodeType": "YulIdentifier", + "src": "735:7:46" + } + ], + "functionName": { + "name": "abi_decode_array_uint256_calldata", + "nativeSrc": "697:33:46", + "nodeType": "YulIdentifier", + "src": "697:33:46" + }, + "nativeSrc": "697:46:46", + "nodeType": "YulFunctionCall", + "src": "697:46:46" + }, + "variableNames": [ + { + "name": "value2", + "nativeSrc": "687:6:46", + "nodeType": "YulIdentifier", + "src": "687:6:46" + } + ] + }, + { + "body": { + "nativeSrc": "788:16:46", + "nodeType": "YulBlock", + "src": "788:16:46", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nativeSrc": "797:1:46", + "nodeType": "YulLiteral", + "src": "797:1:46", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nativeSrc": "800:1:46", + "nodeType": "YulLiteral", + "src": "800:1:46", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nativeSrc": "790:6:46", + "nodeType": "YulIdentifier", + "src": "790:6:46" + }, + "nativeSrc": "790:12:46", + "nodeType": "YulFunctionCall", + "src": "790:12:46" + }, + "nativeSrc": "790:12:46", + "nodeType": "YulExpressionStatement", + "src": "790:12:46" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "762:9:46", + "nodeType": "YulIdentifier", + "src": "762:9:46" + }, + { + "kind": "number", + "nativeSrc": "773:3:46", + "nodeType": "YulLiteral", + "src": "773:3:46", + "type": "", + "value": "512" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "758:3:46", + "nodeType": "YulIdentifier", + "src": "758:3:46" + }, + "nativeSrc": "758:19:46", + "nodeType": "YulFunctionCall", + "src": "758:19:46" + }, + { + "name": "dataEnd", + "nativeSrc": "779:7:46", + "nodeType": "YulIdentifier", + "src": "779:7:46" + } + ], + "functionName": { + "name": "gt", + "nativeSrc": "755:2:46", + "nodeType": "YulIdentifier", + "src": "755:2:46" + }, + "nativeSrc": "755:32:46", + "nodeType": "YulFunctionCall", + "src": "755:32:46" + }, + "nativeSrc": "752:52:46", + "nodeType": "YulIf", + "src": "752:52:46" + }, + { + "nativeSrc": "813:29:46", + "nodeType": "YulAssignment", + "src": "813:29:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "827:9:46", + "nodeType": "YulIdentifier", + "src": "827:9:46" + }, + { + "kind": "number", + "nativeSrc": "838:3:46", + "nodeType": "YulLiteral", + "src": "838:3:46", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "823:3:46", + "nodeType": "YulIdentifier", + "src": "823:3:46" + }, + "nativeSrc": "823:19:46", + "nodeType": "YulFunctionCall", + "src": "823:19:46" + }, + "variableNames": [ + { + "name": "value3", + "nativeSrc": "813:6:46", + "nodeType": "YulIdentifier", + "src": "813:6:46" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptrt_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptrt_array$_t_uint256_$2_calldata_ptrt_array$_t_uint256_$8_calldata_ptr", + "nativeSrc": "178:670:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "366:9:46", + "nodeType": "YulTypedName", + "src": "366:9:46", + "type": "" + }, + { + "name": "dataEnd", + "nativeSrc": "377:7:46", + "nodeType": "YulTypedName", + "src": "377:7:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nativeSrc": "389:6:46", + "nodeType": "YulTypedName", + "src": "389:6:46", + "type": "" + }, + { + "name": "value1", + "nativeSrc": "397:6:46", + "nodeType": "YulTypedName", + "src": "397:6:46", + "type": "" + }, + { + "name": "value2", + "nativeSrc": "405:6:46", + "nodeType": "YulTypedName", + "src": "405:6:46", + "type": "" + }, + { + "name": "value3", + "nativeSrc": "413:6:46", + "nodeType": "YulTypedName", + "src": "413:6:46", + "type": "" + } + ], + "src": "178:670:46" + }, + { + "body": { + "nativeSrc": "948:92:46", + "nodeType": "YulBlock", + "src": "948:92:46", + "statements": [ + { + "nativeSrc": "958:26:46", + "nodeType": "YulAssignment", + "src": "958:26:46", + "value": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "970:9:46", + "nodeType": "YulIdentifier", + "src": "970:9:46" + }, + { + "kind": "number", + "nativeSrc": "981:2:46", + "nodeType": "YulLiteral", + "src": "981:2:46", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nativeSrc": "966:3:46", + "nodeType": "YulIdentifier", + "src": "966:3:46" + }, + "nativeSrc": "966:18:46", + "nodeType": "YulFunctionCall", + "src": "966:18:46" + }, + "variableNames": [ + { + "name": "tail", + "nativeSrc": "958:4:46", + "nodeType": "YulIdentifier", + "src": "958:4:46" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nativeSrc": "1000:9:46", + "nodeType": "YulIdentifier", + "src": "1000:9:46" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "value0", + "nativeSrc": "1025:6:46", + "nodeType": "YulIdentifier", + "src": "1025:6:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1018:6:46", + "nodeType": "YulIdentifier", + "src": "1018:6:46" + }, + "nativeSrc": "1018:14:46", + "nodeType": "YulFunctionCall", + "src": "1018:14:46" + } + ], + "functionName": { + "name": "iszero", + "nativeSrc": "1011:6:46", + "nodeType": "YulIdentifier", + "src": "1011:6:46" + }, + "nativeSrc": "1011:22:46", + "nodeType": "YulFunctionCall", + "src": "1011:22:46" + } + ], + "functionName": { + "name": "mstore", + "nativeSrc": "993:6:46", + "nodeType": "YulIdentifier", + "src": "993:6:46" + }, + "nativeSrc": "993:41:46", + "nodeType": "YulFunctionCall", + "src": "993:41:46" + }, + "nativeSrc": "993:41:46", + "nodeType": "YulExpressionStatement", + "src": "993:41:46" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nativeSrc": "853:187:46", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nativeSrc": "917:9:46", + "nodeType": "YulTypedName", + "src": "917:9:46", + "type": "" + }, + { + "name": "value0", + "nativeSrc": "928:6:46", + "nodeType": "YulTypedName", + "src": "928:6:46", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nativeSrc": "939:4:46", + "nodeType": "YulTypedName", + "src": "939:4:46", + "type": "" + } + ], + "src": "853:187:46" + } + ] + }, + "contents": "{\n { }\n function abi_decode_array_uint256_calldata(offset, end) -> arrayPos\n {\n arrayPos := offset\n if gt(add(offset, 64), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_array$_t_uint256_$2_calldata_ptrt_array$_t_array$_t_uint256_$2_calldata_ptr_$2_calldata_ptrt_array$_t_uint256_$2_calldata_ptrt_array$_t_uint256_$8_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 512) { revert(0, 0) }\n value0 := abi_decode_array_uint256_calldata(headStart, dataEnd)\n let _1 := add(headStart, 192)\n if gt(_1, dataEnd) { revert(0, 0) }\n value1 := add(headStart, 64)\n value2 := abi_decode_array_uint256_calldata(_1, dataEnd)\n if gt(add(headStart, 512), dataEnd) { revert(0, 0) }\n value3 := add(headStart, 256)\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}", + "id": 46, + "language": "Yul", + "name": "#utility.yul" + } + ], + "immutableReferences": {}, + "linkReferences": {}, + "object": "608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074d565b610057565b604051901515815260200160405180910390f35b60006106aa565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f0efa8b7e9991fb75f19bb5ababa191b27889b6c72ddfe31e7b0e757882230f0285527f02c6feaa298fd3c18d6be3dad14166d2b0e42b4cac90c3f182e76b4e162ede0c60208601526000608086018661019a87357f2bfe6c32b4a50fb7d2b644be488602b7e2b458da3e6bbf3cff8953b7821e33d67f165a5eca7b5b08d42a140bb16d521ae5a9a9d878fb1d69a1b50e2d217c6d51ac84610092565b6101ea60208801357f210589b1d0b9623ccd9c768e7a8c8250711c866c53fe6131112d6473aa3cf5f97f2030c627df3f038d0d67b730a7b56604384a228c18376dee9e59c39ef1c81ab184610092565b61023a60408801357f0bb0716a88add9ea812103cb0210644eddc49a537b336ff73d0946b5f37010a97f1f15a1f568d0f4f0bdc70a1cfead7ecf49aef1bd66747f6ea7d005b56fca8dbf84610092565b61028a60608801357f0474bd03c61742c855ecc6bccbc089e95b9f92f182e2ea01099f1081934f30d37f0ed3ffc12a1552c83f4c0798c1d2bd2bf7a2a3d98984d4ff637f80d0a49e760284610092565b6102da60808801357f1578253252769f50fb14e2ddbc387dfdb907cb90f1e4393ea6a316f022a4b4e77f290118d4cd323220daa11ff48229b0b440ced4c9841e936263a5fc8d79daf69584610092565b61032a60a08801357f2bea0a06bc725b76b6ba723e619e43991d3601d4aadee7b393a91b0d72bba1c97f0134676e2c8b2559a41d9eaf556067fefeb2de935dc34a7b523a173ab0200c6c84610092565b61037a60c08801357f2b13eab7a13a737fb3123a1ad5538a1b367d2b8afb7cb91fda92098e32aa35417f14086337a06e6fe01c04ffd6c35807d5d6cd587818ca48f38758b3bb55cede8b84610092565b6103ca60e08801357f1c8636c70f3c36725dfd6222023c45c5994bbfef581a63643f302599c027294c7f15eb31619a7319107f0a8602f8b4b0c4432d57b01e0e6d69d8c51ab4e3700d6984610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f0ae9213fb9b06c533329ce9cf2c60c7cdfd3710f3026143f954d12139b2236c66102808201527f2140e18997ae8f5a7076abe639af9d1b57663c31fc00e9a2c46230b88da373646102a08201527f04700c77cef08a5aed2edb137cf02d1e04e9bda237232e3c8250db511bb2bc506102c08201527f290872336d0f063986f77518a56633db0ea7c8f0111b70e644e64183415248406102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c2600084013561005e565b6106cf602084013561005e565b6106dc604084013561005e565b6106e9606084013561005e565b6106f6608084013561005e565b61070360a084013561005e565b61071060c084013561005e565b61071d60e084013561005e565b61072a818486888a6100fd565b90508060005260206000f35b806040810183101561074757600080fd5b92915050565b600080600080610200858703121561076457600080fd5b61076e8686610736565b935060c085018681111561078157600080fd5b6040860193506107918782610736565b92505085610200860111156107a557600080fd5b5091949093509091610100019056fea2646970667358221220032f97f4ecb303fa37aa53fc81dae620186875de0d2d5f583823971e663efc7064736f6c634300081b0033", + "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 0xC9219A7A EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x74D 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 0x6AA JUMP JUMPDEST PUSH32 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001 DUP2 LT PUSH2 0x8F JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP4 DUP2 MSTORE DUP5 PUSH1 0x20 DUP3 ADD MSTORE DUP6 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x40 DUP2 PUSH1 0x60 DUP4 PUSH1 0x7 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP DUP2 PUSH2 0xC5 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP3 MLOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP4 ADD MLOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP4 PUSH1 0x80 DUP4 PUSH1 0x6 PUSH2 0x7D0 GAS SUB STATICCALL SWAP2 POP POP DUP1 PUSH2 0xF6 JUMPI PUSH1 0x0 DUP1 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST POP POP POP POP POP JUMP JUMPDEST PUSH32 0xEFA8B7E9991FB75F19BB5ABABA191B27889B6C72DDFE31E7B0E757882230F02 DUP6 MSTORE PUSH32 0x2C6FEAA298FD3C18D6BE3DAD14166D2B0E42B4CAC90C3F182E76B4E162EDE0C PUSH1 0x20 DUP7 ADD MSTORE PUSH1 0x0 PUSH1 0x80 DUP7 ADD DUP7 PUSH2 0x19A DUP8 CALLDATALOAD PUSH32 0x2BFE6C32B4A50FB7D2B644BE488602B7E2B458DA3E6BBF3CFF8953B7821E33D6 PUSH32 0x165A5ECA7B5B08D42A140BB16D521AE5A9A9D878FB1D69A1B50E2D217C6D51AC DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x1EA PUSH1 0x20 DUP9 ADD CALLDATALOAD PUSH32 0x210589B1D0B9623CCD9C768E7A8C8250711C866C53FE6131112D6473AA3CF5F9 PUSH32 0x2030C627DF3F038D0D67B730A7B56604384A228C18376DEE9E59C39EF1C81AB1 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x23A PUSH1 0x40 DUP9 ADD CALLDATALOAD PUSH32 0xBB0716A88ADD9EA812103CB0210644EDDC49A537B336FF73D0946B5F37010A9 PUSH32 0x1F15A1F568D0F4F0BDC70A1CFEAD7ECF49AEF1BD66747F6EA7D005B56FCA8DBF DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x28A PUSH1 0x60 DUP9 ADD CALLDATALOAD PUSH32 0x474BD03C61742C855ECC6BCCBC089E95B9F92F182E2EA01099F1081934F30D3 PUSH32 0xED3FFC12A1552C83F4C0798C1D2BD2BF7A2A3D98984D4FF637F80D0A49E7602 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x2DA PUSH1 0x80 DUP9 ADD CALLDATALOAD PUSH32 0x1578253252769F50FB14E2DDBC387DFDB907CB90F1E4393EA6A316F022A4B4E7 PUSH32 0x290118D4CD323220DAA11FF48229B0B440CED4C9841E936263A5FC8D79DAF695 DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x32A PUSH1 0xA0 DUP9 ADD CALLDATALOAD PUSH32 0x2BEA0A06BC725B76B6BA723E619E43991D3601D4AADEE7B393A91B0D72BBA1C9 PUSH32 0x134676E2C8B2559A41D9EAF556067FEFEB2DE935DC34A7B523A173AB0200C6C DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x37A PUSH1 0xC0 DUP9 ADD CALLDATALOAD PUSH32 0x2B13EAB7A13A737FB3123A1AD5538A1B367D2B8AFB7CB91FDA92098E32AA3541 PUSH32 0x14086337A06E6FE01C04FFD6C35807D5D6CD587818CA48F38758B3BB55CEDE8B DUP5 PUSH2 0x92 JUMP JUMPDEST PUSH2 0x3CA PUSH1 0xE0 DUP9 ADD CALLDATALOAD PUSH32 0x1C8636C70F3C36725DFD6222023C45C5994BBFEF581A63643F302599C027294C PUSH32 0x15EB31619A7319107F0A8602F8B4B0C4432D57B01E0E6D69D8C51AB4E3700D69 DUP5 PUSH2 0x92 JUMP JUMPDEST POP DUP3 CALLDATALOAD DUP2 MSTORE PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH32 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47 SUB MOD PUSH1 0x20 DUP3 ADD MSTORE DUP4 CALLDATALOAD PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH1 0x60 DUP3 ADD MSTORE PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH1 0x80 DUP3 ADD MSTORE PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH1 0xA0 DUP3 ADD MSTORE PUSH32 0x2D4D9AA7E302D9DF41749D5507949D05DBEA33FBB16C643B22F599A2BE6DF2E2 PUSH1 0xC0 DUP3 ADD MSTORE PUSH32 0x14BEDD503C37CEB061D8EC60209FE345CE89830A19230301F076CAFF004D1926 PUSH1 0xE0 DUP3 ADD MSTORE PUSH32 0x967032FCBF776D1AFC985F88877F182D38480A653F2DECAA9794CBC3BF3060C PUSH2 0x100 DUP3 ADD MSTORE PUSH32 0xE187847AD4C798374D0D6732BF501847DD68BC0E071241E0213BC7FC13DB7AB PUSH2 0x120 DUP3 ADD MSTORE PUSH32 0x304CFBD1E08A704A99F5E847D93F8C3CAAFDDEC46B7A0D379DA69A4D112346A7 PUSH2 0x140 DUP3 ADD MSTORE PUSH32 0x1739C1B1A457A8C7313123D24D2F9192F896B7C63EEA05A9D57F06547AD0CEC8 PUSH2 0x160 DUP3 ADD MSTORE PUSH1 0x0 DUP8 ADD MLOAD PUSH2 0x180 DUP3 ADD MSTORE PUSH1 0x20 PUSH1 0x0 ADD DUP8 ADD MLOAD PUSH2 0x1A0 DUP3 ADD MSTORE PUSH32 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2 PUSH2 0x1C0 DUP3 ADD MSTORE PUSH32 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED PUSH2 0x1E0 DUP3 ADD MSTORE PUSH32 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B PUSH2 0x200 DUP3 ADD MSTORE PUSH32 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA PUSH2 0x220 DUP3 ADD MSTORE DUP5 CALLDATALOAD PUSH2 0x240 DUP3 ADD MSTORE PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH2 0x260 DUP3 ADD MSTORE PUSH32 0xAE9213FB9B06C533329CE9CF2C60C7CDFD3710F3026143F954D12139B2236C6 PUSH2 0x280 DUP3 ADD MSTORE PUSH32 0x2140E18997AE8F5A7076ABE639AF9D1B57663C31FC00E9A2C46230B88DA37364 PUSH2 0x2A0 DUP3 ADD MSTORE PUSH32 0x4700C77CEF08A5AED2EDB137CF02D1E04E9BDA237232E3C8250DB511BB2BC50 PUSH2 0x2C0 DUP3 ADD MSTORE PUSH32 0x290872336D0F063986F77518A56633DB0EA7C8F0111B70E644E6418341524840 PUSH2 0x2E0 DUP3 ADD MSTORE PUSH1 0x20 DUP2 PUSH2 0x300 DUP4 PUSH1 0x8 PUSH2 0x7D0 GAS SUB STATICCALL SWAP1 MLOAD AND SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x380 DUP2 ADD PUSH1 0x40 MSTORE PUSH2 0x6C2 PUSH1 0x0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6CF PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6DC PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6E9 PUSH1 0x60 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x6F6 PUSH1 0x80 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x703 PUSH1 0xA0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x710 PUSH1 0xC0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x71D PUSH1 0xE0 DUP5 ADD CALLDATALOAD PUSH2 0x5E JUMP JUMPDEST PUSH2 0x72A DUP2 DUP5 DUP7 DUP9 DUP11 PUSH2 0xFD JUMP JUMPDEST SWAP1 POP DUP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 RETURN JUMPDEST DUP1 PUSH1 0x40 DUP2 ADD DUP4 LT ISZERO PUSH2 0x747 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x200 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x764 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x76E DUP7 DUP7 PUSH2 0x736 JUMP JUMPDEST SWAP4 POP PUSH1 0xC0 DUP6 ADD DUP7 DUP2 GT ISZERO PUSH2 0x781 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x40 DUP7 ADD SWAP4 POP PUSH2 0x791 DUP8 DUP3 PUSH2 0x736 JUMP JUMPDEST SWAP3 POP POP DUP6 PUSH2 0x200 DUP7 ADD GT ISZERO PUSH2 0x7A5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP SWAP2 SWAP5 SWAP1 SWAP4 POP SWAP1 SWAP2 PUSH2 0x100 ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SUB 0x2F SWAP8 DELEGATECALL 0xEC 0xB3 SUB STATICCALL CALLDATACOPY 0xAA MSTORE8 0xFC DUP2 0xDA 0xE6 KECCAK256 XOR PUSH9 0x75DE0D2D5F58382397 0x1E PUSH7 0x3EFC7064736F6C PUSH4 0x4300081B STOP CALLER ", + "sourceMap": "831:8956:44:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4784:5000;;;;;;:::i;:::-;;:::i;:::-;;;1018:14:46;;1011:22;993:41;;981:2;966:18;4784:5000:44;;;;;;;;4925:4;4964:163;;;5021:1;5018;5015:8;5005:108;;5057:1;5054;5047:12;5090:4;5087:1;5080:15;5005:108;4964:163;:::o;5231:738::-;5282:11;5327:4;5321:11;5361:1;5356:3;5349:14;5401:1;5396:2;5391:3;5387:12;5380:23;5441:1;5436:2;5431:3;5427:12;5420:23;5518:2;5513:3;5509:2;5504:3;5501:1;5494:4;5487:5;5483:16;5472:49;5461:60;;5549:7;5539:107;;5590:1;5587;5580:12;5623:4;5620:1;5613:15;5539:107;5691:2;5685:9;5680:2;5675:3;5671:12;5664:31;5747:2;5743;5739:11;5733:18;5728:2;5723:3;5719:12;5712:40;5827:2;5823;5818:3;5813;5810:1;5803:4;5796:5;5792:16;5781:49;5770:60;;;5858:7;5848:107;;5899:1;5896;5889:12;5932:4;5929:1;5922:15;5848:107;;5231:738;;;;:::o;5983:2880::-;6171:4;6158:18;;6215:4;6210:2;6200:13;;6193:27;6038:4;6088:8;6078:19;;6082:4;6310:62;6339:32;;6333:4;6327;6082;6310:62;:::i;:::-;6406:63;6464:2;6452:10;6448:19;6435:33;6429:4;6423;6417;6406:63;:::i;:::-;6503;6561:2;6549:10;6545:19;6532:33;6526:4;6520;6514;6503:63;:::i;:::-;6600;6658:2;6646:10;6642:19;6629:33;6623:4;6617;6611;6600:63;:::i;:::-;6697:64;6755:3;6743:10;6739:20;6726:34;6720:4;6714;6708;6697:64;:::i;:::-;6795;6853:3;6841:10;6837:20;6824:34;6818:4;6812;6806;6795:64;:::i;:::-;6893;6951:3;6939:10;6935:20;6922:34;6916:4;6910;6904;6893:64;:::i;:::-;6991;7049:3;7037:10;7033:20;7020:34;7014:4;7008;7002;6991:64;:::i;:::-;;7143:2;7130:16;7119:9;7112:35;7230:1;7223:2;7219;7215:11;7202:25;7199:1;7195:33;7191:41;7186:2;7175:9;7171:18;7164:69;7312:2;7299:16;7294:2;7283:9;7279:18;7272:44;7381:2;7377;7373:11;7360:25;7355:2;7344:9;7340:18;7333:53;7452:2;7448;7444:11;7431:25;7425:3;7414:9;7410:19;7403:54;7523:2;7519;7515:11;7502:25;7496:3;7485:9;7481:19;7474:54;7600:6;7594:3;7583:9;7579:19;7572:35;7652:6;7646:3;7635:9;7631:19;7624:35;7730:6;7724:3;7713:9;7709:19;7702:35;7782:6;7776:3;7765:9;7761:19;7754:35;7834:6;7828:3;7817:9;7813:19;7806:35;7886:6;7880:3;7869:9;7865:19;7858:35;7979:3;7973:4;7969:14;7963:21;7957:3;7946:9;7942:19;7935:50;8055:2;8050:3;8046:12;8040:4;8036:23;8030:30;8024:3;8013:9;8009:19;8002:59;8134:7;8128:3;8117:9;8113:19;8106:36;8187:7;8181:3;8170:9;8166:19;8159:36;8240:7;8234:3;8223:9;8219:19;8212:36;8293:7;8287:3;8276:9;8272:19;8265:36;8381:2;8368:16;8362:3;8351:9;8347:19;8340:45;8451:2;8447;8443:11;8430:25;8424:3;8413:9;8409:19;8402:54;8528:7;8522:3;8511:9;8507:19;8500:36;8581:7;8575:3;8564:9;8560:19;8553:36;8634:7;8628:3;8617:9;8613:19;8606:36;8687:7;8681:3;8670:9;8666:19;8659:36;8788:4;8777:9;8772:3;8761:9;8758:1;8751:4;8744:5;8740:16;8729:64;8832:16;;8819:30;;5983:2880;-1:-1:-1;;;;;;5983:2880:44:o;:::-;8895:4;8889:11;8936:8;8930:4;8926:19;8920:4;8913:33;9024:45;9065:1;9052:11;9048:19;9035:33;9024:45;:::i;:::-;9095:46;9136:2;9123:11;9119:20;9106:34;9095:46;:::i;:::-;9167;9208:2;9195:11;9191:20;9178:34;9167:46;:::i;:::-;9239;9280:2;9267:11;9263:20;9250:34;9239:46;:::i;:::-;9311:47;9352:3;9339:11;9335:21;9322:35;9311:47;:::i;:::-;9384;9425:3;9412:11;9408:21;9395:35;9384:47;:::i;:::-;9457;9498:3;9485:11;9481:21;9468:35;9457:47;:::i;:::-;9530;9571:3;9558:11;9554:21;9541:35;9530:47;:::i;:::-;9659:46;9700:4;9687:11;9682:3;9677;9672;9659:46;:::i;:::-;9644:61;;9729:7;9726:1;9719:18;9761:4;9758:1;9751:15;14:159:46;108:6;141:2;129:15;;126:24;-1:-1:-1;123:44:46;;;163:1;160;153:12;123:44;14:159;;;;:::o;178:670::-;389:6;397;405;413;466:3;454:9;445:7;441:23;437:33;434:53;;;483:1;480;473:12;434:53;506;551:7;540:9;506:53;:::i;:::-;496:63;;593:3;582:9;578:19;616:7;612:2;609:15;606:35;;;637:1;634;627:12;606:35;675:2;664:9;660:18;650:28;;697:46;735:7;731:2;697:46;:::i;:::-;687:56;;;779:7;773:3;762:9;758:19;755:32;752:52;;;800:1;797;790:12;752:52;-1:-1:-1;178:670:46;;;;-1:-1:-1;178:670:46;;838:3;823:19;;178:670::o" + }, + "methodIdentifiers": { + "verifyProof(uint256[2],uint256[2][2],uint256[2],uint256[8])": "c9219a7a" + } + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256[2]\",\"name\":\"_pA\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[2][2]\",\"name\":\"_pB\",\"type\":\"uint256[2][2]\"},{\"internalType\":\"uint256[2]\",\"name\":\"_pC\",\"type\":\"uint256[2]\"},{\"internalType\":\"uint256[8]\",\"name\":\"_pubSignals\",\"type\":\"uint256[8]\"}],\"name\":\"verifyProof\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/verifiers/idcard/Verifier_idcard_sha512.sol\":\"Verifier_idcard_sha512\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"contracts/verifiers/idcard/Verifier_idcard_sha512.sol\":{\"keccak256\":\"0x80191c89bdeec72d37a51428dfb73accae4d112cad41d06fe126350573a086f8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://b4bbfb6c6c881bb352e741c5a921e8d7dc691d7acc757f3d7c884eb5ae04c633\",\"dweb:/ipfs/QmSj24VsZEfdtAtnxmR1wAgiWPiXexetV7Pto7cr4LCfjw\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + }, + "solidity-bytes-utils/contracts/BytesLib.sol": { + "BytesLib": { + "abi": [], + "evm": { + "bytecode": { + "functionDebugData": {}, + "generatedSources": [], + "linkReferences": {}, + "object": "60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220459b770a03f5819a66f663cb02f8268cf1612a1dcf94c3b11d604bce5835b49d64736f6c634300081b0033", + "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 GASLIMIT SWAP12 PUSH24 0xA03F5819A66F663CB02F8268CF1612A1DCF94C3B11D604B 0xCE PC CALLDATALOAD 0xB4 SWAP14 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "370:18904:45:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;370:18904:45;;;;;;;;;;;;;;;;;" + }, + "deployedBytecode": { + "functionDebugData": {}, + "generatedSources": [], + "immutableReferences": {}, + "linkReferences": {}, + "object": "73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220459b770a03f5819a66f663cb02f8268cf1612a1dcf94c3b11d604bce5835b49d64736f6c634300081b0033", + "opcodes": "PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 GASLIMIT SWAP12 PUSH24 0xA03F5819A66F663CB02F8268CF1612A1DCF94C3B11D604B 0xCE PC CALLDATALOAD 0xB4 SWAP14 PUSH5 0x736F6C6343 STOP ADDMOD SHL STOP CALLER ", + "sourceMap": "370:18904:45:-:0;;;;;;;;" + }, + "methodIdentifiers": {} + }, + "metadata": "{\"compiler\":{\"version\":\"0.8.27+commit.40a35a09\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"solidity-bytes-utils/contracts/BytesLib.sol\":\"BytesLib\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"solidity-bytes-utils/contracts/BytesLib.sol\":{\"keccak256\":\"0xf75784dfc94ea43668eb195d5690a1dde1b6eda62017e73a3899721583821d29\",\"license\":\"Unlicense\",\"urls\":[\"bzz-raw://ca16cef8b94f3ac75d376489a668618f6c4595a906b939d674a883f4bf426014\",\"dweb:/ipfs/QmceGU7qhyFLSejaj6i4dEtMzXDCSF3aYDtW1UeKjXQaRn\"]}},\"version\":1}", + "storageLayout": { + "storage": [], + "types": null + } + } + } + } + } +} \ No newline at end of file diff --git a/ignition/deployments/chain-6913/deployed_addresses.json b/ignition/deployments/chain-6913/deployed_addresses.json index 952730d..a61a46f 100644 --- a/ignition/deployments/chain-6913/deployed_addresses.json +++ b/ignition/deployments/chain-6913/deployed_addresses.json @@ -34,5 +34,10 @@ "UpgradedAnonAadhaarCredentialIssuerModuleV1_0_3#AnonAadhaarCredentialIssuer": "0x6Efc82132dBfd08Faa03C69fbF2b87D1322736e9", "UpgradeAnonAadhaarCredentialIssuerModuleV1_0_3#AnonAadhaarCredentialIssuer": "0x7a195047Ed34666584522f24Dc99C7162cE34d76", "UpgradedPassportCredentialIssuerModuleV1_0_3#PassportCredentialIssuer": "0xbb3692FF3A721030e4c7E0963062E89A0f297BFE", - "UpgradePassportCredentialIssuerModuleV1_0_3#PassportCredentialIssuer": "0x51478d4bF112DcDb650aa07FE3d10E8a6D736EE0" + "UpgradePassportCredentialIssuerModuleV1_0_3#PassportCredentialIssuer": "0x51478d4bF112DcDb650aa07FE3d10E8a6D736EE0", + "DeployIdCardVerifiers#Verifier_idcard_sha1": "0x252cC24AE6F18235E249f46e2BA76FF17383FB3a", + "DeployIdCardVerifiers#Verifier_idcard_sha224": "0x19bf079EfA912B1234eB9d2341174eDDE31E9a78", + "DeployIdCardVerifiers#Verifier_idcard_sha256": "0x2A76394E2e321b084a2169dBF75ba4e7B593d98c", + "DeployIdCardVerifiers#Verifier_idcard_sha384": "0xd1bBc0f4602cB2ae6908C1e790BB1D71Be8994d3", + "DeployIdCardVerifiers#Verifier_idcard_sha512": "0x38c2458D2681FFfB0d30656FeF24665F0FD58a10" } diff --git a/ignition/deployments/chain-6913/journal.jsonl b/ignition/deployments/chain-6913/journal.jsonl index 90fc1b5..089bed0 100644 --- a/ignition/deployments/chain-6913/journal.jsonl +++ b/ignition/deployments/chain-6913/journal.jsonl @@ -221,4 +221,34 @@ {"futureId":"UpgradePassportCredentialIssuerModuleV1_0_3#PassportCredentialIssuerProxyFirstImplementationModule~ProxyAdmin.upgradeAndCall","networkInteractionId":1,"nonce":22,"type":"TRANSACTION_PREPARE_SEND"} {"futureId":"UpgradePassportCredentialIssuerModuleV1_0_3#PassportCredentialIssuerProxyFirstImplementationModule~ProxyAdmin.upgradeAndCall","networkInteractionId":1,"nonce":22,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"10000007"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"9999993"}},"hash":"0x28174ded2c045c07839d5a6d15aa7d1c44ae2b836fc6a32ce5e5ef26d8f634c1"},"type":"TRANSACTION_SEND"} {"futureId":"UpgradePassportCredentialIssuerModuleV1_0_3#PassportCredentialIssuerProxyFirstImplementationModule~ProxyAdmin.upgradeAndCall","hash":"0x28174ded2c045c07839d5a6d15aa7d1c44ae2b836fc6a32ce5e5ef26d8f634c1","networkInteractionId":1,"receipt":{"blockHash":"0x22cac37899c69ad0fecf9629fae735d16be02534eeacf5cba9e17e6e92ae5c67","blockNumber":2803479,"logs":[{"address":"0xbb3692FF3A721030e4c7E0963062E89A0f297BFE","data":"0x","logIndex":0,"topics":["0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b","0x00000000000000000000000051478d4bf112dcdb650aa07fe3d10e8a6d736ee0"]}],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} -{"futureId":"UpgradePassportCredentialIssuerModuleV1_0_3#PassportCredentialIssuerProxyFirstImplementationModule~ProxyAdmin.upgradeAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} \ No newline at end of file +{"futureId":"UpgradePassportCredentialIssuerModuleV1_0_3#PassportCredentialIssuerProxyFirstImplementationModule~ProxyAdmin.upgradeAndCall","result":{"type":"SUCCESS"},"type":"CALL_EXECUTION_STATE_COMPLETE"} +{"artifactId":"DeployIdCardVerifiers#Verifier_idcard_sha1","constructorArgs":[],"contractName":"Verifier_idcard_sha1","dependencies":[],"from":"0x99986fce65c9b731a6e161f24028bd9755ee3557","futureId":"DeployIdCardVerifiers#Verifier_idcard_sha1","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha1","networkInteraction":{"data":"0x6080604052348015600f57600080fd5b506107ea8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074d565b610057565b604051901515815260200160405180910390f35b60006106aa565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f29ff83716be0d0baba31c32369198c3a0da0d3adb699e63974dffb2879c0004f85527f19b404e25643468fe418e76b619a2c6428a0633a40d103d5894b37e99529acbf60208601526000608086018661019a87357f16c55556093c6b890f0c5dbf45fa1cdef9018f18bd4eeb4691e2394cfa0f97037f0632a709df6078ef66518fd7bdb865efa6f334611ce9d8e05bdee6700540e09d84610092565b6101ea60208801357f034073fb529bb35fa59e74920754aaf5a64b144e94adf12be18d33cafdf3f5b37f07c5bc1b0461526996152c27bfb5412b3a941b76b249890eae3361e6cdee6ffa84610092565b61023a60408801357f2256a3ff0336fdeb8ff15bbe6346f98c1cd42e6150d79d4f8b9c003850784ac57f15d95dd681e29f94806fb623e0862a45150d72df468511f82464e5139464d86484610092565b61028a60608801357f0b2f0cf054017cca1b84a473fe1fd685ad3a8de1e55247a1bc8ae2112887a5517f04346fbf59f32c3d2b1b463ecfde357cac72df041fb8c1a85d51546870b0963e84610092565b6102da60808801357f1c059e750eed8681d720e766016ec290944eb71864552c1a52ce200defcf8ef57f2d2c02b7a423b7732cc79c938965ab3ba3adf42dd092ca8695dc65488b8bf42284610092565b61032a60a08801357f25642f13b43067b9c9c93ad4b0918816217767a4116f400b650e2bc9a8f8b8ee7f08e0171aba726132a10be358c6ed6444e2cf74b70406220e84bd6e88cf0881d084610092565b61037a60c08801357f21a15536da869bca92c54269c8c1cdb7e9fbd0a3efc6fc543e86000936056b797f1bc0d2072947c3e8cfb7ac85e1289da7053d9d7a7c96237702ce1ea514a01a4284610092565b6103ca60e08801357f0389fcbecfc1981ce90ca521226aa862843fa4f308ccaca21bcf102347310c267f14b209a7aa6e362049249d21af4dca9112c998aa7ec20b6b6a17675e93667c6c84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f26f48dde35d1f1d8c281adeb4197bedd259ca49042dde75dcde76053a7eb12766102808201527f29f4fb47ddb8af1bf4744010c8885de42323e9367c620c072308d0e12410fc436102a08201527f2e3a09772fe0d7e39904965e43d9dde3b63c41a8eeee9869e39c9ca0fb7917d06102c08201527f1f74e3ac6d4de5da5f21f8689d45ae00bc4ecd4a5f9d62f800a39d5568c1685c6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c2600084013561005e565b6106cf602084013561005e565b6106dc604084013561005e565b6106e9606084013561005e565b6106f6608084013561005e565b61070360a084013561005e565b61071060c084013561005e565b61071d60e084013561005e565b61072a818486888a6100fd565b90508060005260206000f35b806040810183101561074757600080fd5b92915050565b600080600080610200858703121561076457600080fd5b61076e8686610736565b935060c085018681111561078157600080fd5b6040860193506107918782610736565b92505085610200860111156107a557600080fd5b5091949093509091610100019056fea26469706673582212207169d3c5cbe1262075a1081a8b19a4a874f6a5bac877d87bbbfcea44ed6525c764736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha1","networkInteractionId":1,"nonce":30,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha1","networkInteractionId":1,"nonce":30,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"10000007"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"9999993"}},"hash":"0x9edf04fff0fb3d624a23009e8f441d83f28dccac113c7b6957740e219f9876a7"},"type":"TRANSACTION_SEND"} +{"artifactId":"DeployIdCardVerifiers#Verifier_idcard_sha224","constructorArgs":[],"contractName":"Verifier_idcard_sha224","dependencies":[],"from":"0x99986fce65c9b731a6e161f24028bd9755ee3557","futureId":"DeployIdCardVerifiers#Verifier_idcard_sha224","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha224","networkInteraction":{"data":"0x6080604052348015600f57600080fd5b506107e98061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f11973f474a9d34afdd7843a7608ff0ae39ea710449bb2ddce2c97f347407aeb485527f302d1ceb23adb83e735f2d9307fd9c8d5225f92ef4155d44a30b08d3b6a77ecb60208601526000608086018661019987357f1a865b19cfa36eea966cbe7d4d92b4904cdad4505fb2ec15c9b2a6765b7167397e6e14ccddfc69162a32f34c140d8c093a8d3674d15e3b314cf4393d17379d9184610092565b6101e960208801357f0feefa866182c1ae80b82c864c1063fb7df2c93043d62d4bf5f8a35dcf72a3f27f2dcca5e323089b977858c88af7496df925c9b42f102286cdcdaf415652dc6e6f84610092565b61023960408801357f2f8be3a5549b4052f08756eff14cdeec7f5d5a64a29f207b905f0dec2cd532267f22983a4e6ec998b82a0cfb95f046e06c9f813b65fe5cc2adac7a659fac4dade084610092565b61028960608801357f0358f2b1aa492aaab540b985158a892654fd6cb1c6c003f88cbd91b5deaa027f7f2de31ecf9c91ed8976ae908f7773e234d9f1f6eb1c44c7637a50fa13920aaa7b84610092565b6102d960808801357f2b6d819ff3d0d2a246de92182d690f6369e492794cd21d2410634f86778269e77f01354f5feefb732d89299e6411d059803c2c6779f0e400f25821bc9df211194784610092565b61032960a08801357f0db2027c422c6d687a1520b696eef810da5005fda5a632e1cc24856452940f5c7f1322c6978537b4a4abeae331b56a7fe3047cd803e57aa283898c8861bb5319ad84610092565b61037960c08801357f1169b20c696b7f37bea02355b8143573bb516342bd3717778b0dabd321ccd01a7f2c37024bc413a754e54fc89d8ffb474ed036267310d7b708c0772b9965b0588d84610092565b6103c960e08801357f1b16cebbc5f3bd0268dfc6c16bb4a368b779aa89ff334bd767ca1928157c132f7f279e29138702830e26b031b922a49b1b856a2235cba1ace7ca5c0794df688aaf84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f197cffe80ab9091e47b041687a323278bb14f779901c2dda5c60237854589b276102808201527f03b1182bbb25acac962b67dafe6e00aac983f45d4b743c228dba0ac3e36cc2066102a08201527f0f58c8a26a26d6aec2202f28a8c9bf78a4779d8a198aaa268d4fc451e1919ac16102c08201527f0ce3e786335608bde300a258db0ce7f4cf1caffd63c37f3158e47e4f264caadb6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212205a7895a774b70cbf0308911d4d7b438347c3e0a9c313e82a4108a625d50ac3fe64736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha224","networkInteractionId":1,"nonce":31,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha224","networkInteractionId":1,"nonce":31,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"10000007"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"9999993"}},"hash":"0x07a4d428568d41a6262471b18b24bc923ff68f6a131f67c5c14ad4d94d356d10"},"type":"TRANSACTION_SEND"} +{"artifactId":"DeployIdCardVerifiers#Verifier_idcard_sha256","constructorArgs":[],"contractName":"Verifier_idcard_sha256","dependencies":[],"from":"0x99986fce65c9b731a6e161f24028bd9755ee3557","futureId":"DeployIdCardVerifiers#Verifier_idcard_sha256","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha256","networkInteraction":{"data":"0x6080604052348015600f57600080fd5b506107e98061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f0cd6aff1fa0a9129ebcd0d8730384db02e0bfa436267ecb5cf274fdbc3f26a1585527f06f91217704e02514adec5f28bd3649e1ddc998121b47c2c31c19401b7b23ffc60208601526000608086018661019a87357f04fa45f2ecccbe65d69d748bd2b6d6ea86deb2d20030e8c25c25787d8d4c63167f0bae7afe1eac90147127668dc58fc76faf3c848ee0b9b8523ab93bd4e249d02f84610092565b6101ea60208801357f291a8e69d0febb19616b5c66ed0319e132ad06b60aaf16d2c01556311b27658b7f2f53f65e53c6780eb5fe71aee3c8f00081708df10822e15b14b11923975bef2084610092565b61023a60408801357f238326fb19dd47a63673695dd8f99844a81b31176e482fb8b2309932da62bfe27f238400b3360abfaa0dd61f6a45374d67f78054f2fd3986b216c84057f85e295884610092565b61028a60608801357f1ce1d2aae4306f6a7cc1099fe711f272c163eeca105c10aa51c2ae52da1164c27f036b292ee7ecc83260988e0bfaf999f45906c45d485097875cce48af2d78259584610092565b6102da60808801357f0fd7dc27fee49cf7d40b5afd6e709e4fdaf95ffa781327b6176f91f44a0176ad7f0285d3f81014d1935ed2ca4b56e847106dec5fe9494f6e733ad0ca8be4315b4784610092565b61032960a08801357e1ca084afa10add72ed685121b18f11aabdfb8132b53b64c7c3b51a4e9a72397f045ba5e85d4e083dabc4d2dd39cfdb28a81deb6d318654eeb704f5bb42344af084610092565b61037960c08801357f0f9c7a5277f89dc198fe9c286f0be8efab776b96c9e27d4291a09770ba2bdfe57f141e87d10dea1ba8dc0c60ccb217bdd5a5ee1a268ab7cbd5388ea1352c68c16c84610092565b6103c960e08801357f1c2e761161aa3606dd11643c2fc867d27c5e8a26fb9254d1a905ed14405947597f266439e94c68d5d4fd08ef015b8644289e5a9a9d40263d2c8b6f7a9d25881a5484610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f0fb71534758df3012a60e8d9833566b0f5298d25446afd64b2fc77079d09c9c36102808201527f156f6c8e48273df70286225e4f26197c271cef35a6621b53d6045277c21d5ac16102a08201527f24c12e433ee45e7d3a3274d5839d05c6c3ef2d87c17a064d4fcb78b34c60f0ba6102c08201527f2a9e6042c4bbf9ecb4420344847aeb071c36a1e04636408978cceb314c31b5566102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212204b10495355562cfb3ac941ba24f5cb2370270079bf0fc6526a85016c1eea7ced64736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha256","networkInteractionId":1,"nonce":32,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha256","networkInteractionId":1,"nonce":32,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"10000007"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"9999993"}},"hash":"0x932f29e16376ca8b27c34df5b96e27d690df8931163033d9b91b70cfbb934ec1"},"type":"TRANSACTION_SEND"} +{"artifactId":"DeployIdCardVerifiers#Verifier_idcard_sha384","constructorArgs":[],"contractName":"Verifier_idcard_sha384","dependencies":[],"from":"0x99986fce65c9b731a6e161f24028bd9755ee3557","futureId":"DeployIdCardVerifiers#Verifier_idcard_sha384","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha384","networkInteraction":{"data":"0x6080604052348015600f57600080fd5b506107e98061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074c565b610057565b604051901515815260200160405180910390f35b60006106a9565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f18eab35ae854b5b39c8fa63363a88b91b1fdc6978e1743ca488c69ba334c508e85527f25cb546d2f84d371cebe397b54f233a9a52d99870aaa4a365770336498c72fd460208601526000608086018661019987357e0b5904467956cd88219e8fdf1a96df8a4c213eb1fbf9eb5fe8067bfaf10ef17f297514db6f675d3e19ab8fdf0ea98ee6a88ca0daa6e1d54b9c0a43906f21014484610092565b6101e960208801357f12c8a9e2fb08db9363aa1753295449c406b5e291291cad2109d4dcaeac213be37f0d2102cd75b5f4e3528620178980516fddac6cc3bb56d46d190511c07a7cb47984610092565b61023960408801357f1ec83a03b58de715f3a96521f3f5137ab7cbbb7b7286301bb46bbe060999e2a27f27cbc5427e7f642f4aca05e5a1d25b3322b8ca8af25e628664b9027abe05223e84610092565b61028960608801357f124c66accd609050ac9e16d1976ca5e08e3fc1d30a7a50414d4ce44a290975107f27d18d3bedbf40e95cce9f9acf5ffbcf4df76e3823aeeed405ac93620b1dd28684610092565b6102d960808801357f17cbc914663ab3ffe4fd118b3a74cf5f92b31927cc42ba57e2471259a7f52f4b7f03eb079f91ff2928de76dcf854249191077486f67be85633045b6080e69d7e8284610092565b61032960a08801357f18c97de166bbb60b90e9efcaf394cf75cbbbc9ac47e373b963779fd848cd3cb37f064a4ea511da2da6dd454bcc4aa7741cc915a9dc166abe5421311d1654afdd0284610092565b61037960c08801357f2b9841351fbaf8f4058703a0e7cc2cbdb433a1fabe068ff32f71eb1c9f67e3a07f2c89940fbc41366d4392cca6c2421407d7aeccc9925290dec36dfde35700eed084610092565b6103c960e08801357f18172fc61271230761b25bb8151d9ed3a87331b726e012f8c66c4be1406004427f0f9af5a25c3e4f28f4046e92261ac77c17b4f4a8a79e4af927541875154df27f84610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f2b747cc47f5a9c39e1aec16db0fb336821d4df51fedb851b80927345bb8763c76102808201527f1f6265654b72215a6c597ae20915021be80ee0fff39a206a218296e460586a1b6102a08201527f1b4eb4714db298e715fc765588af847d7edf40519d19523210c482e74aaeaae86102c08201527f11269223b6e64d0e6bdb960fbb6df7b0d3bc91f95e291505d01ea668363a036f6102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c1600084013561005e565b6106ce602084013561005e565b6106db604084013561005e565b6106e8606084013561005e565b6106f5608084013561005e565b61070260a084013561005e565b61070f60c084013561005e565b61071c60e084013561005e565b610729818486888a6100fd565b90508060005260206000f35b806040810183101561074657600080fd5b92915050565b600080600080610200858703121561076357600080fd5b61076d8686610735565b935060c085018681111561078057600080fd5b6040860193506107908782610735565b92505085610200860111156107a457600080fd5b5091949093509091610100019056fea26469706673582212201137da3daeaa7c27ef151cae110b4bd4f60f59ec7da0a75a183fd559af54fbff64736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha384","networkInteractionId":1,"nonce":33,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha384","networkInteractionId":1,"nonce":33,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"10000007"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"9999993"}},"hash":"0x6ae0c0e55f4078e0c5969fd2d6a5000ea74d95d1967f505cd9981518048189c4"},"type":"TRANSACTION_SEND"} +{"artifactId":"DeployIdCardVerifiers#Verifier_idcard_sha512","constructorArgs":[],"contractName":"Verifier_idcard_sha512","dependencies":[],"from":"0x99986fce65c9b731a6e161f24028bd9755ee3557","futureId":"DeployIdCardVerifiers#Verifier_idcard_sha512","futureType":"NAMED_ARTIFACT_CONTRACT_DEPLOYMENT","libraries":{},"strategy":"basic","strategyConfig":{},"type":"DEPLOYMENT_EXECUTION_STATE_INITIALIZE","value":{"_kind":"bigint","value":"0"}} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha512","networkInteraction":{"data":"0x6080604052348015600f57600080fd5b506107ea8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063c9219a7a14610030575b600080fd5b61004361003e36600461074d565b610057565b604051901515815260200160405180910390f35b60006106aa565b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001811061008f576000805260206000f35b50565b600060405183815284602082015285604082015260408160608360076107d05a03fa9150816100c5576000805260206000f35b825160408201526020830151606082015260408360808360066107d05a03fa915050806100f6576000805260206000f35b5050505050565b7f0efa8b7e9991fb75f19bb5ababa191b27889b6c72ddfe31e7b0e757882230f0285527f02c6feaa298fd3c18d6be3dad14166d2b0e42b4cac90c3f182e76b4e162ede0c60208601526000608086018661019a87357f2bfe6c32b4a50fb7d2b644be488602b7e2b458da3e6bbf3cff8953b7821e33d67f165a5eca7b5b08d42a140bb16d521ae5a9a9d878fb1d69a1b50e2d217c6d51ac84610092565b6101ea60208801357f210589b1d0b9623ccd9c768e7a8c8250711c866c53fe6131112d6473aa3cf5f97f2030c627df3f038d0d67b730a7b56604384a228c18376dee9e59c39ef1c81ab184610092565b61023a60408801357f0bb0716a88add9ea812103cb0210644eddc49a537b336ff73d0946b5f37010a97f1f15a1f568d0f4f0bdc70a1cfead7ecf49aef1bd66747f6ea7d005b56fca8dbf84610092565b61028a60608801357f0474bd03c61742c855ecc6bccbc089e95b9f92f182e2ea01099f1081934f30d37f0ed3ffc12a1552c83f4c0798c1d2bd2bf7a2a3d98984d4ff637f80d0a49e760284610092565b6102da60808801357f1578253252769f50fb14e2ddbc387dfdb907cb90f1e4393ea6a316f022a4b4e77f290118d4cd323220daa11ff48229b0b440ced4c9841e936263a5fc8d79daf69584610092565b61032a60a08801357f2bea0a06bc725b76b6ba723e619e43991d3601d4aadee7b393a91b0d72bba1c97f0134676e2c8b2559a41d9eaf556067fefeb2de935dc34a7b523a173ab0200c6c84610092565b61037a60c08801357f2b13eab7a13a737fb3123a1ad5538a1b367d2b8afb7cb91fda92098e32aa35417f14086337a06e6fe01c04ffd6c35807d5d6cd587818ca48f38758b3bb55cede8b84610092565b6103ca60e08801357f1c8636c70f3c36725dfd6222023c45c5994bbfef581a63643f302599c027294c7f15eb31619a7319107f0a8602f8b4b0c4432d57b01e0e6d69d8c51ab4e3700d6984610092565b50823581527f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4760208401357f30644e72e131a029b85045b68181585d97816a916871ca8d3c208c16d87cfd4703066020820152833560408201526020840135606082015260408401356080820152606084013560a08201527f2d4d9aa7e302d9df41749d5507949d05dbea33fbb16c643b22f599a2be6df2e260c08201527f14bedd503c37ceb061d8ec60209fe345ce89830a19230301f076caff004d192660e08201527f0967032fcbf776d1afc985f88877f182d38480a653f2decaa9794cbc3bf3060c6101008201527f0e187847ad4c798374d0d6732bf501847dd68bc0e071241e0213bc7fc13db7ab6101208201527f304cfbd1e08a704a99f5e847d93f8c3caafddec46b7a0d379da69a4d112346a76101408201527f1739c1b1a457a8c7313123d24d2f9192f896b7c63eea05a9d57f06547ad0cec8610160820152600087015161018082015260206000018701516101a08201527f198e9393920d483a7260bfb731fb5d25f1aa493335a9e71297e485b7aef312c26101c08201527f1800deef121f1e76426a00665e5c4479674322d4f75edadd46debd5cd992f6ed6101e08201527f090689d0585ff075ec9e99ad690c3395bc4b313370b38ef355acdadcd122975b6102008201527f12c85ea5db8c6deb4aab71808dcb408fe3d1e7690c43d37b4ce6cc0166fa7daa610220820152843561024082015260208501356102608201527f0ae9213fb9b06c533329ce9cf2c60c7cdfd3710f3026143f954d12139b2236c66102808201527f2140e18997ae8f5a7076abe639af9d1b57663c31fc00e9a2c46230b88da373646102a08201527f04700c77cef08a5aed2edb137cf02d1e04e9bda237232e3c8250db511bb2bc506102c08201527f290872336d0f063986f77518a56633db0ea7c8f0111b70e644e64183415248406102e08201526020816103008360086107d05a03fa9051169695505050505050565b60405161038081016040526106c2600084013561005e565b6106cf602084013561005e565b6106dc604084013561005e565b6106e9606084013561005e565b6106f6608084013561005e565b61070360a084013561005e565b61071060c084013561005e565b61071d60e084013561005e565b61072a818486888a6100fd565b90508060005260206000f35b806040810183101561074757600080fd5b92915050565b600080600080610200858703121561076457600080fd5b61076e8686610736565b935060c085018681111561078157600080fd5b6040860193506107918782610736565b92505085610200860111156107a557600080fd5b5091949093509091610100019056fea2646970667358221220032f97f4ecb303fa37aa53fc81dae620186875de0d2d5f583823971e663efc7064736f6c634300081b0033","id":1,"type":"ONCHAIN_INTERACTION","value":{"_kind":"bigint","value":"0"}},"type":"NETWORK_INTERACTION_REQUEST"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha512","networkInteractionId":1,"nonce":34,"type":"TRANSACTION_PREPARE_SEND"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha512","networkInteractionId":1,"nonce":34,"transaction":{"fees":{"maxFeePerGas":{"_kind":"bigint","value":"10000007"},"maxPriorityFeePerGas":{"_kind":"bigint","value":"9999993"}},"hash":"0x8aa54bd48cf9ee42cbb5c07e7d011362874e77115f3bf9a0a8735f52320cd612"},"type":"TRANSACTION_SEND"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha1","hash":"0x9edf04fff0fb3d624a23009e8f441d83f28dccac113c7b6957740e219f9876a7","networkInteractionId":1,"receipt":{"blockHash":"0xb39698e75a0859d010f6ea549537c4dd4ac05bccf9ade8580ae3419ae6f494a3","blockNumber":3624196,"contractAddress":"0x252cC24AE6F18235E249f46e2BA76FF17383FB3a","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha1","result":{"address":"0x252cC24AE6F18235E249f46e2BA76FF17383FB3a","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha224","hash":"0x07a4d428568d41a6262471b18b24bc923ff68f6a131f67c5c14ad4d94d356d10","networkInteractionId":1,"receipt":{"blockHash":"0xb39698e75a0859d010f6ea549537c4dd4ac05bccf9ade8580ae3419ae6f494a3","blockNumber":3624196,"contractAddress":"0x19bf079EfA912B1234eB9d2341174eDDE31E9a78","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha224","result":{"address":"0x19bf079EfA912B1234eB9d2341174eDDE31E9a78","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha256","hash":"0x932f29e16376ca8b27c34df5b96e27d690df8931163033d9b91b70cfbb934ec1","networkInteractionId":1,"receipt":{"blockHash":"0xb39698e75a0859d010f6ea549537c4dd4ac05bccf9ade8580ae3419ae6f494a3","blockNumber":3624196,"contractAddress":"0x2A76394E2e321b084a2169dBF75ba4e7B593d98c","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha256","result":{"address":"0x2A76394E2e321b084a2169dBF75ba4e7B593d98c","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha384","hash":"0x6ae0c0e55f4078e0c5969fd2d6a5000ea74d95d1967f505cd9981518048189c4","networkInteractionId":1,"receipt":{"blockHash":"0xb39698e75a0859d010f6ea549537c4dd4ac05bccf9ade8580ae3419ae6f494a3","blockNumber":3624196,"contractAddress":"0xd1bBc0f4602cB2ae6908C1e790BB1D71Be8994d3","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha384","result":{"address":"0xd1bBc0f4602cB2ae6908C1e790BB1D71Be8994d3","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha512","hash":"0x8aa54bd48cf9ee42cbb5c07e7d011362874e77115f3bf9a0a8735f52320cd612","networkInteractionId":1,"receipt":{"blockHash":"0xb39698e75a0859d010f6ea549537c4dd4ac05bccf9ade8580ae3419ae6f494a3","blockNumber":3624196,"contractAddress":"0x38c2458D2681FFfB0d30656FeF24665F0FD58a10","logs":[],"status":"SUCCESS"},"type":"TRANSACTION_CONFIRM"} +{"futureId":"DeployIdCardVerifiers#Verifier_idcard_sha512","result":{"address":"0x38c2458D2681FFfB0d30656FeF24665F0FD58a10","type":"SUCCESS"},"type":"DEPLOYMENT_EXECUTION_STATE_COMPLETE"} \ No newline at end of file diff --git a/ignition/modules/passportCredentialIssuer/deployIdCardVerifiers.ts b/ignition/modules/passportCredentialIssuer/deployIdCardVerifiers.ts new file mode 100644 index 0000000..9f8f488 --- /dev/null +++ b/ignition/modules/passportCredentialIssuer/deployIdCardVerifiers.ts @@ -0,0 +1,22 @@ +import { buildModule } from "@nomicfoundation/hardhat-ignition/modules"; +// TODO: restore import below when passport-utils is updated +//import { DEPLOYED_CIRCUITS_IDCARD } from "passport-utils"; + +const DEPLOYED_CIRCUITS_IDCARD = [ + 'idcard_sha1', + 'idcard_sha224', + 'idcard_sha256', + 'idcard_sha384', + 'idcard_sha512', +]; + +export default buildModule("DeployIdCardVerifiers", (m) => { + const deployedContracts: Record = {}; + + DEPLOYED_CIRCUITS_IDCARD.forEach((circuit) => { + const contractName = `Verifier_${circuit}`; + deployedContracts[circuit] = m.contract(contractName); + }); + + return deployedContracts; +}); diff --git a/scripts/passportCredentialIssuer/updateVerifiersPassportIdCard.ts b/scripts/passportCredentialIssuer/updateVerifiersPassportIdCard.ts new file mode 100644 index 0000000..b3c171a --- /dev/null +++ b/scripts/passportCredentialIssuer/updateVerifiersPassportIdCard.ts @@ -0,0 +1,64 @@ +import hre, { ethers } from "hardhat"; +import fs from "fs"; +import path from "path"; + +async function main() { + const networkName = hre.network.config.chainId; + + const deployedAddressesPath = path.join( + __dirname, + `../../ignition/deployments/chain-${networkName}/deployed_addresses.json`, + ); + const deployedAddresses = JSON.parse(fs.readFileSync(deployedAddressesPath, "utf8")); + + const passportCredentialIssuerAddress = + deployedAddresses[ + "PassportCredentialIssuerProxyFirstImplementationModule#TransparentUpgradeableProxy" + ]; + + const passportCredentialIssuer = await ethers.getContractAt( + "PassportCredentialIssuer", + passportCredentialIssuerAddress, + ); + + console.log("PassportCredentialIssuer address:", passportCredentialIssuerAddress); + console.log("Version:", await passportCredentialIssuer.VERSION()); + const idcardCircuitIds: string[] = []; + const idcardVerifierAddresses: string[] = []; + + const deploymentKey = "DeployIdCardVerifiers"; + + if (!deploymentKey) { + console.error("Please specify the deployment key."); + return; + } + + for (const [key, value] of Object.entries(deployedAddresses)) { + if (key.includes(`${deploymentKey}#Verifier_idcard`)) { + idcardCircuitIds.push(key.replace(`${deploymentKey}#Verifier_`, "")); + idcardVerifierAddresses.push(value as string); + } + } + + if (idcardCircuitIds.length > 0) { + console.log( + `Updating credential verifiers for ${idcardCircuitIds.length} circuits in PassportCredentialIssuer...`, + ); + console.log(idcardCircuitIds, idcardVerifierAddresses); + await passportCredentialIssuer.updateCredentialVerifiers( + idcardCircuitIds, + idcardVerifierAddresses, + { + gasPrice: 50000000000, + gasLimit: 10000000, + }, + ); + } +} + +main() + .then(() => process.exit(0)) + .catch((error) => { + console.error(error); + process.exit(1); + });